project avalon

18
ABALONE ABALONE 보드게임 with FACEBOOK

Upload: ikwhan-chang

Post on 16-Jul-2015

52 views

Category:

Entertainment & Humor


1 download

TRANSCRIPT

ABALONE

ABALONE 보드게임 withFACEBOOK

INDEX

ABALONE

01 역할분담 & 회의일정

02 프로젝트 ABALONE 소개

03 ABALONE 보드게임방법

04 프로젝트 시연

05 질의응답

01 역할분담 & 회의일정

01

ABALONE

설계

ABALONE

02 프로젝트 ABALONE 소개

02

ABALONE

"아 발 론" 이라는 보드 게임을 2D로 개발, 일반적인 온라인게임과 같이 대전모드를 제공하여 멀티플레이가 가능한 보드 게임을 제작하였습니다. 프로젝트를 단순한 프로젝트로끝내는 것이 아니라, SNS(Social Network Service) 열풍이전세계를 강타하고 있는 추세에 맞춰 접근이 쉽고 활용 능력이 뛰어난 Facebook을 이용해, SNG(SNS를 기반으로 하는소셜 네트워크 게임)라는 장르로 “아발론”이라는 보드게임을 2D로 개발하였습니다.

(1) 프로젝트 Abalone이란?

ABALONE

IDEEclipse : 전반적인 프로그램 소스코드 작성에 사용Netbeans: UI 제작부분에서 사용

라이브러리restFB, mysql-jdbc-connector, Jackson-JSON,

DBMSMysql 5.16

Back-endJSP(Apache 2.1 + Tomcat 7.0 with Servlet)

ToolSVN (소스코드관리도구): 소스코드 형상관리에 사용

Photoshop:UI Design 용으로 사용.

(2) 프로젝트 개발에 사용된 IDE,라이브러리(lib),Tool

ABALONE

① Facebook과의 연동

이번 프로젝트의 가장 큰 특징은 소셜 네트워크 서비스인 페이스북을 JSP를 통해 연동하고, restFB라는 라이브러리를 이용하여 페이스북의 다양한 API를 사용할 수 있도록 하였습니다. restfb 라이브러리를 이용하여 페이스북에서 친구목록, 담벼락포스팅, 내 정보 등을 쉽게 가져올 수 있도록 하였습니다.프로젝트 시연에서 게임 승패에 따라 페이스북 담벼락에 기록됨을 보실 수 있습니다.

(3) 프로젝트 특징

Web brawser

restFB(lib)

FacebookAvalone client

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

ABALONE

Abalone Server

switch(head)

Case CHAT

Abalone Server

(Thread)

Client1

Head:

Body:

Head:

Body:

③ 채팅

Avalon Server에 사용자가 연결되면 head와 body를packet으로 묶어 보내주어 head부분에 action을 취해주면그에 따라서 Server에서 분기처리 하여 해당 클라이언트로packet을 다시보내주도록 하였습니다.Serializable 속성을 통해 Packet 클래스는 서버와 동기화시켰으며, 이 부분에서 실제 데이터 부분은 JSON객체로 송수신 하게 하였습니다.

packet

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()

03 ABALONE 보드게임방법

03

ABALONE

ABALONE

04 프로젝트 시연

04

05 질의응답

Thank you