About
This website contains notes and materials for the Independent Study Seminar - Programming I and II.
If you find issues or inaccuracies, please contact me at mslater@nevada.unr.edu.
Missing links will be added in the future.
Setup
Each of these guides shows you how to set up a development environment, compile, and run "hello world."
Both GCC and the Visual Studio compiler (MSVC) can be run by themselves on Windows, similarly to how GCC is used on linux. Email me if you'd like guides on using the standalone compilers on windows.
Other IDEs (Integrated Development Environments) include Code::Blocks, Eclipse, NetBeans, and XCode (for mac). There are many guides on how to set these up.
Contents - C++
- A Note on Files and the Build Process
- Project 01 - Roots
- Project 02 - Maze Game
- Project 03 - Card Game
Contents - SDL2
Contents - Data Structures & the C++ STL
- STL 01 - Strings
- STL 02 - Vector, Array, Stack, Queue
- STL 03 - Priority Queue & Heap
- STL 04 - Map, Multimap, Unordered Map
- STL 05 - Threading
- STL 06 - Smart Pointers & Move Semantics
- STL 07 - Functional Programming
- STL 08 - Exceptions
- Structures 01 - Time & Space Complexity
- Structures 02 - Sorting Algorithms
- Structures 03 - Stacks, Queues, & Lists
- Structures 04 - Trees & Heaps
- Structures 05 - Binary Search Trees
- Structures 06 - Dictionaries & Hashing
- Structures 07 - Graphs
- Structures 08 - Graph Operations
Contents - Game Design Patterns
- General - Planning, Exploration, & Balance
- General - Compression
- Design - Abstraction & Encapsulation
- Design - Loops, States, Events, Systems, Updates
- Worlds - Spacial Partitioning
- Worlds - Storage
- Worlds - Generation
- Entities - Inheritance
- Entities - Components
- Entities - Storage
- Entities - Simulation
- Rendering - Tile Maps
- Rendering - Sorting & Passes
- Interface - HUD
- Interface - Menus
- Interface - Commands
- Techniques - Logging
- Techniques - Debugging
- Techniques - APIs, Wrappers
- Techniques - Scripting
- Techniques - Dynamic Libraries
Contents - OpenGL
- OpenGL 01 - Concepts
- OpenGL 02 - Setup With SDL
- OpenGL 03 - Drawing a Triangle
- OpenGL 04 - Shaders
- OpenGL 05 - Vectors, Matrices, & Transformations
- OpenGL 06 - Coordinate Systems
- OpenGL 07 - Putting it all Together
- OpenGL 08 - Model Loading
- OpenGL 09 - Basic Lighting
- OpenGL 10 - Materials
- OpenGL 11 - Lighting Maps
- OpenGL 12 - Light Casters
- OpenGL 13 - Multiple Lights