Chủ Nhật, 19 tháng 11, 2017

Slizer - Behind the Work

The beginning

Slizer is my first mobile game, but it isn't my first game. I was actually making another game when I realized I would never be able to finish it as a student, and with zero budget. I realized my only chance of ever releasing a game was to make one with a very small scope. I never liked mobile games nor making one, but if it was the only choice then so be it.
I understood that the mobile market is, if not more, as competitive as the PC/Console market, and my chance of making any considerable amount of money with this game was negligible, but that didn't matter, getting a game out with my name was an achievement.

The birthday

In September 2016, an idea struck me. Games like Piano Tiles were trending around that time so obviously this game drew some inspiration, but what if the hit zone was moving / evolving? I thought it was good enough, and spent an entire weekend making a prototype version of it. It was originally named Slider, and it was simply circles (later changed to squares) - "points" - flying towards the blue rectangle where you hold your finger - something I called "slider" for the longest time.

I installed the android version on some of my friends' phones and the general reception was positive. However, when installing on older devices, it dawned on me that optimization was hell for mobile platforms. Even with simple particle effects, Unity's default skybox and default unlit shader, the performance on some devices were terrible (sub 60 fps). I ended up spending the whole week researching optimization and profiling my game instead of adding new features. I learned a lot about optimization, including the importance of algorithms, threading, visual tricks and miscellaneous ways to improve performance.

In the end, not only was I able to get the average fps to over 100 on older devices, the visual actually improved (the skybox had to go though).

After I got that out of the way, I continued focusing on adding what I considered the main attraction of Slider - constantly changing the play zone. My first "variation" was simply moving the slider from the left of the screen to just above the bottom and rotating it nearly 90 degrees, but that was enough to surprise the player and avoid repetition, and my classmates liked it. I had planned many more variations, but my lack of experience with making mobile games became an enormous obstacle as I spent way more time figuring out how to design the UI and optimization than I did adding features to the game and on top of that, homework wasn't corporative either. Additionally, the varying screen resolutions also posed a problem as the slider sometimes would overflow or not fit the entire screen, something I failed to tackle as I lacked experience. Before making more variations, I shifted my focus to customization, something I thought would make up for the lack of gameplay mechanics. It was much harder than I had expected, taking another whole week to properly implement (with support for saving, too). After putting variations on the back burner for two weeks, I finally returned to it, diversifying the points' movement, making everything more difficult deeper into the game. On average, from September to October, I spent 1-2 hours everyday on Slizer and 5-6 on weekends (still gotta enjoy some games).

The dark age

After October 2016 ended, my game had a menu, functioning customization (changing the color of the slider, the points and the background) and some variations. Things were looking good, then something happened. I was progressively growing lazier and lazier every day. In the first month, making Slider filled me with excitement and pride, but then it started feeling like a chore. Booting up Unity after getting home made me just want to play games, surf the web, do homework, anything else. I lost motivation quickly. It ended up becoming 1-2 hours every week, then no hours at all. It's worth noting that I found out a classmate of mine played Overwatch around that time so my time was allocated to Overwatch instead. After all, I was still a gamer at heart. My classmates would ask how Slider was going and I would just say "fine", but after a while, everyone else forgot it in the rat race as well.

From November 2016 to October 2017, I barely touched Slider. The only things I added was an improved UI and a split screen mode. I did work on Orb Effect with my brother from Spring of 2017 til fall however.

The Reboot

In September 2017, school started again, and so I had no time to actively work on Orb Effect anymore. I didn't even think about game development until the middle of October this year, when I saw Slider still installed on one of friends' phone, and I suddenly realized how big of a procrastinator I was. I launched Unity for the first time in nearly a month then opened Slider. Just like that, my motivation was suddenly revived, my passion burning again. Grade 12 meant University was very close, and I needed something impressive in my application, too. After several months of working on Orb Effect (with a professional programmer), I used the experience I picked up and overhauled some of the systems in Slider to gain more control and flexibility, one of which allowed me to add variations quickly by supporting automatic scaling of the slider with screen resolution smoothly and managing wave-variation correspondents. I also added proper multiplayer over both LAN and the Internet. I completely replaced the customization system with something more robust and added currency and researched monetization along the way. From mid October to mid November this year, Slider transformed completely. There are now 5 unique variations with more coming, beautiful shaders for customization, ads (so sorry), currency, ranking, new original music and even more optimization!

Slider has also been renamed to Slizer, as I unfortunately found out "Slider" was taken.

The Lesson

In the end, is Slizer a great game? To you, maybe not, to me, it's the accumulation of learning, working and most importantly, playing in the past year. I don't have any expectations for this game, I won't try to market it extensively, I'll tell everyone I know to go download it and that's about it.
I transformed Slizer from 2016 to 2017, and Slizer has transformed me just the same. Somehow, I learned more about coding and game making as a whole from it than other, much bigger projects I worked on. I figured the only way to really learn is by seriously pushing yourself to release something and drop the "it's for learning" excuse I've been using for so long.