우리가 만든 게임 / Prison Break - 넥슨기둥오너
무려 9월부터 11월 26일 까지 진행된 메이플스토리 월드 슈퍼 해커톤..!
3달간의 기록을 한 페이지에 다 담으려고 하니 꽤나 길어질 것 같지만 개발과 시행착오 위주로 담아보려고 한다.
* 포스팅에 나오는 MSW는 MapleStory World를 줄인말 입니다!☺️
계기
우선 이번 활동을 알게된 것은 멋쟁이 사자처럼 이라는 활동을 하고 있는데, 저번 멋쟁이 사자처럼 10기 해커톤에서 슈퍼해커톤 인원모집을 하고 있어서 알게 되었다.
사실 이때 지원한 것은 아니고 조금 후에 지원하였는데, 지원한 이유는 다음과 같다.
- 다양한 분야에 도전 해보고 싶다.
- 넓은 세상에서 놀아보고 싶다. & 타 대학 사람들과의 커넥션
- 이름 있는 활동을 해보고 싶다. (심지어 MSW 넥슨 서류심사 프리패스권..?)
안그래도 나는 어떤 개발을 하고 싶은가..에 대해서 한창 고민하고 있을 때라 프론트엔드 외에도 다양한 분야에 도전해보고 싶었다.
그치만 시작도 전에 불합격..?
시작과 팀 빌딩
불합격은 아니었고 멋쟁이 사자처럼 인원들은 자동 합격이었어서 서류상 오류로 MSW 기획&개발 분야에 합격하게 되었다~👏🏻
그렇게 OT수료식을 마치고 팀빌딩이 시작되었다.
보통 기획&개발 3명 + 디자인 1명 이런식으로 4명이서 팀이 구성 되는데, 넥슨에서 탈주를 방지한건지 차후 랜덤으로 배정한 사람들은 5명이서 팀이 꾸려지게 되었다.
나는 그래도 랜덤 팀 보다는 팀 매칭 기간 때 열심히 하려는 의지 충만🔥 이신 분들과 하고 싶었기에 빠르게 자기 소개서를 올렸고 팀장 분이 연락을 주셔서 팀에 들어가게 되었다.
우리 팀의 구성은 다음과 같았다.
- 개발자 & 서브 기획 - 2명 (나는 여기)
- 기획자 - 1명
- 디자이너 & 서브 기획 - 1명
팀빌딩이 끝난 후에는 팀의 작업 방향에 대해서 토의 하였고 Notion으로 그래도 진행 상황을 기록해두면 좋을 것 같아서 Notion을 하나 파서 전부 기록해 두었다.
게임 기획
* 간단하게는 사진의 Notion 페이지를, 깊게는 아래의 ppt를 참고해 주시면 됩니다.
몇 번의 회의 과정을 거치면서 기획을 하였는데, 우리가 새로운 게임을 만드는 것 보다 우리는 기존의 검증된 재밌는 게임들을 기반으로 메이플 만의 장점을 살려서 만들어 보기로 하였다.
그래서 처음 참고할 만한 자신들이 재밌게 했던 게임들을 가져와 보았고 이 중에서 하나씩 파생을 하면서 생각해 보았다. (3번째 사진 참고)
처음에는 롤토체스를 기반으로 배팅을 첨가한 게임을 구상하였는데, 기획을 하면 할수록 팀원이 하는 말이 머릿속에서 잘 이해가 되지 않았고 그러다 보니 기획을 하는데 점점 의욕을 잃어갔던 것 같다.
그래서 다음으로 생각해본 것이 런닝맨 얘기를 하다가..ㅋㅋ 경찰과 도둑 느낌으로 만들어 보면 어떨까 하는 얘기가 나왔고 이 방향으로 생각해 보았다.
게임의 기반을 데드 바이 데이라이트(약칭 데바데)라는 게임과 어몽어스 라는 게임으로 하되, 메이플의 포털이나, 상자, 점프맵 같은 요소들을 살려서 메이플스럽게 풀어내기 위해서 많은 의견을 나누었다.
이게 꽤나 디테일 한 부분까지 기획을 하였는데..ㅋㅋ 조금만 말해보자면,,
- 수감자가 박스를 부수는 횟수는 몇 번이 적당한가
- 탈출 조건은 아이템 몇개가 적당한가 & 탈출 조건이 열리는 시간
- 교도관이 한 번에 가질 수 있는 수갑의 개수
- 게임 성공 실패 조건.. 등등
꽤나 수감자와 교도관 사이의 밸런스를 맞추기 위해서 많은 노력을 했다.
이 과정에서 기획을 하면 할수록 가슴 설레고 "어떡하면 조금 더 재밌게 만들 수 있을까?!" 같은 느낌을 받으면서 정말 우리가 생각해도 재밌는 게임을 구현 할 수 있을 것 같았다. 또 내가 개발이 아닌 기획에 대해서 생각해보게 된 계기가 된 것 같다.
기획은 대부분의 요소는 개발자와 기획자가 같이 진행하였고 기획자 분이 세세한 아이템 코드나 맵 요소를 설계해 주셨다!
* 최종 기획안은 아래 ppt에 전부 기록되어 있습니다.
- 게임을 만들기 전 기획 ppt
게임 개발
살려주시라요,,
정말정말 할 말이 많은 개발파트이다.. 🔥🔥😤🥲👨💻☠️
1) 대체 왜 맥북은 안 만들어 주시는 건데용..
메이플스토리 월드 개발은 넥슨에서 자체 제작한 툴(MSW Tool)과 루아(Lua)라는 스크립트 언어를 사용하여 개발을 진행해야 했다.
그런데 이 MSW Tool이 윈도우만 지원을 해줘서 나같은 맥돌이는 가상머신을 써서 돌릴 수 밖에 없었다..
덕분에 맥-가상머신-MSW Tool-게임 디버깅 을 하니까 매번 맥북에서 비행기 날아가는 소리가~..✈️
(다음에는 꼭 맥도 지원해주세요..ㅠㅠㅜ)
그리고 또 스크립트 크기 조절이 되지 않아서 작은 글씨를 보기 위해 거북목이 생길 것 같았으며.. 이건 툴 잘못은 아니지만 윈도우와 맥의 키패드가 달라서 단축키나 여러 조작 방면에서 애를 먹었다..
2) 게임 개발의 어려움 & 공식 문서의 중요성
사실 나는 게임분야를 다뤄본 기억이 고2때 게임 만들겠다고 설치던 때가 마지막이였다.
그래서 이번 게임을 제작하면서 게임분야에서의 컴포넌트나 노드, 엔티티, 스크립트 등등 여러 개념을 이해하는 것 부터 시작했어야 했어서 다른 팀원분 보다 개발 속도가 많이 더뎠다..ㅎ
심지어 넥슨에서 만든지 얼마 되지 않은 툴이다 보니 구글링이 전혀 되지 않았고 넥슨에서 제공하는 교안과 개발자용 API Reference 만 참고해서 개발을 해야 했었다. 그래서 진짜 만약 책으로 출간했으면 진짜 너덜너덜 해질 정도로 읽었을 것이다.
그래서 오히려 작업을 할때, 유니티에서는 어떻게 설명하고 구현하지? 를 먼저 공부했고 메이플에 이런 기능이 있나? 해서 찾아본 뒤 개발하는 식으로 작업을 하였다.
이 과정에서 먼저 구현을 하는 것보다, 개발에 필요할 법한 요소들을 미리 생각해두고 코드로 옮기는 것이 나에게 맞는 개발이라는 생각이 들었다. 실제로 이 작업방식이 속도도 빨랐다.
또, API Reference를 들여다 보면서 개발을 해야했어서 정말 힘들었는데, 그 대신 성장도 많이했다.
예를 들어 아래 사진과 같은 기능이 필요해서 찾아봤다고 하자.
사실 이해도가 없는 상황에서 이 함수를 보면 진짜 이게 뭔 말이지 싶었다.
하지만 엄청 보고 시행착오를 거치니까 아 필요한 타입이 저거니까 한 번 그걸넣어 보면 되겠다, 한 번 돌려보고 어떻게 처리하는 지 보자 약간 이런 마인드로 개발을 하다 보니까 내가 필요한 기능이 있다면 공식 문서를 들여다 보고 직접 실행시켜서 결과가 어떻게 나오는지 확인하고. 이러한 습관이 생기게 되었다.
그래서 나중에는 이게 필요하겠는데? 이러한 기능 없나? 해서 찾아보고 구현하는 그런 상태가 되어있었다..^^
3) 코드 리뷰 & 이게 왜 안돼!
* 저의 작업 파트는 위의 형광칠해진 사진을 봐주세요!
전체적으로 프로퍼티, 함수, 이벤트 핸들러로 나눠져 있어서 필요한 기능이 있다면 함수를 만들어 구현하면 되었다.
내가 평소 하던 맨땅에 처음부터 구현 하는 것이 아니라 이미 구조가 갖춰져 있고 그 조건에 맞게 구현했어야 하는 점이 어색했다.
또 게임이다 보니 서버, 클라이언트로 처리하는 부분이 나눠져 있었고 게임 렌더링 전, 후 어느 부분에 실행을 시키는 지도 신경을 써야 했었다. (아니면 Null의 지옥이..)
우선 하나 가져와서 시행착오와 개발에 대해서 얘기를 해보겠다.
해당 코드는 직업(수감자나 교도관)에 따라 상자를 조건만큼 부셨을 때, 생성되는 아이템의 종류와 확률을 달리하고 인벤토리에 넣어주는 부분에 해당하는 코드이다.
우선 이 파트에서 어려웠던 부분은 아래와 같았다.
- 랜덤으로 아이템을 발생시켜야 한다는 점 (해결)
- 메이플과 똑같이 상자를 부셨을 때 살짝 뜨면서 fade-in 되는 점 (해결 X)
- 인벤토리가 다 찼으면 아이템이 바닥에 스폰되게 해야 했던 점 (해결)
1을 구현하기 위한 방법이 다양하게 있었다.
그 중에서도 툴의 기능 중 테이블을 구현할 수 있는 기능이 있었는데, 테이블에 아이템에 따른 퍼센트를 넣어주고 값을 가져와 랜덤 값이 start 변수와 퍼센티지 사이에 해당하는 값이면 플레이어의 인벤토리에 해당 퍼센트를 가진 아이템을 넣어라. 이런 식으로 구현했다.
지금 말로 하니까 왜 어려웠지 라는 의문이 들 수도 있을것 같은데,, 랜덤을 구현하는 방식은 많다.
하지만 그 중에서도 되야하는 로직인데 원하는 대로 구현이 안되거나!!!!🔥👊🏻 버그가 나는 부분이 있어서 꽤나 애를 먹었다..
2는 구현을 하지 못했다. 왜냐.. 실력이 안되었기 때문이랑 위의 이게 왜 안되지..? 하는 점 때문이다.
분명 아이템의 투명도 값이랑 벡터 값을 적절히 조절하였는데 상상하는 대로 구현이 되지 않았다.
그래서 노선을 틀어서 그냥 상자를 부수면 플레이어의 인벤토리에 아이템을 넣어주고 꽉 찼다면 바닥에 스폰되게 하는 방향으로 해결을 했다.
3은 사실 쉬웠다. 하지만 매서드를 찾는게 일이였어서 조금 해맸다.
인벤토리가 덜 찼다면 CreateItem 매서드를 이용해 플레이어에게 넣어주고 아니라면 SpawnItem 매서드를 이용해 스폰되게 하면 될 일이였다.
또, 해당 코드는 4명의 플레이어들 중 3명에게 수감자 역할을 1명에게 교도관 역할을 랜덤으로 분배해주는 코드이다.
이 코드에서의 문제점은 클라이언트에서 수감자와 교도관의 역할이 하나만 지정되어 한 역할만 수행 되어야 하는데, 교도관 임에도 수감자의 미션을 할 수 있거나 하는 문제점이 있었다.
그래서 해당 엔티티가 플레이어와 맞는지 판별하는 IsMine 이라는 변수를 만들어 초기화 하는 작업을 해주었다. 즉 해당 코드가 자신이 아니라면 동작하지 않게끔 수정해 주었다.
이렇듯 기본적으로 제공되는 매서드나 함수에 사소..한 문제점들이 있었지만 어찌하여 예외처리를 하고 하다보니 게임을 완성할 수 있었다.
게임 리뷰
해당 사진은 게임을 다 만든 후 작성한 대회 게임 설명용 자료이다.
해커톤 후기 사진
살면서 처음 가본 수원 광교 컨벤션 센터,, 나 놀러 좀 다니자..ㅎ
확실히 넥슨이 돈이 많은가 보다..ㅋㅋㅌㅋ 진짜 웰컴 키트도 알찼고 저녁도 나름 괜찮았고 부스도 잘 꾸몄고 야식도 좋았다.
웰컴 키트에는 아래 항목들이 있었다.
- 텀블러
- 해커톤 기념 옷 (XXL?) - 사이즈가 랜덤인가 보다..ㅠㅠㅜ
- MSW 기념 마스크
- 방석
- MSW 기념 수첩
- 핫식스..??
저녁도 GS리테일에서 후원해 줬는데 조금 모자란듯 하면서도 나름 알찬 구성이여서 만족했다! 왜냐면 야식을 엄청 많이 줬거덩요!
피자나라 치킨공주였는데 사진은 제가 깜빡 했습니다!
다른 컨퍼런스는 몰라도 개발자 컨퍼런스는 못참지~ 해서 가봤는데 나름 알찼습니다!
게임을 만들 때의 목적이나 고려해야할 점, 유저들의 니즈 등등 넥슨에서 게임을 만들 때의 신념같은 것들을 엿볼 수 있어서 좋았습니다.
특히, 서비스는 스스로 개선되지 않고 지속적인 유저분석을 통해 개선해나가야 한다는 말이 인상 깊었습니다!
(앞으로 넥슨 고객센터 지켜보겠습니다..🤔)
또 넥슨에서 이번 사업에 얼마나 공을 들이고 있는지 알 수 있었습니다.
초등 컴퓨터 교사 협회나 강남구청 같은 곳들이랑 협약해서 사업을 진행중인 걸로 봐선.. 진짜 MSW를 교육용 게임으로 밀고 나가겠다! 라던가 로블록스 같이 초등학생들이 직접 컨텐츠를 제작하고 즐길 수 있도록 하자! 부모님들도 좋아하실수 있게 하자! 같은 느낌이 들었습니다.
다음으로는 MSW & 크리에이터 존에 가 봤습니다!
여기는 부스 형식으로 만들어진 게임들을 체험해 볼 수 있는 공간이였습니다!
일찍 왔으면 인형탈 입고 계신분도 있었다고 하던데...ㅠㅠㅠㅜ 못봐서 정말 아쉽습니다..
해커톤의 시작!
유명한 분들 뵈서 좋았습니다! 특히 이두희님이랑 조코딩님 영상으로만 뵜었는데 실제로 보니까 좋았어요! (사실 멋사 해커톤때 보긴 했지만..ㅎㅎ)
이때 단체사진 찍었는데 빨리 사진이 나오면 좋겠습니다..!!
해커톤 현장 사진입니다! 팀원분이 말씀하시길 다들 파란색 옷 입고 계셔서 블루스크린 뜰 것 같다고..ㅋㅋㅋㅋㅋ
그보다 정말 대형 해커톤 이라는게 실감이 났습니다.. 우리나라에 이렇게 개발자가 많습니다..😅
오른쪽 사진은 레크레이션 시간에 찍은 사진인데 다들 장난 아니었습니다..😆
새벽 2시에 코카인 추고 제로투 추고.. 열정이 아주..👍👍
휴식존 앞에 있었던 방명록 사진입니다!
저도 하냥이 한마리 남겨두고 왔지요..ㅎㅎ "가-31 화이팅!"
팀원들과 함께여서 즐거웠던 슈퍼 해커톤!👨💻
같이 돌아 다니면서 사진도 찍고 스탬프도 모으고 즐거웠습니다..!
단지 돌려돌려 돌림판에서 신세계 상품권이 아니라 당충전X3이 떠버린게 너무 아쉬워요..🥲
아직 수상과 MSW 수료 자료가 안나와서 제대로 끝난 느낌이 아니지만 너무너무 즐거웠다!
개인적으로도 배운것도 많았고 스스로에 대해서 생각해볼 것도 생겼다.
그리고 아마.. 게임쪽은 손을 잘 안댈것 같다..ㅎㅎ; 나는 게임 개발보단 기획이 즐거운 것 같다..!
다음엔 무슨 활동을 할 진 모르겠지만 당분간은 쉬고 싶다.
블로그에 글도 좀 쓰고 놀면서 나의 나이에 맞는 활동들을 해보고 싶다는 생각이 들었다.
여튼 즐거웠던 해커톤 후기 끝!
수료증 😆
현장스케치 영상
'활동 > 해커톤' 카테고리의 다른 글
2022 찰떡콩떡 해커톤 후기 - 첫 해커톤 수상! (1) | 2023.07.27 |
---|