본문 바로가기

분류 전체보기106

RPG Project 오류 일지 - Respawn 오브젝트 풀에 10개의 오브젝트를 할당해두고, 몬스터가 죽어도 전체 개수는 계속 10개로 유지하도록 구현했다. 구현하는 중에 오브젝트 풀을 Manager로 선언해서 싱글톤 패턴을 적용할까 싶었지만, Monster에만 관여하므로 굳이 싶었다.. (프리팹이 더 다양했으면 처음부터 Manager로 올렸을거다) 그래서 최대한 지금 상태에서 생각할 수 있는 방법을 적용하려고 머리를 굴렸다. 유니티 함수의 생명주기를 다 고려해보다가 죽은 몬스터의 인덱스를 찾는건 Update()가 가장 적절하다고 생각했고, 리스폰해주는 함수의 위치를 생각하는건 꽤 어려웠다.. 이 참에 생명 주기 함수를 모두 복습했고, 코루틴도 복습했지만 적절한 위치가 없었고, 코루틴은 메모리 낭비가 큰 것 같아 InvokeReapeating을 사용.. 2023. 8. 15.
윈도우 프로그램 분석 1. WinMain 함수 윈도우 응용 프로그램의 시작 진입점을 나타내는 함수 윈도우 응용 프로그램이 실행되면 윈도우 운영체제는 이 함수를 실행하여 응용 프로그램을 시작 이 함수가 종료(반환)되면 응용 프로그램이 종료됨 일반적인 윈도우 응용 프로그램이 되려면 이 함수는 다음과 같은 기본적인 일을 처리해야 함 윈도우 클래스를 시스템에 등록 (Register Window Class) 응용 프로그램 초기화 및 주 윈도우 생성 메시지 루프 2. 윈도우 프로시져 윈도우 클래스를 등록할 때 설정한 윈도우 프로시져 함수 주 윈도우가 처리해야 하는 윈도우 메시지가 주 윈도우에게 전달될 때 호출되는 메시지 처리 함수 메시지 루프에서 DispatchMessage() 윈도우 API 함수를 호출하면 WindProc()함수가 실.. 2023. 8. 3.
DirectX12 - Project Setting 응용 프로그램 마법사가 자동으로 생성한 소스 파일 project명.h project명.cpp framework.h: 표준 시스템 포함 파일 또는 프로젝트를 위한 특정 포함 파일들을 포함하는 파일 Resource.h: 윈도우의 리소스(메뉴, 대화상자 등)의 ID를 정의하는 헤더 파일 targetver.h: 응용프로그램의 플랫폼을 정의하는 헤더 파일 1) framework.h의 파일명을 "stdafx.h"로 변경 : 프로그램에서 사용하는 주요 헤더 파일들을 포함, 나중에 이 파일에 Direct3D 12의 헤더 파일을 추가할 것 2) stdafx.cpp 파일 추가 후 헤더 include 3) 4) 프로젝트명.cpp 파일에 선언된 헤더 이름을 바꿔주고 빌드하면 설정 끝! 2023. 8. 3.
게임 서버 - 데이터베이스 기초 각 플레이어의 로컬 컴퓨터에 플레이어 정보를 저장하면? 플레이어가 자리를 옮겼을 때 자기가 플레이하던 정보를 이어서 할 수 없음 플레이어가 해킹을 할 줄 안다면, 자기가 컴퓨터에 저장된 플레이 정보를 조작할 수 있음 플레이어 정보를 서버에 저장하는 방법: 파일과 데이터 베이스 상용으로 서비스되는 게임들은 대부분 플레이어 정보를 데이터베이스에 저장함 파일 vs 데이터베이스 데이터베이스는 구체적인 상황에서도 빠르고 다각적으로 데이터 검색할 수 있음 데이터베이스 구성 데이터베이스에서 다루는 데이터는 표 형태의 집합 데이터베이스 인스턴스: 테이블의 집합으로 데이터베이스가 다루는 가장 큰 단위의 데이터 집합 데이터베이스에서는 행 단위로 데이터를 넣거나 뺄 수 있으며 이 행을 레코드라 함 레코드 안에는 표의 열이 .. 2023. 8. 1.
게임 네트워크 엔진 프라우드넷의 네트워크 모듈 1. NetServer 클래스: 게임 서버의 메인 모듈 클라이언트의 연결을 받으며, 클라이언트와 메시지를 주고받는 역할을 함 각 클라이언트의 네트워크 상황 등을 열람할 수 있음 2. NetClient 클래스: 게임 클라이언트에서 네트워크 모듈 서버로 연결을 맺은 후 메시지 주고받기를 수행할 수 있음 다른 클라이언트와 P2P 통신도 가능 NetServer 인스턴스를 생성하고 NetServer가 클라이언트 접속을 받으려면 다음 작업이 필요 CNetServer.Create()로 CNetServer 인스턴스를 생성 CNetServer.Start()로 서버가 클라이언트 접속을 받을 수 있게 함 Start()에 들어가는 필수 매개변수는 프로토콜 버전과 리스닝 포트 번호로, 프로토콜 버전은.. 2023. 7. 31.
두렵지만 매력적인 2021년 7월에 읽었던 책인데, 내 대학생활에 꽤나 큰 영향을 준 책이라 꼭 남겨 놓고 싶다. 2021년이면 내가 1학년이었다. 원하지 않은 전공을 선택하게 되어 진로 고민을 크게 하고 있었다. 자퇴하고 부모님과 오빠 따라 경제학과를 갈까 아니면 예전 꿈 찾아 화학공학과를 갈까 하고 있었을 때다. 이 책은 VR의 활용 사례에 관한 책이다. 책을 읽고 마인드 맵으로 정리해놨던 걸 지금 다시 찾아봤다. 다양한 분야에 활용할 수 있고, 이미 구현이 된 것들도 정말 많다. 책을 읽자마자 VR이라는 키워드로 논문을 뒤져봤었다. 교육, 시뮬레이터, 엔터테인먼트 등등 다양한 분야에서의 연구가 진행됐다. 이렇게 융합적으로 다양하게 활용될 수 있다니, 갑자기 흥미가 생겼다. 창의적인 아이디어로 새로운 걸 만들어내고 싶.. 2023. 7. 31.