슈퍼마리오 멀티플레이어 개발 후기

coolspeed

왓 스튜디오 팀 합류 과제로 게임제작 미션을 받았다.

나는 과제로 “슈퍼마리오 멀티플레이어 게임”을 만들었다:

EnemyCD.gif

과제 결과물을 왓 스튜디오의 허락을 받고 소스코드를 Github 에 공개하였다:

https://github.com/coolspeed/MarioMultiplayer

관심 있으신 분들은 별표 하나씩 찍어 즐찾해주시길 부탁립니다.

게임 룰: 위의 GIF 움짤  그대로. 먼저 상대방을 밟는 쪽이 이긴다.

 

과제가 1차, 2차로 나뉘는데 1차에서는 싱글 플레이어 슈퍼마리오를 만들었고 2차에서는 그것을 멀티플레이어 게임으로 발전시켰다.

최종 클라 Java (Processing) 1500 줄, 서버 C# 22줄로 짜여졌다.

클라

Processing 으로 만들었다. 왜?

  1. Processing 이 좋아서. (유쾌한 시각적 프로그래밍)
  2. Unity 쓸줄 몰라서.
  3. 다른 엔진도 쓸줄 몰라서.
  4. 엔진부분이 더 재밌어서.
  5. 웹에다 배포하고 싶어서. (P5.js 를 통하여. 하지만 망했다. 그냥 일반 Processing 애플리케이션처럼 exe 파일로 빌드했다.)

서버

단순한 릴레이 서버.

big_mirror.png

넷코드

ZeroMQ 를 네트워크 라이브러리로 사용했다.

Continue reading

새로운 C# 게임 엔진 Xenko 소개

imays 님 소개로 알게 되었는데, Silicon Studio 에서 Xenko 라는 새로운 C# 게임 엔진을 발표했다고 한다. 모바일을 포함한 크로스 플랫폼 게임 엔진이다.

라이센싱

한줄 요약: 풀 오픈 소스에 무료.

보다 자세하게는 듀얼 라이센싱:

  1. 엔진 자체를 뜯어고치지 않으면 무료.
  2. 엔진 자체를 뜯어고쳤으면 게임도 소스를 오픈해야 함.

엔진도 뜯어고치고 소스도 오픈하기 싫으면 가격은 … 흠 면담..

피쳐

게임 개발자 커뮤니티에서 Unity 유사 엔진이라고 소개되던데, C# 언어의 요인과 에디터 UI 등등의 요인도 있겠지만, 이렇게 소개되는 주요한 원인은 아무래도

  1. 에디터에서 에셋 편집후 바로 리얼타임으로 보임.
  2. 에디터에서 에셋 자동 임포트 및 컴파일.
  3. 에디터에서 게임을 빌드하고 실행시킨다.

라는 점들에서가 아닐까 한다.

Unity 와 달리 .Net 4.6 과 C# 6 을 사용할 수 있다.

엔진 구조

엔진 자체, 물리 시스템, 파티클 시스템, 입력 시스템, UI 시스템, 오디오 시스템 … 엔진 자체를 전부 C# 으로 만듬.

물론 스크립팅 (콘텐츠 개발) 도 C# 으로 한다. Visual Studio 프로젝트로 알아서 싱크되어 VS 로 개발할 수 있다.

모바일 배포에는 Xamarin 라이센스가 필요하다고 하는 것을 봐서는 자마린에 기반한 것으로 보임.

무엇을 근심하는 지 안다. 그럼 엔진을 C# 으로 짰으면 느리지 않겠냐?

Continue reading