자바로 게임을 만든다? 많은 사람들이 자바로 게임을 만든다고 하면 '그러던가...' 식의 시큰둥한 반응을 보인다. 그도 그럴것이 자바라는 언어가 '매우 느리다'는 인식이 강한데다가 게임하면 다들 DirectX를 떠올리곤 하니 자바로 만들어진 게임이래봤자 간단한 퍼즐이겠거니 하거든.

나 역시 DirectX가 아니면 화려한 그래픽은 힘들거라고 생각했던 사람이다. 자바의 그래픽 라이브러리는 객관적으로 너무나 느려서 게임 수준의 그래픽은 상상도 못할 일이다. 게임을 좋아하진 않지만 만드는 것은 즐기기에 DirectX를 쓰지 못하는 것은 무척이나 아쉬움으로 남아있었다. 

심심함에 인터넷을 돌아다니다가 Lightweight Java Game Library라는 것을 알게 되었고 그것을 통해 OpenGL을 알게 되었다. OpenGL 이게 뭐야 했는데 알고보니 DirectX 만큼이나 유명한 거였더라고. (사실 잘 알아보진 않았다)

일단 내가 할 줄 아는 언어로 OpenGL을 쓸 수 있다는데에 끌렸고, 이게 기대만큼 빠른 그래픽을 보여주는데에 끌렸다. 자바 SDK의 기본 그래픽 라이브러리로는 절대 낼 수 없는 속도!! 게다가 기본 연산이 3D다 보니 생각보다 재밌는 일이 많다. 전에도 이야기했지만 정육면체를 만들어서 사방에 누드 사진을 붙여놓고 빙글빙글 돌리는 일이 가능하다고!!

신나게 몇일 달려서 아주 간단한 게임을 만들었다. 일명 똥피하기!! 똥 맞아도 죽지 않으며 똥이 다 떨어졌다고  끝나지 않는 신비로운 게임이다. (응, 미완성이야) 직업병 때문에 간단하게 시작했던 프로그램이 자꾸 프레임워크 쪽으로 기울어지고 있어서 이쯤에서 그만 두기로 마음먹었다. 직업병에 의한 설계 컨셉은 아래와 같다.


Invader 설계 컨셉
  • 에이전트 지향 아키텍처
  • 영화 촬영장을 모방하라
    • Actor - Hero, Enemy, HeroMissile
    • ActorManager
    • Behavior - SequenceBehavior, HeroBehavior, EnemyBehavior...
    • Event
    • Director - GameDirector, VisualEffectDirector
    • Rule - HeroMissileRule
    • Effect - ParticleEffect, SparkEffect


Invader를 실행하기 위해서는 JRE 6가 설치되어 있어야한다. (JRE 5에서는 테스트해보지 못했다) 조작 방법은 간단하다. 방향키로 움직이고, 왼쪽 컨트롤 키로 미사일을 쏘며, 왼쪽 쉬프트를 누른 상태에서 좌우 방향키를 누르면 맵이 회전한다. F11 키는 전체화면 모드 - 창모드로 전환한다.


사용된 이미지는 http://design.funny4u.com/ 에서 긁어왔음을 밝힌다.
TAG ,
이 글의 트랙백 주소는 http://semix2.tistory.com/trackback/278 입니다
  1. 꼬맹쓰 2007/05/15 01:48 댓글주소 수정/삭제 댓글쓰기

    옷.. 멋지삼 ^^b