Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Character Design & System Uniformity

Author: Jayson Green
Date: 9/26/2024

The Problem:
From the beginning, due to our immediate concerns with Source control and distribution of work, we had separated our character specific systems between myself and our lead Developer, Jon. We both have, for better & worse, succeeded in making those systems, Jon creating our functioning player character, and myself creating our BaseEnemy and its first of many derivatives, the "Street Rat". In our testing however, we found several problems with player to enemy and enemy to player interactions and this is routed by them being created completely differently, in how their collisions are handled, to how they deal damage or interact with the world for their own specific systems (Like the player's blocking). This has resulted in several unintended behaviors, from too many damage instances occurring, issues with collisions, player inability to block / parry damage from, to an issue where the player was constantly pushed by the enemies if they blocked damage
*BaseEnemy*. Another part of this issue was our decision to switch from attempting 2.5D to completely 3D with a side-view camera system. So systems have to be changed to allow better combat and movement in a 3D space.


**BasePlayer**



The Solution
A major refactor / rework of our Character code. I think the best solution for us to fix this, as well as set ourselves up for success going forward, is to unify our efforts and communicate better to make sure we're matching in functionality or have matched functionality on a base class, and keep our Enemy or Player specific code separate.  Thankfully, a large chunk of this isn't in needing to write or create new code, but to retarget alot of our classes and systems. Declaring functions and variables used by player/enemy in the BaseCharacter, like the Character's health, the character's states (Dazed, Stunned, Attacking, etc), A custom function for taking/applying damage so we can also incorporate more properties like hitstun, knockback, knockup, etc. and more. Doing this now rather than later, will help keep me & john unified in our designs, and working on things that benefit us BOTH for character interactions, rather than coding things out one-sidedly, and leading to more confusion and bug fixing later.

Support this post

Did you like this post? Tell us

Leave a comment

Log in with your itch.io account to leave a comment.