Jump to content
  • entries
    22
  • comments
    292
  • views
    51,700

Game engine design


Katuko

1,551 views

It's already been a few years now since I started work on BIONICLE Fighter. I went in with confidence and pride, as my kinda limited platform engine began to evolve into a proper game, and I could stand and say "yes, people actually like my game". And indeed, the game is good. It's got a lot of stuff to play around with, but there is also a major problem that's stuck for a while: "Playing around" is pretty much all you can do.

 

Current status of the game (version 12):

 

You pick your character, either Toa or Rahkshi. Each has a lot of cool powers to choose from. You can customize your character's color, and you can choose what mask and weapon they wield. There are a few maps to play on, with computer-controlled players that attack you and each other. One map even has a few Rahi, Exo-Toa and a boss to fight.

 

At no point are you able to actually win. You play until you get bored, that's it. The online multiplayer that I work my game balance around has not yet been implemented, despite a few connection tests I've run. Many powers have not been programmed yet, basic game features such as blocking and scoring points are not there, and I am lacking quite important graphic assets.

 

This is not a post saying I'll be giving up so don't get your panties in a twist yet. :P

 

What's become apparent is that my current game system is rather severly limited when it comes to adding new mechanics, because I wrote what I knew first and then forgot to make room for what was to come. Adding new character animations gets wonky, adding new character abilities are a hack, and I copy-paste way too much code to be efficient. Some people have trouble running my game properly, and the ones that do run it are probably waiting for some nice, major addition that makes this game even more awesome already.

 

So, we're going with an ENGINE REWRITE. (Yay!)

 

Why? Three reasons.

1) What is already in place can be reused, but also made more efficient.

2) There will be room for basic features that should have been there already (and new stuff).

3) I can more freely experiment while building the new engine, without breaking anything in the old one.

 

 

I have compiled a list of things that will change or get added in this new engine. Some things (such as missing elemental powers) might pop up in the old engine, in the meantime.

 

= Menu =

  • In-game saved character list (as opposed to the pop-up file browser).
  • Animated character/power preview.
  • More options for setting game resolution etc.

= Characters =

  • Stat points replaced by more balanced perks. (Details here.)
  • More options for game modes etc. as these get added.
  • Weapons and armor no longer cost points, but have other ups-n-downs.
  • If sprite availability permits: More playable characters. (YOU, yes YOU, can help!)

= Gameplay =

  • Blocking available. (Details here.)
  • Different types of melee attacks. Sword slashes, axe swings, etc.
  • New status effects that are missing, such as being slowed down or silenced.
  • Darkness in unlit areas. Night vision and similar powers have a reason for existing.
  • Kanohi no longer drain the energy bar. Instead, they use their own, separate bar. Rahkshi will use this bar to limit their natural flight time.
  • Levitation will allow long jumps and gliding, but not the current form of "slow flight".
  • Proper flight powers will be available.
  • Knockback effects will not be so annoying and/or spammable.
  • When knocked down, you will be able to choose when to get back up (with a short animation).
  • Armor will be using a threshold for blocking damage instead of being a percentage reduction. This means that you will get more consistent damage reduction (always -20 damage points per attack taken, for example) instead of the current form that is highly variable depending on the incoming attack.
  • Support for game controller/gamepad input for those who might prefer that.
  • Jump-through platforms, moving platforms, etc. will be programmed from scratch.
  • Ice physics/sliding fixed.

= Powers =

  • With the change of stats into perks, the formula for calculating elemental/power damage will be simplified. Upgrading the relevant perk(s) might add new abilities for your particular power.
  • A regular fire spray will no longer ignite spontaneously, while ice sprays will not freeze at random. Instead, the application of heat/frost causes these effects after a short while.
  • Some Kanohi powers reworked to "burst" on and then have a short cool-down after being shut off. The mask cool-down will (unlike present) be separate from other powers.
  • Due to stats being reworked, Toa and Rahkshi will both use the same way (perks) of increasing power. This will also make eventual in-game power-ups like the boss-dropped Overcharge affect Rahkshi properly as well.
  • Some powers will be able to be charged for extra damage/effects. Disintegration, for example, is currently a fire-and-forget 100 damage beam. For balance purposes, this might have the base damage reduced but then be able to be charged to max depending on the Rahkshi's level.
  • Some attacks may change a bit depending on the directional key pressed at the same time. For example, Up+Fireball could make the fireball fly in a short arc instead of zooming straight forwards.

While I rebuild my game in the shadows, I can continue to release content updates for the old engine. In the game topic I will also release small test files for you to give me feedback on. I have already done this with the Kanohi Kadin, a mask I know you have been wanting for a while. It's probably not going in the old engine due to issues with the movement, but I will make sure that such features are already in place once the new engine rolls about.

 

I will soon make separate blog entries for specific mechanics such as stats turning into perks, the idea behind blocking, new power/Kanohi behavior, and how network programming is coming along.

9 Comments


Recommended Comments

Nice to see an update on your blog. This reminds me of that Roll animation I Promised to make two months ago. I better stop procrastinating!

Link to comment

This reminds me of that Roll animation I Promised to make two months ago.

Ah, right. I had almost forgotten about that. If you're still up for it, it'd be much appreciated.

 

Speaking of, I should make a post about "what you can do to help" as well, to organize it better.

Link to comment

Eh, at this point I'm sorta not as motivated to get it done anymore as much. Here's what I got done. It isn't all too good and really didn't turn out how I wanted it. I was aiming for a roll as seen in Star Wars: BattleFront II, where your character leapes to one side, then rolls when they hit the ground. You might be able to tweak some of the poses to your liking, but IDK. Apparently it turned out to be more of a double frontflip XD. The various bits and pieces on the top and bottom are chunks of body parts I was using, so just ignore them. Those stick figures were to help visualize.

Link to comment

The new update sounds GREAT!

*Engine rewrite

 

The difference? One is taking a whole lot longer than the other. ;)

 

I'll churn out a new game update relatively soon, though. Just to keep you guys fed, you know.

Link to comment

On the roll: it might be better to either do a defined tumble roll or shoulder roll. It looks like you're aiming for a tumble roll, but the way the body turns during the roll looks rather like a no-hands shoulder roll (which would just be a wierdly-angled front flip, heh heh). For a tumble roll, both hands would tend to be braced on the ground during landing, with the feet kept at the same angle that the roll came in from. Your landing looks more like a high dive, which is odd seeing as it supposedly comes from a low-angle roll.

 

Once the landing's done, the rest should flow pretty naturally: hands plant, the body rolls in between (with legs tucking in more horizontally than vertically), hands come off the ground around when it seems natural. The legs base out into a fighting stance while rising.

 

It's a nice double-flip, though, and might work for more acrobatically-dispositioned characters if Katuko goes the "some ambient stat perks affect your animations a bit" route as I suggested. :P

 

EDIT: Also, the "leaping" pose should have both feet on the ground, even if just barely. It's better to push off with both feet when rolling or jumping, so you can move faster and possibly catch your enemy off guard.

Link to comment

It's a nice double-flip, though, and might work for more acrobatically-dispositioned characters if Katuko goes the "some ambient stat perks affect your animations a bit" route as I suggested. :P

If I get enough animations overall, I'll likely make some of them dependent on the character build, yes. It's a nice idea, and it adds some variety to each character.
Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...