Blog

[모션인식게임] 기본 이론 및 라이브러리 설치

이 시리즈에서는 웹캠을 이용한 모션인식 게임을 만들어보고자 한다. 다만 유명 회사에서 개발한 것과 같이 사람 그 자체를 인식해서 스켈레톤을 따오는 방식을 단기간에 구현하기에는 무리가 따를 것 같아서 마커를 사용하는 간단한 방식의 모션 인식을 구현해볼 것이다.

마커는 카메라가 인식할 수 있는 특정 패턴을 의미한다. 보통 흰색과 검은색 사각형의 조합을 사용하며, 그 종류가 매우 다양하다. 흰색과 검은색 상자 사이의 점 또는 선을 카메라가 인식함으로써 마커가 존재하는 3차원 위치를 컴퓨터가 인식할 수 있게 된다. 마커를 인식할 수 있게 하는 다양한 라이브러리가 있는데, Visual C++에서 OpenCV를 이용해 모션인식 프로그램을 구현해보고자 한다.

더 보기 “[모션인식게임] 기본 이론 및 라이브러리 설치”

[언리얼 엔진 사용기] 시작하기에 앞서

언리얼 엔진은 현재 많은 게임에서 사용되는 엔진으로, 과거와는 다른 공격적인 마케팅 전략으로 급성장하고 있는 게임 엔진이다. 현재 이 엔진은 무료 배포되고 있는데, 상업적인 이용이 있을 경우 3000달러 이상의 수익을 올린다면 그 5%를 에픽게임즈에 지급하는 방식으로 운영되고 있다.

다양한 제작사들이 이러한 언리얼 엔진을 사용하고 있다. 인디 제작자들 사이에서도 인기를 얻고 있으며 내가 사용해보기로는 다음과 같은 장점 때문인 것 같다.

  • 튜토리얼이 잘되어 있어 배우기 쉽다. (영어, 한국어, 일본어, 중국어 지원.)
  • 비주얼 스크립팅이 용이하다. (C++과의 연계는 배워야 할 것이 좀 있는 것 같다.)

첫 번째 장점으로 튜토리얼을 꼽았는데, 튜토리얼을 따라하면서 주의해야할 점이 몇 가지 있었다. 첫째로는 일부 코드가 잘못 작성되어 있다는 점인데, 예시를 보면 AFPSProjectile::OnHit의 선언부와 정의부에서의 입력인수가 서로 다르다는 것을 볼 수 있다. 둘째로는 비주얼 스크립트 연계 시 반드시 저장을 해야한다는 점이다. 이는 블루프린트가 따로 저장이 되지 않기 때문인데, 한가지 다행인 점은 자동저장 기능이 있어서 깜빡하고 저장하지 않아도 어느 정도는 복구가 가능하다는 점이다.

참고 링크

[파이썬 낙서] 행복한 수 검사기

행복한 수란 각 자릿수를 모두 제곱해서 더하고 그 결과도 동일한 과정을 반복해서 나온 결과가 언젠가 1이 될 수 있는 수를 의미한다.

예를 들어 7은 다음과 같은 계산으로 행복한 수임을 확인할 수 있다.

7 → 7^2 = 49
49 → 4^2+9^2 = 97
97 → 9^2 + 7^2 = 130
130 → 1^2 + 3^2 + 0^2 = 10
10 → 1^2 + 0^2 = 1

아래의 파이썬 코드는 입력 받은 숫자가 행복한 수인지 아닌지를 판별해주는 코드다. 더 보기 “[파이썬 낙서] 행복한 수 검사기”

Patterner 개발 노트 6

실로 오랜만에 전하는 개발 노트입니다.

이번 개발 노트에서는 저번 게임 대회 출전을 위해 더 많은 사람에게 보여줄 수 있는 데모를 만드는데 주력했습니다.

그런 고로 사운드 추가입니다!

그리고 이쁜 스플래쉬 스크린도 추가입니다!

그나저나 방학은 방학이지만, 뭔가 이상한 다른 거에 매달려 있어서 패터너는 영 작업을 못 했군요.

하지만, 2월에는 작업을 다시 시작해서 이런저런 모습을 갖춰나갈 예정입니다.

지금 당장은 그동안 문제가 많았던 로직을 전반적으로 개선하고, 스팀 및 기타 DRM에 출시가 가능하도록 게임을 정비하고 있습니다.

앞으로 많은 관심 부탁드려요!!

 

Patterner 개발 노트 5

게임 자체 로직으로는 큰 변화가 없을 수도 있지만, 다양한 효과가 많이 추가된 Patterner입니다!

큰 변화점으로는

* 점수 시스템 정비
@ 게임 오버 화면에서 오래 켜 둘 경우, 게임이 크래쉬하는 문제 해결!
@ 블록끼리 충돌해서 멈추는 현상 해결!
@ 스프라이트 대거 추가!!
@ 폭팔 및 기타 효과 추가!!
@ 이벤트 모드로 잠시 변경! 3분 안에 최대한 점수를 얻어 보세요!

네.. 사실 이것저것 많이 변했습니다.

우선 영상입니다.


달빛제 시연 때 만나요!

EP: Dodge

가만히 있을 수 없습니다. 여기 저기서 날아오는 장애물을 피해야 합니다. 점점 더 많아지는 장애물과 어려워지는 패턴 속에서 진화하는 자신을 발견하게 될 것입니다.

EP: Dodge

가만히 있을 수 없습니다. 여기 저기서 날아오는 장애물을 피해야 합니다. 점점 더 많아지는 장애물과 어려워지는 패턴 속에서 진화하는 자신을 발견하게 될 것입니다.

스크린샷

개요

EP: Dodge는 극한의 난이도의 게임이 인간을 진화시킬 수 있다는 생각에서 출발한 캐주얼 아케이드 게임입니다. 여기저기서 날아오는 장애물들의 패턴이 랜덤하게 섞여 극한의 난이도를 만들어냅니다. 여러분은 어디까지 버틸 수 있나요?

  • 랜덤하게 생성되는 장애물들
  • 다양한 장애물들의 패턴
  • 4가지 게임 모드
  • 도전과제를 달성하면 해금되는 다양한 옵션들
  • 끝을 알 수 없는 진화

Freestyle

Freestyle 모드는 wasd, 방향키, 마우스, 게임패드 등 다양한 조작방식을 이용해 사방으로 자유롭게 움직일 수 있는 게임입니다. 그만큼 장애물들의 패턴이 다양하고 복잡하며 시간이 지날수록 기하급수적으로 난이도가 증가합니다. 30초마다 방어막이 주어지며 방어막에 닿은 장애물은 사라집니다. 아래는 플레이 영상입니다.

Patterner 개발 노트 4

  • Patterner의 새로운 이름을 모집하고 있습니다! 재밌는 의견 있으신 분은 댓글로 달아 주세요!

네 번째 개발 노트입니다. 전반적으로 코드 정리가 끝나고 기능 추가를 중점으로 하고 있습니다.

우선 영상입니다.

크게 바뀐 점으로는 다음과 같습니다(0.4 버전 노트)

전반적인 코드 정리(!)
게임 스프라이트 대거 변경
콤보 기능 추가
프레임 드로잉 방식 변경
UI 재정비
콤보 기능 추가
이제 패턴을 만들 수 있는 최소 길이가 되면 UI가 바뀌는 것으로 표시됩니다!
테스트 모드 1P 고정(임시)
일시정지 추가!!!!
재시작이 게임 어느 시점에든 가능해집니다.
블럭이 없는데 안 떨어지는 문제 해결..?
블럭 스폰이 중복될 경우 이제 안 나오는 것이 아니라 옆 자리에 나옵니다.

 

우선 30일에 있을 달빛제에서 게임 시연을 목표로 제작하고 있습니다.

그럼 다음 노트에서 만나요!

Patterner 개발 노트 3

Hello, this is Recoder. After the chuseok, Korean Thanksgiving day, we have had many tasks since there were some redundancies in code. We have updated UI and graphics at the volley. You can find it out on video below.

Here are specifications of this update.

  • We have completely rewritten the game. We think we have less redundancies now.
  • We have changed graphical effects, so that the to-be-removed tiles appear clear.
  • Tiles are now fireworks.
  • Rearranged UI.
  • Implemented 1P challenge mode.

 

Vodka Developer Console 0.0.1.1 for GameMaker: Studio

Vodka Developer Console 0.0.1.1이 릴리즈 되었습니다. Wild Wild Space의 엔진 제작용으로 만든 것이지만 GameMaker: Studio를 이용하는 다른 게임에서도 사용할 수 있을 것으로 생각됩니다. CC BY 4.0 라이센스 하에서 자유롭게 사용할 수 있습니다. 리드미 파일이 소스 내부에 있기 때문에 읽을 수 있도록 따로 첨부합니다.

Vodka Developer Console 0.0.1.1

README.TXT

Patterner 개발 노트 2

두 번째 개발 현황입니다. beta 0.2 제작 후 이런저런 고칠 점(특히 코드 최적화 부분)에 신경을 좀 많이 써야 할 거 같아서 이미지와 UI도 깔끔하게 다시 바꾸는 겸사겸사 아예 코드를 엎어서 조금 깔끔하게 만들고 있습니다. 아래는 새로 정리하면서 변수 정보를 저장하고 있는 엑셀 파일입니다.(변수 이름은 혹시 모르니 캡쳐에서 빠져 있습니다)

Patterner_variables01

그래서 우선 기본적으로 급하게 기능 변경이 필요한 beta0.3으로 올린 뒤에, 지금 코드를 깔끔하게 만들고 있습니다.

그래서 이미지를 깔끔하게 정리하고 이것 저것 신경쓴 뒤에 영상과 함께 다시 게임 화면을 제대로 보여드리려 합니다! 아마 예상 시간은 약 1주일 정도 걸리지 않을까…

0.3 변경점은 다음과 같습니다.

@ 커스텀 키가 가능하도록 코드 정비
@ 코드 양 플레이어간 호환 가능하도록 최적화 완료(아마도…)
@ 쿨타임 제거
@ 패턴 인식 컨트롤 에러시 패턴 취소로 취급
@ 블럭 충돌 및 낙하 문제 해결
@ 블럭이 안 떨어지는 문제 해결
@ 재시작시 블럭 안 떨어지는 문제 해결
* Win 스프라이트를 GameOver 스프라이트로 변경…