• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Tnefight (Tentative Title)

tnelsond

Smash Rookie
Joined
Aug 8, 2015
Messages
1
Tnefight is a smash bros. inspired game I'm working on that's focused more on modding (players being able to make their own characters and levels). I also don't have Windows or Gamemaker, so it's coded in C, with SDL, and lua for characters and levels.



I don't really plan on using any Nintendo Intellectual Property, nor holding super rigidly to the smash bros. physics.
But for the moment, I would like to get the physics and gameplay as similar as I can. Right now I have:
  • Knockback (and growth)
  • Damage
  • Charged moves
  • Movement moves
  • Reflect moves
  • Hitstun
  • Lua scripting for creating characters, moves, and levels.
But I'm stuck on balancing the user created moves (as in creating an API that allows them to use whatever characteristics they want for the move for the most part but will change the attack and the delay to compensate).

I just don't know what characteristics should be tied together. Should a move with higher attack have more start lag? Should it not go as fast or as far? Should it have a shorter duration?

He's the current components of a move (straight from the C source):
Code:
void tfighter_setmove(tfighter *t, int index, int attack, int kb, int kbgrowth, int mindelay, int chargetime, int duration, int endlag, int x, int y, int width, int height, int angle, int kbangle, int speed, int type, int img)
and what I have for balancing currently:

Code:
void tfighter_balance_move(tfighter *t, int index, int attack, int kb, int chargetime, int duration, int endlag, int x, int y, int width, int height, int angle, int kbangle, int speed, int type, int img){
	tfighter_setmove(t, index, 
			(attack - (width + height) / 2) / (type & PROJECTILE ? 3 : 1), /* Attack */
			kb, /* KnockBack */
			(100 - (speed + kb / 2)), /* KnockBack Growth */
			(int)((200 - endlag) * (attack + kb/2.0)/100.0 + duration * 0.03), /* Minimum Delay */ 
			chargetime, /* Max Delay */
			duration, /* Duration */
			(int)(endlag * attack/100.0 + duration * 0.03),
			x, y, width, height,
			angle,
			kbangle,
			speed / (!(type & PROJECTILE) ? 3 : 1),
			type,
			img);
}
 
Top Bottom