E D R , A S I H C RSS

실시간멀티플레이어게임프로젝트

리얼타임 멀티 플레이어 게임을 만드는 프로젝트

교육적 목적과 동시에 과 친구들과 함께 즐길 수 있는 유익 게임을 만드는 목적도 있다. 또, 동기, 선후배들과 교육적인 프로젝트를 "즐겁게" 할 수 있는 틀을 제시다.

공지

10월 11일 (토)는 마지막 모임입니다.
너무 늦게 말씀드려 죄송하지만 혹시 토요일 오후에 하는건 안 될 까요? 학교 보강수업과 시험 때문입니다~~ -지용
----

토요일(9월 27일) 오전 10시 30분에 두번째 모임을 갖습니다. 준비해 오실 것은:
  • 자기 팀에서 기획 게임의 뼈대. 플레이 가능하고 최소 어느 정도의 재미는 있어야 함.
두번째 세미나에서 하게 되는 것은:
  • 각 팀의 게임 발표 (소스를 설명하는 것이 아니고 게임 자체, 예컨대 플레이 방법 등을 설명)
  • 팀을 바꿔서 게임 플레이
  • 각 팀은 다른 팀의 게임에 가지씩 기능 추가
  • 각 팀의 소스 구경 및 커멘트, 토론
  • 투표를 통해 게임을 하나 선택
시간이 되면 AspectOrientedProgramming을 현 프로젝트에 적용하는 방법을 알려드립니다.
load balacing server 같은 걸 만들수 있는 건가..? -- erunc0
혹시 축구에 관심이 있다면 CM을 참고하세요. 신문 기사 기본적으로는 텍스트로만 이뤄지는 게임입니다.

개요

제가 두 번 정도 참가해서 도움을 드릴 수 있습니다. 파이썬으로 실시간 멀티 플레이어 (전략) 게임을 만들 것입니다. 가까운 목표는 컴공과학생들이 즐길 수 있는 집단 게임입니다(동시 플레이어 100명 이상) -- 제로페이지 서버에 설치해서 서비스할 것입니다.

파이썬의 기초 문법만 알면 강의에 참여할 수 있을 겁니다. 제가 말하는 기초란, if문, for문, 기초 데이타형(리스트, 터플, 사전, 문자열, 정수 등), 함수 정도에 대 지식입니다.

제작할 게임은 컴퓨터 그래픽을 사용하지 않습니다. 게임의 목표는 화려하거나 중독성 있는 게임이 아니고, 상상력을 자극하고 즐거운 게임입니다. 복잡하지만 단순 게임이 아니고, 단순하지만 복잡 게임입니다.

강의 첫날 약 1-2시간만으로 당장 플레이해볼 수 있는 게임이 나오도록 할 것입니다. 개발은 팀 단위로 나눠서 할 예정이며, 두번째 날 세미나 시작 직전에 팀 별로 개발 게임을 발표합니다. 그리고 그중에서 투표를 통해 가장 잠재력이 큰(무엇보다 재미있을 것) 게임을 고릅니다. 그리고 이제는 참가자 전원이 하나의 게임을 함께 개발합니다.

참가자

인원이 찼으므로 고정하겠습니다. 이 프로젝트에 참가하기로 하신 분들은 선착순으로 뽑힌 것이고, 그만큼 다른 분들의 기회를 박탈 것이니, 그에 상응하는 어떤 의무와 책임을 갖고 있습니다. 그렇다고 너무 부담 느낄 필요는 없습니다. 이 의무와 책임은 프로젝트에 충실히 참여해서 나중에 주변 사람들과 함께 자신이 얻은 것을 곱하기 하면 되는 것입니다.

director: JuNe
actors/actresses: 황재선, 장창재, 나휘동, 문원명, , 임민수, 박정훈, 김지용, 강희경, 곽세환, 노수민

타임라인

대충의 타임라인은 다음과 같습니다.

  1. 첫번째 세미나
    기본적인 개념과 프레임워크를 설명해 드립니다(최초 프레임워크는 director가 직접 만들어 제공합니다). 그 자리에서 간단 실험을 몇가지 해봅니다. 팀을 나눕니다. 제가 선정 단순 게임을 각 팀이 병렬로 개발합니다. 그 결과물에서 일종의 프레임워크를 추출해 냅니다. 다음 시간까지 팀별로 새로운 게임을 선정해서 개발해 와야 합니다.
  2. (일주일 뒤) 두번째 세미나
    지난 일주일간 각 팀별로 개발 게임을 발표합니다. 팀을 바꿔서 게임을 플레이해봅니다. 그리고 그 게임(다른 팀이 만든)에 딱 가지씩 기능 추가를 해서 개선합니다. 이때 원래 게임을 만든 사람과 소통할 수는 없습니다. 각자의 작업을 서로 비교해 보고, 경험을 이야기 합니다. 마지막으로 투표를 해서 게임 하나를 고릅니다. 선택되지 못 팀의 아이디어에서 가져올만 것이 있다면 갖고 오는 등 아이디어 회의를 합니다. 계획을 세웁니다.
  3. (일주일 뒤) 내부 시연회
    지금까지 만든 게임으로 내부 게임 대회를 엽니다. 이전의 팀별로 길드를 만들어 팀 대항 게임을 할 수도 있습니다.
  4. (일주일 뒤) 게임 공개
    제로 페이지 서버에 게임을 올리고 일단은 컴공과 학생이라면 모두 게임을 즐길 수 있게 합니다. 간단 게임 설명서도 있어야 할 것입니다.

위 과정을 거치면서 개발자들은 늘 직접 게임을 하게 됩니다. 심지어는 개발 첫번째 주에서도 게임을 해야 합니다. 이 경험을 반영해서 게임을 진화시켜 나갑니다.

얻을 수 있는 것

약 3주간의 경험을 통해 얻을 수 있는 것은:
  • 파이썬 언어에 대 스킬, 지식 등
  • 특정 언어와 플랫폼을 떠나 얻을 수 있는 것:
    • 여러명과 함께 개발하는 노하우
    • 다른 사람의 코드를 읽는 방법
    • 온전히 이해하지 못하는 코드를 고치는 방법
    • 개발 것을 조금씩 다듬고 살을 붙이고 진화시켜 나가는 방법, 그 기술
    • 상상력을 구체화, 현실화하는 능력
    • 성취감
    • 학과 전용의 멀티플레이어 게임(새로운 전통!)

등입니다. 여기에서 파이썬이라는 언어에 대해 얻는 것은 다른 것들에 비해 상대적으로 그다지 크지 않을 것입니다. 이번 경험은 어떤 언어이냐가 중요하지 않습니다. C++이나 자바를 사용할 수도 있다는 말입니다. 하지만 그렇게 하지 않은 이유는, 그런 언어들을 사용하면 "언어(혹은 라이브러리 API)"라는 문제가 더 커져서 소위 배보다 배꼽이 커지는 현상이 생기기 쉽기 때문입니다.

--JuNe
----
실시간 멀티 플레이어 게임이라니 관심이 갑니다..+_+ -Leonardong
헉.. 파이선으로 그런 네트워크 플레이가 가능하군요.~ 저두 배우고 싶어요~ - 민수
----
이 게임을 만들 때에는 (다른 게임을 만들 때와 마찬가지로) 도메인 지식이 있으면 유리합니다. 예를 들면, 생물학 모델(예컨대 진화)에 대 이해, 금융시장(예컨대 주식)에 대 이해, 역사(예컨대 임진왜란)에 대 이해, 물리학(예컨대 고전역학)에 대 이해 등. --JuNe
----
스케쥴을 잡아야 하겠습니다. 공식적인 전체 모임은 총 4번이 있습니다. 모두 일주일 간격으로 있습니다. 번 만날 때에 대략 2시간 30분 정도 지속됩니다. 4번째 공식 모임은 간단 파티와 프로젝트 되돌아보기를 합니다. 저는 첫번째, 두번째, 그리고 마지막에 참여할 수 있을 것 같습니다.
----
테스트 만들기
~cpp 
import unittest

class Calculator:
    def plus(self, a, b):
        return a + b
    
class CalculatorTestCase(unittest.TestCase):
    def testPlus(self):
        c = Calculator()
        self.assertEquals(5, c.plus(2,3))
        
if __name__ == '__main__':
    unittest.main()
----
프로젝트분류
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:19
Processing time 0.0241 sec