Five months into my first game (code-first, MonoGame)
I'm a software engineer building my first game, a 2D skill based space pvp MMO. I skipped Unity/Unreal and went code first with MonoGame because I'd rather write code than spend my first weeks learning some tool.
This is what I've learned,
1. UDP packet budgets are a hard wall.
You get roughly 1000-1400 bytes per packet. If inputs plus projectiles for a crowded system exceed that, you can't keep the same tick rate and send everything, even with compression. I built an interest graph (thanks to an unreal blog) that prioritizes dangerous projectiles and nearby players and updates them at normal cadence letting less threatening items update at a lower rate, it's not perfect but at least degregation is more predictable now.
2. Rule out your environment before you roll back your code.
I started getting some rubber banding on my dev server and burned time on rollbacks and roll-forwards. It was a noisy neighbor on shared CPU. Bumping compute fixed it instantly.
3. Don't reinvent git.
My first content pipeline existed to push live changes for values that basically never change, then copy them to every game server. That's just a worse git.
4. Code-first means you build your own tooling, and it snowballs.
I started with an admin tool to tune flight values live. Then a route editor for travel between star systems. Then I realized I'd need this across multiple servers, so now there's a control plane with reconciliation and statuses. Worth it for me, but budget for it. But that sort of tooling is my bread and butter as a full stack dev
5. Design docs let a second dev work independently.
I wrote up scope and module overlap before onboarding a collaborator. He delivered a working economy (markets, missions, an immutable transaction ledger) that my planet systems hook straight into.
6. Get real players in early.
A private Steam playtest let me test things I can't solo, like lag compensation on shots, and it surfaced real issues.
The one thing I keep putting off is art, learning blender has been on my todo for months :/ .. Anyone have tips for forcing yourself over that hump?