7. ABALONE
"아 발 론" 이라는 보드 게임을 2D로 개발, 일반적인 온라인
게임과 같이 대전모드를 제공하여 멀티플레이가 가능한 보
드 게임을 제작하였습니다. 프로젝트를 단순한 프로젝트로
끝내는 것이 아니라, SNS(Social Network Service) 열풍이
전세계를 강타하고 있는 추세에 맞춰 접근이 쉽고 활용 능력
이 뛰어난 Facebook을 이용해, SNG(SNS를 기반으로 하는
소셜 네트워크 게임)라는 장르로 “아발론”이라는 보드게임
을 2D로 개발하였습니다.
(1) 프로젝트 Abalone이란?
8. ABALONE
IDE
Eclipse
: 전반적인 프로그램 소스코드 작성에 사용
Netbeans
: UI 제작부분에서 사용
라이브러리
restFB, mysql-jdbc-connector, Jackson-JSON,
DBMS
Mysql 5.16
Back-end
JSP(Apache 2.1 + Tomcat 7.0 with Servlet)
Tool
SVN (소스코드관리도구)
: 소스코드 형상관리에 사용
Photoshop
:UI Design 용으로 사용.
(2) 프로젝트 개발에 사용된 IDE,
라이브러리(lib),Tool
9. ABALONE
① Facebook과의 연동
이번 프로젝트의 가장 큰 특징은 소셜 네트워크 서비스인 페이
스북을 JSP를 통해 연동하고, restFB라는 라이브러리를 이용하
여 페이스북의 다양한 API를 사용할 수 있도록 하였습니다.
restfb 라이브러리를 이용하여 페이스북에서 친구목록, 담벼락
포스팅, 내 정보 등을 쉽게 가져올 수 있도록 하였습니다.
프로젝트 시연에서 게임 승패에 따라 페이스북 담벼락에 기록
됨을 보실 수 있습니다.
(3) 프로젝트 특징
Web brawser
restFB(lib)
FacebookAvalone client
10. ABALONE
Client1
Client2
Abalone
Server
(Thread) Head:
Body:
② 서버 클라이언트
Avalon Server에 사용자1이 로그인을 하면 Soket을 오픈해
줍니다. 사용자2도 Avalon Server에 로그인을 하면 Soket
을 오픈해줍니다. Server에서는 계속 Thread를 진행하여
사용자간 연결을 해주도록 하였습니다.
Abalone
Server
switch(head)
Case CHAT
Head:
Body
Head:
Body:
packet
packet
12. ABALONE
RoomFrame
CirclePanel
④게임부분
RoomFrame부분에 게임을 할 수 있는 보드판을 이중Array
List로 구현하고, CirclePanel에 돌의 위치를 Array List로
좌표화 하여, 마우스 클릭하는 위치에 따라서 함수를 통해
돌의 움직임을 제어합니다.
옮기고 싶은 자신의 돌을 클릭하면 돌의 테두리 색이 파란색
으로 바뀌며, 갈 수 있는 방향의 테두리가 파란색으로 바뀝
니다. 옮길 수 있는 돌은 최대2개이며 테두리가 파란색 인 칸
을 택하게 되면 돌들이 옮겨집니다.
중요하게 쓰이는 함수:
changeColor(int i, int j)
moveStone(int i, int j)
OffBStone(int [][] locationOfBStone)
printMoveStone(int i,int j)
setPossibleMove(int i, int j)
unSetPossibleMove()