The State Pattern | Game Engine Concepts #4

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



Duration: 11:25
1,780 views
0


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

The state pattern is a commonly used pattern that helps to encapsulate different portions of logic and make the transitions between using the different pieces of logic seamless. This pattern is used in Unity's animation machine's, but it can be used for even more purposes to help make your code more maintainable in the long run. This is based of the state pattern in Bob Nystrom's Game Programming Patterns.

State Pattern: https://gameprogrammingpatterns.com/state.html
Example Code: https://github.com/ambrosiogabe/JavaGeometryDash/blob/c36740f66c9494da5871b8b290a9dcc751ee9db1/src/com/jade/scripts/Player.java#L66
Animation Machine Example Code: https://github.com/codingminecraft/Mario/blob/master/src/main/java/com/component/AnimationMachine.java

0:00 Intro
0:30 What is the State Pattern?
6:30 Code Example

---------------------------------------------------------------------
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-13Box2D Lite Walkthrough Part 2 | Coding a 2D Physics Engine in Java #17
2020-11-12Box2D Lite Walkthrough Part 1 | Coding a 2D Physics Engine in Java #16
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



Tags:
gameswithgabe
games with gabe
lwjgl3
design patterns
state pattern
finite state automata
fsa
how to code finite state machine
the state pattern
game programming patterns
finite state machine
gang of four
how to code fsa
java game engine
game engine concepts
game engine
how to code a game engine
lwjgl
java