Skip to main content

Practical Game Programming: References and Resources

Practical Game Programming
References and Resources
  • Show the following:

    Annotations
    Resources
  • Adjust appearance:

    Font
    Font style
    Color Scheme
    Light
    Dark
    Annotation contrast
    Low
    High
    Margins
  • Search within:
    • My Notes + Comments
    • Notifications
    • Privacy
  • Project HomePractical Game Programming
  • Learn more about Manifold

Notes

table of contents
  1. Cover
  2. Acknowledgements
  3. 1. Introduction
    1. 1.1. Introduction to Video Games and Game Programming
    2. 1.2. History of Video Games
    3. 1.3. Types of Video Games
    4. 1.4. Road Map of Game Development
    5. 1.5. Set Up Game Development IDE
    6. 1.6. The Allegro 5 Game Library
      1. Exercises, Homework Questions, and Projects
  4. 2. Essentials of Game Programming with Allegro
    1. 2.1. Common Structure of a C/C++ Program with Allegro 5
    2. 2.2. Handling User Input
    3. 2.3. Collision Detection
    4. 2.4. Adding Sound Effects to Games
    5. 2.5. Timers and Game Timing
    6. 2.6. Using Files for Games
      1. Exercises, Homework Questions, and Projects
  5. 3. Using Graphics in Games
    1. 3.1. Bitmap Fundamentals
    2. 3.2. Bitmaps Creation and Use in Allegro 5
    3. 3.3. Utilizing Bitmaps in a Program
    4. 3.4. Scaling and Rotating Bitmaps
    5. 3.5. Displaying a Section of a Bitmap and the Concept of a Viewport
    6. 3.6. Advanced Graphics Techniques in Allegro 5
    7. 3.7. How Transformations Help with Resolution Independence
    8. 3.8. Antialiasing and Texture Smoothing
    9. 3.9. Shaders
    10. 3.10. Using Premultiplied Alpha in Allegro 5
      1. Exercises, Homework Questions, and Projects
  6. 4. Programming Sprites in Allegro 5
    1. 4.1. The Fundamentals
    2. 4.2. Additional Sprite Handling Routines
    3. 4.3. Allegro Blending Function and Sprites
    4. 4.4. Advanced Sprite Use in Allegro 5
      1. Exercises, Homework Questions, and Projects
  7. 5. Programming Backgrounds for Video Games
    1. 5.1. Types of Backgrounds
    2. 5.2. Creating and Using Static Backgrounds
    3. 5.3. Creating and Using Scrolling Backgrounds
    4. 5.4. Creating and Using Dynamic Backgrounds
    5. 5.5. Creating and Using 3D Backgrounds
      1. Exercises, Homework Questions, and Projects
  8. 6. Game Design and Development Fundamentals
    1. 6.1. Conceive an Amazing Game
    2. 6.2. Transforming a Billion-Dollar Idea into a Detailed Game Design
    3. 6.3. Implement the Game
      1. Exercises, Homework Questions, and Projects
  9. 7. Advanced Topics in Practical Game Programming
    1. 7.1. Multithreading
    2. 7.2. Custom Shaders
    3. 7.3. Networking for Multiplayer Games
    4. 7.4. AI Programming
    5. 7.5. Optimization Techniques
    6. 7.6. Custom GUI Systems
    7. 7.7. Advanced Audio
      1. Exercises, Homework Questions, and Projects
  10. 8. Game Development Projects
    1. 8.1. Action Game: Space Shooter
      1. Exercises, Homework Questions, and Projects
    2. 8.2. Platform Game: Tank War
      1. Exercises, Homework Questions, and Projects
    3. 8.3. Adventure Game
      1. Exercises, Homework Questions, and Projects
    4. 8.4. Arcade Game
      1. Exercises, Homework Questions, and Projects
    5. 8.5. Board Game
      1. Exercises, Homework Questions, and Projects
    6. 8.6. Emulator Game
      1. Exercises, Homework Questions, and Projects
    7. 8.7. Puzzle Game
      1. Exercises, Homework Questions, and Projects
    8. 8.8. Role-Playing Game
      1. Exercises, Homework Questions, and Projects
    9. 8.9. Sports Game
      1. Exercises, Homework Questions, and Projects
    10. 8.10. Strategy Game
      1. Exercises, Homework Questions, and Projects
    11. 8.11. Utilities Game
      1. Exercises, Homework Questions, and Projects
  11. References and Resources

References and Resources

Official Resources

Allegro 5 Documentation

  1. Allegro 5 Official Wiki (https://liballeg.org/a5docs/trunk/): Comprehensive documentation for functions, examples, and concepts.
  2. Allegro 5 GitHub Repository (https://github.com/liballeg/allegro5): Source code and issue tracking.
  3. Allegro.cc Forums (https://www.allegro.cc/forums/): Active community for troubleshooting and discussions.
  4. Allegro 5 Keyboard API (https://liballeg.org/a5docs/trunk/keyboard.html). Allegro 5 documentation page for Keyboard API.

Books

Beginner-Friendly

  1. Allegro 5 Game Programming by Jonathan S. Harbour: Step-by-step guide to building games with Allegro 5.
  2. Beginning C++ Game Programming by John Horton: While not Allegro-specific, it teaches C++ concepts applicable to game devs.

Advanced

  1. Game Programming Patterns by Robert Nystrom: Explores design patterns applicable to Allegro-based projects.

Tutorials and Courses

Free Tutorials

  1. Official Allegro Tutorials (https://liballeg.org/a5docs/trunk/getting_started.html): Basic setup and example projects.
  2. Classic tutorials for Allegro (https://liballeg.org/docs.html): Useful tutorials for learning Allegro. You can ask an AI assistant about additional tutorials for Allegro 4/5.

YouTube Channels

  1. Allegro 5 Tutorial Series by Sonar Systems (https://www.youtube.com/playlist?list=PLRtjMdoYXLf4od_bOKN3WjAPr7snPXzoe).
  2. Making Games with Allegro 5 by VoidRealms (https://www.youtube.com/playlist?list=PLvv0ScY6vfd9wBflF0f6ynlDQuaeKYzyc).

Sample Projects and Code Examples

GitHub Repositories

  1. Allegro Examples (https://github.com/liballeg/allegro5/tree/master/examples): Official example code (sprites, audio, input).
  2. Simple 2D Game Template (https://github.com/j3soon/Allegro5Template): Basic framework for starting projects.
  3. Allegro Pong Clone (https://github.com/Jshbrck/Pong): Classic Pong implementation.

Forums and Communities

Discussion Platforms

  1. Allegro.cc Forums (https://www.allegro.cc/forums/): The primary hub for Allegro developers.
  2. Reddit: r/gamedev (https://www.reddit.com/r/gamedev/): General game dev discussions.
  3. Stack Overflow: Allegro Tag (https://stackoverflow.com/questions/tagged/allegro5). Site for asking and getting advice on programming questions.

Complementary Libraries

  1. Box2D (https://box2d.org/): Physics engine integration.
  2. OpenAL (https://www.openal.org/): Advanced audio (Allegro’s audio module is sufficient for basics).
  3. OpenGL (https://www.opengl.org/): Advanced graphics (Allegro’s audio module is sufficient for basics).

Annotate

Previous
This work is licensed under a Creative Commons License (CC BY-NC-SA 4.0), except where otherwise noted. This license allows users to copy and redistribute the material in any medium or format and to remix, transform, and build upon the material as long as the original source is properly credited, the work is not used for commercial purposes, and the new creation is licensed under the same terms.
Powered by Manifold Scholarship. Learn more at
Opens in new tab or windowmanifoldapp.org