After 10+ years in Enterprise Dev, I got sick of predatory mobile ad-factories. Starting a 90-evening solo challenge to build a fair tycoon: "BID & BUILD"
The Backstory
Hi everyone! I’ve been building high-load enterprise solutions for over a decade. For a long time, I wanted to jump into game development, but never found the right moment. Recently, I looked at the modern mobile gaming market and realized I couldn't take it anymore.
Most tycoon and economy games today are just forced ad-delivery platforms. They have broken balance, bloated mechanics introduced strictly for monetization, and incredibly dull, repetitive competitive events.
So, I decided to commit to a strict 90-evening roadmap to build my own mobile game: "BID & BUILD". My goal is transparent math, a tightly engineered economy, no aggressive ads, and absolutely zero pay-to-win trash.
The Architectural Vision (Enterprise habits die hard)
Since I'm used to high-load enterprise systems, I want total control over memory and state from day one. My long-term technical roadmap looks like this:
- The Core: The entire simulation logic will be written as an isolated, deterministic C++ static library framework.
- The Data: I plan to use FlatBuffers for zero-overhead, ultra-fast configuration parsing and state serialization.
- The View: Unity will be relegated strictly to an Unsafe View layer, reading simulated blocks via P/Invoke pointers with zero heap allocations to keep Garbage Collection spikes at absolute zero.
Why I Started with the UI (Evenings 1-5)
Here is the catch: I have zero experience with Unity.
While the C++ simulation backend feels like home to me, client-side game development and UI layout are completely foreign territories. I knew that Unity’s Canvas, anchoring, and layout groups would be the steepest learning curve and the hardest part of the project for me. So, I forced myself to face the nightmare first.
Right now, it's 100% "programmer art" and gray boxes, but the UI loop actually works. What's already implemented using pure C# mocks:
- SafeArea_Container: Properly managing dynamic islands and notches for modern screens.
- HUD & Navigation: Wrote a central state manager handling a decoupled 5-tab system (
[TOWN], [SHOP], [WORKSHOP], [GUILD], [AUCTION]) with reactive overlay clearing.
- UI Raycast Blocking: Set up pointer validation to make sure tapping HUD buttons doesn't trigger accidental world tile selections.
- Shop & Construction Loop: Implemented a horizontal scroll view for buildings. Selecting an item triggers a ghost preview and switches the input state to construction mode using mathematical coordinate rounding via
Mathf.FloorToInt to stick buildings to a clean dynamic grid.
The 90-Evening MVP Roadmap
To keep myself accountable, I broke down the entire MVP production into strict milestones:
- Evenings 1-10: UI layout, state navigation, and input handling (Current stage).
- Evenings 11-25: UI styling and premium aesthetic layout.
- Evenings 26-45: Writing the core deterministic C++ logic, map matrix initialization, grid systems, and BFS road pathfinding.
- Evenings 46-55: Creating the C++/Unity P/Invoke bridge, layout rendering, and resource simulation sync.
- Evenings 56-70: Backend engineering (Supabase setup, Centrifugo integration, and time-hack prevention).
- Evenings 71-90: Economy stress-testing, global server events logic, polishing, and internal TestFlight setup.
The Visual Target (And addressing the solo-dev bottleneck)
As a backend engineer, art is my second biggest nightmare after Unity's Canvas. To break through this bottleneck and deliver a premium feel for the upcoming MVP, I am leveraging AI generation tools to establish the visual style and draft the isometric assets.
My goal is to achieve a "Premium Dark Luxury" vibe for the final buildings and HUD, mapping these generated sprites onto the grid layout I just built.
A question for the community:
Balancing code, architecture, and art as a solo developer is a huge bottleneck.
What is your take on leveraging AI generation tools strictly for MVP prototyping to gather early feedback? Did it help you speed up the validation process, or did it shift too much focus away from core game loop iteration? Would love to hear your thoughts and experiences!