🎮

Penguin Action Toolkit

Penguin Action Toolkit, also known as Penguin ARPG Toolkit or PAT, is a powerful action game framework which provides a general solution for all kinds of combat-heavy games in Unity. Whether you are interested in making 3D souls-like game or 2D Metrovenia platformer, PAT can provide an accessible and extensible combat system to start with and can save you tens of hours on building the basic framework.

It is a student pitch project at Entertainment Technology Center, Carnegie Mellon University.

The toolkit is now published as a free package on the Unity Assets Store. Download and try it -> [STORE LINK]

Project Type

Unity tool

🛠

đŸ“Ļ

Time

Sep 2024 - Dec 2024

Team

Jinyi Dai, Wuji Cao, Yuanheng Qu, YC Hu, Minghao Zhou, Yiran Zhang

My Role

Designed and implemented the core structure of the character locomotion system, including movement control, input handling and camera views.

Developed a Unity in-editor timeline tool for State Modifiers, enabling visual editing and real-time previews of different elements of combat skills, including animations, visual effects, sound effects, special locomotion changes and so on.

Publishing & Documentation

Packaged the toolkit properly for release and successfully published it on the Unity Asset Store. Organized technical documentation in GitBook, including tutorials and API references.

Why Build a Combat System?

Action games come in many forms — 2D, 2.5D, or 3D — and while they vary in visual style and mechanics, they often share a common structure: a controllable character navigating a scene, executing skills and abilities triggered by player input. Developing a robust combat system typically requires a significant amount of foundational work before a team can begin focusing on creative, gameplay-specific features. That’s exactly why we set out to build this toolkit — to save developers time by handling the basic structure, without limiting their creative freedom.

Unlike many existing action game frameworks that offer rigid, pre-defined systems — which often result in games that feel similar — Penguin Action Toolkit focuses on flexibility and extensibility. Rather than delivering a “plug-and-play” combat system, PAT is designed especially for programmers. It encourages developers to write their own code, customize behavior, and build unique gameplay features from a solid foundation. By emphasizing structure over specificity, PAT gives teams the freedom to create unusual mechanics, integrate with complex systems, and retain full control over how their combat works.

In short, 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.

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.

Core Structure

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.

Editor Tool: Modifier Timeline

One of the core innovations in Penguin Action Toolkit is the in-editor Modifier Timeline Tool, designed to dramatically improve the workflow of creating and tuning character abilities.

In PAT, Modifiers define the specific behaviors of an Action State. Originally, adjusting Modifier parameters — such as animation timings or locomotion bursts — required manual inspector edits and repeated game runs, making iteration slow and difficult, especially for less experienced developers.

The Timeline Tool introduces a visual, drag-and-drop interface inside the Unity Editor:

  • Developers can preview and adjust Modifiers directly in-editor without entering Play mode.

  • Changes are reflected immediately, enabling rapid iteration and fine-tuning.

  • Usability features like automatic alignment further accelerate the editing process.

With the Timeline Tool, PAT transforms from a technical framework into a complete, user-friendly toolkit — allowing faster development and easier experimentation for custom abilities.

Links

My Role

Programmer, technical designer

Character Locomotion Design

Custom Editor Tooling

Overview

đŸ•šī¸

Prototype Playtesting

Built internal prototypes to validate system extensibility and developer usability under different system combinations.

Use Case Examples

Internal Playtest: 2D Castlevenia-like Game

Internal Playtest: 3D Souls-like Game

External Playtest: PAT Jam Games

Next
Next

QuestMakers