top of page

Unity Action Game Framework

Penguin Action Toolkit

Tool Engineer

Unity (C#)

This was a semester long project, aiming to create an accessible, extensible and powerful action game framework that helps small indie teams make action games and saves them valuable time in development.

I'm working as the tool engineer in the team and is responsible for the animation system and GUI editor development.

https://assetstore.unity.com/packages/templates/systems/penguin-arpg-toolkit-302387?srsltid=AfmBOoqOX_2fxgfJR6ZxXz2MvoaTlvy118DEKkmx8DXu1xjEf56dxxU8​
 

https://patpat.gitbook.io/penguin-action-toolkit

Here's a short showcase of the editor I worked on

PAT takes a different approach than other packages:It provides a structured yet flexible system architecture.It’s built for developers who want to code, not avoid it.It encourages customization and supports truly unique gameplay ideas.

Penguin Action Toolkit provides a modular set of systems divided into two core concepts:
character locomotion and character abilities.

Character locomotion

Character locomotion handles all fundamental character movement features, including player input processing, character movement and third-person camera behavior.

 

The core of locomotion is a shared locomotion base script that contains general logic such as handling horizontal and vertical movement calculations, applying rotation with animation sync, and supporting special movement behaviors like dashing or teleportation. This base class contains only the logic and calculations — it does not directly apply movement or rotation. Instead, developers can attach different locomotion motors to define how movement is applied in 2D, 3D, or AI-driven scenarios using Unity’s Character Controller, NavMesh, or third-party controllers. Similarly, locomotion animators can be swapped to match different animation pipelines and parameter setups, offering flexibility across different game types and animation systems.

image.png

Character abilities

Character abilities in PAT represent all active skills a character can perform — including both combat actions (such as sword slashes, magic casting, or shield parries) and mobility actions (like double jumps, dashes, or wall kicks).
 

In PAT, each ability is represented as an Action State. An Action State serves as a triggerable container — it doesn’t define specific behavior on its own, but acts as a state in the dynamic state machine.
 

Its behavior is defined by a collection of attached State Modifiers. These modifiers determine how the ability manifests — handling animations, visual effects, sound effects, and locomotion changes.

 

The toolkit includes a library of commonly used modifiers, such as animation triggers, instant movement changes, and timed visual effects. For more customized use cases, developers can easily extend the system by inheriting from the StateModifier base class and writing their own logic, enabling unique and highly customized gameplay behavior.

Current Progress:

Finished the GUI Node Graph Editor, the user can create desired character action structure by simply adding nodes and dragging scripts, instead of going to the inspector and modify the object one by one. The editor can also display the game tag and scripts on each node, which greatly fasten the developing process when creating a complex character.

 

The Graph Runner script will initialize the character following the node graph, which will generates corresponded objects and scripts below the character object.

bottom of page