From early this year, I started making a 2D mobile game with Unity3D mainly(Because I have to implement all backend as well). And I think it is better to have some log on my blog since I am learning a lot from this project and it could be very interesting to see these logs later.
From February, I focused on making the client prototype. It was easy to implement the core part but the actual time-consuming part was making the whole game structure.
I intentionally did not use any framework or library or specific patterns because I couldn’t plan for whole backend integration at that time(because of my lack of knowledge) also wanted to do together when I have another developer. I think now it was a good decision because this game is not that complicated for the client and it was very enough to use basic programming skills to implement so people can easily follow.
I also didn’t put any time to set up source repo or build the pipeline but just use Unity cloud build even I was doing a lot of work from my previous company on Jenkins/Docker/GitHub. I wanted to do this later when we have more devs.
Maybe there’s a name to describe my approach from somewhere but I try to make all game modules as independent as possible. I used to use Zenject / UniRx before but I avoid to use them as well in this project.
I am using DoTween and Json.net as a 3rd party library but nothing else. I will probably use some anti-cheating package for client security.
After spending 3 weeks, I finalize core prototyping with basic data structure and basic backend plan. I also made all tools for Enemy/Hero/Level/Team in the Unity editor so the designer already can produce data files(JSON format) for the game. At the end of February, we already have 20 levels with 20 enemies with basic UI from base map to world map and gameplays.
Since I am making RPG style game, questions for how to implement data structure and backend architecture gave me a lot of headaches. I will write down this in my next post.