Game Engines 2021W Lecture 1
Jump to navigation
Jump to search
Notes
Course Outline What is a game engine? Why? - platform/environment for creating and running games - collection of tools - normally has a physics engine - has some way to "render" graphics, manage sound, music game engines are designed to help the creation of games - what they are depends on the kind of games they are intended to support - 2D vs 3D - graphics vs text - Inform before game engines, you just had raw dev environments - just write the program! - make your own rendering engine, physics, text parsing, sound, etc game engines came about because programmers/game developers got lazy - why reinvent the wheel? - started proprietary, but then became open - can also help with portability Two big milestones in game engine development - Z machine <--- ancestor of Inform, Z is from Zork! - Doom game engine release - code GPL, assets proprietary - led to lots of "game mods" (entirely new games often), engine enhancements Two popular game engines nowadays - Unity - Unreal Maintaining a modern game engine is a lot of work - portability is a pain - expectations keep going up - better rendering, physics, sound - hard for proprietary engines to keep up Game engines look like operating systems to me - ok, they are "middleware" - but they do the abstraction and resource management of an OS - kinda have device drivers, esp with modern graphics APIs - Metal, Vulkan, D3D 12? What is the cost of using someone else's engine? - constrained by what they give you - abstractions may not match your game or your approach! - you have to learn them - again, may not match your mental model - money! This course is about understanding the design and implmentation of game engines - need to pick an example - understand what they facilitate, and what they restrict Why godot? - not as advanced as Unity or Unreal - but it is growing - it is open source - so you have control, can make contributions - and it is small yet feature filled - game engines are becoming more and more important - used for much more than games - will be demand for open source engines, and Godot might be it - kind of like Linux Godot's editor is implemented in Godot