Way of Setup
|
Linux |
Windows |
MacOS |
| Setting up |
|
|
|
| Sanity check |
|
|
|
Oasis - Easier Developing and Debugging
|
Linux |
Windows |
MacOS |
| VSCodium as a cross-platform C IDE |
|
|
|
Way of Basics
|
Linux |
Windows |
MacOS |
| Open a window |
|
|
|
| Event loop |
|
|
|
| Initialize OpenGL |
|
|
|
| Initialize Audio |
|
|
|
Oasis - Enhancement
|
Linux |
Windows |
MacOS |
| OpenGL helpful error messages |
|
| Checking OpenGL context version |
|
| Requesting a specific OpenGL version |
|
|
|
| Getting OpenGL functions and extensions |
|
|
|
| OpenGL 2.1 shaders |
|
| Toggling fullscreen (borderless, not exclusive) |
|
|
|
The Path Walked, Yet Unwritten...
It will take me some time to write out every step of the Path, but, unlike other tutorial series, the code is essentially already written. The final code of the Path will be improved compared to the initial release of my game engine, but you may continue the Path immediately by exploring the NSMGEngine source code, which you downloaded in the "Sanity Check" step. NSMGE is the engine I used to release my commercial games on Steam, and is what the Path is intended to teach. Below is a roadmap for the Path. It is a general outline of what I intend to create for the Path, but it is subject to change.
- Drawing pixels with OpenGL 2.1
- Vsync with OpenGL
- Hiding the mouse cursor
- Creating threads with pthread
Way of the Engine
- Beginning a multi-threaded game framework
- Platform-independent API for windows and events
- A fixed-rate logic thread
- The rendering thread
- Platform-independent API for sound
- The sound thread
Reflections - Planning Ahead
- Top-down limitations for retro-style games
- Bottom-up needs for the Flappy Bird clone
Way of Rendering
- Integer scaling a 240p pixel buffer with OpenGL 2.1 shaders
- Drawing a color-indexed pixel buffer with OpenGL 2.1 shaders
- Loading and rendering 8-bit bitmap images
- Rendering text with a bitmap font
- Rendering rotated sprites
Way of Sound
- Loading and playing back .wav sound files
- Generating retro sound waves
- Mixing and compressing multiple sound channels
Way of Resources
- Loading resources at build-time instead of run-time
Way of UI
- List-style menus
- Automatic saving and loading of game settings
Way of the Flappy Bird Clone
- Pipes
- Bird
- Collisions
Reflections - Looking Back, and Forward
- Procedural game architecture
- Building your own games from here