Tuesday, July 9, 2019

I was here : the story of Duel Otters 2.0 rework


Been too long since I posted anything here, and it's troublesome to type them all out later to catch up, annoying just like maintaining a changelog later.

I am not sure anymore what was already said or not, so roughly :

- Duel Otters finished before I go to Japan. From that point the team basically reduced to me alone.
- I was able to push few updates from Japan, including voice acting and Japanese localization. But at the same time I have to focus on academic papers and also pursuing my next dream : Mel Cadence, my music game.
- After I graduated and came back to Thailand, I continued working on Mel Cadence.
- However it's not pure game dev, many opportunities, many hesitations. I took various part time jobs (hit or miss). I started maintaining things on Asset Store. (right decision, I am very proud of them) Mel Cadence has bad performance, and it went through one epic rework to Unity's new ECS system, which take time to learn. I started a new http://gametorrahod.com which I maintain English knowledge articles. Then I bought Tecre's badge making machine, because I got some idea about this as a new business for my future if the game isn't enough to feed, I would have some backups if I grow a new business now.
- And then I took more part time jobs because I need money for a desktop with decent graphic cards to do 3D/video works. This money has not yet arrived yet as of today. (Ryzen 3000 arrived already, PT please give me money money...)

It's not that I abandoned Duel Otters. But everything above that piled up make my Mel Cadence plan delayed, which I planned to work on Duel Otters afterwards.

Then it came to one point, that I think a change of plan is needed. I feel that I have already failed my Mel Cadence - then - Duel Otters plan because I could feel the breakpoint, that Duel Otters is rotting. Why? I could left it stale like that without no updates and the app works just fine.




But one critical thing is that the game was not maintainable. New updates pile up on the old junks. On December 25, 2018, I finally take a break from Mel Cadence and spend last few days of the year to visit my old creation.



To be honest I feared of doing so, because just opening the game in a new Unity version would be tons of errors. And it was. After fixed them all, I take a look deeper at all scenes (I didn't press play mode button, it would be devastating so I didn't) and I realized that I was very stupid back then. It's a good sign that I improved after all these years of cave-in development and putting up with my parents begging me to get a real life "like everyone else". Luckily my mom still give me 5000 THB per month and a free place to stay, she knows I would be dead otherwise.

Oh, looking at that previous log, that was when I was in Japan. That update was pushed to only iOS even! I know it *should* work on Android but I don't have time to confirm it. That is a sign that shows the project is not maintainable. The fear of unknown things breaking, even if you are the one that make all of them.

I decided that Duel Otters 2.0 will not be just an update. It is a rework. It would be a farewell to the old me. Legacy code and bad game objects components will be eliminated without mercy no matter how much ripple effect it would cause. If I am in a game dev company I would be fired for such a massive time waste that produce nothing visible in the end.

But this is my game. Exceed7 Experiment's motto is "Craft your life's work". The Duel Otters I see right now is not acceptable as my life's work. I belive this gamble will pave way to better future of this game too.

And with my current Unity knowledge, I think this is the right point to do so. Some features require you to go through the entire game to make it. For example localization, proper fonts, buttons which came from the same instance, saner UI animation with timeline, character switchable for all games, notched phone support, longer phone screen support.

Everything permutated together, it is basically I have to redo the entire game. It is tempting because I could get all these groundwork up and running together in one go.

And so I decided to suspend Mel Cadence. But still trying to multithread by commission artwork for that game while I am reworking, however it's not that efficient as when I am focused on one game I could not think well enough of other. If I could get Duel Otters 2.0 out, then I could have it grow while I return to Mel Cadence.

But, after that new year Duel Otters inspection, I still could not start working on it immediately. January and February I have to finish my Unity teaching work I took the last year. March my cousin visit for a whole month and I couldn't focus. April there are so many Thai holidays and I have to travel a lot. Time really fllies when you have no day-to-day time-landmark like when I was a company employee.

---

It was 2 months of no distraction at all. The only living beings I exposed to was baristas, alley cats and dogs, who will not say discouraging things. I don't have much opportunity to see my friends, who even though I am happy to see will eventually make me depressed because I could see how far ahead in life they already went.

I know deep inside I could die creating things like this just fine, and I am already perfectly happy the way I am now. But that's social pressure for you, I was brainwashed too much by parents, cousins, and social and even I can't help but think that I must somehow do something "else" with this life and fix it. And I really do want those life maybe, as I planned to quit game dev to get into office work sometime in the future. But not when I have unfinished work like this.

However others will say that's good to think about your future, but not good enough. You will be too late by then. It's these imaginary time limits imposed on you by others that actually make game development hard. The actual development is not that hard.

If I have that Doraemon time gate which slow down time, I think I could focus on creating wonderful things for years without stopping, happily. And make others happy when they enjoy my creation. I think I am a creator. But it is impossible in real life to not contact social at some point throughout the year (yearly festivals are there to execute you!) and then I will get reminded of getting a life again, and again.

And one other thing, it's "Get a life and family and stable income, others can do it, why can't you?" well it's easy to say when you have already got to your ideal state of life. They failed to account for things they got for granted. Where did you meet your loved one? At the workplace? I don't have one. Where did the money came from? From the employer? From government? I don't have one. The life could be different, yet most people think there is a "base class" of sorts which when they see I am not holding some inherited attributes, I am now on a wrong path. So to be a game dev and satisfy their hope at the same time, do I have to enter day job now and concurrently make games, and cut off all sleep? It's not possible. So I could push the game away as a hobby. Great, now my life is exactly like everyone else. But at that point I could imagine I will not be sure anymore what is the purpose of life, to satisfy others or do what I want.

I am really envious of many e-sports players I read about. They are going on much outrageous path of life than I am, yet their parents are supportive even when they couldn't perform well on stage for years, and get cut, get traded left and right. Must be great to be able to focus. Then I think why do I care about parents this much? Well I born from them and I love them. But yeah there are downsides to everything. I know they want to play with my child more than see my finished creation.

They request conflicting things, even if they don't mean to hurt me but it hurts. They usually says are you happy right now? I want to say I am happy as long as you don't hope for the impossible but I couldn't. They always talk to cousin how I own a company (with 1 personel however), how I am creating games, how I know something no one in the entire country know as well as me. (I once talked about Unity ECS and native Android audio stuff, while I think there would be someone out there better than you at everything, but by thinking like this I like that it keeps me on the edge of my specialization that I finally found..) and they think that I am very cool that I could compose music. They always talk how happy they are that I went to finish master degree at Japan purely with scholarship from government without a dime from them.

All they want used to be "I hope you could survive" which I did achieve because my Asset Store income managed to get over 5000THB per month, which is enough for day to day eat and living in Thailand. Then they want more, that's now not enough. Where's your girlfriend, where's your salary, and family? So if you want to talk about my games, my master degree, etc. I have already traded some time to achieve those which I could otherwise have a normal life as a government official with kids to talk about instead.

If I have everything it wouldn't be a problem. If I have only "the base things" it wouldn't be a problem either. But because I traded the thing they thought are base things, now I have to work doubly hard to satisfy them and myself at the same time. It's hard to maintain relationship with people, however the true happiness in life is relationship so I guess I can't let this go completely.

Around April a bit before I could go full speed with this rework, sometimes after Songkran festival back at home. I got the bi-annual "think about your future already" (one time at new year, then one more at Songkran which is Thai new year).

Well this time I got it when I am clearly working on a game (on the dinner table even), which the purpose to try to finish this dream, and then finally back to normal life, and get a future to satisfy this requirement for you. So it was enraging somewhat when you are at your max speed and they want faster. And that night I cried and screamed into the pillow, because I don't know what else I could do to calm the fuck down. (Honestly it helps, they absorb sound and take the punch very well)

Also my parent didn't know about any of these, I don't think they read English blog. It would be great if they know all these and understand but it takes too much effort and it hurts to try to get the ordering and timeline right then execute them perfectly in front of them in the form of speaking, just thinking about it hurts that I would rather not doing it. I think I am much better at typing, and I don't want to type in Thai. It is already difficult to not tear up while typing these things.

This reminds me that I was having suicidal thought multiple times. None of the suicide attempts make sense logically, but at multiple points in life it's tempting to "fuck this shit". In Japan once about life conflict with my parent while on phone call and I don't know what I am supposed to solve the life deadlock, back in Thailand several times about several things that didn't go right too many times consecutively. (Which I told them, and got mixed results) It's funny that one time I was saved by Google when I was searching for psychiatrist and the cost was damn high I gave up. Many times I could get a grip because I write things into my (physical) diary and let them go. And this time I was saved by a pillow. I wonder if I would be dead before Mel Cadence got finished or not if I get reminded of life one more time with nothing to save me, lol.

But I am sure as hell Duel Otters 2.0 survived. And here we go fast forwarding to today.

---

I am here again. I was here. The game now works exactly identical to its previous self. Except that everything inside is new!

I was able to focus. I didn't even go to arcade games that much. But to be honest it took longer than expected. I paid the price of doing everything right, even the one player couldn't see like making my program in packages, and integration tests. (It even spawns one test package I designed myself named Minefield) It takes time, but I hope it would be usable easily in Mel Cadence. Look at this Notch Solution package, because I took time to make it right it is now a repo with over 100 stars. I think the time worths it. There are 2 more which I am planned to sell instead of as an open source, they are packagized so it is easy to sell them later. Completed with code documentations. It will pays off eventually, I keep hoping.



The work restarted at 4/19/2019 : 6:45PM and today I got it finished at 7/9/2019 : 7:08PM.

This is not without additional self-imposed boost. Last year I was summoned by Apple office about a change of project supervisor for Duel Otters. Along with that, they played my game with an iPhone X. And ugh, the notch is taking the playable part of the game especially the reversed side lmao. So I was determined to fix the game sometime in 2019 because I owned them so many promotional boost and support. Not to mention developing for iOS is a dream. The touch screen and audio latency is guaranteed to be great. The store looks great.

Then I got contacted by a Japanese publisher who didn't sounds like a spam bot, and I know one other game from this publisher so I want to work with them. But I told them about the rework and they gladly want to wait. I told them it would be middle of 2019, and exactly on May they mailed me! (I thought they forgot, but nope. This kinda saying that they really cares) So I apologized and tell them I am still working on it...

Lastly, my Duel Otters page was approaching 100,000 likes.


I want to say something on the day it reached 100,000 likes, so that's one more boost for me. Today, the count is 99,943. I think I made it! However Duel Otters 2.0 is not just a rework, there will be new stuff included. So the time before the remaining 57 likes arrives, if I could get those features done (even better, the entire thing done) I could also talk about them. Let's go again!

I scrolled down to the very beginning of my git log, from 2014 when the team was a team. I could see branches. It looks lively even though we work entirely remotely because of day job work we all have at the time. (Only me quit, before going to Japan) Then it became linear, and then I forgot what a branch looks like.


It take me back to my "very own night before release" at that time. The day I proved myself that I have an ability to get things done on myself. (There is a big different of someone who could release a game and only have great ideas, like those succeeded but run-with-your-money Kickstarters) If not for that Duel Otters 2.0 still need more additional contents, it would already be that day over again.

That day was quiet, and epic. It is arguably one of the most important day of my life and I consider it a ceremony but with no one attending. I phone my parent I made it and they says congratulations simply. I always find it weird that my parents took the effort to fly to Japan to attend my graduation ceremony, I was happy getting it finished but I wasn't proud of my "for-graduation" paper at all because the stuff in there is useless and not practical. Days like this is much better and I could feel I am one step closer to a death without regrets.

I coun't explain here any better than linking to blog posts from that time which I am glad I wrote them.

https://blog.exceed7.com/2014/09/my-very-own-night-before-release.html
https://blog.exceed7.com/2014/09/finally-we-are-at-this-point.html
https://blog.exceed7.com/2014/08/only-3-days-left.html
https://blog.exceed7.com/2014/08/the-battle-that-did-not-end-on-11-august.html
https://blog.exceed7.com/2014/07/wanna-develop-game-together-for-real.html
https://blog.exceed7.com/2014/07/11-days-to-end.html
https://blog.exceed7.com/2014/06/revamped.html
https://blog.exceed7.com/2014/06/i-quitted-my-day-work.html

I think I have expressed all I want to keep for my future self to read. Now let's get those additional features in and release Duel Otters 2.0 to the world!


No comments:

Post a Comment