머리로 아는 게임과, 만들어낼 때의 게임에는 차이가 많군요

페이지 정보

219 조회
5 댓글
1 추천

본문

손바닥 뒤집기 게임을 만드는 중입니다.

플레이어와 컴퓨터가 왔다갔다하도록 머리를 싸매면서 조금씩 나아가고 있습니다.


처음에는 플레이어 / 컴퓨터가 손 패를 낸 시각과, 타임아웃 되는 시각들을 전역 변수에 담아서,
현재 시각과의 차이를 이용해 판정을 하도록 개발했었는데요

일반적으로 게임에는 "일시정지" 같은 기능이 필요하다는걸 깨닫고 보니, 그 동안 진행했던 방식으로는 게임이 정상적으로 동작할 수 없다는걸 알았습니다. (일시정지 상태에서도 현실 시간은 흐르고 있다보니..)


문서를 확인해보니, 고도 엔진에서 제공하는 타이머를 사용하면 엔진의 일시정지/해제 여부와 동기화되는걸로 보여서 변경하는 중입니다.



처음에는 "손바닥 뒤집기" 게임이 "가위바위보"와 같이 심플한 게임이라고 생각했었는데, 승패를 판정하는 로직이 생각보다 복잡한거 같아요.

이 게임에서 승패가 결정되는 경우가 크게보면

1. 공격자가 패를 내지 않고, 방어자도 패를 내지 않는다.

2. 공격자가 패를 내지 않고, 방어자가 패를 낸다.

3. 공격자가 패를 내고, 방어자가 패를 내지 않는다(늦게 낸다).

4. 공격자가 패를 내고, 방어자가 제 때에 패를 낸다.

위의 4가지로 분류될 수 있는 것 같아요.


하지만 공격자가 낼 수 있는 패 중에, "페이크(움찔하기)" 패의 경우에 실제로는 패를 내지 않은 것으로 처리해야 하고

"한 손 들어서 상대방 손등 위에서 훑고 지나가기" 같은 패의 경우에는 방어자가 패를 내지 않아야 방어에 성공할 수 있는 경우도 있어서 뇌 용량에 한계를 느끼고 있습니다.



지금까지 진행된 상태는, 최소한 한 번은 티키타카가 이루어 지지만

공격에 성공하거나 방어에 성공했을 때 패널티 동작(상대방 손등 때리기)이 아직 없다보니

AI 턴일 때, AI가 딜레이 없이 공격을 연속해서 퍼붓는 중입니다.


언제쯤 PvP 단계까지 나갈 수 있을지.. ㅎㅎ

앞으로도 게임을 만들면서 스스로 동기부여도 할 겸, 진행되는 내용을 말씀드리도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.

댓글 5

에헤라디야님의 댓글

개인 프로젝트 하면서 이렇게 개발일지도 할겸 동기부여도 할겸해서 오늘 작업했던 내용, 고민했던 내용 적어서 남기는 것도 좋아보입니다. :) 저도 나중에 뭐 하나 혼자 만들때 이렇게 해 봐야 겠습니다.

DDLL님의 댓글의 댓글

좋게 봐주셔서 감사합니다. 혼자 진행할 때보다 심적으로 좋은 부분도 있고, 스스로 다짐하는 시간도 갖게 되는 것 같아요. 나중에 진행하실 때 공유해주시면 저도 응원을 전하겠습니다.

DDLL님의 댓글의 댓글

저는 작년에 처음 고도 엔진(3.5)을 사용해봤는데요, 공부하기 시작하고 얼마 있다가 4.0이 출시됐었습니다.
그런데 공식 문서에서 4.1 이후에 변경을 고려해보라고 하길래 3.5 버전을 계속 사용하다가, 올 1월에 다 뒤집어 엎고 4.2 버전으로 바꿔가는 중입니다.

3.x에서 4.x로 넘어가게 되면, 익숙했던 부분들의 변경이 많아서 익숙해지는데 시간이 꽤 걸리는것 같아요.
GUI 사용 방법이나 문법적인 큰 틀은 유사하지만, 노드가 변경됐거나(Tween 노드 사라짐) 디테일한 명령어(Tween.start()가 없어지고, Tween.play())가 변경되서 혼란스러운 부분이 있습니다.

4.x 버전은 개발 편의성이나 성능 면에서 개선된 부분들이 있어보여서, 처음 시작하신다면 4.2로 시작하는게 나중을 위해서 더 좋은 선택이 되지 않을까 싶습니다. (저는 아직까지 2D만 손대봐서 3D 쪽은 모르겠습니다)

제가 3.5버전에서 사용하던 플러그인들(GPGS, 인앱결제, Admob, Firebase, SQLite 등)도 대부분 4.2 버전에 맞춰서 나와있는 상태라 확장성도 괜찮은거 같고요.


다만, 저는 vscode로 코드 편집을 하면서, 코파일럿의 도움을 받고 있는데
아직까지 gpt가 4.x 버전의 gdscript는 완벽히 지원하지 않더라고요.
3.x 버전에 대해서는 어느정도 동작하는 코드를 작성해줬었는데, 4.x에서는... 이 부분은 좀 아쉽습니다.
이건 GPT-4에 물어봐도 동일하고요. 마이너한 언어라서 어쩔 수 없겠다 싶습니다.

아직까지는 공식 문서를 참고하고, 구글링을 하면서 개발해야 하는 툴인 것 같습니다.


제가 오픈소스 엔진들을 찾아보면서, Defold (King, 캔디크러시 사가 만든 회사꺼), GameMaker Studio 2 (스팀에서 세일할 때 구입),  Construct 3, RPG Maker, GDevelop 등을 살짝 사용해봤었습니다. (유니티는 사용 안해봤습니다)

그런데 Godot 엔진이 저한테는 가장 잘 맞았던거 같아요.

GUI 친화적인 엔진들은 커스터마이징 기능이 부족한 느낌이 많았고, 공식 문서를 구하기 어렵거나, 커뮤니티가 작아서 같은 고민을 갖는 사람을 찾기 어려운 경우가 있는 것 같았습니다.

프로그피쉬님의 댓글의 댓글

소식 감사합니다. 여전히 마이너 한가보군요. 이것저것 다 쓸줄 아는게 좋은건 맞는데 게임엔진은 특히 중복투자가 어렵긴하죠.
전체 139 / 1 페이지
전체 검색