u/dev-bytesingularity

▲ 2 r/monogame+1 crossposts

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?

reddit.com
u/dev-bytesingularity — 11 days ago

15 years into software engineering, MonoGame finally made game development feel possible

I have to say, MonoGame is incredible.

I’ve been a software engineer for about 15 years, and like many developers, I started out as a kid thinking I would make games. Then reality hit, and I ended up spending my career building distributed systems for enterprises.

Now that I’m in my 30s, I’ve realized that I finally have the skills to build the kind of game I used to imagine making.

Unity and Unreal have always been a bit of a turnoff for me because they feel so tool heavy. I enjoy programming and building systems, and MonoGame lets me spend much more of my time doing exactly that. I still inevitably end up in Blender trying to learn 3D modeling, but the core of the project feels like software development rather than learning an editor.

For the other experienced software engineers here: what made you choose MonoGame instead of a more full-featured engine, and what parts have you most enjoyed building yourself?

reddit.com
u/dev-bytesingularity — 3 months ago