The Command Pattern: Coding Undo/Redo | Game Engine Concepts #3

Channel:
Subscribers:
59,400
Published on ● Video Link: https://www.youtube.com/watch?v=vqRHjhaECv4



Duration: 20:57
6,128 views
0


Join the Discord: https://discord.gg/4tHeAkxNg7

In this episode I explain what the Command Pattern is and how you can use it. Before I explain what the Command Pattern is I explain what a design pattern is and reference the Gang of Four's original book, Design Patterns. After that, I explain that the Command Pattern is simply a wrapper around executing commands. I then illustrate how this can be used in conjunction with a Command History object to create an undo/redo system, record gameplay sessions, and create instant replays. I describe in detail how you might code this, then I show an actual example that I use in my code to implement undo/redo system.

The Command Pattern: https://gameprogrammingpatterns.com/command.html
Gang of Four Book: https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8
Command Code Example: https://github.com/ambrosiogabe/Cocoa/tree/master/CocoaEngine/include/cocoa/commands
Command History Code Example: https://github.com/ambrosiogabe/Cocoa/blob/master/CocoaEngine/cpp/cocoa/commands/CommandHistory.cpp

0:00 Intro
0:31 What is a Programming Pattern?
1:39 What is the Command Pattern?
13:39 What does the Code Look Like?

---------------------------------------------------------------------
Website: https://ambrosiogabe.github.io/
Github: https://github.com/ambrosiogabe

Here are some books I recommend if you want to learn about game engine development more thoroughly. I do not profit off any of these sales, these are just some books that have helped me out :)

My Recommended Game Engine Books:
Game Engine Architecture: https://www.gameenginebook.com/
Game Physics Cookbook (Read this before the next physics book): https://www.amazon.com/Game-Physics-Cookbook-Gabor-Szauer/dp/1787123669
Game Physics (Ian Millington): https://www.amazon.com/Game-Physics-Engine-Development-Commercial-Grade/dp/0123819768
Game Programming Patterns (Free): https://gameprogrammingpatterns.com/

My Recommended Beginning Game Programming Books:
JavaScript Game Design: https://www.apress.com/gp/book/9781430247166

My Recommended Java Books:
Data Structures/Algorithms: https://www.amazon.com/Data-Structures-Algorithms-Java-6th-ebook/dp/B00JDRQF8C
LWJGL (Free, but I haven't read this thoroughly): https://lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content/

Outro Music: https://www.bensound.com/royalty-free-music




Other Videos By GamesWithGabe


2020-11-04Properties Panel | Coding a 2D Game Engine in Java #36
2020-10-29How I Debug Graphics Code | Game Engine Concepts #6
2020-10-28Translate and Scale Gizmo | Coding a 2D Game Engine in Java #35
2020-10-24Coding Gizmos | Coding a 2D Game Engine in Java #34
2020-10-17Editor Camera Controls with Lerp | Coding a 2D Game Engine in Java #33
2020-10-11Iterative Linear Impulse Resolution | Coding a 2D Physics Engine in Java #15
2020-10-07Serialization (Saving/Loading Levels) | Game Engine Concepts #5
2020-09-26Enabling Mouse Picking and Code Maintenance | Coding a 2D Game Engine in Java #32
2020-09-25The State Pattern | Game Engine Concepts #4
2020-09-19Pixel PERFECT Mouse Picking | Coding a 2D Game Engine in Java #31
2020-09-16The Command Pattern: Coding Undo/Redo | Game Engine Concepts #3
2020-09-12Collision Manifolds (Circle v Circle) | Coding a 2D Physics Engine in Java #14
2020-09-085 YEARS of Game Development | From no Programming Knowledge to this
2020-09-05Mouse Screen Coordinates to Game Viewport Coordinates | Coding a 2D Game Engine in Java #30
2020-09-02How to Debug OpenGL Programs? (Non-zero exit code status, uh oh) | Game Engine Concepts #2
2020-08-30Engine Workflow & Picking | Cocoa Engine Devlog #12
2020-08-29Adding a Game Viewport | Coding a 2D Game Engine in Java #29
2020-08-26How does Font Rendering Work? | Game Engine Concepts #1
2020-08-22Particle Physics and Forces | Coding a 2D Physics Engine in Java #13
2020-08-19Channel Update | GamesWithGabe
2020-08-14ImGui Docking in Java LWJGL | Coding a 2D Game Engine in Java #28



Tags:
gameswithgabe
games with gabe
lwjgl3
design patterns
command pattern
undo redo in code
how to code undo redo
how to code instant replay
the command pattern
game programming patterns
how to code command pattern
gang of four
how to
java game engine
game engine concepts
game engine
how to code a game engine
lwjgl
java