최종 연구개발결과보고서






초고속정보통신망을 이용한 청소년 교육용

멀티유저 네트워크 게임

A Sdudy on the juvenile-educational multi-user network game using Information Highway.






1998. 7. 21












주관연구기관 테크노이천프로젝트(주)

정 보 통 신 부




제 출 문

정보통신부장관 귀하

본 보고서를 "초고속정보통신망을 이용한 청소년 교육용 멀티유저 네트워크 게임"의 최종 연구개발보고서로 제출합니다.

1998년 7월 21일

주관연구기관 : 테크노이천프로젝트(주)

연구 책임자 : 박 정 훈

참여 연구원 : 양 원 호

이 상

최 순 균

정 우 진

전 미 선


요 약 문

1. 제 목

초고속정보통신망을 이용한 청소년 교육용 멀티유저 네트워크 게임

2. 연구개발의 목적 및 중요성

1) 연구의 목적

본 연구는 초고속정보통신망 이용을 활성화하는 동시에 청소년의 역사·환경 교육에 도움을 주는 멀티유저(Multi-user) 네트워크 게임을 개발하는 것을 목표로 한다.

2) 연구의 중요성

다가오는 21세기 정보화 사회를 실현하는 사회 간접자본으로서 주목받고 있는 초고속정보통신망이 제대로 활용되기 위해서는 국민들이 생활 속에서 그 유용성을 느낄 수 있는 다양한 프로그램 개발이 요구된다. 특히 앞으로 국가의 미래를 짊어질 청소년들에게 초고속정보통신망은 새로운 삶의 기반임을 고려할 때 이들을 대상으로 한 프로그램의 개발은 매우 중요한 위치를 차지하고 있다. 본 연구과제는 청소년들이 가장 좋아하고 쉽게 적응하는 네트워크 게임을 매개로 청소년들이 초고속정보통신망에 대한 직접적인 관심과 체험을 유도하는 동시에 기존의 폭력성을 배제한 우화적이며 삶의 실재적인 문제들을 해결하는 교육적 내용의 게임을 제공함으로써 초고속 정보통신망 응용기술의 새로운 전기를 마련하고 있다.

3. 연구개발의 내용 및 범위

본 연구에서 수행한 연구 내용 및 범위는 다음과 같다.


4. 연구개발결과

1) 멀티미디어 정보 지원 멀티유저 네트워크 게임 서버 개발

기존 인터넷망과는 달리 초고속정보통신망은 다양한 멀티미디어 정보들의 운영과 교환이 이루어질 것으로 예상된다. 이에 본 연구에서는 멀티미디어 정보(화상, 소리 등)를 지원하며 서비스 이용자들이 네트워크 망을 통해 함께 즐기는 멀티유저 네트워크 게임 서버를 개발하였다. 또한 게임 서버 구현을 위해 게임 Library 제작 및 제작을 위한 툴을 개발하였으며, 게임 상에서 정보를 송수신하는 게임 프로토콜을 구현하였다.

2) 청소년 교육용 네트워크 게임 개발

본 연구의 목적인 청소년 교육을 위한 멀티유저 네트워크 게임을 개발하기 위해서는 기능적인 측면이외에도 내용 구성에 있어 기존 네트워크 게임과는 차별적인 시나리오 작성 및 컨텐츠를 요구한다. 본 연구에서는 환경 교육 및 역사 교육을 위해 '종묘 너구리'를 기본 주제로 설정하고 게임에서 요구하는 목표 또한 환경 살리기에 초점을 맞춘 게임 시나리오를 개발하였다. 또한 게임을 통한 교육적 효과를 더욱 더 높이기 위해 게임 이용자들을 위한 교육용 컨텐츠를 수집, 이를 기반으로 사이트를 시범적인 형태로 구현하였다.

5. 활용에 대한 건의

본 연구 과제인 초고속정보통신망을 이용한 청소년 교육용 멀티유저 네트워크 게임은 네트워크 게임 분야와 교육용 소프트웨어 시장에서 활용 될 수 있다. 또한 게임에 대한 청소년들의 호응을 바탕으로 캐릭터 산업, 영상 매체까지 진출 할 수 있을 것으로 기대된다.

·네트워크 게임 분야 : 본 연구 개발의 성과를 바탕으로 기술이전을 통해 다양한 멀티미디 어 네트워크 게임을 개발

·교육용 소프트웨어 분야 : 현재 시험적인 형태로 구현된 게임 컨텐츠를 추가 연구를 통해 보강하는 것을 통해 청소년의 학습효과를 높이는 다양한 교육용 게임 개발에 전기를 마련

6. 기 대 효 과

1) 기술적 측면

대부분의 멀티유저용 네트워크 게임은 소규모 동시 사용자에게 적합하게 설계된 순차적인 구조이며, 따라서 성능이나 모듈화 측면에서 대규모 서비스에 한계를 가진다. 또한 멀티미디어 정보를 지원하는데 한계를 가지고 있는 것이 현실이다. 본 연구 과제는 다가올 21세기 초고속정보통신망에서 운영될 멀티미디어 정보 지원 및 1000명 이상 수용하는 대규모 네트워크 게임을 위한 게임 서버 개발 기술을 확보했으며, 이를 기반으로 다양한 멀티유저 네트워크 게임이 개발 될 것으로 기대된다.

2) 경제, 산업적 측면

외국 제품이 90%이상을 점유하고 있는 게임시장에서 미약하나마 한국이 경쟁력을 확보하고 있는 분야가 바로 네트워크 게임 분야이다. 여타 게임과는 달리 그래픽 요소보다는 게임 이용자 상호간에 형성되는 사회적제 관계가 강조되기 때문이다. 그럼에도 불구하고 네트워크 게임이 수익을 창출하기 위해서는 멀티미디어 정보에 대한 게임 이용자들의 욕구를 수렴하고 대용량 게임 서비스를 제공해야하는 문제를 가지고 있었다. 본 연구 개발은 이러한 문제의 해결을 통해 게임산업이 다양한 네트워크 게임 개발을 통한 수출을 기대할 수 있다.

3) 교육적 측면

컴퓨터의 보급과 통신망의 발전은 청소년들의 삶의 기반을 이전 세대와는 전혀 다른 모습으로 바꾸고 있다. 청소년들 대부분이 컴퓨터를 오락, 게임 등을 하거나 PC 통신 수단으로 사용하고 있는데 반하여 청소년들을 대상으로 한 교육용 소프트웨어들은 많은 문제를 가지고 있었다. 청소년들이 이용하는 게임의 대부분이 폭력성의 강조 금전중시 풍토 등 청소년 교육에 역행하고 있는 것이 현실이다.

멀티유저 네트워크 게임은 사회적 관계가 중요시되는 게임이며 따라서 소재 선택 및 진행에 따라 교육적 효과를 배가시킬 수 있다. 본 연구 과제는 이러한 네트워크 게임의 특성을 살려 청소년들이 흥미를 가지고 역사 및 환경에 대한 지식을 얻을 수 있는 새로운 전기를 마련했다.


SUMMARY

The goal of this study is to promote the use of Information Highway and create a multi-user network game advisory containing historic and environmental contents for juveniles.

Concerned that Information Highway would be a new infra for future society, it is no less necessary to develop a variety of programs for youths by using Information Highway.

We have tried to induce youths to be interested in Information Highway and using it through the network game much favored by them. And we are intended to supply an educational, so non-violent, game which may help youths raising abillity for solving a lot of problems in real lives.

The followings were the subjects and scope of this study.

- To Design and implement a tool for creating library

- To make game library

- To wite a game senario

- To supply educational contents

This Study have resulted in belows.

- Multi-user network game server able to support multi-media information

- Network game for educating juveniles

This educational multi-user network game using information Highway will be put to practical use in network game industries as well as software markets for education.

On conclusion, this attempt of making educational contents by a multi-user network game shows that a well-made game will be playing an educational and industrial role in the era of Information Highway.


CONTENTS

Chapter 1 Introduction

Chapter 2 Synopsis of the Game

Section 1 The Background and Goal of the Game

Section 2 Internal structure and mechanism

Section 3 System requirements

Section 4 User Interface

Chapter 3 Design and Implementation of game modules

Section 1 Flowchart of Server behavior

Section 2 Server I/O

Section 3 Composition of server module

Section 4 Composition of client module

Chapter 4 Composition of the Game

Section 1 Components of the Game

Section 2 Formation of scenario and game stages

Section 3 Protocol for the Game

Section 4 Data of the Game

Section 5 Implementation of Zone

Chapter 5 Conclusion and the Next research tasks

Section 1 Summary of the Study

Section 2 Results of the study

Section 3 Course of Next research

Section 4 Make the best of the Results

Appendix. Management Manual


목 차

제 1 장 서 론

제 2 장 게임 개요

제 1 절 게임 목표 및 배경

제 2 절 내부 기능

제 3 절 시스템 요구사항

제 4 절 사용자 인터페이스

제 3 장 게임 모듈 설계 및 구현

제 1 절 서버 동작 순서도

제 2 절 서버 I/O

제 3 절 서버 모듈 구성

제 4 절 클라이언트 모듈 구성

제 4 장 게임 구성

제 1 절 게임 구성 요소

제 2 절 시나리오 및 스테이지 구성

제 3 절 게임 프로토콜

제 4 절 게임 데이터

제 5 절 존(Zone) 구현

제 5 장 결론 및 향후 연구과제

제 1 절 연구과제 개요

제 2 절 연구 결과

제 3 절 향후 연구 방향

제 4 절 연구 성과 및 활용

부록. 종묘너구리 패키지 매뉴얼

제1장 서 론

초고속정보통신망이 인터넷의 인프라 구조(Infra Structure)가 될 21세기는 VOD(Video On Demend), 양방향 TV, 비디오 화상 회의 등 현재의 통신 기반에서는 만족스럽게 구현할 수 없었던 다양한 멀티미디어 서비스 시대가 열릴 것으로 예상된다.

고품질 멀티미디어 정보 서비스의 구현은 국민들의 생활 속에서 정보화 시대를 체험할 수 있는 직접적인 계기라는 점에서 정부가 추진하고 있는 초고속통신망 사업의 성공 여부를 결정짓는 중요한 요소이다.

더욱이 국가의 미래를 짊어질 청소년들에게 있어 초고속정보통신망은 이전 세대와는 전혀 다른 그들만의 삶의 기반이며 방식임을 고려할 때 청소년들을 대상으로 한 고품질 멀티미디어 서비스 프로그램의 개발은 매우 중요하다.

그럼에도 불구하고 국내 정보산업은 독자적인 프로그램 개발에 있어 매우 취약한 구조를 가지고 있는 것이 사실이며 따라서 다음과 같은 문제에 대한 해결 방안을 모색할 필요가 있다.

·현재 개인 컴퓨터와 PC 통신에 친숙한 청소년들에게 유익한 정보서비스는 매우 드물며 음란물과 같은 유해 정보가 범람하고 있는 현실은 청소년들의 왜곡된 사회 인식 및 사회 관계를 가져올 수 있다.

·청소년들이 컴퓨터를 통해 실제로 사용하는 경우의 대부분이 게임 또는 통신을 즐기는 경우로 나타나고 있으나 대부분의 게임들이 폭력적이며 금전중시 풍토를 조장하고 있다.

따라서 본 연구 과제는 청소년들이 좋아하고 쉽게 적응하는 네트워크 게임을 매개로 청소년들이 초고속정보통신망에 대한 직접적인 체험과 관심을 유도하고 철학적이면서도 환경오염과 같은 실재적인 문제들을 해결하는 새로운 게임을 제공함으로써 위와 같은 문제를 해결하고자 했다.

즉, 청소년들이 흥미를 잃지 않으면서도 이전과는 달리 교육적 효과를 제고하고자 했으며 이의 해결 방안으로 멀티유저 네트워크 게임을 선택한 이유 및 기존 네트워크 게임에 대한 개선점은 아래와 같다.

·멀티유저 네트워크 게임은 일반 PC 게임이나 전자 오락실 게임과는 달리 네트워크 망을 통해 연결된 다수의 게임 참가자가 함께 진행하는 게임이다. 따라서 가상 공간에서 형성되는 사회적 관계가 게임에 있어 중요한 위치를 차지하며 이를 어떻게 활용하는가에 따라 가상 사회 교육장으로 유용한 기능을 제공한다.

·초고속정보통신망에서 운영될 멀티유저 네트워크 게임을 기존 텍스트 중심, 소규모 이용자 중심의 네트워크 게임에서 멀티미디어 정보를 지원하며 대용량의 이용자를 수용할 수 있는 구조로 설계 구현했다.

·이와 같은 멀티미디어 정보 지원 멀티유저 네트워크 게임을 기반으로 청소년들의 역사 및 환경 교육 매체로 활용하기 위해 게임 소재 및 컨텐츠를 우선 시범적인 형태로 종묘너구리를 테마로 한 게임을 구현했다.

따라서 본 연구 과제 결과물인 '초고속정보통신망을 이용한 청소년 교육용 멀티유저 네트워크 게임 - 종묘너구리'는 초고속정보통신망을 위한 응용소프트웨어를 개발했다는 기술적 측면 뿐 아니라 네트워크 게임을 통한 교육적 효과 제고하는 컨텐츠 측면에서도 의의를 가진다.

본 연구과제는 성공적 수행을 기반으로 다양한 멀티유저 네트워크 게임을 개발하는 계기를 마련, 외국 기술에 잠식되고 있는 국내 게임산업의 활성화와 해외수출의 전기가 될 것으로 생각한다.

제 2 장 게임 개요

제 1 절 게임 목표 및 배경

전세계적으로 게임을 제작할 수 있는 기술을 가진 국가는 10여개국에 불과하며, 특히 네트워크 게임 개발 기술 보유국은 미국, 영국, 한국으로 대표될 만큼 좁혀 진다.

게임은 크게 네트워크 게임, PC 게임, 게임기로 구분되며 게임기에서 PC게임으로 PC 게임에서 네트워크 게임으로 점차 옮겨가고 있다.

멀티유저 네트워크 게임은 PC 통신, 인터넷 등 네트워크 망을 통해 연결된 다수의 게임 참가자가 함께 진행하는 게임을 의미하며 PC 통신에 기반 한 텍스트 머드게임에서 점차 인터넷에 기반 한 그래픽 머드게임으로 발전하고 있는 추세이다.

초고속정보통신망을 이용한 청소년 교육용 멀티유저 네트워크 게임 - 종묘너구리는 기존의 네트워크 게임과는 달리 멀티미디어 네트워크 게임으로 구현되며, 폭력적인 요소를 배제하고 청소년들의 역사 및 환경 교육을 위한 게임으로 개발되었다.

종묘너구리는 네트워크 상에서 청소년들이 너구리가 되어 종묘에서 북한산에 이르는 생태계 라인을 따라 이동하면서 여러 가지 모험과 퀴즈를 경험하는 게임이다. 이때 청소년들이 함께 게임을 진행함으로써 협동성, 역사의식을 기르고 환경오염에 대한 문제제기와 해결을 배우게 된다.

<망 구성도 예시>

제 2 절 내부 기능

종묘너구리는 멀티유저 네트워크 게임을 위한 사용자 명령 입력 및 기능 수행 등 기본 기능(아래 도표 참조)을 가지고 있으며 초고속정보통신망을 위한 멀티미디어 정보 지원 기능을 플러그인 확장으로 바이트 스트림 형태의 멀티미디어 데이터를 제공할 수 있게 구현했다.


또한 사용자간 커뮤너티 형성을 위한 Chatting 기능이 지원되며 Web Server 확장을 통해 게시판 기능을 추가할 수 있다.

제 3 절 시스템 요구사항

종묘너구리 시스템 요구 사항은 다음과 같다.




제 4 절 사용자 인터페이스

·설계 원칙

본 연구 과제인 초고속정보통신망을 이용한 청소년 교육용 멀티유저 네트워크 게임의 사용자 인터페이스를 설계하는데 있어 가장 중점을 둔 부분은 청소년들에게 흥미를 주면서도 교육적 효과를 놓치지 않는데 있다. 또한 직관성이 뛰어난 Java Applet형태의 GUI를 사용하여 게임 이용자가 쉽게 게임을 즐기면서도 동시에 자료를 찾아 자신이 원하는 내용을 알 수 있도록 하였다.

·초기화면

초기화면에서는 게임 들어가기와 우리나라 문화유산 정보 환경 정보를 선택할 수 있는 메뉴와 함께 배경 그림으로는 푸른 종묘에서 뛰어 노는 너구리를 표현하였다.

<종묘너구리 초기화면>

·게임 화면

게임은 크게 텍스트 부분과 자신의 상태를 알려주는 각종 지표들을 알려주는 창 및 게임과 동시에 교육적 내용을 전달하는 도움말 기능창으로 구성된다.

동시에 게임을 하면서도 현재 준비된 교육 컨텐츠를 함께 볼 수 있도록 되어 있어 언제라도 궁금한 내용을 찾을 수 있도록 하였다.

<게임 진행 일부화면>

·정보 화면

정보화면은 우리 문화 유산과 환경 보호에 관한 정보를 다루고 있으며, 일반 인터넷 웹사이트와 동일한 구조를 가지고 있다.

<정보화면 중 쓰레기 분리수거 부분>

제 3 장 게임 모듈 설계 및 구현

제 1 절 서버 동작 순서도


·Time Initializing

Server의 동작에 필수적인 시스템 시간을 얻어오는 부분이다.

·Get port number

Server를 몇번 Port에서 구동할 것인지 결정하는 부분이다. 외부입력 또는 기본값으로 결정된다.

·Socket Initializing

Mother descriptor를 생성하고 server 주소를 binding하는 부분이다. socket에 필요한 옵션을 초기화한다.

·Database load

게임 library database를 열어 data를 memory로 load하는 모듈이다. library마다 각각의 구동모듈이 있다.

·Game loop

server의 구동에서 핵심이 되는 부분으로 다음의 작업을 반복 수행한다.

① 외부(클라이언트)의 연결요청을 받아들여 descriptor를 생성한다.

② 연결에 성공한 player의 game data를 관리한다.

③ player의 command를 parsing하여 적당한 function을 fetch한다.

④ Game data를 update한다.

⑤ Player 데이터를 정기적으로 저장한다.

·Socket closing

서버를 종료하는 부분이다.

생성된 모든 socket descriptor를 닫고, game data를 저장한 후 memory를 반납한다.

제 2 절 서버 I/O

서버 I/O의 흐름은 다음과 같다.

<서버 I/O 흐름도>

클라이언트로부터 서버로 연결되는 I/O는 모두 BSD socket을 통해 다뤄진다. 클라이언트마다 socket descriptor를 1개씩 생성해준 후 일정 시간마다 socket descriptor를 검사해 I/O에 대한 요청이 있는지 확인한다. 요청이 있을 경우에 그림 1)과 같은 순서를 통하여 'Read(socket에의 입력)' 와 'Write(socket에의 출력)'가 처리된다.

'read'의 경우는 read_from_descriptor( )를 통하여 직접 처리된다.

'write'의 경우는 process_output( )으로 모아진 데이터를

write_to_descriptor( )로 처리 한다.

Game_loop가 돌아가는 동안의 서버의 CPU Time은 클라이언트에게 각각 생성된 socket descriptor에 적절히 배분되는데 서버의 timer가 이 배분의 정도를 검사하여 할당된 time내에 I/O처리를 끝내지 못했을 경우 buffer에 넣고 다시 time이 분배되었을때 처리하게된다. 이때 쓰이는 함수가 read_from_buffer( )이다.

제 3 절 서버 모듈 구성

서버는 다음의 모듈로 구성된다.

<서버 모듈 구성도>

·통신 모듈

서버의 socket 통신, 즉 I/O를 담당한다.

·명령어 해석기

클라이언트가 보내는 명령어(command)를 해석하여 적합한 명령어 핸들러를 호출한다.

·데이터베이스 로더

게임 library의 string을 해석하여 memory에 load한다.

·저장 모듈

player data를 file system에 저장하는 모듈이다.

·로그 모듈

server의 error 또는 warning을 log file에 기록한다.

·명령어 핸들러

명령어 해석기로부터 호출되어 각각의 명령어를 수행하며 크게 5개로 구성된다.

① object command handler

game내의 object에 관련된 command를 handling한다.

② move command handler

character의 이동에 관련된 command를 handling한다.

③ comm command handler

character와 character간 통신에 관련된 command를 handling한다.

④ info command handler

game data를 가공하는데 관련된 handler이다.

⑤ sub handler

각각의 handler에서 사용되는 하위레벨의 handler이다.

·이벤트 핸들러

game data와 command 수행에서 발생하는 event를 처리한다.

Event handler는 time triggering과 event triggering의 두 모듈로 구성된다.

·데이터 핸들러

Game Data를 주기적으로 Update하는 핸들러이다.

·명령어 생성기

서버에서 클라이언트로 보내는 명령을 생성한다.

서버-클라이언트 간 프로토콜에 대한 정보를 가지고 Game Data와 조합한 후 통신 모듈을 통해 클라이언트에 전달한다.

제 4 절 클라이언트 모듈 구성

클라이언트는 다음의 모듈로 구성된다.

·프로토콜 해석기

서버로부터 오는 프로토콜을 해석하여 프로토콜 처리기에 넘긴다.

·멀티미디어 핸들러

프로토콜에서 지시되는 그래픽, 사운드 등의 동작을 핸들링하는 모듈이다. 클라이언트에서 보여되는 각종 멀티미디어는 본 핸들러를 통해 인터페이스상에 나타난다.

·통신 모듈

서버와의 TCP/IP통신을 처리한다.

프로토콜과 일반적인 메시지를 구분하여 처리한다.

·프로토콜 처리기

프로토콜 해석기에서 넘겨진 시그널에 따라 적합한 멀티미디어 핸들러를 호출하여 클라이언트의 인터페이스를 통해 결과를 나타낸다.

제 3 장 게임 구성

제 1 절 게임 구성 요소

게임을 구성하는 기본 요소는 아래와 같다.

·Room

사용자는 스테이지보다 작은 개념으로 구성된 공간에서 게임을 진행한다. Room내에서 각종 Object를 볼 수 있으며 각각 다른 성격을 가진 Object를 이용한다.

·HTML 페이지

사용자는 웹 브라우저를 통해 게임 진행에 필요한 정보, 힌트 및 시나리오 관련자료를 얻는다. 도서관은 HTML로 구성하여 게임 진행과 별도로 브라우징 한다.

게임 중에 힌트가 필요하거나 도움말을 보여줘야 할 경우 사용자의 웹브라우저의 화면을 해당하는 HTM 페이지로 옮겨 보여 준다.

·대화

사용자는 다른 사용자와 이야기를 나눌 수 있으며 이를 통해 게임을 풀어나간다.

제 2 절 시나리오 및 스테이지 구성

가. 스테이지 개요

게임은 총 8개의 스테이지로 구성된다. 각 스테이지는 주인공 너구리 우레가 성장하고 모험하는 과정으로 개별적인 주제와 사건을 담고 있다. 하나의 스테이지는 한 장의 지도로 표현된다. 지도내의 이벤트, 사건 등이 벌어지는 주요 지점을 room이라 칭하는데 room에서 게임에 등장하는 모든 객체들이 표현된다.

다음은 각 스테이지 별 주제와 사건에 대한 요약이다.


나. Game Roadmap

게임 사용자는 각 스테이지에서 미리 게임에 입력된 Roadmap에 의해 동서남북의 진행 방향을 가지게 된다. 다음은 게임에서 구현된 Roadmap이다.

·종묘지도


·정전 지도


·하수구 지도


·사직공원 지도


·지하철 지도


·북한산 지도


다. 시나리오 가상 설계

일반 게임과는 달리 네트워크 게임은 강제 조건과 같은 시나리오가 존재하지 않으며 다만 배경이 되는 상황 및 조건만을 지정할 수 있을 뿐이다. 아래 시나리오는 게임 이용자가 자신의 이름을 우레라는 너구리로 지었다는 가정 아래 게임 스테이지별로 발생하는 상황을 정리한 것이다.

·스테이지 1 우레의 탄생

▷ Scene#001

종묘 정문의 전경이 화면을 채운다. 클릭 하면 Scene#002로 바뀐다. 도서관은 게임 타이틀 페이지(Library#001)을 보여준다.

▷ Scene#002

너구리 두 마리가 굴 안에 웅크리고 있는 그림이다. 두 너구리는 엄마와 주인공인 어린 너구리 우레이다. 약간의 시간이 흐르면 우레가 눈을 뜨고 엄마는 우레에게 말을 건다. 대화의 내용은 너구리에 관한 것이고(Dialog#001) 우레(즉 플레이어)는 너구리에 대한 identity를 얻게 된다. 대화가 종료되면 Scene#003으로 넘어간다. 도서관은 너구리에 관한 페이지(Library#002)를 보여준다.

▷ Scene#003

002와 같으나 팝업 형식의 문제가 출제된다. 이는 너구리에 관한 간단한 퀴즈로 약간 까다로운 사지 선다 문제(Quiz#001)이다. 클릭하여 답을 맞추면 Scene#004로 넘어간다. 맞추지 못하면 도서관을 참조하라는 힌트글귀가 문제 윈도우에 뜬다.

·스테이지 2 종묘

▷ Scene#004

흙바닥의 전경에 정전으로 가는 계단 아래 부분이 보인다. 군데군데 풀과 잔디가 자라있다. 먹을 것이 놓여있고 우레가 그것을 건드리면 덫에 걸린 우레의 그림으로 바뀐다. 우레가 덫을 빠져나가기 위한 혼잣말(Dialog#002)이 몇 마디 나온다. 잠시 후 쥐가 나타난다. 이 쥐는 종묘에서 몇 대째 살아오는 늙은 쥐로 우레가 덫에 빠진 것에 대해 우레가 주의를 기울이지 않은 것을 가볍게 나무라고 덫을 빠져 나올 수 있게 돕는다. (Dialog#004) 우레는 알맞은 대답을 제시해 대화를 풀어나가야 한다. 덫에서 풀리면 늙은 쥐는 종묘를 소개해 준다며 데리고 간다. (Dialog#005)장면이 Scene#005로 넘어간다. 도서관은 종묘에 관한 페이지(Library#003)를 보여준다.

▷ Scene#005

정전 앞의 포석위로 정전이 보이고 포석이 화면 반을 가득 채운다. 쥐는 종묘와 정전에 대해 간단히 설명한다. (Dialog#006) 그리고 몇 가지 종묘와 관련된 퀴즈가 나온다.(Quiz#002)

우레는 포석을 돌아다니며 먹을 것을 취한다. 일정량을 취하지 않고 정전을 클릭 하면 배가 고파서 움직일 수 없다는 내용의 혼잣말(Dialog#006)을 한다. 다음으로 넘어가기 위해선 먹이를 취해야한다. 일정량을 취한 상태에서 정전을 클릭하면 Scene#006으로 화면이 전환된다.

▷ Scene#006 : 화면은 정전 벽으로 벽 아래의 흙바닥에 구멍이 뚫려있다. 늙은 쥐는 구멍앞에 서서 우레에게 정전안의 어떤 것도 함부로 건드리지 말라고 경고한다. (Dialog#007) 대화가 끝나면 늙은 쥐가 구멍을 통해 정전에 기어 들어가는 장면이 진행된다. 우레가 구멍을 클릭하면 자동으로 Scene#007로 넘어간다. 도서관은 정전에 관한 소개(Library#004)를 보여 준다.

·스테이지 3 정전

▷ Scene#007 : 화면은 정전 내부이고 늙은 쥐와 우레는 정전의 쓰임새에 대해 이야기를 나눈다. (Dialog#008) 대화 중 우레는 실수로 위패를 넘어뜨리고 늙은 쥐는 깜짝 놀라며 사라진다.

우레가 쓰러뜨린 것은 다름아닌 이성계의 위패이다. 이성계의 혼령이 화면상단으로부터 나타난다. 푸르스름한 빛으로 반투명한 혼령이나 적절히 무섭지 않은 분위기로 처리한다. 이성계는 우레에게 잠을 깨운 것을 꾸짖고 조선건국에 걸친 이야기를 몇 가지 말해준다.(Dialog#009). 이 대화의 일부분은 다음 사건해결의 키워드이다. 대화가 끝날 때 위패를 바로 세워줄 것을 부탁하고 이성계는 사라진다. 도서관은 이성계가 말한 조선의 역사의 한 부분 (다음 사건의 퀴즈에 나올 부분: Library#005 )을 보여준다.

▷ Scene#008 : 우레가 위패를 바로 세워야 점수가 올라간다. 바로 세우지 않는다면 다음 상황이 진행되지 않는다. 우레가 화면을 둘러보는 장면이 진행되고 우레가 들어온 곳을 찾을 수 없다는 혼잣말을 한다. (Dialog#010). 잠시 시간이 흐르면 이방원이 나타나 스무고개를 맞추면 빠져나갈 길을 가르쳐 주겠다고 한다.

(Dialog#011) 스무고개를 할 것을 거절하면 시간이 흐른뒤 다시 나타나서 다시 기회를 준다는 말(Dialog#012, 계속 거절할 경우 loop에 걸린다)을 한다. 승낙하면 이방원이 스무고개 형식의 퀴즈(단답식, Quiz#003)를 낸다. 내용은 이성계가 말한 이야기중 한 부분이다.

A. 우레가 답을 맞추면 이방원은 자신을 따라오라고 하고 (Dialog#013) 화면 끝으로 사라진다. Scene#009로 넘어간다.

B. 답을 맞추지 못하면 이방원은 재밌어하며 어려웠냐고 묻고는 (Dialog#014) 객관식 사지선다형 문제(Quiz#004)를 낸다. 이 퀴즈는 맞는 답을 클릭할때까지 진행된다. 맞추면 A의 사건진행과 동일하게 진행된다.

▷ Scene#009 : 우레는 이방원을 따라 어떤 방으로 들어오게 된다. 이방원은 안내가 끝나자 말없이 사라져버린다. 방바닥에는 (구식)열쇠가 놓여있고 한구석에 사다리가 쓰러져있다. 사다리의 놓인 벽이 천장과 닿는 부근에는 작은 문이 있고 (역시 구식)자물쇠가 채워져 있다. 우레는 열쇠를 주워 사다리를 타고 올라가 작은 문을 열고 나가야한다. 나가면 Scene#010으로 넘어간다.

▷ Scene#010 : 보금자리에서 우레가 엄마와 잠들어 있다.

·스테이지 4 홍수

▷ Scene#011 : 까만 화면이 페이드인 되면서 굴 안에 물이 차 오르는 장면을 보여준다. 우레와 엄마는 놀라 굴 밖으로 나가려하나 굴 안에 가득찬 물이 터져 나가면서 우레가 화면에서 사라진다.

▷ Scene#012 : 비가 오는 풀숲에 우레가 쓰러져 있는 장면이 전개된다. 우레는 지쳐 있다. 우레 옆에 벌 한 마리(씨씨: 우레의 조력자)가 다가와 (비가 오므로 날아선 안된다) 자신을 소개(씨씨는 우레의 굴 뒤의 나무에 사는 벌이다)하며 우레에게 사건이 일어난 이유를 설명한다(Dialog#015). 씨씨는 사람들이 나무를 베어내어 굴속에 물이 찬 것이라 말해준다. 그리고 함께 물을 빼낼 방법을 찾아보자고 한다.

대화가 끝나면 우레가 일어나 씨씨를 따라 이동하는 장면이 진행된다.

▷ Scene#013

우레와 씨씨는 관리사무소에 들어간다. 사무소에는 책상 몇 개와 안내방송기기, 캐비넷, 소파등이 보인다. 우레는 관리인의 주의를 끌어 관리인이 사무소 밖으로 나가게 한다. 나간 틈을 타 사무소로 들어와 펌프 스위치를 누르면 성공이다. 관리인은 일정 시간 후에 다시 들어오는데 이때 발각되면(사무실 안에 있으면), 게임이 종료되고 잡혀 장속에 갇힌 엔딩화면을 보여준다. 씨씨는 해결을 돕기 위해 몇 가지 조언을 해준다. (Dialog#016) 제대로 사건을 해결하면 Scene#014로 넘어간다.

▷ Scene#014 : 옥외의 펌프가 작동되고 우레의 굴 근처의 물이 빠지는 장면이 진행된다.

·스테이지 5 하수도

▷ Scene#015 : 우레가 아직 젖은 굴 안에 서있다. 굴은 텅 비어있고 엄마도 사라졌다. 씨씨가 고맙다고 인사를 하며 엄마를 찾으려면 북한산쪽으로 가보라고 권한다.(Dialog#017) Scene#016으로 장면이 전환된다. 도서관은 하수오염에 관한 페이지(Library#005)를 보여준다.

▷ Scene#016: 우레는 하수도에 서있다. 하수도는 길게 왼쪽에서 오른쪽으로 스크롤되며 우레는 하수도의 왼쪽 끝에 서있다. 여러 쓰레기들이 가득 차 있다. (혐오스러울 정도는 아니다) 걷다가 시궁쥐를 만나게 되는데 우레와 비슷한 크기의 시궁쥐가 싸움을 건다. 시궁쥐는 하수도는 함부로 들어와서는 안될 위험한 곳이라고 겁을 주고 (Dialog#018) 하수오염에 관한 퀴즈(Quiz#005)를 낸다. 여러 가지 문제가 준비되어 있어야 하며 답을 맞추면 계속 점수가 올라간다. 일정한 수의 답을 맞추면 시궁쥐가 하수도를 통과할 자격을 인정한다는 말을 하고(Dialog#019) 우레에게 하수도에 들어온 이유를 묻는다. 우레가 알맞은 대답, 즉 엄마를 찾으러 간다는 말, 을 하면 시궁쥐는 어느 쪽으로 가라고 설명한다.(Dialog#020).

▷ Scene#017

우레가 반쯤 열려진 맨홀을 통해 도로로 올라오는 장면이 전개된다. 정면에 사직공원이 보인다. 공원을 클릭하면 공원으로 이동하면서 스테이지가 종료된다.

·스테이지 6 사직공원

▷ Scene#018

우레는 사직공원의 풀숲앞에 서있으며 주변엔 분리수거 쓰레기통이 있다. 선명한 글자로 빈병, 종이 등이 씌어진 것이 보인다.

잠시 후 오소리가 풀사이에서 나타난다. 오소리는 반갑게 인사를 하고 누구냐고 묻는다.(Dialog#021) 우레가 자신을 소개하면 오소리는 자신은 북한산에서 살았는데 트럭에 탔다가 그만 이곳까지 왔다고 말해준다. (Dialog#022) 오소리는 이어서 주변의 재활용품에 대해 간단히 말해준다. 오소리는 자신의 집으로 따라오라고 권유한다. (Dialog#023) 잠시 후 Scene#019로 전환된다.

▷ Scene#019 : 장면이 바뀌고 오소리와 우레가 오소리의 집에 있는 광경이 보인다. 오소리의 집은 재활용품이 담긴 통이다. 우레는 오소리에게 북한산에 같이 가자고 한다. 오소리는 이 곳이 더 마음에 든다며 거절한다. 오소리는 대신 문제를 맞추면 길을 알려주겠다고 말한다. 문제는 재활용에 관한 것이다. 우레가 맞출 때까지 문제는 계속 된다. 맞추면 오소리는 지하철을 이용하라는 말을 해주고 작은 손전등을 준다. 스테이지가 종료된다.

·스테이지 7 지하철

▷ Scene#020

우레는 사람없는 지하철 역에 서있다. 우레는 오소리의 충고대로 지하철 선로를 따라 다른 곳으로 나가야 한다. 우레는 오소리에게서 얻은 손전등을 사용해 앞으로 나아가야 한다. 장면이 바뀌면 우레는 선로로 들어선다.

▷ Scene#021

지하철 선로를 따라가다 나온 작은 문으로 나가면 구기동이다.

·스테이지 8 북한산

▷ Scene#022

북한산 입구에 부엉이가 있다. 부엉이는 아무나 오는 곳이 아니라고 말한다. 북한산이 너무 더러워져 가고 있어서 자격이 있는 동물만 들어올 수 있다고 하며 그동안의 행실을 묻는다. 자격이 부족하면 길을 되돌아가서 착한(?) 행동을 해야 한다.

▷ Scene#023

북한산에 들어가면 동물들이 환영하며 엄마가 기다리고 있다고 말한다. 엄마와 우레는 눈물의 재회를 한다.

제 3 절 게임 프로토콜 구현

서버와 클라이언트는 게임 프로토콜을 사용하여 서로 통신한다. 전용 클라이언트를 사용하지 않고 port에 직접 접속하면 프로토콜을 직접 볼 수 있다. 운영자는 다음 프로토콜을 참조하여 게임을 확장할 수 있다.

가. 공통사항

모든 프로토콜은 다음의 공통 형식을 가지고 제작된다.









나. 소지품 프롬프트

사용자가 가지고 있는 소지품 정보를 클라이언트로 출력하는 프로토콜이다. 각 숫자는 a부터 j까지 10개의 SLOT에 가지고 있는 소지품의 Object Virtual Number를 나타낸다. vnum은 뒤로부터 2자리만 표기한다.



다. 일반 프롬프트

주로 character의 상태와 관련된 정보로 클라이언트에서 입력이 있을 때와 게임 TICK이 지날 때 출력한다.


컨디션은 Action Flag number를 사용한다.

성향은 3종의 숫자를 사용한다.


라. 방향지시 프롬프트

방향지시 그림은 3조각으로 나뉘어 표시된다. 그러므로 프로토콜도 3개의 그림 정보를 따로 보내줘야만 한다.



마. HTML 연동 프롬프트

HTML 연동 프롬프트는 이미 제작되어 있는 HTML페이지의 페이지 번호를 클라이언트에 넘겨준다. 넘겨진 프로토콜이 context를 보고 클라이언트 컴퓨터의 웹브라우저는 해당 페이지로 이동하게 된다.



제 4 절 게임 데이터

가. Character Data


·Race : 총 8가지

·Level : 1에서 2까지로 구분하며 1레벨은 사용자, 2레벨은 운영자

·Act : 플레이어 용


·Position Bit


나. Player Data



제 5 절 존(Zone) 구현

가. Zone Loader Script File

파일 위치 : /Raccoon/area/

파일 명 : AREA.LST

·AREA.LST 파일에 열고 로드할 존 파일 이름을 넣는다.

<*.are>의 형식이 되어야 하며 로딩 파일 하나마다 엔터키를 넣는다.

·파일의 마지막에 $를 넣는다.

·예제파일

help.are

obj.are

newbie.are

jongmyo.are

reset.are

$

나. Zone Format 공통사항

·File Format

존 파일은 txt 형식으로 확장자는 *.are가 되어야 한다.

#<섹션이름>으로 시작하여 #$로 끝난다.

·Data Type

① Number

Integer로 정의된 숫자이다. 1에서 65534사이의 숫자여야 한다. Number는 캐릭터로 분리될 수 있다. 즉, 1|2|48은 1+2+48과 같아서 51과 동일한 값을 나타낸다.

② String

Character가 들어갈 수 있고 알파벳, 특수문자, 한글등 모든 캐릭터가 가능하다. 빈칸이 될 수도 있고 여러 줄이 될 수도 있다. String 끝에는 반드시 ~(tilde)를 붙여줘야 한다.

③ to_eol

한 라인 전체가 파싱되는 것을 의미한다.

·Section

Zone 파일은 Rooms, Objects, Resets, Mobiles등의 기능상 구분이 되는 데이터를 한데로 모아 섹션으로 구분을 지어놓고 있다.

종묘너구리에서 지원하는 섹션은 다음과 같다.




다. Help Zone Format

Help Zone은 구식 TEXT MUD 형태의 도움말을 제공하는 포맷으로 Raccoon 1.0에서는 일부만이 쓰이고 나머지 도움말은 WWW으로 제공된다.

#HELPS

{

<level:number> <keywords:string>~

<help-text:string>~

}

0 $~

·helps 파일은 #HELPS로 시작한다

·level은 사용자가 글을 읽는데 요구되는 최저레벨을 뜻한다.

level보다 사용자의 레벨이 낮으면 글을 읽을 수 없다.

·keyword는 도움말을 부르는 명령어에 들어간 인수와 비교하는 스트링으로 인수와 일치하게 되면 keyword에 딸린 도움말이 출력된다.

·help-text는 도움말 본문이다.

·helps 섹션은 0$로 끝난다.

·예제 파일

#HELPS

-1 MOTD~

베타테스팅 중입니다.

~

0 $~

#$

라. Mobile Zone Format

#MOBILES

{

#<vnum:number>

<keywords:string>

<short-description:string>

<long_description:string>

<description:string>

S<act-flags:number> <alignment:number> <exp:number>

<race name:string>

}

#0

·Mobile정보를 담고 있는 섹션은 #MOBILES로 시작된다.

· vnum은 mobile의 가상 일련번호(virtual number)이다.

· keyword는 mobile을 인식하는데 쓰는 키워드이다. 각종 명령어에서 어떤 mobile을 인자로 받아 들일 때 그 mobile에 해당하는 keywords를 인자로 사용해야 한다. keywords는 복수로 사용될 수 있으며 복수로사용할 때는 keyword 사이에 공간을 두어야 한다.

· short-description은 act를 비롯한 함수에서 mobile을 인지하기 위해 사용하는 설명이다.

· long-description은 mobile이 이동하거나 room안을 볼 때 보이는 mobile에 대한 설명이다. long-description을 쓰고 separator ~를 사용할 때는 엔터를 치고 새 라인에 ~를 써야 한다.

· act-flags는 mobile의 행동을 정의한 함수이다. 설정된 bit값에 따라 mobile이 행동하게 된다.


· alignment는 mobile의 성향을 나타내는 수치이다. 1000부터 +1000 까지의 값으로 환경친화도를 나타낸다.

· race는 mobile의 종족, 즉 어떤 동물인지를 구분해주는 스트링이다.

· Mobile 정보를 담고 있는 섹션은 #0으로 끝난다.

마. Room Zone Format

#ROOMS

{

#<vnum:number>

<name:string>

<description:string>

<room-flags:number> <sector-type:number>

{

D <door:number>

<keywords:string>

<locks:number> <key:number> <to_room:number>

}

{

E

<keywords:string>

<description:string>

}

S

}

#0

· Room 정보를 담고 있는 섹션은 #ROOMS로 시작한다.

· Vnum mobile과 동일한 개념이다.

· name은 방의 이름이다.

· description은 방을 설명하는 글이다.

· room-flags는 방의 성격을 만들어주는 비티 플래그이다.

· sector-type은 방의 지형을 나타내는 플래그이다.




· 1개의 ROOM 정보마다 S스티링을 넣어줘야 한다.

· Room정보를 담고 있는 섹션은 #0로 끝난다.

· 예제파일.

#ROOMS

#10001

우레의 집~

위쪽에서 희미한 햇빛이 들어오고 산骕한 바람이 불어옵니다. 바닥에는 푹신하게 풀을 뜯어 깔아 놓았으며 평평하고 넓직한 바위가 굴 오른편에 놓여있습니다. 좁아서 빠져나갈 수 없는 아래쪽 입구에서 희미한 바람소리가 들려옵니다.

~

0 3

D4

~

0 0 10002

S

#0

#$

바. Object Zone Format

#OBJECTS

{

#<vnum:number>

<keywords:string>~

<short-description:string>~

<long-description:string>~

<item-type:number> <extra-flags:number>

<value-0:string>~<value-1:string>~<value-2:string>~

<value-3:string>~ <weight:number>

}

#0

· Object정보를 담고 있는 섹션은 #OBJECTS로 시작된다.

· vnum은 object index의 일련번호이다.

· 현재의 프로토콜은 99개의 아이템을 소지할 수 있도록 지원한다.

· keyword는 명령어의 인수가 되는 스트링이다.

· Short-description은 object의 짧은 설명이다.

· long-description은 object의 긴 설명으로 look 명령과 같이 object list를 show할 때 보여 주는 스트링이다.

· item-type은 object의 종류를 나타낸다.


· extra-flags는 object에 설정되어 있는 데이터 옵션을 나타내는 비트 플래그이다.








· value-x는 object의 item-type에 따라 각각 다르게 설정되는 데이터로 스트링 형식으로 4개가 주어진다.

· weight는 object의 무게를 나타낸다. 일반적으로 1로 설정한다.

· Object정보를 담고 있는 섹션은 #OBJECTS로 끝난다.

· 예제파일

사. Reset Zone Format

#RESETS

{

* <comment:to_eol>

}

{

M 0 <mob-vnum:number> <limit:number>

<room-vnum:number><comment:to_eol>

}

{

O 0 <obj-vnum:number> <:number>

<room-vnum:number><comment:to_eol>

}

{

D 0 <room-vnum:number> <door:number> <state:number>

<comment:to_eol>

}

{

R 0 <room-vnum:number> <last-door:number>

<comment:to_eol>

}

S

· Reset 섹션은 #RESETS로 시작된다.

· 명령어로 대문자 알파벳으로 된 캐릭터1바이트가 들어간다.

· 다음의 명령어가 reset을 수행하는데 사용된다.


· 아무 의미없는 문자로 0이 들어간다.

· 명령어 이후엔 명령어에 따라 다르게 포맷이 구성된다.

* : comment로 스트링으로 이루어진 주석문이 들어간다.

M : mob-vnum은 로드할 mobile의 index number (virtual number) 이다. limit-number는 같은 vnum을 가진 mobile이 게임내에 몇 개나 존재할 수 있나에 대한 최대허용치이다.

room-vnum은 mobile이 load될 room의 index number(virtual number)이다.

comment는 주석문이다.

O : object-vnum은 로드할 object의 index number (virtual number)이다.

number는 아무 의미 없는 숫자다.

room-vnum은 object가 load될 room의 index number(virtual number)이다. room\에 동종의 objct가 존재하면 이 명령은 무시된다. 플레이어다 있어도 무시된다.

cooment는 주석문이다.

D : room-vnum은 리셋할 door가 있는 room의 index number(virtual number)이다.

door:number는 door가 위치한 방향 번호이다.

state는 door를 리셋하는 상태를 나타내는 비트-플래그이다.

comment는 주석문이다.

R : room-vnum은 randomizing할 door가 있는 방번호이다.

last-door는 door의 출구 number이다. 명령어가 실행되면 0부터 last-door사이의 값으로 출구가 세팅된다.

comment는 주석문이다.

· Reset 섹션은 S로 끝나야 한다.

· 예제 파일

아. 종묘너구리 Action Graphic Format

너구리가 특정 행동을 하거나 자세를 취하게 되면 클라이언트는 너구리의 행동을 직접 그림으로 보여준다.

· 규 격 : 크기 30 × 20

· 포 맷 : gif

비트플래그앞에는 RAG_를 접두어로 붙인다.


제 4 장 결론 및 향후 연구과제

제 1 절 연구과제 개요

본 연구과제의 목표는 다가오는 21세기 정보화 사회를 대비해 초고속 정보통신망에서 운영될 청소년 교육용 멀티유저 네트워크 게임을 개발하는데 있었다.

본 연구과제는 초고속정보통신망을 기반으로 새워질 정보통신사회를 청소년들이 가장 좋아하는 게임을 즐기는 과정에서 실질적이며 구체적으로 깨달을 수 있다고 생각했으며, 기존 게임과는 차별적인 교육적 효과까지 제고하는 게임을 개발하고자 하였다.

따라서 본 연구과제는 컨텐츠 구성 측면과 멀티유저 네트워크 게임 엔진이라는 기술적 측면을 동시에 만족하는 결과를 얻기 위한 작업이었으며, 이를 통해 얻고자 하는 목표는 다음과 같았다.

· 초고속정보통신망을 활성화하는 멀티유저 네트워크 게임 엔진 개발

· 게임을 통해 청소년 교육 효과를 배가시키는 새로운 모델 개발

제 2 절 연구 결과

위의 연구 목표에 따라 과제를 수행한 결과 얻는 결과물은 다음과 같다.

· 멀티미디어 정보를 지원하는 멀티유저 네트워크 게임 설계 및 구현

· 게임 Library 제작 및 제작툴 설계 및 구현

· 청소년 교육용 멀티유저 네트워크 게임 - 종묘너구리 시제품 개발

제 3 절 향후 연구 방향

가. 기능 구현 측면

정보통신망의 급속한 발전에 따라 하루가 다르게 급변하는 정보사회에서 제품 경쟁력을 갖추기 위해서는 끊임없는 이용자 요구를 수렴할 수 있어야 한다. 현재 네트워크 게임 이용자들은 요구는 무한대의 동시 사용인구를 만족하는 게임 서비스를 요구하고 있으며 따라서 현재 구현된 분산처리기술을 바탕한 분산 게임 서버 기술은 제품화 할 수 있는 방안을 연구해야 한다.

나. 컨텐츠 구성 측면

게임 산업은 멀티미디어 산업의 총체적인 종합 산업이며 따라서 본 연구 과제인 멀티유저 네트워크 게임 엔진 또한 엔진 자체 기능으로서 부가가치를 창출하는 것은 한계가 있을 수 밖에 없다.

따라서 본 과제가 실재 이용자들에게 제품 경쟁력을 갖추고 소비될 수 있기 위해서는 다양하고 유익한 멀티미디어 컨텐츠와 결합이 이루어 져야 할 것이다.

제 4 절 연구 성과 및 활용

본 과제의 성과는 기술적 측면에서 볼 때 멀티미디어 정보를 지원하는 멀티유저 네트워크 게임을 개발한데 있으며 내용적 측면에서는 네트워크 게임을 교육 교재로 활용한데 있다.

따라서 이의 활용 또한 다양한 멀티유저 네트워크 게임을 개발하는 동시에 네트워크 게임을 소재로 한 다양한 교육 모델을 만들어가는 방안으로 활용이 이루어 질 수 있다.

부 록 : 종묘너구리 패키지 매뉴얼

가. 패키지 구성

종묘너구리 1.0 패키지는 다음의 두 파일로 구성되어 있다.

Raccoon1.0Server.tar.gz

서버 패키지

Raccoon1.0Client.jar

애플릿 패키지


나. 패키지 설치

· 서버 패키지 설치

① Raccoon1.0 Server.tar.gz 파일을 설치할 디렉토리로 복사한다.

일반적으로 usr/local/에 복사한다.

② shell에서 명령어 gzip d Raccoon1.0Server.tar.gz를 입력하여 패키지의 gzip 압축을 해제 한다.

압축해제에 성공하면 Raccoon1.0Server.tar라는 파일이 생긴다.

③ shell에서 명령어 tar xf Raccoon1.0Server.tar를 입력하여 tar 압축을 해제한다. 압축해제에 성공하면 /Raccoon이라는 디렉토리가 생긴다.

④ /Raccoon/src 디렉토리가 make 명령을 이용해 코드를 컴파일한다.

· 애플릿 패키지 설치

① Raccoon1.0Client.tar를 설치할 웹서비스 디렉토리에 복사한다.

② 위에서 주의할 것은, Raccoon1.0의 클라이언트는 Java Applet으로 만들어졌고 HTML에서 구동되기 때문에 반드시 WWW서비스가 가능한 디렉토리에 위치시켜야 한다. 일반적으로 /public_html이나 /wwwhome일 경우가 많다. 자세한 것은 시스템 관리자에게 문의.

③ 설치할 디렉토리에 복사된 패키지를 shell에서 명령어 tar xf Raccon1.0Client.tar를 입력하여 tar 압축을 해제한다. 압축해제에 성공하면 Raccoon이란 디렉토리가 생긴다.

다. 패키지 설명

· 서버 패키지 설명

압축해제가 완료된 서버 패키지는 다음과 같은 디렉토리 구조로 되어있다.

① Area 디렉토리


② Doc 디렉토리

각종 매뉴얼이 들어있는 디렉토리이다.

③ Log 디렉토리

서버 운영시 동작에 따른 로그파일이 생성된다.

④ Player 디렉토리

사용자 ID를 파일명으로 하는 사용자 데이터 파일이 생성된다.

⑤ Src 디렉토리

서버 소스가 들어있는 디렉토리이다.

실행 파일 및 object 파일도 있으며 실행 스크립트도 이 디렉토리에 있다.

· 클라이언트 패키지 설명

① com 디렉토리

클라이언트에 필요한 class 파일들이 있다.

② img, imgalign, imgcond, imgdir, imghp, imginv 디렉토리

클라이언트에서 필요한 모든 이미지들이 있다.

③ index.html 파일

Raccoon1.0Client를 실행시키기 위한 파일이다.

라. 프로그램 구동

· 서버 구동

쉘상에서 다음의 순서대로 명령을 수행한다.

① > cd Raccoon/src

② > go&

· 서버 정지

· 클라이언트 구동

JDK1.1 지원 브라우저를 실행시킨 후에 Raccoon 디렉토리의 URL을 써넣는다.

1. 본 연구보고서는 정보통신부의 출연금 등으로 수행한 초고속정보통 신 응용기술개발사업의 연구결과입니다.

2. 본 연구보고서의 내용을 발표할 때에는 반드시 정보통신부의 초고속 정보통신 응용기술개발사업의 결과임을 밝혀야 합니다.