오늘은 선수단 UI 관련 작업을 시작했는데 선수 생성쪽 작업을 하다보니 데이터 구조가 점점 복잡해져서 이 쪽 개선 작업을 한 번 진행해야겠다는 생각이 들었다. sqlite를 쓸까 고민해봤는데 여러가지로 불편한 부분이 많았고 관련해서 작업해야할 양도 많아서 sqlite를 쓰는 건 보류. 스키마를 고민해봤는데 sqlite를 썼을 때 필요한 작업 시간이나 도입한 이후에 편의성 등을 생각해봤을 때 득보다 실이 많다고 판단했다. 뒤편에서 데이터를 저장하고 가져오는 과정이 실제로 어떻게 동작하느냐와 실제로 데이터를 불러와서 인게임에서 사용하는 인터페이스는 서로 레이어가 다르다. 지금 개발하고 있는 게임에 적합한(편리하고 생산성이 보장되는) 앞단의 인터페이스(프론트엔드)를 먼저 구성하고 실제로 그 인터페이스에 맞춰 ..

일정 생성 오늘은 경기 일정 생성 및 해당 일정들 확인하는 뷰를 만들었다. 일정을 만들려고 하다보니 게임 내에서 경기 일정이 어떻게 흘러갈 것인가, 대회는 무엇이 있고 진출자들은 어떻게 결정되는가 등에 대한 규칙에 구체화가 필요해서 해당 내용 기획도 같이 진행했다. 경기 생성 알고리즘은 표준적인 라운드 로빈 알고리즘(https://en.wikipedia.org/wiki/Round-robin_tournament)을 이용했다. 경기는 리그당 팀이 총 20개, 같은 팀과 4번씩 경기해서 1년에 총 76경기를 진행하는 형태로 생각하고 있다. 여기에 리그 같은 경우 2월에서 6월까지 진행(전반기) 후 7,8월은 이적 기간, 다시 9월부터 11월까지 진행(후반기) 후 12월,1월은 이적 기간으로 진행되는 흐름. 그..

Save & Load우선 게임 정보를 저장하고 불러오는 기능을 구현했다. 게임 데이터는 전부 GameData 클래스에 모아서 저장하고, 이걸 그냥 Binary Formatter 써서 파일로 저장하고 불러오게끔 만들었다. 게임 데이터 클래스 너무 복잡하지 않게 자료형 잘 관리하는 것만 좀 신경쓰면 될 듯. 패치 등으로 데이터 포맷 변동 등이 있을 때 그거 잘 처리하게 해주기 위한 작업이 좀 필요할 것도 같긴 한데 이것도 당장 중요한 것은 아니라 우선순위를 낮춰서 나중에 작업하기로 했다.탭 / 수신함 UI 오늘은 메일 형태로 여러 가지 정보를 수신 및 확인하는 UI를 만들었다. 만들면서 새 게임 시작할 때 각 리그 및 리그에 속하는 팀들을 생성하는 등의 기능도 같이 개발했다. 그래서 이런 식으로 인 게임에 ..

오늘은 새 게임 씬을 작업했다. 지금 만드는 게임이 기획을 간단하게 정리하면 e-sports 팀을 FM 처럼 관리하는 게임이라 맨 처음에 팀 및 감독(자기 자신)의 프로필을 설정해야 한다. 근데 게임의 목표중 하나가 조이패드로만 플레이해도 전혀 플레이에 지장이 없을 것이어서, 이 부분에서 좀 고생을 많이 했다. 유니티 기본 UI로 필요한 기능들을 다 집어넣기가 쉽지 않았고 특히 텍스트 입력이 가장 어려운 부분이었다. 나중에 가상 키보드를 자체적으로 구현해서 넣을 생각인데 일단 오늘 그걸 다 구현하기엔 양도 너무 많고 당장 중요한 이슈는 아닌 듯 해서 살짝 뒤로 미뤘다. 다만 InputField가 입력을 완료하는 걸 코드 상에서 Return 키 코드만 반응하게 되어 있어(IME 조합 모드 때문인듯. 이게 ..

퇴사하고 1월 말까지 푹 쉰 뒤 오늘부터 본격적으로 개발을 시작했다. 오늘은 일단 마일스톤 설정 & 기획 구체화 작업하는데 시간을 거의 다 써서 만든 건 별로 없긴 하다. 그래도 이제 풀 타임으로 개발하는 만큼 매일 만든 부분 조금이라도 작성을 해 둘 예정. Localization 준비 steam에 출시하는게 목표고 다양한 언어를 지원해야 하는 만큼 오늘은 미리미리 UI 등에서 번역 대응 작업을 쉽게 할 수 있게끔 준비 작업을 해뒀다. 어떻게 하는 게 좋을까 이것저것 찾아보다가 그냥 직접 구현하는게 나을 것 같아서 적당히 직접 구현했다. 대충 이런식으로 localization할 텍스트에 대응되는 키값을 그냥 박아넣으면 실행했을 때 자동으로 현재 세팅된 언어에 맞는 텍스트가 들어가게끔 했다. 이 텍스트에서..