News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Castlevania III -- Improved Controls and Improved Stairs -- Opinions requested  (Read 7715 times)

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
Hello!

Recently, I made an "Improved Controls" hack for Castlevania III which lets all characters control their jumps as in modern platformer games. You can check it out here, or look at this terribly-recorded gif:



My next goal is to "improve" how stairs work, as I find them very unintuitive. For example, in this let's play video, the player falls off a cliff which appears completely solid but is in fact deadly (3:35 seconds).

I can see a couple solutions here, but I'd like other people's opinions on this.

Solution 1: when holding left or right, the player automatically ascends or descends the stairs.
pro:
  - in the video linked above, the player would not have died; Belmont would have descended the stairs instead of falling off of them.
cons:
  - no way to choose whether to ascend or descend if multiple stairs meet at an intersection.
  - if the player in that video had jumped before reaching the stairs, Belmont would have fallen straight through the stairs regardless.
       
Solution 2: When holding left or right, the player automatically *ascends* stairs; when jumping, the player automatically *lands* on stairs; the player can drop through any stair with an input (probably by pressing down and jump simultaneously? Or by holding down while in the air.)
pros:
  - seems fairly intuitive to me?
  - there is no danger of falling through stairs accidentally
cons:
  - one cannot easily walk "through" stairs anymore; they are now solid and take some (small) amount of effort to pass through.

I am leaning mostly toward the second solution, but I'd like to see if anyone else has any suggestions.

I would rather not edit any levels, as I would prefer the level design to remain in an "unaltered" original form -- it is only the controls that should be changed.

~NaOH

Sinis

  • Sr. Member
  • ****
  • Posts: 425
    • View Profile
You could see about making them function like in both Super Casltevania IV and Dracula X, can jump up them while keeping to press up or can 'latch' onto them when jumping.  Going up and down the stairs is another skill that the player has to adapt to since later levels pushes you to use them (auto scrolling sections) so some skill will come into play so the player has to be aware still without relying on an auto feature that may screw something up when slugging it out with baddies.  Maybe certain areas like that similar in the marsh area would only be different for an auto hook on.

nesrocks

  • Hero Member
  • *****
  • Posts: 594
    • View Profile
    • nesrocks.com
What if the player would only snap to stairs on free fall (always snap) and when jumping (snap if holding up or down only)? Because you might be on a flat ground with a staircase in the middle of it and you don't want the character to start climbing the ladder if all you wanted was to keep walking.

This way it would snap to the stairs right after free falling in the case of that video.

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
What if the player would only snap to stairs on free fall (always snap) and when jumping (snap if holding up or down only)? Because you might be on a flat ground with a staircase in the middle of it and you don't want the character to start climbing the ladder if all you wanted was to keep walking.

This way it would snap to the stairs right after free falling in the case of that video.

Hmm... unfortunately, I have gotten rid of free falling altogether in the Improved Controls hack, as it's more convenient to have air control when walking off the edge of a block. (When walking off the edge of a cliff, the player begins the jump action.)

However, the idea that when walking, one would pass through stairs whereas when in the air one wouldn't -- this is interesting.

Zynk

  • Hero Member
  • *****
  • Posts: 906
  • WIP Roll-chan: The Wily Wars
    • View Profile
I have mentioned this before, but would you consider a fix for players can attack on stairs? E.g. Alucard can't attack when he's on it or Belmont can't use his sub-weapons.

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
I have mentioned this before, but would you consider a fix for players can attack on stairs? E.g. Alucard can't attack when he's on it or Belmont can't use his sub-weapons.

Alucard, I'd have to draw some sprites for. I guess that's alright, but I do like using the Alucard sprite hack... that could get complicated o.0

Sub-weapons: hmm, this would work since up would no longer be required to climb stairs. I'll look into this!

Bregalad

  • Hero Member
  • *****
  • Posts: 2641
    • View Profile

Solution 1:[...]
  - if the player in that video had jumped before reaching the stairs, Belmont would have fallen straight through the stairs regardless.
To be honest this sounds like a serious problem. But after playing CV3 for decades and having major problems falling in the stairs all the time at the begining to eventually got used to it, I think players will get used to it either way. But I still think solution 2 is slightly more professional, but it might be harder to code as it goes further from the original game (automatically landing to stairs).

I'll really have to test your hack, as I hated the controls of CV3 since decades (but eventually got used to it, after playing this game hours and hours, game so good even bad controls can't ruin it !). CV1 it's excusable as it's an early NES game but CV3 there's really no excuse they messed up the control that badly. And don't even mention me Dracula X where they purposely reverted to horrible 1986-style controls after getting them majorly improved in SCV4.
« Last Edit: August 09, 2017, 02:23:34 am by Bregalad »

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
Quote from: NaOH
If the player in that video had jumped before reaching the stairs, Belmont would have fallen straight through the stairs regardless.

To be honest this sounds like a serious problem. But after playing CV3 for decades and having major problems falling in the stairs all the time at the begining to eventually got used to it, I think players will get used to it either way.

Oh yeah; I agree it's possible to get used to. But it takes way too long to get used to it -- thus the hack. However, the lack of control during knockback: I can't imagine this ever not being frustrating.

Quote
But I still think solution 2 is slightly more professional, but it might be harder to code as it goes further from the original game (automatically landing to stairs).

Here's a sneak preview. :3



Still a bit buggy as you can see, but nonetheless it is starting to work. (Detecting when the player is on a stair turns out to be very difficult, since only the locations of the beginnings and ends of the stairs are actually stored. o.0)

nesrocks

  • Hero Member
  • *****
  • Posts: 594
    • View Profile
    • nesrocks.com
Detecting when the player is on a stair turns out to be very difficult, since only the locations of the beginnings and ends of the stairs are actually stored. o.0
On you're right, and should prove to be a problem really quick with multiple stairs on the same screen, right?

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
On you're right, and should prove to be a problem really quick with multiple stairs on the same screen, right?

That's okay actually. When the player is falling and not holding the down button, I do a search along two orthogonal diagonal lines for stair markers; if an "end" stair marker is found before a "start" stair marker on either diagonal line, then the player must currently be intersecting that stair, and therefore should land.

The search time is linear with the number of stairs; this seems to be acceptable.

Bregalad

  • Hero Member
  • *****
  • Posts: 2641
    • View Profile

Here's a sneak preview. :3

Still a bit buggy as you can see, but nonetheless it is starting to work. (Detecting when the player is on a stair turns out to be very difficult, since only the locations of the beginnings and ends of the stairs are actually stored. o.0)
Honnestly, if you forward jump in front of stairs, you should definitely NOT land on the staires (as shown in this video). This is a bigger problem than the problem you pointed out in solution 1.

You should either implement solution 1 or make it so that the player lands on stairs only if he is lower than the point where he left the ground when jumping.

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
Honnestly, if you forward jump in front of stairs, you should definitely NOT land on the staires (as shown in this video). This is a bigger problem than the problem you pointed out in solution 1.

Could you explain why this would be a problem?

Bregalad

  • Hero Member
  • *****
  • Posts: 2641
    • View Profile
Could you explain why this would be a problem?
Well, because you're more likely to just want to jump normally and ignore the stairs completely.

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
Well, because you're more likely to just want to jump normally and ignore the stairs completely.

In most games I've played, one auto lands on stairs unless, say, one holds down to pass through them. This is how it works in Smash Bros. With passthrough platforms and ramps, for example. I believe it is far more intuitive and standard to auto land on stairs, plus it's safer as it means the player won't fall through them into a pit.

The most important thing is to have consistent and predictable behaviour though, otherwise a player who has mastered the controls will get annoyed when they suddenly work differently than expected. So I wouldn't make it check your starting jump height.

nesrocks

  • Hero Member
  • *****
  • Posts: 594
    • View Profile
    • nesrocks.com
I feel like it would be intuitive to not auto land on stairs, but instead only land when holding up or down, or when the stair is "solid" (like in that example from the let's play video). Since there seems to be no way to tell when it is solid or not, I'd go with only when holding up/down.

edit: maybe it would be good to auto land on stairs that have no bottom end. Like stairs that go to the bottom of the screen. Because on these cases not landing on them means death.

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
I feel like it would be intuitive to not auto land on stairs, but instead only land when holding up or down, or when the stair is "solid" (like in that example from the let's play video). Since there seems to be no way to tell when it is solid or not, I'd go with only when holding up/down.

I could release an additional hack to change the controls to require the up button be held instead of auto landing. But I'd say that since most games have autolanding, the correct thing would be to implement autolanding. After all, the whole point to this hack is to be a sober second thought about the control scheme.

Quote
edit: maybe it would be good to auto land on stairs that have no bottom end. Like stairs that go to the bottom of the screen. Because on these cases not landing on them means death.

I would prefer consistent controls over "smart" controls that try to predict what the player wants. Those are rarely ever a good idea.

For example: if I did do this, there are places  where it could mess up.  For example,  in the final stage just before Dracula, there is a clearly "solid" staircase that has no top end and should clearly have autolanding: falling through it will cause death.  However, there are other instances of stairs which have no top but still shouldn't be solid; for example, in  Death's stage and possibly in  stage 2 (the clocktower).

Since there is no obvious consistent solution to me, I would prefer not to go this route.

nesrocks

  • Hero Member
  • *****
  • Posts: 594
    • View Profile
    • nesrocks.com
I can't actually remember any game with staircases like in castlevania. What games are there?

NaOH

  • Jr. Member
  • **
  • Posts: 27
  • Modernizing old games
    • View Profile
I can't actually remember any game with staircases like in castlevania. What games are there?

Off the top of my head: wanderers from ys 3, and smash bros if you count passthrough ramps.

8.bit.fan

  • Full Member
  • ***
  • Posts: 228
    • View Profile
    • 8-bit fan's Hacking Projects
I can't actually remember any game with staircases like in castlevania. What games are there?
The Battle of Olympus. :)
In the year of 200X, a super robot named Mega Man...
http://www.8bitfan.info/

Bregalad

  • Hero Member
  • *****
  • Posts: 2641
    • View Profile
Quote
In most games I've played
Quote
But I'd say that since most games have autolanding,
Which "most games" are you talking about ? "Most games" does not have the awful stairs system Castlevania has, including even later Castlevania games. You mention Super Smash Bros but it's completely different from Castlevania so it makes no sense comparing them.

My only point of comparaison is later Castlevania games who DO have stairs, those are Super Castlevania IV, Rondo of Blood and Castlevania Bloodlines. You'd want to behave like those whenever possible.

Quote
The most important thing is to have consistent and predictable behaviour though, otherwise a player who has mastered the controls will get annoyed when they suddenly work differently than expected.

The original CV3 has consistent and predictable behaviour, yet we both agree it's controls suck.

Quote
So I wouldn't make it check your starting jump height.
How does it make the controls inconsistent ? SCV4 probably does exactly that. If the stairs go "down", you autoland on them, as this avoids falling through stairs like shown in this video. If they go "up", you don't autoland and simply pass through. This is absolutely consistent and makes sense. If you jump in front of stairs going up, you just do it as if the stairs weren't here. If you jump over stairs going up and fall in a bottomless pit, and die which is the correct behaviour. If you jump hop onto stairs going down, you land on them, as opposed to the original game, again the correct behaviour.

I suggest checking the vertical position as a simple way to distinguish stairs going "up" from stairs going "down" but if there is another preferred method, go for it.