Hacker News new | ask | show | jobs
by AnIdiotOnTheNet 2686 days ago
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.

4 comments

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.
FWIW the latest versions of Unity are moving in the direction of exposing more of the render pipeline ... Whether you agree or not with doing it through C# is a different question but they are pretty invested in the language ... From my perspective, this approach is a decent compromise for someone that wants to build a render pipeline (basically define how objects are drawn to the screen) on top of an abstraction of the different graphics APIs for all the platforms they support while still maintaining all the other functionality provided by Unity for gameplay and tooling

https://blogs.unity3d.com/2018/01/31/srp-overview/