Page 1 of 1

Xen Assault - 4 Player Megaman?

Posted: Tue May 17, 2016 8:34 am
by LazyDev
I've released a video of what I got so far for my new game. Figured maybe you guys might wanna check it out, so here it is:




And if you guys wanna share it on tumblr...


Happy watching! :D

Any feedback is good feedback!

Re: Xen Assault - 4 Player Megaman?

Posted: Tue May 17, 2016 9:59 am
by Thad
Not bad. Physics look good. (That sudden drop from some jumps is supposed to happen, right?)

Re: Xen Assault - 4 Player Megaman?

Posted: Tue May 17, 2016 11:16 am
by LazyDev
Thad wrote:Not bad. Physics look good. (That sudden drop from some jumps is supposed to happen, right?)

Yeah, there's a fast fall button.
Also, the blog has a "Reblog" button now. it was a whoops that it didn't before, lol.

Re: Xen Assault - 4 Player Megaman?

Posted: Wed May 18, 2016 7:34 pm
by LazyDev
One way platforms are go!

Re: Xen Assault - 4 Player Megaman?

Posted: Wed May 18, 2016 9:09 pm
by sei
Movement looks a bit too slow and floaty in the youtube video, and movement looks a little too linear in the avatar.

Are you using acceleration and deceleration or just constant velocity?

Take a look at some other platformer jumping physics.

Re: Xen Assault - 4 Player Megaman?

Posted: Thu May 19, 2016 12:08 am
by LazyDev
sei wrote:and movement looks a little too linear

Could you explain this a little better?

I've been hearing too floaty a lot, but there is a fast fall button, so I think that'll negate the complaint. I'll have to release a demo to know for sure though.

The movement is just like x += speed; pretty much. No velocity, as I feel that'd be out of place in a MegaMan style game.

Re: Xen Assault - 4 Player Megaman?

Posted: Thu May 19, 2016 1:40 am
by sei
Fastfall won't fix it. Your basic jump is general. Fastfall is situational.

The "linear" comment is in reference to there being an up velocity until you hit your peak, then a down velocity until you land out. It doesn't feel like there's gravity accelerating the sprite. The acceleration/deceleration is instantaneous and feels unnatural.

Look at Mega Man 3, for example. The blue bomber's vertical velocity seems to slow near the peak of his jumps.

You should also add a straightforward running jump+landing to your demo, and a jump where the character stops early or adjusts/reverses trajectory.

Shitty mspaint aside, I think your jump probably looks more like the left than the right, but there isn't clear enough footage to be sure.

Image

Re: Xen Assault - 4 Player Megaman?

Posted: Fri Jun 03, 2016 12:54 pm
by Spooky Skeleton
How are your jumps done? Like what makes the player come down after they go up? It doesn't seem like there is much - or any, really - acceleration happening when you jump. The character just goes up at a set speed and then comes back down at the same exact speed they went up, just a reversed velocity. That's why people think it feels "floaty", the character doesn't appear to have any weight.

A better idea might be to immediately ( lets assume that up is +y for this) set your y velocity to some number when the player presses the jump button, lets call it JUMP_SPEED, and then every update, effect the y velocity with some set acceleration that we'll call GRAVITY. Just find a number for gravity that ends up working and feeling right for how you want your jump to be.

Also it's probably a good idea to set a "terminal velocity" of sorts. I dunno how much you know about real world physics, but stuff can only fall so fast on Earth before the amount of drag the air is putting on it, causes it to not be able to fall any faster. In platform games, I think it's usually better to make this cartoonishly slow unless your playing as a golem or something, or characters feel too heavy.

So basically something like this pseudo code here

Code: Select all

jump()
{
   if(canJump)
   {
      velocityY = JUMP_SPEED;
   }
}


and then

Code: Select all

GRAVITY = some positive number
TERMINAL_VELOCITY = some negative number

update()
{

   //other updateStuff
   ...
   
   if(isAirborne)
   {
      velocityY -= GRAVITY * deltaTime;
      if(velocityY < TERMINAL_VELOCITY)
      {
         velocityY = TERMINAL_VELOCITY
      }
      y += velocityY * deltaTime;
   }
}


Where "detaTime" is time since the last update multiplied by whatever to get stuff moving at the speed you like.

Something like that. This will create what Sei is talking about with his lines because when you jump, GRAVITY will gradually slow your ascent until it zeros out at the top of the jump, and then you'll start falling faster and faster until you reach TERMINAL_VELOCITY.