Laser Droplets Blog Version

Main Page

Some Boring Intro

Laser Droplets is the first game I ever made in my life. If I count from the time I start learning Unity and C#, to the time I think it’s done, this game took me 19 months. Yeah, I know, it’s crazily long for such a short and simple game (furthermore, I didn’t spent any time making assets as they are all from the assets stores).

Now that I think about it, the actual time taken was way lesser. I took about 6 months to learn the basics of Unity and C#, as well as searching through website for tutorials. About 1 month of browsing Unity Asset Store and coming up with ideas of how to make the game better, and the actual 6 months of coding, re-coding, and all other Unity editor related tasks. That total up to roughly 13 months.

So what happened to the remaining 6 months? Well, it was time spent doing nothing. At multiple points along this journey, I was thinking if I should give up, thinking that maybe making a game by myself with no prior experience is impossible after all. A huge pressure comes from the fact that whatever I am making, is too simple and generic. There is an almost guaranteed outcome of not selling a single copy, drowned in the massive ocean of other better games. Perhaps I should just do something else. But luckily, I somehow managed to eventually complete it, at least to a point that I think it’s playable.

Another thing that I remembered clearly was that since I am making this game all by myself, I don’t have anyone else to talk to. And this, is actually the hardest part of this entire journey. That’s because for all the decisions that I made, and for all the things that are done using a particular method, I have no idea if it’s right or wrong or is there a better way to do it. Well, Google search does help a little bit, but for most of the time, there is like this constant debate going on in my mind for every single step I take along the way when creating this game. So don’t ask me why I Choose Unity. In fact, I don’t even really know why I started this journey :)

Almost Everything Was Changed

The completed game was actually changed quite a lot compared to the original design. It was originally designed to be like an endless, survive as long as you can gameplay. It now has 16 individual mini stages. There were supposed to be a lot more skills in the original plan, but now it’s just 3 basic and 2 ultimate skills. There was also no stats points assignment in the original design. Now, there are 4 different stats of attack, defense, energy and health each with 5 sub levels.

A lot of design issues that I never thought of, will suddenly just appear out of no where along the way of making the game, and I have to make a decision on what to do there and then otherwise I cannot proceed. (I am surprised that I didn’t went crazy during this period, or perhaps I already am) Some of the decisions ended up creating even more issues as the development went on. In the worst case, I have to redo a huge portion of it. One example is that in the beginning, a lot of properties are attached to each individual Enemy units, such as the health, damage, movement, projectile types, etc. It work out well in the prototype game with one stage. But when I started adding more stages, it become a nightmare to modify the properties. So ultimately, everything was re coded in the middle of development. Things are made to be modular and some of the properties are shifted around from Enemy to Stage.

Perhaps all these seemingly never-ending changes was the lack of a proper technical design document. But then again, given my lack of knowledge and experience in this field, I don’t think I can make a good design specs to being with. Also, due to the lack of knowledge and experience, some gameplay ideas that were originally planned were either changed or dropped along the way when I tried to implement them, simply because I don’t know how to achieve it. Well, the good news is that at least after all these months, somehow everything is kind of finalised and completed.

So Many Assets Used

I used quite a lot of assets from the Unity Assets Store in this game, from music, to UI, to spaceships, to particle effects and scripts. I figured out that since it’s already taking me forever to learn Unity and C# from scratch, trying to spend more time to learn how to make audio and graphics would literally take me multiple lifetimes.

The huge selection of assets in Unity is really helpful. However, one thing I realised is that I have to code or design my game around the assets. For example, some of the assets comes in 3D format with a particular rotation and size, I have to change my code or game design specifically to suit that particular 3D rotation and resize it. It’s alright to be doing it for a couple of assets, but if I am using a combination of different assets from different creators, it will become very confusing, very quickly.

That being said, it’s still much better for someone in my position to be using assets than try creating them.

Special Mentions

Assets that are used in Laser Droplets are listed on the main page, but here are a few additional special mentions. I have written more about them in their respective posts.

Oh btw, I would also like to add a point about the 2 other libraries that I used, Easy Save and Incontrol. That is, if there are any bugs in my game regarding the controls or saving mechanism, it is 100% due to my own fault. Since I am the one who wrote the code that incorporates those libraries, it must be me who used them wrongly.

What’s Next

I will be figuring out how to get the game on Steam and fixing any reported bugs. And if for some reasons where the reviews are encouraging, I will definitely consider adding more contents to it and maybe make this game to be available on more platforms. However, I am already mentally prepared that not a single copy will be sold :) Regardless of any outcome, I will be forever making more games.

Thank you for reading up to this point. This post is written after finishing the first version of the game, but before launching it on Steam.