Escape Velocity

 My first project is finished after 3 months. I've learned a lot from making it and I'll write about few of them.

1. De-spaghettifying(if this is even a word) is even harder than I thought.
 EV has a lot(and I mean a lot) of spaghetti code in it even though it's relatively small game. It's partially because Unity refuses to let me have an UnityEvent with more than 1 argument but it's mostly because I didn't know better in the beginning. Util class had a lot of feature creep and most player classes in each game basically call other classes' methods. So many classes have AudioSource or AudioPool(my class that pools several persistent AudioSources so sounds can be played rapidly over each other) field and AudioClip field(s) just to make a sound. I realized that I should have made ScriptableObject singletons for audios so I don't have to search or drag in sound effects every time I need them.

2. Making music is easier than I thought.
 EV has 10 OSTs. 2 are short loops but 8 of them are about 1 minute long songs that I wrote just with high school music knowledge. They are not that great, but they are not that bad either. I only used 120bpm and mostly used C major or A minor because they are easiest to work with, though later songs did use other major/minor.

3. Writing story script is about as hard as I though.
 EV has 11 cutscenes. Some are long with more then a dozen of lines and several animations but some are very short with only 5 lines. While writing the general story was not that hard, making the characters consistent was harder than expected. There were a lot of last-minute proofreading to fix some of the weird dialogs.

4. "Temporary fix" means long-term "fix" that produces other "fixes".
 "Oh I will fix it later." No, I won't. I have to bite the bullet and sit down to fix the issue and not sweep it under the rug.

In conclusion, I had a lot of fun and agony while making this little game. This is the trailer for the game if you want to check it out.



내 첫번째 프로젝트가 3달만에 끝이 났다. 만들면서 많은 것을 배우고 느꼈는데 밑에 몇 가지 적어보겠다.

1. 스파게티 코드 해결은 생각보다 훨씬 어렵다.
 EV에는 스파게티가 너무 많아서 이탈리아 사람이 울고 갈 정도인데 작은 게임이지만 이탈리아 본토의 향을 느낄 수 있다. 유니티 이벤트에 이상한 제한(인수 1개밖에 안됨)을 걸어놓은 유니티 잘못도 조금은 있지만 대부분은 그냥 내가 잘 몰라서 그랬던거다. 유틸 클래스는 날이 갈수록 커지고, 플레이어 클래스들은 그냥 다른 클래스 메소드 호출밖에 안하고, 소리를 만드려고 하기만 하면 오디오소스나 오디오풀(내가 만든 오디오소스 풀링하는 클래스, 이게 없으면 소리를 겹쳐서 재생하기 힘들다)하고 오디오클립 필드를 잔뜩 가지고 있어야 되고. 나중에 안 사실이지만 소리용으로 스크립터블오브젝트 싱글톤을 만들어서 했으면 소리를 쓸 때마다 검색하거나 드래그를 안해도 됐을거다.

2. 음악 만들기는 생각보다 쉽다.
 EV에는 OST가 10곡이 있는데 2곡은 그냥 짧은 루프지만 8곡은 고등학교 음악지식으로만 만들어낸 1분짜리 곡들이다. 엄청 좋은건 아니지만 그렇다고 엄청 나쁜것도 아니라 만족하고 있다. 죄다 120bpm에 대부분 C장조나 A단조인데 조표가 들어가면 훨씬 머리가 아파서 그렇다. 나중에 만든 노래들은 다른 장/단조를 쓰기는 했다.

3. 스토리 짜기는 생각만큼 어렵다.
 EV에는 컷신이 11개가 있는데 어떤 컷신은 10줄 이상에 애니메이션도 여러개 있지만 짧은 컷신은 대사가 5줄밖에 없다. 이야기의 큰 틀은 그렇게 어렵지 않았지만 캐릭터들이 일관성 있는 모습을 보여주게 하는게 생각보다 어려웠다. 끝내기 직전에 검토해서 바꾼 대사들이 꽤 된다.

4. "임시 땜빵"은 결국 안고치게 되고 다른 땜빵들을 낳게 된다.
 "아 나중에 고쳐야지ㅋㅋ." 안고친다. 문제를 보면 땜빵하지 말고 앉아서 제대로 고치려는 노력을 하는게 필요하다.

아무튼 작은 게임이지만 만들면서 좋은 일도 나쁜 일도 많았다. 트레일러 보시고 재밌어 보이면 한 번 해보시기 바란다.



Comments

Popular posts from this blog

Abstraction and Encapsulation

Uncomfortable Truth about Coding Tutorial Videos

The Humble Beginning