View on GitHub

Cham-cham-cham

참참참 with Oculus Rift + Leap Motion

Download this project as a .zip file Download this project as a tar.gz file

참참참 with Oculus Rift + Leap Motion

Video Screenshot

개요

오큘러스 리프트로 구현한 참참참이다. 게임은 3개의 sequence로 구성된다. 참참참 룰에 대한 자세한 설명은 생략한다

빌드/실행 방법

Troubleshooting

Post-mortem

Team

팀원의 실명/이메일/트위터를 왭에 까기는 미묘해서 상수로 썼다. 팀원은 총 3명이다

팀원 아닌 인원 1명이 도움을 줫다

Project History

2013년 6월 11일

github 기록상 최초의 커밋이 등장한다. 이후 8월 11일까지 짬짬히 다음을 삽질했다

2013년 8월 11일

집에서 뒹굴다가 충동적으로 vrjam신청. 팀원 2명은 게임잼 참가중일떄 PM이 몰래 질러버림ㅋ

2013년 8월 15일 목요일 - 광복절

처음으로 제대로 모여서 기획회의를 진행했다. 기존에 진행하는 기획으로는 VRJam 기간내에 구현하는것이 불가능하기에 기획을 바꾸기로 했다.(이 시점에 기존 기획으로 게임관련 구현을 한게 없어서 별 문제없었다) 참가가 기획의 요구사항은 다음과 같다.

게임 아이디어를 생각하기전에 괜찮은 오큘러스 데모, 기타 게임을 구경했다.

참고자료를 같이 보고 잡담하다가 뜬금없이 TO가 굴러다니는 립모션하고 합쳐서 참참참을 만들면 재밌다. 라고 해서 다들 ㅋㅋㅋㅋ하다가 뜬금없이 결정됨. 기획을 확정하고 뒹굴뒹굴하다가 해산했다

이날 밤에 작업한 내용은

2013년 8월 16일 금요일

PD가 휴가를 질렀다. 게임 기본 코딩을 이날 끝냈다. 현재 구현 상태는

밤에는 TO가 립모션 테스트 코드를 작성했다

2013년 8월 17일 토요일

BM 집에 모였다. 오늘 구현한 내용

2013년 8월 18일 일요일

CV의 지원을 받아서 게임에 사용할 효과음을 녹음했다. PD이 집에서 게임하는 동안 BM이랑 TO가 모여서 작업을 했다

2013년 8월 19일 월요일

효과음을 게임에 집어넣었다. 게임코드는 이날로 거의 완성됐다. alut + mac에서 초기화 버그 발견

2013년 8월 20일 화요일

키넥트로 활용한 모션캡쳐 데이터를 캐릭터 애니메이션에 합쳐서 X format로 export하는데 실패했다. 이것과 관련된 삽질은 며칠전부터 해왔지만 이날 완전히 포기함. 그리고 정신이 무너지고 프로젝트가 무너지고....

2013년 8월 21일 수요일

외부 발표 자료 준비 시작

2013년 8월 22일 목요일

외부 발표 자료 준비 시작

2013년 8월 23일 금요일

외부 발표. 이후 N일동안 포스트모템/게임 플레이 데모 영상/릴리즈 준비를 위한 리소스 정리 등을 작업함

개발 관련 Post-mortem

좋았던점

코드와 리소스를 다른 저장소로 관리했다. 코드는 github로 관리하고 리소스는 구글 드라이브를 이용했다. 코드 저장소가 미친듯이 커지는 문제를 막을 수 있었다.(프로젝트 도입 초기에는 이게 없어서 50MB짜리 wav파일이 github에 올라가 있었다)

res_build.py라는 안드로이드의 R.java와 비슷한것을 C/C++용으로 만들어서 사용했다. 리소스 폴더에 존재하는 리소스 파일-상수의 테이블이 있는 헤더파일을 만드는 스크립트이다. 게임 안에서 "res/texture/some.png"를 사용하는 대신 res::texture::SOME_PNG라고 사용할수 있는게 편했다.

슬라이드 걸즈 리소스를 사용했다(모델/배경음악) skybox 이미지도 적절히 구해서 사용했다. 이거라도 없었으면 게임이 진짜 없어보였을거다.

오큘러스 리프트와 립모션을 동시에 사용한 데모를 만들었다. 이런 미친짓을 저지른 데모가 몇개나 있을까? 플레이해본 소감은 좋은 시도였으나 제대로된 인식이 어렵다. 오큘러스 뒤집어쓰면 립모션 위치가 안보인다

맨날 쳐노느라 바쁜 직장인 3명이 모여서 제한된 시간안에 뭔가를 만들었다(!)

cmake를 사용했다. irrlicht engine의 경우는 그런거 솔루션 파일을 8벌이나 만든다(!) vs7/8/9/10/11 + dev-c++ + codeblock + makefile. -_-...... irrlicht engine같은 미친꼴은 볼지 않았다

quake console같은걸 만들어서 달았다. irrlicht console 개발단계에서는 있으니까 여러모로 유용하더라.

F2을 누르면 오큘러스모드/일반모드로 렌더링을 바꿀수 있도록 했다. 개발할때 유용하더라

사운드 라이브러리를 자작하다가 귀찮아서 cocos2d-x안에 있는 CocosDehension을 뜯어다 사용했다. openal도 지원하는데 원래 만들면 사운드 라이브러리가 alut기반이라서 몇줄만 고치니까 잘 돌아가더라

일리히트라는 게임엔진을 사용한거. 추가 라이브러리 없이 그냥 대충 돌아간다.

일리히트는 크로스 플랫폼 엔진이다. 덕분에 vs빠돌이인 PD와 맥유저인 BM이 같이 작업할수 있엇다.

나빴던점

irrlicht engine이 애니메이션으로 X 포멧을 지원한다길래 추가적인 테스트 없이 그냥 진행했다. 나중에 멀쩡한 X포맷용 익스포터가 없다는 것을 알고 절망했다. 게다가 irrlicht engine의 X format Reader도 그렇게 멀쩡하지는 않더라.

오큘러스 관련 기능을 대충, 혹은 안 만들었다. 영점 초기화라든가, 참참참 인식하는 방법이라든가....

좋앗던점 + 나빴던점

git submodule을 도배했다. 모듈을 고칠 때는 보통 그 모듈 자체에 에러가 있는 경우여서 재사용을 생각해보면 모듈로 쪼개 놓은 것이 좋았던 듯 함. 나쁘다고 느낌건 라이브러리를 고치지 않고 사용만 할라고 했더니 결국은 라이브러리를 고쳐야되더라. 근데 모듈로 쪼개놓으면 귀찮...

c++11을 적극적으로 사용했다. 개발 환경이 windows/mac이어서 clang과 vs12를 썻다. 근데 두개의 C++11 지원범위가 달라서 좀 귀찮았다. 하지만 역시 C++11이 안쓰는것보다 있는편이 편하다

아쉬운점

2013/06/11부터 이어지는 기간동안에는 기술삽질만 했다. 게임과 직접 관련된 실제 결과물이 없다(하지만 나중에 기획을 엎엇지!)

2013/08/15 ~ 2013/08/18 외에는 전부 원격으로 작업했다. 그래서 소통에 어려움을 느꼈다.

오큘러스 데모는 시연하기 어렵다. 시연자 모니터+프로젝터+요큘러스 전부 보여야하는데 노트북으로 이런 사치스러운게 될리가.... 나중에 추가 구현을 한다면 네트워크를 집어넣어서 시연용/발표용 컴퓨터 각각에 똑같은 화면이 보이도록 하는건 어떨까?

진행이 붕 떠있었다. 언제까지 뭘 할지, 우리가 뭘 만들지에 대한 자세한 계획이 없었다. 프로젝트 계획은 6월인데 맨날 채팅으로만 모여서 떠들다가 진짜로 얼굴본게 8/15인거에서 말 다했지.. 그래서 그런지 TO가 작업한 분량이 적다. 좀더 체계적으로 굴렸으면....

프로젝트 마무리가 부실하다. x포맷 앞에서 절망하고 GG를 쳐서 더이상 할 의욕이 안나더라. 이게 다 X 포맷때문입니다. 까려면 마소를 깝시다.

디버깅 관련 도구는 공들여 만들었는데 막상 쓴거는 텍스트 출력밖에 없다

발표 관련 Post-mortem

좋았던점

그런거 없다

나빴던점

NEXT?

irrlicht engine을 개조없이 그냥 갖다쓰는건 무리라는걸 확인했다. 위에서 느낀 문제점을 해결하는 방향으로 엔진을 만들기로 했다