Cricket Manager - Devlog Entry #4
In my last devlog, I talked about how the game was close to being ready for a closed alpha release. We have moved past that and now are in a beta with about 60 users. In the meantime the codebase has expanded to over 50000 lines of code and the game is now in a state where most of the core features are implemented.
What’s done?
Of the core features the ones to highlight are:
- A fully functional league system with relegation and promotion
- A player training system with skill development and experience effects.
- A knockout cup for all players in the game.
- A youth player academy with the ability to recruit young players.
- 4 different types of pitches with its unique attributes.
- 3 different types of weather conditions.
Key Learnings
Make isolated changes
The last 6 months have seen a lot of changes to the codebase. Small changes can sometimes have a huge impact in games like this, while sometimes huge changes can have a minimal impact. A key learning is to ensure things that affect each other are done in a way that is easy to understand and modify. Pitches and weather conditions are a good example of this. Having released both together, it was a huge challenge to make changes to one without affecting the other and to figure out whether the changes worked correctly.
Statistical Analysis is hard
Statistical analysis is a hard problem. It is not just about the numbers, but also about the context in which they are presented. For example, a player’s batting average is a good indicator of their ability, but it is not the only indicator. A player’s performance in different conditions, different pitches, and different opponents can all affect their batting average as well as their Strike Rate. Most things take a lot of data to ensure that the results are statistically significant.
The importance of a good UI
The UI is the first thing that a user sees when they open the game. It is the first impression and the first thing that a user interacts with. A good UI is not just about the looks, but also about the ease of use and the functionality. The last 6 months have seen a lot of improvements to the UI and I am learning more as I go along. To that regard, I have invested in Refactoring UI to learn more about UI design and how to make better UI.
Challenges
As the game grows the main challenge is to ensure the infrastructure is scalable and cost effective. Vercel has been great so far, but now we are past the limits of the free tier. Turso continues to be a great option for the database and currently at 40% usage. The main problem area is Clerk which is a great product, but has certain quirks like turning the entire app to dynamic rendering or preventing indexing by search engines. While these are not insurmountable problems, the fact that they are hidden in the documentation makes it hard to figure out how to fix them.
What’s next?
The game is now beginning to enter the more interesting phase. The core features need to expandeded to make it more realistic and fun. To that regard, the Match Engine needs a lot of work to incorporate things like fitness, fatigue and fielding. A player traits system is also being planned to make the players more realistic and interesting.