Live data from Hacker News

CSCI 181G PO: Game Engine Programming

cs.pomona.edu

1–10 of 21 posts

Re: CSCI 181G PO: Game Engine Programming

#4
post #2

Rust and Unity are interesting picks. I feel like everyone used to use C++ to teach game engine development.

I imagine this course is more theoretical than practical? And maybe the students already have exposure to rust in other courses? I hope so, anyway. If not, it would be like teaching an introductory web dev course in Elixir. Students would learn a lot, but it sure wouldn't help them get their foot in the door at their first jobs. I've definitely taken classes that were clearly intended to be practical in which the teacher either taught it through their weirdly specific lens of familiarity, or had pet concepts about the "correct" way to do things that weren't in accordance with the rest of the world, or assume that the weird circuitous way they learned something was somehow superior because they're just so dang smart. The worst.

Re: CSCI 181G PO: Game Engine Programming

#5
Wow, looking at the syllabus, I can't imagine learning all of this in a single semester at more than a very surface level (and the course notes definitely don't seem surface level).

Take just rendering (my area of expertise): There's game programming in general, OOP and ECS, input and update loops, setting up a window, common patterns, etc, necessary prerequisite stuff.

Then there's rendering APIs and the GPU, e.g. learning about vertex/fragment shader concepts and syntax, buffers and uploading data, binding resources, making pipelines and such, etc. Then there's how to make an actual rendering _engine_, e.g. abstractions for batching entities, generating draw lists, command buffer recording for various passes, etc. Then there's lighting - analytic direct lights, many many forms of baked or realtime indirect lighting, BRDFs and PBR shaders, the pain that is shadow mapping, etc. Then on top of all that there's actually optimizing everything both from a CPU and GPU (shader) perspective.

And that's _just_ rendering. Game engines are usually way more. Asset management, physics, UI, possibly scripting, possibly networking, animations, usually some sort of scene editor, etc. All of those with many many subfields and complexities.

Re: CSCI 181G PO: Game Engine Programming

#6
post #5

Wow, looking at the syllabus, I can't imagine learning all of this in a single semester at more than a very surface level (and the course notes definitely don't seem surface level). Take just rendering (my area of expertise): There's game programming in general, OOP and ECS, input and update loops, setting up a window, common patterns, etc, necessary prerequisite stuff. Then there's rendering APIs and the GPU, e.g. l…

Well, here is the thing though: you don't need most of that rendering stuff to learn how to make a game engine - if anything it might actually be better to not focus too much on the rendering as there are many people with the misconception that a game engine is really all about its renderer when in most engines it only is a small fraction of it (i remember checking my own engine some time ago and only around 10-15% of the codebase was about the rendering, i mentioned it to some Godot developer who said that this number checked with Godot too and years ago a AAA game i worked on also had the rendering bits be around 7-10% of the codebase too, so i think on average the percentage is more or less stable) and there are a lot more things going on.

The content on the site seems to also follow, even quickly browsing from the materials there and despite using Vulkan (which is much more verbose than necessary), it still only mentions basic things like rendering sprites, meshes, some scene representation and leaves lighting and shadows (which only get a couple of paragraphs to describe the ideas behind shadow mapping) at the very end (up to that point everything is unlit/fullbright). Even lighting is only described at its basics and the page mentions some external resources to learn more if anyone wants to.

Re: CSCI 181G PO: Game Engine Programming

#7
post #2

Rust and Unity are interesting picks. I feel like everyone used to use C++ to teach game engine development.

Back in my day most 3D tutorials were in Turbo Pascal.

Also they weren't written by college professors but by demoscene teenagers :-P.

Fashion trends tend to change over the years :-)

Re: CSCI 181G PO: Game Engine Programming

#8
post #2

Rust and Unity are interesting picks. I feel like everyone used to use C++ to teach game engine development.

Rust makes sense because it is Open Source and a growing language in the gaming world. Unity, on the other hand, is a proprietary, legacy engine which is on the way out. I would have selected Rust and Godot instead.

Re: CSCI 181G PO: Game Engine Programming

#9
post #4
post #2

Rust and Unity are interesting picks. I feel like everyone used to use C++ to teach game engine development.

I imagine this course is more theoretical than practical? And maybe the students already have exposure to rust in other courses? I hope so, anyway. If not, it would be like teaching an introductory web dev course in Elixir. Students would learn a lot, but it sure wouldn't help them get their foot in the door at their first jobs. I've definitely taken classes that were clearly intended to be practical in which the tea…

I've found most academics to be like this

Re: CSCI 181G PO: Game Engine Programming

#10
post #5

Wow, looking at the syllabus, I can't imagine learning all of this in a single semester at more than a very surface level (and the course notes definitely don't seem surface level). Take just rendering (my area of expertise): There's game programming in general, OOP and ECS, input and update loops, setting up a window, common patterns, etc, necessary prerequisite stuff. Then there's rendering APIs and the GPU, e.g. l…

That's exactly what I was thinking. When I read "CSC: Game Engine Programming" I was like, "oh shit, someone's offering a degree specializing in engines!?". I feel like a semester is barely enough to skim even the very basics..
Post reply on HN