글

라벨이 Rust인 게시물 표시

Rust game engine : Bevy 셋업

개요 시스템에 Bevy를 설치하는 방법에 대해 기술되어있는 Bevy Setup 입니다. 새 프로젝트 % cargo new my_bevy_game      Created binary (application) `my_bevy_game` package % cd my_bevy_game  % cargo add bevy 일반적인 Rust 새프로젝트와 동일합니다. % cat Cargo.toml [dependencies] bevy = "0.11.0" 현재 제가 작업중인 시점의 최신 버전입니다. 컴파일 성능 최적화 Bevy의 Rust Debug 빌드는 매우 오래걸립니다. 실행시에도 매우 오래 걸리는 경우도 있다고 하니 Bevy 개발을 할때는 반드시 다음 최적화 설정을 Cargo.toml 에 추가하세요! # Enable a small amount of optimization in debug mode [profile.dev] opt-level = 1 # Enable high optimizations for dependencies (incl. Bevy), but not for our code: [profile.dev.package."*"] opt-level = 3 릴리즈 빌드로 개발하는 것은 전체 빌드 속도를 늦추고 문제 발생시 디버깅을 어렵게 하므로 권장하지 않는다네요. ( 이거 난데? 뜨끔 ) Enable Bevy's Dynamic Linking Feature 가장 효과적인 컴파일 시간 단축입니다. 게임을 출시할때는 반드시 제거하라네요. [dependencies] bevy = { version = "0.11.0", features = ["dynamic_linking"] } LLD Linker Rust Linker 보다는 기본 LLD Linker 가 빠르다네요. 이유는 모르겠습니다. 빠르다니 일단 설치 Ubuntu sudo apt-get install lld MacOS brew install llvm...

Rust game engine : Bevy 튜토리얼 v0.11

이미지
개요 bevy로 이것저것 만들던 시절 0.9 버전이었는데 손놓은 사이 0.11로 올라갔네요. 다시 정리해봅니다. Bevy Getting Started 준비 error: package `bevy v0.11.0 (/Users/loblue/work/bevy/bevy)` cannot be built because it requires rustc 1.70.0 or newer, while the currently active rustc version is 1.69.0 % rustup update stable-aarch64-apple-darwin updated - rustc 1.71.1 (eb26296b5 2023-08-03) (from rustc 1.69.0 (84c898d65 2023-04-16)) bevy 0.11은 rustc 1.70.0 이상이 필요합니다. 맥북 m1 에서 설치했더니 aarch64-apple-darwin 으로 설치되네요. 예제 실행 : breakout 일명 벽돌깨기  % git clone https://github.com/bevyengine/bevy % cd bevy % git checkout v0.11.0 % cargo run --example breakout 순서대로 하면 실행됩니다. 딱히 뭐 없이 실행됩니다. 코드는 examples/games/breakout.rs 에 있습니다. 아직 뭘해야할지 잘 모르겠지만, 일단 계속 해보겠습니다. #rust #bevy

[Rust OpenCV] 1.01 OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝을 Rust로 Re-write

Original Code  opencv4cvml/ch03/BasicOp/main.cpp   코딩을 배우는 가장 좋은 방법은 베끼는거죠! opencv::core::{Point, Size, Rect, RotatedRect} 샘플 코드를 rust 로 작성해봤습니다. RotatedRect.points 를 쓰는데 자꾸 에러가 발생해서 코드를 아래와 같이 바꾸었더니 정상 동작하였습니다. use opencv::core::*;  아직 Rust 내공이 미천하여 왜 그런지는 모르겠습니다만, 하다보면 알게 되겠지요! #RustOpenCV

[Rust OpenCV] 0. 기본정보

개요 Rust 공부는 하는데 뭘 해야할지 몰라서 중단한 상태에서, opencv를 공부하게 되었습니다. 그럼 rust에서 opencv를 하면 되겠네! 나름 새로운 시도가 될 것 같아서 도전해봅니다! [ OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 ] Rust로 Re-write anaconda 에서 rust 로 opencv 작성하기 #RustOpenCV

rust debugging __FILE__ __LINE__ __func__

개요 c에서 사용하는 __FILE__ __LINE__ __func__ 과 비슷하게 디버깅에 사용할 수 있는 매크로입니다. 코드 # cargo.toml [dependencies] stdext = "0.3.1" # src/main.rs use stdext::function_name; fn main() {     println!("Hello, world!");     println!("{} {} {}", file!(), line!(), function_name!()); } file!() line!() 매크로는 std에 포함되어있으나 function_name 은 포함되어있지 않아 stdext crate 를 사용해야합니다. function_name 길어서 좀 불편하긴 하지만 이것도 vim 매크로화하면 되죠  # 실행 Hello, world! src/main.rs 5 file_line_func::main stdext crate Additional features for the Rust standard library. 알아두면 유용할 것 같은 라이브러리입니다.

Rust game engine : bevy 튜토리얼

개요 https://bevyengine.org/learn/book/introduction/ 따라하는 중.. 준비 # 필요한 패키지 설치 $ sudo apt install libudev-dev # 최신 rustc 업데이트 $ rustup update 시작 $ cargo new my_bevy_game $ cd my_bevy_game $ cargo add bevy src/main.rs 수정 use bevy::prelude::*; fn main() {     App::new().run(); } 실행 $ cargo run #Rust

RustDesk Server/Client 설치

이미지
개요 Chrome Remote Desktop 을 잘 쓰고 있었는데 두가지 문제로 사용을 포기하게 됩니다. Timeout : 윈도 잠금화면 시간이 걸려있으면 Timeout 걸리며 로그아웃된다는데 전 잠금화면 풀어도 10분정도면 Timeout 걸리며 로그아웃되버립니다. 매번 로그인해야하는 귀찮음에 포기 백신문제 : 집에서 교육 컨텐츠 설치했더니 Remote Desktop 제거하라며 설치 불가 뜨는 현상이 발생했습니다. 이 뭔... 아무튼 두 가지 문제로 포기했었던 차에 클리앙에서 원격제어 프로그램 5종 간단 사용기 발견하였습니다. 마침 제가 Rust 공부도 했었고(응?), 라이센스 문제도 없다고 하여 설치해보았으며 만족합니다. 다른 앱들은 라이센스 문제가 걸리거나 다른 문제가 걸려서 포기하였습니다. RustDesk   장점 서버를 직접 구성해서 쓸 수 있습니다. 내부망 안에 사용하면 네트워크 문제를 일으키지 않습니다. 물론 이렇게 사용하면 외부에서 접속하긴 어렵죠. 서버를 직접 구성하기 때문에 보안 문제도 일으키지 않습니다. 한영 변환키 지원이 완벽합니다. 원래 제대로 안됐는데 제가 issue 올려서 되게 했습니다. ㅋㅋㅋ 2022년 11월 18일 기준  nightly 버전에서 정상동작합니다. 서버 구성 두가지 이유로 RustDesk 서버를 설치하기로 합니다. 공유기 안에서 NAT 내부망을 구성하므로 공식 RustDesk 서버에서 접속이 안됨 보안상 외부 접속 차단 RustDesk 서버 설치문서 를 참조하여 는 Ubuntu에 Docker로 설치합니다. # 도커 설치 $ sudo apt install docker.io # 도커 이미지 설치 $ sudo docker image pull rustdesk/rustdesk-server 도커 실행 Relay 서버도 함께 띄울 예정이니 우분투의 IP를 입력합니다. # 랑데뷰 서버 $ sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:2111...

Rust 글모음

라즈베리파이 라즈베리파이용 Rust 컴파일 Rust 어플리케이션 RustDesk Server/Client 설치 Rust Game Rust game engine 인 bevy 튜토리얼 쪽코드 rust debugging __FILE__ __LINE__ __func__

라즈베리파이용 Rust 컴파일

Situation Rust를 공부하면서 활용하는 방안을 생각하던 중, Rust가 C/C++을 대체하는 빠른 언어라는 점에서 라즈베리파이와 잘 어울린다는 글을 읽었습니다. 그래서 아무 생각없이 라즈베리파이에서 Actix를 컴파일 했더니...몇시간 걸리더군요 ㅡ.ㅡ 사실 너무 오래 걸려서 중간에 끊었습니다. 그리고 크로스컴파일을 하기로 했습니다. arm64에서 이미 한번 해봤기때문에 별로 어려울 건 없었습니다. Task Rust project 생성 컴파일 환경 세팅 크로스컴파일 실행파일 라즈베리파이로 전송 및 실행 뭔가 많은 부분이 생략된 것같지만, 진짜 기분탓입니다. 그냥 이렇게 하면 간단하게 끝납니다. Action Rust Project 생성 Hello Rust 프로젝트 하나 생성합니다. rust 설치는 여기서 다루지 않습니다. $ cargo new hellorust      Created binary (application) `hellorust` package $ cd hellorust/ 컴파일 환경 크로스컴파일러를 설치하고 러스트에 컴파일 타겟을 지정합니다. sudo apt install gcc-arm-linux-gnueabihf rustup target add armv7-unknown-linux-gnueabihf 크로스컴파일 설치한 크로스컴파일러의 링커를 설정해 줍니다. .cargo/config 파일을 생성하고 아래 내용을 붙여넣기합니다. [target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc" 타겟을 지정해서 컴파일 합니다. $ cargo build --target=armv7-unknown-linux-gnueabihf    Compiling hellorust v0.1.0 (/mnt/d/work/hellorust)     Finished dev [unoptimized + debuginfo] target(s) in 4.59...

이 블로그의 인기 게시물

구글 시트에 여러 행 한번에 추가하기

WSL2 Ubuntu 20.04 및 네트워크 설정

우분투 terminator 에서 파일 경로 클릭시 vscode 에서 열기