목록프로젝트/210823~210910_개인프로젝트 (18)
강께르의 개발일지
- 마지막 WINAPI 2D C++ 프로젝트를 마쳤다. - 3주라는 시간을 통해 새롭게 시도한 장르인 턴제 전략 게임을 만들게 됐다. - 일단 발표를 마친 오늘, 3주라는 시간을 돌아보면 3주는 게임을 만들기에 시간이 모자르다는 생각이 들었다. - 8월24일에 본격적인 프로그래밍이 시작된 그날부터 30일까지 맵툴 기능을 하나를 구현하기 위해 많은 시간이 소비된 것도 있고, 구조적인 문제를 다시 생각해보고 구현하려고 했던 것도 있어서 시간이라는 면에서 부족하다는 느낌을 항상 느꼈다. - 물론 목적한 기능을 대부분 구현했고 시작과 끝이 있는 하나의 게임이라고 부를 수 있는 것을 완성했다. - 이보다 앞서 진행한 두 프로젝트는 미니게임 형식의 보스전 하나만 있거나, 시스템은 구현되어있지만 컨텐츠면에서 빈약하다..
개발일지_210908_17일차 ● 오늘 할 일 메인화면 씬 구현 맵툴에 한 타일 속성으로 올 세팅하는 기능을 추가 도움말 씬 추가 사운드 추가 ※ 후순위 메시지 큐를 이용한 게임 구조 재설계 히스토리를 이용한 리플레이 기능 ● 오늘 한 일 1. 승리 패배 분기점을 통한 결과창 출력, 그 후 다른 씬으로 넘어가기 2. 타이틀, 메인화면 씬 구현 3. 메인메뉴의 각 메뉴(게임, 맵툴, 나가기 버튼)을 이용한 씬 이동 구현 4. 게임, 맵툴 씬에서 메인메뉴 씬으로의 이동 구현 5. 사운드 추가 완료 (게임 중간에 배경음을 제외한 사운드 실행이 안되는 문제) 6. 맵툴 채우기 기능 추가 7. 공장 생산 시 유닛 정보 출력 추가 8. 메인메뉴에 도움말 추가 9. 버튼 도움말 추가 10. 맵툴 생성 맵을 선택할 수..
개발일지_210907_16일차 ● 오늘 할 일 전투 시스템 세부 조정 -> 유닛 소멸 시 이펙트 재생 -> 유닛 탄환이 0이면 공격 기능이 수행되지 않도록 APC 타입 유닛의 보급 기능 구현 -> 현재 유닛이 apc일 때 그 유닛 4방향의 아군 유닛에게 만들어둔 supply함수를 실행하게 하자. 승리, 패배 분기점 구현 -> 빌딩 클래스를 관리하는 벡테에서 각 플레이어의 HQ 속성 빌딩이 점령되어 소유권이 넘어 간 경우, or 2턴 이후 유닛 벡터에 size가 0인 겨우 메인화면 씬, 맵툴 씬, 메인 게임 씬 구분하여 씬 기능 구현 -> 맵툴에 전체 타일 올 세팅하는 기능 추가 사운드 추가 ※ 후순위 메시지 큐를 이용한 게임 구조 재설계 히스토리를 이용한 리플레이 기능 지휘관 캐릭터 ● 오늘 한 일 1...
개발일지_210906_15일차 ● 오늘 할 일 전투 시스템 구현 -> 액션 유아이의 상호작용을 통해 공격 액션을 하게되면 전투 시스템을 시작하게 한다. -> 해당 유닛을 기준으로 그 유닛의 사정거리 값만큼 타일을 4방향으로 검사하자. -> 사정거리가 2~3되는 유닛은 그거에 맞게 검사 사이즈를 늘려야한다. 그래서 사정거리값만큼 검사 -> 여기까지는 불확실한 것인데 검사해서 상대 유닛이 있다면? vector에 추가해놓고 쌓아뒀다가 어느 유닛을 공격할지 선택할 수 있게 하면 되지 않을까? -> 전투 데미지 계산 공식을 생각해보자 고려할 대상은? -> 무기 클래스의 타입과 적 유닛의 타입 간의 상성(0.5 1.0 1.5) + 적 유닛의 타일 타입(방어도에 따른 계산 필요) APC 타입 유닛의 보급 기능 구현 ..
개발일지_210905_14일차 ● 주말 중에 할 일 점령 시스템 구현 -> 빌딩 클래스에 점령포인트라는 int형 변수를 만든다. -> infantry이나 mech 유닛만이 점령 기능을 수행할 수 있다. -> 점령 기능이 수행되면 유닛의 체력만큼 점령포인트를 차감한다. -> 점령포인트가 0이 되면 해당 유닛의 컨트롤을 갖고 있는 플레이어가 그 빌딩을 갖는다. 전투 시스템 구현 -> 액션 유아이의 상호작용을 통해 공격 액션을 하게되면 전투 시스템을 시작하게 한다. -> 해당 유닛을 기준으로 그 유닛의 사정거리 값만큼 타일을 4방향으로 검사하자. -> 사정거리가 2~3되는 유닛은 그거에 맞게 검사 사이즈를 늘려야한다. 그래서 사정거리값만큼 검사 -> 여기까지는 불확실한 것인데 검사해서 상대 유닛이 있다면? v..
개발일지_210904_13일차 ● 주말 중에 할 일 점령 시스템 구현 -> 빌딩 클래스에 점령포인트라는 int형 변수를 만든다. -> infantry이나 mech 유닛만이 점령 기능을 수행할 수 있다. -> 점령 기능이 수행되면 유닛의 체력만큼 점령포인트를 차감한다. -> 점령포인트가 0이 되면 해당 유닛의 컨트롤을 갖고 있는 플레이어가 그 빌딩을 갖는다. 액션 유아이 추가 -> 목적 : 유닛의 행동에 대한 기능을 가시적으로 UI로 제공한다. -> 유닛을 선택하면 유닛이 이동할 수 있는 타일을 보여주고 이동타일을 선택하면 이동을 수행한다. -> 그 이후 액션 유아이를 제공하여 어떤 행동을 더 할지 선택할 수 있게 제공한다. -> 유닛이 할 수 있는 액션들이 뭐가 있을까? -> 모든 유닛 : 공격, 대기 ..
개발일지_210903_12일차 ● 오늘 하기로 한 일 생산 시스템 완성 -> 카메라에 영향을 받지 않는 ui 렌더 -> 크기 및 위치 조정 -> 상호작용을 통한 유닛 클래스 객체 생성이 가능하게 하는 것이 목표 세부적인 턴제, 플레이어, 생산 완성할 것 -> 플레이어의 돈은 턴마다 보유한 건물만큼 들어온다. 수입 기능 구현 -> 수입 기능 활성화되어 돈이라는 데이터가 있다면 돈을 소비하여 생산을 하는 기능을 구현 이동과 관련하여 정리할 것들 -> 이미 유닛이 있는 타일은 이동범위 제외되게 하기 -> 유닛의 연료 값에 따라 이동범위가 변동되게 수정 -> 에이스타 및 유닛들은 아직 게임 매니저의 주소값을 갖지 않고 서브 시스템인 맵클래스의 주소값을 가진다. 수정 요망. 유닛은 매니저를 통해 얻어도 되고.....
개발일지_210902_11일차 ● 오늘 하기로 한 일 - 생산 시스템 -> 공장 건물을 누르면 생산 UI가 나오도록 -> UI 클래스를 구현하도록 하자 이미 유닛이 있는 타일은 이동범위 제외되게 하기 유닛의 연료 값에 따라 이동범위가 변동되게 수정 ● 오늘 한 일 1. 게임 매니저의 서브 시스템에 게임 매니저 주소값을 가지게 만듦. -> 이슈 : 클래스의 생성자에서 자기 멤버변수에게 자신의 주소를 넘겨주는 것은 불가능하다. 아마 생성자를 모두 수행해야 주소값을 할당하는 것 같다. init으로 링크를 걸어보자. 2. 게임 매니저 메소드만으로 서로 서브 시스템의 값을 수정하는 기능을 도입 3. 플레이어의 모든 버튼 기능을 게임 매니저 메소드로 변경 4. 맵 클래스가 가지는 타일 클래스의 데이터 기반으로 빌딩..
개발일지_210901_10일차 ● 오늘 한 일 테스트 씬을 버리고 퍼사드 패턴을 이용한 게임 매니저 클래스를 구현 -> 게임과 관련하여 굴리는 것을 서브시스템으로 하여 멤버 변수로 만들고 그 내용을 이 매니저에서 굴리고 서로 정보를 교환한다. 플레이어 클래스 구현 및 게임 매니저 클래스에 플레이어 클래스 고정 배열 추가(1p, 2p) 유닛 클래스에 무기 클래스 고정 배열 추가(무기1, 무기2) -> 나중에 전투 시스템 구현 시 무기 클래스의 멤버변수와 유닛 클래스의 멤버변수를 활용해 데미지 계산식을 만들 예정 플레이어에 따라 유닛 이미지를 다르게 렌더 구현 ( 1p – RED, 2p – BLUE ) 턴제 개념 구현 -> 게임 매니저 클래스에서 특정 버튼을 누르면 현재 업데이트를 수행하는 플레이어를 고정 ..