[TOTALLY-OFF-TOPIC] Game Engines

Whoops! Sorry 'bout that, fixed it

@CodeaNoob - No problem. Just a pet peeve of mine. While it’s called many things, one the terms for it is a “high level language”. Things like C++, C#, and Obj-C (among many others) are called OOP, or Object Oriented Languages. Just thought you might be interested if you didn’t know. :slight_smile:

@Zoyt Languages doesn’t start with a P…?

C++ is clearly the most popular programming language used in game engine development since it’s pretty fast and has been around for 20 years.
But the term “game engine” is a very broad term !

It should be noted that all popular game engines use a higher level scripting language be it for AI scripting, triggers, UI, etc. (think lua with WoW, Uscript with unreal engine, Unity Script for unity, etc…).
These scripting languages work as an interface that allow for much needed flexibility and quick “content” generation. Scripting languages are really what make these engines so powerful and user friendly.

I’m old enough to remember when my piddly C code was looked on as elementary “high level” stuff by the guys who were “banging the metal” for every cycle. Fortunately for me, I paired up with an assembly coder in much of my game work, so I could do that simple C stuff and let him pop the stacks as needed.

I’d assume that, behind the scenes, the big game engines still have a good deal of highly optimized code that tweeks specific functions.

@Mark That’s really my favourite aspect in computer programming… I’m truly amazed with people that find ways to optimize code beyond a mere mortal’s comprehension.
I think pure C with bits of ASM is still very common around 4k demo makers and the likes, and I’m pretty sure there are many exciting tricks/gems found in today’s game engines.
I read a little while ago that the fast inverser square root is still very popular (became famous with the quake 3 source code release) and still a strong speed boost with today’s computers…

@SkyTheCoder - Durrr. My bad. Object Oriented Programming is the action which is typically done in those languages. Sorry!

@Xavier I was thrilled the other day to find that someone had worked out a really keen line intersect calculation (which I was able to steal and convert for my entry in the 50 line competition). That kind of simple geometric function fascinates me. I can’t tell you how many times I’ve built line intersect, and it’s cousin point-in-poly, looking for even a tiny improvement.

Back around 1993, I sat down with a guy coding 3D surfaces for a submarine sim and let him talk me through his 100% assembly surface modeler. It was very impressive. Until Doom came out a few weeks later and did everything he was doing, faster, in C by just being %$&! clever about their heightmap + BSP tree approach.