질문 1. 우선은 그냥 '게임어플'에 관한 질문인데요.
저는 surfaceView를 사용하고 onDraw에서 여러 연산을 전부 처리하고 그에 따른 화면을 draw해주고 있습니다.
그런데 발열이 심하더군요.. 만약 최적화 문제가 있다면 이부분밖에 없는데..
발열이나 연산량이 적은 다른 방법이 있나요?
질문 2. 온라인 게임을 만들고 싶은데요.
일반 게임은 이제 어느정도 숙달된 것 같아서 온라인게임에 도전해 보려고 하는데,
전 월드랭킹을 php로 SQLite DB를 이용해서 하거든요.
그런방식으로 DB로 방에 대한 정보를 만들어서 두명이 접속한뒤 DB를 이용해서 하게 해보려고 도전중인데요.
그렇게 하면 서로 자신의 정보를 올리고 상대가 올린 정보를 주기적으로 받아와야 하게 됩니다. (예를들면 카카오톡 처럼요)
이 방식은 소셜 네트워크같은 형식에는 어느정도 가능하다고 보는데 당연히 실시간으로 밀리세컨드 단위 정보를 주고 받는
게임엔 무리가 있다고 봅니다.
내가 최신 정보를 올렸을때 그 순간 상대도 그 정보를 받아볼 수 있어야 하는데 바로 볼수가 없고 상대가 정보를 요청해야만 볼 수 있잖아요.
물론 1초마다 한번씩 정보를 요청하면 가능한 일이지만 무리가 갈 것 같고 통신상태에 따라 또 다르니까요..
예를들면 바야바님의 온라인 알까기 같은 것은 어떻게 정보교류를 하는지 궁금합니다.
농담이고요. 우선 온라인 게임은 서버가 필수이겠죠. 자바로 만들수도 있고, VIsualC를 이용할 수도 있습니다. 저 같은 경우는 VC를 이용해서 만듭니다. 자바를 쓸줄 몰라서요. 기본적으로 서버와 통신하려면 TCP/IP 소켓 통신에 대해서 아셔야 합니다. 이게 서버 클라이언트의 기본이고요. 만약 빠른 액션을 요구하는 게임이라면 P2P 통신에 주로 쓰이는 UDP도 병행해서 쓰셔야 합니다. 사실 소켓 자체는 그닥 어려운게 아닙니다만, 서버에서 해줘야 할 예외 처리가 상당히 많습니다. 클라이언트로부터 오는 어떤 쓰레기 값도 처리할 수 있게끔 견고해야 합니다. 사실 네트워크에선 깨끗하게 모든 패킷이 오갈거 같지만 실제로는 안그렇습니다. 중간에 연결이 끊어지면 완성되지 않은 패킷이 오기도 하고, 어떤 일이든 생길 수 있는거죠. 거기에 해킹 공격까지 방어해야 하고요. 이런 것들은 온라인 게임을 개발하면서 노하우로 쌓이는 것들이라 말로 설명드리기가 정말 어렵습니다. 하지만 인터넷이나 책에 많은 자료들이 있으니 참고하시면서 차근차근 하시면 될겁니다.




비밀입니다.