개인의 데이터를 저장하고, 이것에 대해 메시지를 어떤 순서로 주고받아야 게임처럼 될지 생각해보세요.
개인의 데이터 저장에는 자료구조 공부가 필요하며, STL공부도 병행하면 되구요
메시지를 주고받아서 실제 게임처럼 보이게 만드는데는 정말 그냥 처음부터 끝까지 생각을 열심히 하면 됩니다.
로직의 영역은 답이 없죠. 몇몇 패턴화된 경우에 따른 힌트는 있습니다만...
2005.11.17 00:16:17 (*.235.122.34)
Excelsis
음 그러고보니 한가지 힌트가 될만한건 있군요
메시지간 전송에서 중요한 건 '어떠한 상황에서 어떠한 대답은 절대적으로 어떤 의미를 가진다' 라는것이 명확해야 한다는 것입니다.
이게 대략 FSM(유한상태머신)의 약간 애매상스한 설명이 될 수 있는것같은데요,
어쨌든간에 클라이언트든 서버든 '요 문장이 날라왔는데 이걸 내가 어떻게 해석해야되는거냐-_-' 라고 고민하는 상황이 오면 절 대 로 안됩니다.
2005.11.17 08:33:21 (*.110.242.212)
송군
흠... 처음부터 끝까지 열심히 생각이라; 어렵네요;;
2005.11.17 09:11:37 (*.107.113.162)
안군
1. 일단 제일먼저 고민할점은, 게임 내에 널부러진 수없이 많은 리소스들을 어떻게 체계적으로 관리할까? 하는 겁니다.
유저들과 NPC, 아이템, 맵 오브젝트, 기타등등... 이 서로서로 상호작용을 하고 있죠? 이걸 체계화시키는게 우선인거죠.
아.... 만약에 캐쥬얼게임을 만드실거면 약간 경우는 다르겠지만, 대체적으로 비슷하다고 보시면 됩니다.
2. 그리고 나서, 이런 리소스들의 생성, 삭제, 이동을 각각의 클라이언트간에 어떻게 동기화를 맞출 수 있을까? 하는데 초점을 맞춥니다.
완벽한 동기화는 불가능하지만, 최대한 클라이언트끼리는 똑같은 게임 환경에서 게임하고 있다고 느낄 수 있게 하는게 중점인거죠.
3. 여기까지 완료됐다면, 이제 퍼포먼스 최적화의 길을 가야 합니다. 어떻게 하면 최소한의 메모리 재할당, 스트링 비교의 최소화를 이룰 수 있을지.
어떻게 하면 최소한의 IO로 효과를 볼 수 있을지, DB 최적화는 어찌 해야할지.. 등등에 관심을 기울여야죠.
4. 1,2,3의 내용을 모두 만족시키는 클라이언트-서버 가 만들어졌다면, 이제 시스템을 하나씩 붙이는거죠. 스크립트도 붙여보고, 데이터 주도형 시스템도 만들어보고, 전투시스템, 성장시스템, 맵 시스템, 스킬 시스템, 커뮤니티 시스템, 퀘스트 시스템.... 아... 할 거 많네요~ ^^*
개인의 데이터 저장에는 자료구조 공부가 필요하며, STL공부도 병행하면 되구요
메시지를 주고받아서 실제 게임처럼 보이게 만드는데는 정말 그냥 처음부터 끝까지 생각을 열심히 하면 됩니다.
로직의 영역은 답이 없죠. 몇몇 패턴화된 경우에 따른 힌트는 있습니다만...