Hacker News new | ask | show | jobs
by halfnibble 2684 days ago
People are saying this is a "quite dated" method for creating a 3D game. Does anyone have a tutorial on creating a 3D game in one weekend (or even 1 day?) using modern tooling? It'd be cool to make a token 3D game with the kids. I'm curious myself.
4 comments

This kind of engine is great as a starting place for programmers, I think, but Unity is probably what you want for the kind of thing you're doing. There's also Godot if you want to stay in Open Source land, but it probably isn't as good and certainly doesn't have the same level of coverage in tutorials and documentation.

Or there's the time-tested path to gamedev: modding existing games.

Disclaimer: I've never used Unity but have played around with Godot quite a bit.

Godot's 3D capabilities, while almost certainly not as full-featured as Unity, are plenty enough to make an old-school FPS, and a lot more.

The Godot online docs are quite good; well organized, clean layout, easy to find stuff. But for tutorials and howtos, I've had more success with YouTube screencast videos vs the Godot docs.

> Or there's the time-tested path to gamedev: modding existing games.

Definitely for kids, modding an existing game is the right way to go. It will be way more fun, and it'll be a lot more motivating to share things with friends than to do stuff because dad said so.

I think you're also right that Unity is better but it's still pretty challenging. Programming is really crazy hard, especially for young kids.

That's despite great things like Code.org and Scratch. Those activities are substantiated by good observational (qualitative) evidence measuring creativity, not programming ability.

The only hard quantitative data people have is engagement time--that kids spend more time in apps than equivalent regular instruction when learning idiosyncratic turtle graphics in apps. Pretty unsurprising in my opinion.

As far as I know, there is no evidence that these pre-high school programming experiences retain acceptably-performing students in high school programming like AP Computer Science better than forcing them to take the class. Scratch's educational mission, which I am most familiar with, has for now not made such test-based outcomes an investigative priority.

Honestly an old-school 3D shooter is just about the worst thing you can coerce a disinterested kid into doing. If they're pre-puberty and still care what dad thinks, this sort of activity is exactly what kids drop when they get older. If they're in high school and don't care what dad thinks: it's not a multiplayer game, it doesn't inhabit some social space/it isn't a "third place," it's not taking advantage of the greatest power of the classroom in high school, peer pressure.

This is based on my experience making a game that kids 12+ regularly mod, being the only kid in high school that programmed regularly before 18, and interacting with (but not conducting research with) the wonderful people at Scratch, who really do know how to make algorithmic thinking and creativity work for kids 12 and younger.

Maybe at Stuyvesant parents are making the kids learn C++, but you gotta understand that coercion is the placebo, not the treatment. If you're going to coerce your kids into doing something incredibly boring, it might as well be whatever narrow testing regime is hot these days and not what we fantasize vicariously they should be interested in doing.

Serious question: what games would you fine folks recommend to get my kids started with modding? The oldest loves Minecraft, Zelda BoTW, and Smash Bros on the switch.

I’ve built a Raspberry Pi Retropie NES clone and they’re all over super bomberman, and old school Pokémon.

The last game I modded was OpenTTD before my kids were born.

Minecraft is the easiest to mod of those by far.
Speaking from experience, Starcraft 1 or Warcraft 3 ship with easy to use world editors.
i wanted to like unity but not having low level access to the rendering and physics internals is intolerable.
1. What aspect of the rendering did you feel you didn't have control over with your own vertex, fragment, and compute shaders?

2. You can hook into most if not all of the physics internals by overriding Update() and FixedUpdate() functions.

Unity is definitely less flexible and powerful than rolling an AAA 3D engine and editor.. But that takes years, and 95% of the time there's a way to solve the problem in Unity.

Yes, but given what we're talking about, a basic old-school first person shooter, you could do it in far fewer than "years" with C++, SDL2 and OpenGL.
1. the primary issue is you can't properly optimize rendering and if what you want to do doesn't fit neatly into unity's architecture its gonna be dog slow and your gonna spend forever writing hacks and work arounds to get it to work.

you don't have to roll your own everything for a custom 3d engine, theres a lot of libraries out there. the idea that everyone should use tooling that reminds me of visual basic to make games is weird to me.

2. i don't know about that. my experience is that you don't have easy access to the actual physics code

This is the kind of misguided mindset that effectively discourages people from making games. It’s as if someone urged people to look into lumber and the papermaking en route to making their own card game.

This fellow’s mindset is a common one, and likely he’s passing it on from his own experience...Telling that engineering culture discourages the shortest routes to creativity

engine development is one of the more interesting aspects of game dev to me and many other programmers, having so much focus on clunky monolithic closed source platforms like unity is lame. just providing a counterpoint to the unity hype, one rando comment is not gonna turn the tide on its popularity lol.
Checkout this Minecraft clone: https://github.com/fogleman/Craft

It is not tutorial, but the code is very clean and readable and it use modern techniques (compared to Wold3D/Doom style raycasters). The codebase could be extended easily.

There is no such thing as a dated method for creating a 3d game. There are many kinds of games and many pros and cons for creating them different ways. It is popular these days to tell people to use Unity3D, and it is an amazing tool but there are also downsides to using it vs rolling your own thing from scratch too.

Royalties, risk of you game ending up unplayable in 10 years, running into limitations you can't fix because you don't have the source, performance ceilings you can't change, bugs you can't fix.

On the other hand if you do things from scratch you can spend years and years and years.

Use a modern engine like Unreal or Unity, watch a few videos and I'm sure you can get something basic running fairly quickly.
Well yea you can get an FPS game made in Unity in about an hour or two. But it won't really tell you much about what is happening in the background.