As one of my hobbies, I create games, and one of my creations has achieved over 100,000 downloads worldwide. Omi is one of the most popular games among the people of Sri Lanka, and it's based on cards. It's simple for people to play, but it involves a more complex procedure that can be a bit challenging to implement without AI. At that time, I didn't have much knowledge about using AI in the Unity game engine, so what I did was develop the entire game algorithm myself. Here's how I accomplished that.
Making a single-player game is more challenging than creating a multiplayer game because I have to design the playing algorithm for all three other players in this four-player game. Implementing multiplayer, on the other hand, is relatively easier because the game's dynamics depend on the specific player. First, I had to find suitable graphics materials that were available for free and adapt them for my project. Then, I had to program the game step by step. It consists of approximately 4000 lines of algorithm, so I won't be able to explain it all here
Developing a multiplayer game using Unity's multiplayer features was relatively easier, but it still involved several challenges. I had to consider how players are connected, how to minimize data transfer, how to handle user disconnections, and how to keep users engaged and connected. These aspects presented significant challenges during the development of the multiplayer game. Even though I created a multiplayer game, I only published a single-player version because the revenue from the game was insufficient to cover the costs of Unity multiplayer servers. Instead, I shared the Unity multiplayer game exclusively with my friends
Almost all developers understand how challenging it is to optimize a game to run smoothly on Android devices used worldwide. When publishing a game, it's essential to optimize it for any device, which can be quite challenging, especially when starting game development. In the first one or two games we create, we often focus on gameplay and may not consider performance. However, by the time I made this game, I had gained experience from about five previous games. This experience allowed me to implement more performance-oriented code during the game's development. One of the significant differences between making games and other software-related tasks is the emphasis on performance optimization. While there are many ways to achieve a task, implementing the most performance-efficient approach is key to creating a smooth-running game. I believe I successfully achieved this in my game.
https://play.google.com/store/apps/details?id=com.skyDragon.omi&hl=en
This is just a brief overview of what I did and how I approached this game. There's a lot more to discuss about this project, including how I managed a large amount of code, the strategies for implementing multiplayer features, and how I wrote more reliable and efficient code. If you'd like to learn more about it and engage in further discussions, feel free to contact me. I'm enthusiastic about sharing more details