반응형

개발이야기 13

게임을 업데이트 하면서 느끼는 것들...

벌써 만든지 2년된 폭격 방어자에 대한 3번째 업데이트를 하면서 느끼는 것들에 대해서 이야기 하려고 합니다. (물론 1번은 단순 안드로이드 SDK 업데이트 였으니 실제로는 2번째 업데이트입니다.) 나만의 게임을 처음 만든다고 했을 때가 몇 년전이었는데 그 때는 정말로 무언가 처음부터 끝까지 만든다는 설레임이 가득했던거 같습니다. 하지만, 실제로 게임을 해본 사람들의 냉정한 평가 속에 한동안은 여러 게임을 이번에는 단순 프로그래머가 아닌 게임 개발자로서 다양한 관점으로 살펴보았던거 같습니다. 덕분에 게임 관련 글을 써도 프로그래머적인 시각보다는 기획자나 그래픽 디자이너의 시각에서 더욱 살펴보게 된거 같습니다. 1인 개발로 이런 저런 작업을 다하다보면 정말로 다양한 롤의 관점에서 게임을 보게 됩니다. 그러다..

개발이야기 2024.02.03

나만의 프로젝트(My Own Project) 앱을 개발한 후에...

나만의 프로젝트는 ios, iPhone용 개인 프로젝트 관리 앱입니다. 프로젝트 관리를 위한 앱이지만 팀단위의 협업에 최적화된 프로젝트 관리가 아니라 개인의 프로젝트 관리에 초점을 맞춘 앱입니다. 이 앱은 다양한 프로젝트를 정의하고 정의된 프로젝트에 따라서 할 작업들을 정의하고 작업에 따라 할 일들을 정의합니다. 그리고 할 일들의 진행 상태를 관리합니다. 앱은 이렇게 정의되고 관리되는 프로젝트의 진행상황을 한눈에 보게 해줍니다. 필요 시 텍스트로 변환하여 다른 프로그램에서 데이터를 편집해서 사용하거나 백업도 가능합니다. 실제로 이 앱도 개발 중인 이 앱의 베타 버전을 사용하여 개발 후반 부에는 개발이 관리되었습니다. 이번 앱은 이전에 개발한 폭격 방어자와는 다르게 광고를 살짝 넣은 무료 버전으로 출시하였..

개발이야기 2022.10.12

DirectX 9로 만든 데모: Nine Balls

DirectX 9로 만든 데모로 제목은 Nine Balls입니다. 특별한 의미는 없고 9개의 볼이 화면의 중심에 나오기에 제목을 그렇게 지었습니다. 오래 전에 취업용으로 P2P엔진 데모로 만들었던 것이 시작이었습니다. 이 글을 읽은 분들은 프로그래밍 공부 어떻게 하시나여? 이 데모는 간간히 3D 프로그래밍을 공부하면서 배운 것을 응용하여 적용하면서 확장된 데모입니다. 즉 3D 프로그래밍 학습용으로 만든 데모입니다. 서버 프로그래머여서 시간날 때 간간히 공부하다보니 다이렉트X가 9에서 11로 그리고 최근에는 12로 옮겨가는 추세여서 조금은 예전 프로그래밍을 한 거 같은 느낌도 듭니다. 하지만 3D를 공부하면서 느낀 점은 API에 집중하기보다는 관련 알고리즘이나 수학을 공부하는 것이 어떤 API를 사용하는가..

개발이야기 2022.08.14

폭격방어자 ver 1.1 업데이트

폭격방어자를 1.1로 업데이트 했습니다. 1인 개발로 만들었는데 유료라서 그런지 게임의 재미가 떨어져서 그런지 판매량이 절망수준이었습니다. 나름 일정기간 순위차트에 들었다는 것만이 위안이 되었습니다. 이번 업데이트는 그런 고민 속에서 만든 것이었습니다. 많이 플레이 해주기를 바라며 유료 가격도 반으로 줄였습니다. 다운로드 수가 적으니 유저의 전반적인 반응을 살피기는 어려웠습니다. 결국 지인들이 플레이 해보고 들려준 이야기와 비슷한 여러 다른 게임들을 해보며 느낀 점을 바탕으로 게임을 일정부분 재구성하였습니다. 또한 다양한 게임 아이디어를 새롭게 적용하여 기존 버전과는 조금 다르게 좀 더 치고 받는 성향의 게임이 되도록 개발하였습니다. 게임을 만드는 사람의 마음일 수도 있겠지만 무언가 부족한 기존 버전을 ..

개발이야기 2022.06.17

게임기획: 게임 난이도 조절 팁

잘 만든 게임의 몰입의 재미를 만드는 최고의 요소는 게임 난이도 일 것입니다. 아무리 잘 만든 게임이라고 해도 난이도가 너무 쉽거나 어려우면 게임의 재미를 느끼기 힘듭니다. 그래서 보통 게임들은 여러 난이도를 제공하기도 합니다. 게임난이도는 실제로 게임을 만들 때 가장 만들기 어려운 부분이기도 합니다. 이럴 때 사용할 만한 팁을 하나 말할까 합니다. 게임난이도를 조절할 때 보통은 테스트 스테이지를 만들 수 있을 것입니다. 이럴 때 속도, 공격력, 방어력 등등의 난이도를 만드는 요소들을 최고 수치로 요소별로 테스트해 봅니다. 그리고 해당 요소들을 가지고 게임에서 최고로 가져갈 수 있는 난이도 수준의 수치를 정합니다. 이후에는 개별적으로 테스트한 난이도를 조합하여 테스트를 해보고 최종 수치를 정합니다. 이렇..

개발이야기 2022.06.17

SPA 웹 #2: REST API Server: 노드(Node.js) vs 스프링부트(Spring Boot)

들어가면서 이 글은 SPA 웹 #1: Vue.js + REST API Server에서 이어지는 글입니다. REST API 서버를 노드(Node.js)와 스프링부트(Spring Boot)로 몽고DB를 이용하여 구현하여 보았습니다. 몽고DB를 이용한 것은 만들고 있는 시스템트레이딩 프로그램이 몽고DB를 이용하고 있기 때문입니다. 워낙 기술적으로 유명한 것들이라 기술적 호기심으로 두 개의 기술로 다 구현하여 보았습니다. 어떻게 보면 이번에 만든 것이 간단한 것이라 기술적 프리뷰로 어느쪽으로 계속 개발할지를 알아보는 프로토타입의 의미도 있었습니다. REST API를 이용하는 부분은 스크린샷의 1, 2, 3부분의 데이터 입니다. 노드(Node.js) 기본적으로는 앱 서버로 많이 이용되는 듯 보였습니다. 참고로 서..

개발이야기 2022.05.03

SPA 웹 #1: Vue.js + REST API Server

들어가면서 현재 만들고 있는 시스템 트레이딩 프로그램은 클라이언트와 서버를 C++로 만들고 있습니다. C++로 만들고 있다보니 간단한 시뮬레이션 조회를 만드는 것도 많은 시간을 필요로 합니다. 이런 생산성 문제를 해결하기 위하여 간단한 데이터 조회는 웹과 REST API 서버를 이용하여 빠르게 개발하려고 하였습니다. 이와 같은 생각으로 구성한 것이 Vue.js + REST API서버 조합이었습니다. 솔직히 이쪽 기술은 깊게는 잘 모르다보니 실제로 구현하면서 많은 것을 배우게 되었고 이글은 배운 내용과 최근의 개발 흐름에 대한 것입니다. Vue.js 처음에는 너무 유명해서 구현시 자바스크립트 라이브러리로 사용하려고 했는데 배우고 사용하다 보니 일반적인 자바스크립트 라이브러리가 아니라서 결국 Vue.js +..

개발이야기 2022.05.02

폭격방어자 포스트모템 #5: 기타

최근 1년간 폭격방어자(영문판: Bombing Defender, 일어판: 爆撃の防御者)란 게임을 개발하였습니다. 게임은 터치로 하는 모바일 슈팅 게임입니다. 경험을 해보니 1인 개발은 정말로 다양한 역활로 할게 많습니다. 물론 각 역활을 깊게 들어가지는 못하여 전문가로서의 한계는 있습니다. 하지만 각 부분이 느끼는 다양한 희노애락을 느낄 수 있었습니다. 늘상 새로운 툴을 배워서 써야하고 새로운 분야에서 새로운 것을 만들어야 한다는 것은 고통의 연속이었습니다. 반대로 그걸 해결하고 게임이 완성되어 가는 것을 보는 것에서 보람과 만족감을 느낄 수 있어 좋았습니다. 무언가 전체적인 과정을 혼자 만들면서 느끼는 행복은 한 분야의 전문가로서 만들면서 느끼는 그것과는 조금 다른 느낌이었습니다. 게임은 종합 예술입니..

개발이야기 2022.02.21

폭격방어자 포스트모템 #4: 그래픽과 사운드

최근 1년간 폭격방어자(영문판: Bombing Defender, 일어판: 爆撃の防御者)란 게임을 개발하였습니다. 게임은 터치로 하는 모바일 슈팅 게임입니다. 해당 게임은 풀HD(1920x1080)를 기준으로 만든 게임입니다. 모바일 기기의 해상도가 워낙 다양하여 처음에 어느 해상도로 기준점을 잡을까 고민하다 가장 많이 쓰는 해상도인 풀HD로 잡았습니다. 모든 리소스는 풀HD를 기준으로 작성되었습니다. 움직이는 작은 물체와 같은 경우는 상관없는데 배경같은 경우는 해상도 변화에 따라 약간의 프로그래밍 작업을 필요로 하였습니다. 저해상도와 같은 경우는 별로 상관없는데 16:9의 풀HD 해상도와 비율이 많이 틀려지는 경우에는 가변 해상도 레이아웃이나 배경의 변화를 체크하여야 했습니다. 거기에 최악의 경우 풀HD..

개발이야기 2022.02.20

폭격방어자 포스트모템 #3: 프로그래밍

최근 1년간 폭격방어자(영문판: Bombing Defender, 일어판: 爆撃の防御者)란 게임을 개발하였습니다. 게임은 터치로 하는 모바일 슈팅 게임입니다. 해당 게임은 유니티로 개발하였습니다. 처음 파일럿 데모로 프로그램을 작성한 뒤 언리얼과 코코스 2D로 개발할까도 생각해 보았습니다. 언리얼은 살펴보았을 때 만들려는 게임은 2D인데 2D보다는 3D에 적합해보였습니다. 또한 언리얼은 전반적인 엔진의 느낌이 회사에서 개발하는 AAA급 게임에 적합하여 보았습니다. 1인 개발하는 입장에서 언리얼 수준의 그래픽을 만들어 내기는 힘들어 보였습니다. 코코스 2D와 같은 경우는 당시에 유니티를 유튜브로 빠르게 익히는 중이라 한글 유튜브 관련 좋은 자료가 없는게 아쉬웠습니다. 코코스 2D는 모바일 2D에 가장 강력하..

개발이야기 2022.02.19

폭격방어자 포스트모템 #2: 기획

최근 1년간 폭격방어자(영문판: Bombing Defender, 일어판: 爆撃の防御者)란 게임을 개발하였습니다. 게임은 터치로 하는 모바일 슈팅 게임입니다. 게임계에서도 일했지만 게임 기획이라는 것을 처음 해보았습니다. 1인 개발이고 빠르게 개발하기 위해서라기 보다는 귀찮아서 따로 문서를 남기지는 않았습니다. 대신 프로그래머고 1인 개발을 하다보니까 기획서 대신 기획한 내용을 바로 바로 데모로 작성하였습니다. 일종의 데모 게임으로 돌아가는 기획서라고 할 수 있겠습니다. 실제로 만든 게임은 데모용 데이터 파일을 먼저 만들었습니다. 해당 데이터는 실제 게임처럼 난이도가 아닌 적 비행기의 패턴과 나오는 그룹 형태에 따라 스테이지가 구분되어 있습니다. 실제 게임은 해당 데모의 스테이지들을 응용하여 난이도에 따라..

개발이야기 2022.02.18

폭격방어자 포스트모템 #1: 1인 개발

최근 1년간 폭격방어자 (영문판: Bombing Defender, 일어판: 爆撃の防御者) 란 게임을 개발하였습니다. 게임은 터치로 하는 모바일 슈팅 게임입니다. 게임 프로그래밍을 익힐겸 유니티 관련 강좌를 보고 슈팅 관련 습작을 만들다가 아이디어가 떠올라 거의 1년간 만든 게임입니다. 기획, 그래픽, 음악, 프로그래밍을 모두 담당한 1인 개발로 만들었습니다. 특징적인 것은 몇 가지 프리 이미지와 효과음을 제외하고는 외주나 에셋 구매 없이 순수 1인 개발에 가깝게 개발하였다는 것입니다. 말로만 듣던 1인 개발을 실제로 해보니 몇 가지 긍정적인 점이 느껴졌습니다. 우선 게임 개발을 보는 시야가 넓어졌습니다. 회사에서 팀으로 개발할 때는 전문 분야 위주로 개발하다보니 관련 분야는 깊이 있게 이해하게 되지만 그..

개발이야기 2022.02.16

만들고 있는 주식 차트 컨트롤

기능 다중 라인 차트 - 색 및 선 굵기 지정 가능 다중 주식 차트(일본식) 컨트롤 크기에 따른 차트 확대 및 축소 스크롤 기능 화면 표시 데이터 개수 지정 데이터 툴팁 사용 기술 C++ MFC GDI+ Custom Control 제작 이유 C++로 만들고 있는 시스템 트레이딩 내용 표시 원하는 것을 자유롭게 표시 및 원활한 기능 추가 공개 차트 찾고 익히는 시간 소요도 만만치 않음 현재 개발 중인데 실제 HTS 차트 참고하면서 스크린 샷 수준까지 만들었습니다. 확실히 GDI+가 GDI에 비하여 그래픽을 이쁘장하게 그려줍니다. 대학시절에는 프로젝트를 하면서 MS 차트컨트롤을 잘 이용하는 것만으로도 실력있는 거라고 믿었습니다. 그런데 어느세 그 당시에는 어렵게 느껴지던 C++, MFC, GDI+ 같은 개인..

개발이야기 2022.01.25
반응형