This is clearly shaping up to be the pinnacle of this decade's technology

Sonotsugipaa@lemmy.dbzer0.com to Programmer Humor@programming.dev – 276 points –
39

  1. Don't roll out your own crypto suite
  2. Don't write your own game engine
  3. Don't create your own OS from scratch
  4. Don't build another multipurpose framework
  5. ...

Whom am I kidding, go do all of that! Learn why you most probably shouldn't 😆

  1. Don't make an MMORPG as your first ever game with only you and your one friend as devs

Oddly specific?

Yet depressingly common in MMORPG circles. People tend to vastly underestimate the amount of work needed to get an remotely playable MMO off the ground.

I've entertained the idea, and the first to requirements that come to mind are advertising money and server upkeep money - then one could start worrying about actually making it

What is this smell? Is that the smell of self experience?

Nah, I can't tell a Class from a Function in most programming languages. I ain't making no game.

You won't be able to mistake the two if you don't use Classes.

I want to learn how to write a physics engine.

Those are easy, unless you want 128bit resolution, relativistic effects, collisions, or fancy stuff like that.

PS: Bonus points if you write one without collision detection, then sell it as a game on Steam.

PS2: Super Bonus points if you make it 64bit, then keep crowd-funding it for 10 years.

What if I make an OS that's also a game engine?

Hear me out: a fully fledged desktop environment, like KDE Plasma or Gnome, but it's a 3D world - "windows" are just walls, the file explorer is just a bunch of procedurally generated condos, and you get a Gmod physics gun to move stuff around.

Making your own engine is worthwhile learning experience. The same as trying to recreate any of the foundational tools that you use. Might not be the fastest or best way to make a game but a good way to make yourself a better developer.

Not the fastest

This is my 4th Vulkan related "project" and 2nd attempt at making something other than a glorified tutorial workspace in 6 years, and it took me 4 weeks to draw this stuff with minimal technical debt.

I could just use an existing game engine, but what's the fun in not manually sorting all draw commands by mesh>pipeline>material and hunting synchronization hazards by just looking at funny glyphs for extended periods of time?

The best part is when your game just spontaneously closes. No logs, just some weird failure that's got something to do with graphics.

Well, that's the OpenGL experience, anyway. Damn opaque state machines...

Eh, at this point it happens every 3 commits, you get used to abusing gdb (since valgrind just dies).

I hope the police doesn't find my unregistered breakpoint minigun...

Keep in mind that if you actually want to make a game, make a game not an engine. Too many video game projects get bogged down in the engine development stage and never make it to completion.

Do people even make their own engines anymore? If this wasn't a pet project I would have dropped the entire thing as soon as I started dealing with 3D models, and visited Godot's homepage.

...

Perhaps I should get my hands on Godot at some point.

Godot is a lot of fun! I've never finished making a game but I've made a half dozen hacky demos that I was really proud of.

Usually AAA game studios has their own in house game engine

The in-house engines I know are being used are also really old - hell, 343i even decided to ditch the fossil that once was Halo: CE's engine because of technical debt and outsourcing blood sacrifices

Ah, yes, I miss the days of 343 having home grown blood sacrifices.

Thank you! I haven't laughed that hard in a year or more. My sides hurt.

Now do a camera that can be controlled

Done, that wasn't the hard part - after that I spent a few days on normal mapping and passable light reflections

What kind of method you gonna use for reflections?

For reflected objects none, that's too much effort - this thing only reflects light sources.

Proper reflections require either too much effort, or me being smarter than I actually am.

(Reflecting light sources is as easy as doing some tangent-space wizardry and a few dot products)