soma0sd

코딩 & 과학 & 교육

반응형

제가 만들 게임은 타일 맵을 사용할 계획입니다. 타일 맵은 주로 유저가 위에서 아래로 세계를 보는 형태의 하향식(Top-Down) 게임이나 플랫폼 게임 등에서 지형을 표현할 때 사용하는 방법입니다. 이 방법은 반복해서 나타나는 적은 리소스와 규칙으로 손쉽게 관리할 수 있게 해줍니다. 타일 맵의 종류 타일 맵은 형태나 분류에 따라 다양한 분류기준이 있습니다. 여기서는 하향식 게임에 사용하는 타일맵을 투영 방식에 따라 분류합니다. 우선 가장 단순한 직교좌표계를 사용하는 방식인 Orthogonal Map이 있습니다. RPG등에서 자주 활용하고, 타일을 배치할 격자를 만들기 쉬워서 많이 사용합니다. 다음은 등축 투영법을 사용하는 Isometric Map입니다. 타일 격자의 형태가 마름모꼴입니다. 여러 높이를 표..

Pygame: 타일 맵 만들기

세상에는 게임 개발을 위한 많은 게임엔진들이 있고, 그중에는 파이썬을 위한 게임 엔진들도 많습니다. 이번에는 Pygame을 사용하는 기본적인 방법을 다룹니다. 파이게임(Pygame)은 주로 2D 게임을 개발하기 위한 파이썬 패키지입니다. 파이게임은, 전용 IDE(통합개발환경)이 없습니다: 대부분의 게임개발은 소스코드에디터에서 이루어지며 게임에 사용하는 이미지, 음향 등은 별도로 작업해야 합니다. 하나의 창만 관리합니다: 물론 다른 GUI 패키지를 사용하여 새로운 창을 만들 수는 있지만 두개의 파이게임을 동시에 실행할 수는 없습니다. 3D지원이 굉장히 빈약합니다: 예제에는 3D 랜더링한 작품들이 많이 보입니다만 굉장히 코드가 난해해지고 파이게임의 모듈이 아닌 것들을 활용하기에 게임에 필요한 자원이 급격히 ..

파이썬 게임 개발: Pygame 시작하기

node.js는 자바스크립트를 이용하여 웹 페이지의 프론트엔드, 웹 서버의 백엔드, 웹 애플리케이션 등을 개발할 수 있는 환경을 제공합니다. NVM for Windows는 윈도우 OS를 위한 node.js 버전관리자입니다. nvm을 활용하면 개발하는데 여러 버전이 필요한 경우에 유용하게 사용할 수 있습니다. 윈도우 PC의 경우 여러 버전의 node.js가 필요한 상황이 아니어도 nvm을 사용하는게 큰 장점이 되는데요. 공식 홈페이지에서 시키는대로 설치하면 Windows-Build-Tools를 실행하는 과정에서 수많은 빌드 도구와 비주얼 스튜디오 도구들을 함께 설치하기 때문입니다. 기존에 비주얼 스튜디오에서 C++ 혹은 파이썬 개발을 하는 경우에는 큰 상관이 없겠지만 아닌 경우 굉장히 거추장스러운데다 쓰지..

NVM: node.js 간편 설치와 버전 변경

SCP는 SSH를 사용하여 파일을 복사하는 터미널 명령입니다. 윈도우의 PowerShell에 다양한 SSH 관련 도구가 추가되어 SSH 연결과 비슷한 방식으로 파일을 보내거나 받을 수 있습니다. File1.dat을 호스트에서 클라이언트로 전송 파일을 교환하는 장비 중 하나에는 SSH 서버가 작동중이어야 합니다. 윈도우에서는 SSH 서버 설정이 꽤 난해한편이니 리눅스에서 SSH 서버가 돌아가고 있는 상황을 가정합니다. 윈도우 장비에서 ssh를 사용해 리눅스 장비로 접속할 때, 윈도우 장비를 클라이언트 라고 하고 리눅스 장비를 호스트라고 부르겠습니다. ~는 사용자 홈 폴더를 의미합니다. 리눅스에서는 /home/{유저명}/ 경로를, 윈도우에서는 C:\Users\{유저명}\ 경로를 의미합니다. 호스트에 있는 ~..

SCP: ssh를 이용한 파일 전송

저의 경우 업무를 위해 개발을 시작할 때 대충 절차가 이렇습니다. 회사 VPN 연결 회사의 엣지컴퓨팅 개발보드에 SSH 접속 VSCode로 개발 시작 하는 절차를 거치고 있습니다. 장비마다 네트워크 이름을 별도로 설정해놓지 않아서 매번 포트스캐너를 사용하고, 22번 포트가 열려있는 장치 중에서 내부 호스트이름이 맞는 것을 찾는 것은 매우 귀찮은 일입니다. 언제나 그래왔던 것 처럼 귀찮은 반복작업은 개발자의 큰 적이죠. 파이썬을 사용해서 필요한 헤메는 절차를 자동으로 수행하는 스크립트를 구현합니다. 1 단계. 스캔범위 얻기 import socket MY_IP = socket.gethostbyname(socket.gethostname()) IP_RANGE = [".".join([*MY_IP.split("."..

[Python] 내부 IP 검색, 포트 확인, SSH 호스트네임 확인

NVIDIA 젯슨이나 라즈베리 파이 등 조금 특별한 환경에서 사용하는 파이썬 패키지는 파이썬 패키지 인덱스(PyPI)에서 제공하지 않는 경우가 많습니다. 즉 pip로 설치할 수 없거나 설치했더라도 오류가 발생합니다. 여기서는 무분투를 포함한 데비안 계열의 패키지 관리자인 APT를 사용해서 apt-get install python3-numpy와 같은 방식으로 설치한 패키지를 파이썬 가상환경에 적용하는 방법을 소개하고 간단한 bash 스크립트를 안내합니다. apt-get으로부터 가상환경의 패키지지로 옮기는 절차 apt-get downlad를 사용해서 해당하는 파이썬 패키지가 담긴 리눅스 패키지를 다운로드 dpkg -x를사용해서 패키지 압축 해제 mv를 사용해 데비안 패키지 내부의 dist-packages/ ..

Python 가상환경(venv)에 apt-get으로 설치한 패키지 집어넣기

추론 결과를 GUI에 보여주기 위해 PyQt5를 사용합니다. # PyQt5가 설치되어 있는 경우 sudo apt upgrade python3-pyqt5* # PyQt5를 새로 설치해야 하는 경우 sudo apt install python3-pyqt5* 실행 결과 스크립트 뷰어로는 QGraphicsView를 사용합니다. 비디오를 표시할 때 라벨로 표시하는 방법을 많이 사용하지만 이 때는 위젯의 repaint를 너무 많이 발생하게 만들 수 있다는 이야기를 들어서 그래픽스 위젯을 사용했습니다. 비디오 스트림 작업은 QThread를 사용했습니다. 샘플 동영상은 앞서 동영상 객체인식 예제를 만들 때 사용했던 인텔의 샘플 비디오를 사용했습니다. 앞의 예제에서 설명했던 내용들은 제외하고 주석을 첨부하였습니다. """..

NVIDIA Jetson PyQt5에서 추론도구 사용하기 -Python

이 예제는 기본 제공 모델에 포함되어 있는 ssd-mobilenet-v2를 함께 설치하는 젯슨 추론도구 설치 과정을 마친 후에 실행할 수 있습니다. 작업 공간에 샘플 비디오 다운로드 우선 작업을 위한 디렉토리를 하나 생성하고 그곳에서 인텔이 제공하는 AI 추론 테스트를 위한 샘플 비디오를 작업 공간에 내려받습니다. git clone https://github.com/intel-iot-devkit/sample-videos VSCode를 이용하여 원격 개발을 하는 경우 새로운 디렉토리를 열 때 code ~/Work와 같은 방식으로 터미널 명령을 통해서 열 수 있습니다. Python 스크립트 """Jetson Detectnet Test 샘플 비디오의 객체인식 결과를 출력하는 프로그램 """ import glo..

NVIDIA Jetson 동영상 객체인식 - Python

여기서는 Jetson을 위한 추론 도구 유틸리티인 jetson-inference를 설치하고 Python에서 추론 기능을 활용합니다. 젯슨 추론 도구 엔비디아의 수석 기술 마케팅 엔지니어인 더스틴 프랭클린(Dustin Franklin)은 Jetson을 위한 여러 도구와 사용 예제, 문제 해결방법을 연구하고 결과를 공개합니다. 이번에 소개하는 jetson-inference 또한 더스틴 프랭클린의 공개 작업물인데요. TensorRT를 이용한 텐서코어 추론을 지원합니다. 주로 이미니와 영상의 딥러닝 추론을 지원합니다. jetson-inference는 다음 추론 예제와 가이드를 제공합니다. ImageNet을 이용한 이미지 분류 DetectNet을 이용한 객체 인식 SegNet을 이용한 이미지 분할 PoseNet을..

NVIDIA Jetson 딥러닝 추론 준비하기

End of content

No more pages to load

◀ PREVNEXT ▶