Hello to an old friend: Unity


wauw, my second devlog. Am I a blogger now? My most happy moment in the week (when I look at the game) is a friend sending me her father liked to play the game. I did not even ask her to show it to people. Neither did she have the latest version. Nevertheless, it is great to hear someone likes your game. Conclusion, I was really looking forward to seeing the analytics I had planned to do this week. 

Analytics, aren't they great? I had quite a bit of statistics courses in the past. Basic statistics, multivariate statistics, data science, machine learning, R, SAS, econometrics. In other words, I understand data can be very interesting to look at. I was really looking forward to put in my game and see how difficult each level is. How many tries each level is played, what the scores are. 

Online, I found quite a bit of resources on how to do this. To do analytics in Godot and in mobile games I found the plugin nativelibs. This plugin has several plugins for mobile development and it should make it easy to use them. Sadly enough, after some trying, I was not able to let it work. I was thinking to use firebase analytics, since it is free and it seemed to most simple thing to use. In addition, it just gives statistics like DAU, MAU and much more. 

Sadly enough, when I tried to fire up my IOS build, it all went wrong. I got an error telling me when firebase was trying to be initialized, something went wrong with threads. Honestly, I do not have an idea how I could have handled this error. I had a guess I would have had to resolve it in Xcode, which makes it quite more difficult to take on. I do know a little bit of Swift, but not enough to feel comfortable to fix this issue. Also, if I fixed it in Xcode, I should keep fixing it in each build. That might be annoying. 

The first level of the original game in landscape mode.

A big decision

On saturday I tried one last time to fix it, but sadly enough, I had to throw in the towel. As a hobbyist I only have a few hours a week to work on the game. I do not have the goal to work every saturday and sunday for 8 hours. Adding a feature can be challanging, but I have to keep in mind how much time I want to spent on the game. I could have scrapped analytics, but I am still set to have it. In addition, it made me a little bit pessimistic about some other features that I had to add. That is why I decided to go on another route. I hope to spare a bit of time during the process and be able to stick more easily to the plan I have in mind.

Therefore, I decided to go to an old friend: Unity. My first games were all made in Unity so I am quite familliar with the engine. Of course, the game engine still has a lot of secrets for me. For example, I have no idea how I can do analytics in it, but I am sure it is well documented. During my search for analytics in Godot, I found several sources for it in Unity. That is why I decided to go for Unity. I am familiar with it and now from everything a little bit in the engine. I can already create a game from start to finish in the engine which makes it easier to adopt. 

This last weekend, I really tried my best to recreate the game as fast as possible in Unity. It was quite an adventure to do this, since not everything is handled he same way. Going back to C#, you have to change your habits coming from gdscript. Placing "()" for for-loops or placing ";" at the end of every line. You have to get used to it again. Setting up the mobile game settings went quite fast as you let Unity just install everything. You don't have to search where to JDK is placed. It is just there! 

A first recreation of the levelsystem of Harvy Tile.

Changing to Unity also gave the game a portrait mode. I actually like to play games on my phone in portrait mode. It makes it less obvious I am playing a game. So I am quite happy and it is now the main way to play the game. Although landscape mode is supported at the moment, it is not yet really playable. But I will probably implement it somewhere in the future. This might be an easier task in Unity since I can change the screen size of the "play mode" easy to fit different mobile phones or modes. 

The array-system of Godot is something I already miss. It was so easy to just use "append()" to create the game world. You do not have to know how big the array is going to be. This made jagged arrays also easy to use. Saving data was easy. Of course, it is not impossible in C#, but I never used a list before. I had to read into it and it kinda works the same and it has its uses as well. The save data is now a class on itself, which makes it easier to understand. 

Another notable change are the graphics. Although it uses the same graphics, the materials seems to be processed differently. As you can see in the picture below, the edges of each tile seem to be more clear. It seems to be more glossy. The new tiles might be more... vibrant? Which one do you like most? 


The new graphics of the game
The Old graphics of the game

I have to get used to this new look, or change it later. My first goal at the moment is to get the game to where it was in Godot. 

So this weekend marked the start of a new adventure for the same game. An adventure to become better in Unity. Both Unity and Godot are great game engines and I liked to work with both. I am really curious about Godot 4 and what it will bring to the table, but for now, I will return to the big corporation that Unity is. The goal for next week: "getting the game up to same level as it was in Godot".

Get Harvy Tile

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.