Finally, on February 3rd, 2019, I released my second Video Game, Roiny Froity. Well, this is the second video game I have completed, though to be honest, I should count it as the first one again.
Recalling when I started my first video game, ARO, back in 2016, with all the issues I was going to face, and all the mistakes I made (see The Mistakes I made when I decided to make a game), I would seem that with Roiny Froity I would do better. Yep, I remember the first Unity3d questionnaire, when I replied, “I am a beginner”. The second time I got that questionnaire I was about to finish ARO, so I replied “I am an intermediate”, and the third time I got the questionnaire I replied again “I am a beginner”. Did I loose the knowledge on the way?
Well, when I started Roiny Froity, (back in september 2017) I had some goals in mind:
- Learn a bit more about Delegates and how to use them well
- Improve the knowledge of Unity3d and C# on Linux
- Finish the game in a shorter period of time
- Add Translations
- Make a game with a graphic style inspired by what I had drawn back when I was 6 y.o.:
Finally, Roiny Froity was released on February 3rd, 2019, which in turns means that it took me longer to complete this game than ARO. So the Goal #3 failed. Well, in the meantime I happen to re-meet Haiku, the heir of old BeOS I used for some time back in the day, and I spent some fiddling around with it. Thanks to that fiddling, I ended up meeting the Godot Game Engine, which is Open Source. Trying to do everything with Open Source software, the “discovery” of Godot was like a revelation, and I even thought of moving the development from Unity3D to Godot. This decision would have had a greater impact on the development timeline, delaying everything who knows for how long. Therefore I stayed with Unity3D for Roiny Froity, and will move to Godot with the following project.
Reading again The mistakes I made when I decided to make a game, I can tell that I didn’t make all of those, though I made some. As a matter of fact, this time the plan was clear, the idea simple, and no extra functions. I planned to add an In-Game Pause system which I cancelled in the end, but other than that, everything is what it was supposed to be.
Roiny Froity took more months than ARO, but roughly the same amount of hours, around 1.500 hours. Hard to believe, right? Well, that is the problem with making a game in your free time, and sharing the free time slots with other matters. This is a big issue that I am very aware of, as it happens with everything we do. If I take too long without picking the guitar to play, fingers become lazy, and it’s easier to miss the right fret. Same happens with Unity3D and C#, if it takes too long between development sessions, I end up forgetting what to do and how to do it. Needing to review the Scripting API, and going again and again through the same readings. Well, I will try again to shorten the development for the next project and let’s hope this time I can get it right.
Goal #3 failed
The time issue relates directly to the Delegates Goal, I learned how to use them, but then, after some time without needing them for other tasks, I forgot how to use them, so needed to review them again. I ended up using Delegates, but not as much as I should in order to get a better understanding and a cleaner and leaner code. So, did I learn how to use delegates, yes. Could I use them right now, well, eeeer… I need to review them again.
Goal #1 failed
It is true that I learned how to use Unity3d better, at least what was involved in the scope of this project. I stayed with Unity3d, as I said before, and did the whole project on Unity3d 2017.1.1xf1 for Linux. Yes, many other versions came out during this project, though this version of Unity3D proved quite stable, so I decided not take any chances with this kind of change, based on the experiences earned while developing ARO. But, then again, I kept having issues with Ubuntu, regardless it being LTS or standard release. Truth to be said, I changed the Video card in the process, using an AMD Radeon RX560 now, nevertheless, this did not have any effect on system stability. And still now Ubuntu shows some wayward behaviour almost everyday.
Also I should say that I feel more comfortable with C# now than when I started ARO. That does not mean that I master C#, there are still many things to learn here too, and yes, if I spend some time without coding, I need to review things again, but less often than with ARO development.
No matter what, I learned to do things with Unity3d with Roiny Froity that I didn’t know how to do before, and found myself more comfortable using the interface, the tools, and the different options. This does not mean that I can step up from beginner to intermediate level of Unity3D mastering. There are still plenty of topics I know nothing about regarding the use of Unity for this and that. Anyway, my knowledge of Unity3D has improved with this project, so let’s call it a win!
Goal #2 achieved
One of the important goals I had in mind was to manage translations in this project. I shorten the range of options to two languages, English and Chinese. Someone could ask, why not more languages… blah, blah, blah. Well, I did not want to end up with a lot of features or options, just wanted to try and see if I could let the player choose language, as well as difficulty settings. It was a test. This relates to the improvement of C# knowledge and also of Unity3D knowledge.
Translations work as expected, and can be selected in game, no need to restart. I used plain text files for each language and each screen. Did not use .po files. Just plain text files, mainly because I have no idea on how to use and manage .po files, and did not want to spend time with that, knowing that plain text files do the job. Not sure if is more or less efficient one way or the other, but Roiny Froity is not a very demanding game ;). Looks like translations turned out quite ok.
Goal #4 achieved
With Roiny Froity I tried to mimic my own drawing style when I was six. If I recall correctly, back then all kids of that age at my school painted like that. So I grabbed the old Wacom A5 and tried to do all art there, with MyPaint. It’s hard to draw on such a small Pen Tablet, as the drawing area is too small compared to the computer display. Also because some art was done at some point, another later on, and I forgot to write down the pen size to use the same pen size for everything. Also, I ended up drawing the player bigger than the landscapes, and scale it down to fit, instead of drawing it again at the right size to match the pen size. More or less, I spent 40% of the development time painting.
At the beginning of this post there is the old drawing that triggered the style of Roiny Froity, so you should judge if this Goal has been achieved.
Goal #5, pending resolution
Making Roiny Froity was fun. Yes, very funny. From painting the art, composing the soundtrack, recording the effects, to coding. It was even more fun than ARO. I had less issues than with it, less software issues, as I could write the score with Musescore this time. No software flaws other than with Ubuntu itself, because I also gave up with the Open Source DAW, and used Acoustica Mixcraft again. Gimp, Musescore, Inkscape, VSCode, MyPaint, OpenShot, Peek, all behaved as expected, and this time, Unity3D remained stable all the way.
Though I have a notebook filled with ideas, notes, flowcharts, whatever, the next project is going to be simple. I’m moving to Godot for this new game, and there is again a learning process. Besides, I’m planning on moving to Fedora too, which am testing right now and might end up changing the whole os before starting. So it is going to be a whole lot of change for this one! XD
I will keep in mind the mistakes I made when I decided to make a game, and try to improve each project task in every way. Not every Roiny Froity goal was achieved , so will see if can achieve all for the next.
Thanks to all who followed this project, and to the Open Source devs who make the tools. Without them this project wouldn’t be possible!