Steam Page
Combat Demo Video
(Updated on June 10, 2023)
Project Overview
Project Type | Personal Project |
Game Genera | Action Role-Playing Game |
Role | Producer, Designer, Engineer, Technical Animator |
Core Team Size | 3 |
Duration | October 2022 ~ Present (still in development) |
Game Engine | Unreal Engine 5 |
Tools | Maya, Visor, Git, Google Suite, Microsoft Office, and Microsoft Teams. |
Project Description
"The Unfallens: Awakening" is an action game that focuses on boss battles. It is also my graduation project for the Master's program in Entertainment Arts and Engineering at the University of Utah. Together with two of my classmates artist Yiyu Wang, and technical artist Zeshi Chen we completed this project within six months. Additionally, we received support from audio designer Taijee Shavers and composer Nick Rozzell at the Berklee College of Music for audio development.
The game has been freely released on Steam, and as of now, it has been downloaded approximately 50,000 times and played 8,000 times. It has received overwhelmingly positive feedback with a "Very Positive" rating based on 100 player reviews. For a student project, I believe this is a commendable achievement.
All work on this project, except for parts explicitly credited to others on the project page and development log, was done by myself.
Responsibilities
Combat System Development: I designed, implemented, and configured the entire combat system and mechanics, including logic and appearance features, such as combo function, command caching function, lock-on function, target auto-tracing function, hit feedback slow-motion and camera shake function, etc. I created the necessary design documents and wrote all game logic using blueprints.
Combat Abilities and AI Development: I designed and developed combat abilities and AI logic for characters, adjusted related data configurations, and edited relevant animation assets.
Animation state machine and animation blueprint development: I developed the runtime animation functions for the player and the boss. I used engine functions like distance matching, linked animation blueprints, and layered blending, to provide realistic locomotion and combat animations.
Unreal Editor Tools: I created some editor tools to facilitate data configuration, and maintenance of animation notifies, greatly enhancing my work efficiency.
Worldview and Character Design: I led the conceptual and narrative design of the worldview and character concepts, focusing on the design of character combat abilities and providing anchors for the work of the concept artist by writing related documents.
Animation Production: Based on the character's motion design, I directed the actor's motion capture and cleaned animation data in Maya. I also created some keyframe animations, and retargeted some third-party assets.
Maya Editor Scripting (Python): To facilitate animation and rigging work, I wrote some editor scripts in Maya with Python.
Art Asset Configuration: I worked closely with the technical artist to process art assets such as character skeleton rigging and weapon deformation materials. Most of the character art assets in the game were also configured by me in the engine.
External Asset Integration: When working with external resources such as motion capture studios and audio designers, I was responsible for relevant communication, integration, and document management.
Project Progress Management: I used Visor for project progress management and adjustment.
Full project postmortem
This article introduces the development process of the student project "The Unfallens: Awakening" from October of last year to May of this year.
Preview of Some Development Contents
Concept Design of Boss Combat Abilities (By the concept artist and me together)
Motion Capture Directing
General Target Search Function
"Auto-trace" Attack action correction function
Locomotion
Hit feedback: slow motion and camera shakes
More Information
I have updated the development log and shared relevant design and technical experiences on this site. You can read the related content to get more information.
Distance Matching: How to make your locomotion stop animations more realistic with Distance Matching
Comments