경영 시뮬레이션 게임 만드는게 꿈인 문과 비전공이에요


이런놈도 개발한다고 설치는구나 하고 봐주셨으면 함




개발목표는 20세기 초 가상의 동구권국가 경제부장관으로서 근무하는 시뮬레이션 게임임


공산주의, 계획(통제)경제 체제이기 때문에 플레이어는 정말 많은걸 통제할 수 있지만


역설적으로 꼬리에 꼬리를 무는 경제 시뮬레이팅으로 비효율적인 통제경제의 한계를 플레이어가 느끼도록 하고 싶음



7cf3c028e2f206a26d81f6e74589706a



먼저 시작화면을 만들려고 했음


지난 세월동안 UI만 만들다가 포기해버린 게임이 한두개가 아니라서


이번 게임의 목표는 최소 프로토타입까진 UI는 최대한 간결하게


시스템을 구현하는데 집중하자는 것






7ff3c028e2f206a26d81f6e441887d64




프로토타입의 UI는 우선 사무실, 배급, 정보만 구현하는게 목표임


사무실은 경제부장관으로서 받는 여러 공문, 혹은 상관에게 받는 임무하달 등을 표시하는 패널


배급은 각종 물자의 공급과 수요, 가격을 보고 컨트롤할 수 있는 패널


정보는 각종 국가정보와 통계를 표시하는 패널




이런 초록빛 나는 UI의 영감은 흔하디 흔한 계산기 디스플레이


페이퍼플리즈 같은 분위기에 20세기 시대배경이 목표라 왠지 모르겠지만 그렇게 해봣는데 별로인듯





7ef3c028e2f206a26d81f6ed408877



맨 왼쪽 패널의 버튼들을 누르면 해당 패널이 나타나는 기능을 넣고싶었는데


하나를 클릭하면 나머지 패널들을 다 비활성화 시키려니 너무 귀찮을거같아서


하이어라키상 맨 밑에있는게 화면 맨 앞에 나타나는걸 착안해


패널들을 모두 활성화시키고 다만 버튼을 클릭하면 맨 밑으로 가도록 햇음




79f3d72fe3f206a26d81f6e44481756ef5




야호 정상작동





78f3c028e2f206a26d81f6e647857d68



그 다음엔 데이터베이스인데




국가의 경제를 경영하는 게임이다보니 시민 한명한명의 데이터를 저장하는 DB를 뭐로할지 많이 고민햇슴




양도 많고 연산량도 아주 많기 때문에 속도도 중요하고


저같은 코딩알못도 쓰기 쉬워야 했음


JSON? CSV? MySQL? 저에겐 너무 생소한것들이 많아 헷갈렸지만



어느 인디게임개발갤 글을 보고 BGDataBase(이하 BGDB)를 써보기로 결정



BGDB에선 표 전체를 헷갈리는데 Table이라고도 하고, MetaEntity라고 하는거같기도하고, Row라고 하는거 같기도 함


그리고 첫째행의 메뉴들을 필드(Field), 그 밑으로 각 항목들을 Entity 라고 부름. 이런 용어 자체가 낯설어서 어려웠음.





7bf3c028e2f206a26d81f6e744847469


배움삼아 인구를 랜덤으로 10000명 자동생성하는 버튼을 만들어봄.





7af3d72fe3f206a26d81f6e44583736823




PersonGenerate 버튼을 누르면 만명이 자동 생성됨


만명이나 되는데도 끊김이 거의 없어서 조앗다




74f3c028e2f206a26d81f6ec458471


그 다음 이제 특정조건에 맞는 시민을 출력하는 버튼을 또 배움삼아 만들어보려는데 오류가 남



75f3c028e2f206a26d81f6e44e84776b


이새끼가 문제라는데.....


74f3c028e2f206a26d81f6ec458471


유니티 가이드에서 스크립트 시리얼라이제이션을 찾아보라고?



7ced9e36ebd518986abce895408677650a



멍게소리지........





7cec9e36ebd518986abce8954583766508



잘 찾아보니까 Start 함수에서 호출하면 된다길래 해봄



 


7cef9e21ecd418986abce8954485726446


딸깍





7cee9e21ecd418986abce8954e81706fc5



음~ 정상작동됨. 생성한 시민중에 나이 95 이상인 시민의 이름을 출력해달라고 했더니 잘 나온다





다음엔 본격적으로 시민DB를 생성할 수 있는 기능을 만들어보고


그걸 배급창과 정보창에서 표현할 수 있게 해보겠음



나름 기획한거는 있는데 여기에 다 올릴려니 너무 길어지고 지루할거같아서 그냥 패스함... 쓰다보면 자연스레 나오겠지


계속 쓸지는 모르겠지만