Serializable 클래스를 재활용하는 방법에 대한 예제입니다.

원래 PlayerGameData 의 userdata 멤버가 Serializable 타입으로 구성되어 있습니다.

이 예제는 userdata 멤버를, 자신이 직접 만든 MyCard 라는 클래스로 교체하여
서버 및 클라이언트에서 MyCard 클래스를 재활용하는 방법을 보여줍니다.

이는 단순히 MyCard 클래스를 재활용하는 것이 아닌,
(1) 서버에 데이터를 저장하고
(2) 서버와 클라이언트 사이에서 데이터를 주고 받을 수 있도록 하였고
이 작업을 아주 단순하게 몇 줄의 코드만으로 해결 가능하도록 했습니다.


이 예제의 동작 과정은 다음과 같습니다.

1. 클라이언트가 서버에 접속한다.
2. 서버에서 접속한 클라이언트의 PlayGameData(MyCard 데이터 포함) 를 로딩한다.
3. 로딩된 MyCard 데이터를 클라이언트에 보낸다.
4. 서버에서 수신된 MyCard 데이터를 화면에 보여준다.
5. <카드섞기> 버튼을 클릭하여 자신의 MyCard 데이터를 임의로 바꾼다.
6. 클라이언트가 접속을 끊으면, 현재의 MyCard 데이터를 저장한다.


이 예제를 작성하는 시점에서 Serializable 은
자신의 멤버 데이터 변수들을 문자열로 자동으로 변환해주는 막강한 기능을 제공합니다.

그러나, 자동으로 변환된 이 문자열은 크기가 큽니다.
게임오븐에서 제한하는 저장소 데이터 크기(4kb)와 네트워크 트래픽(200kb)을 고려한다면
Serializable 클래스는 신중히 사용해야 할 것입니다.

따라서, 기획하고자 하는 게임의 데이터 크기가 크지 않은 경우에.
간단히 게임을 만들고자 할 때는 활용 범위가 클 것이라 믿습니다.


다른곳: http://cms.hangame.com/post2/812/1916355

저작자 표시
신고

티스토리 툴바