Castle Platformer - completed - would like feedback

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Castle Platformer - completed - would like feedback

Post by UnDisbeliever »

Hello everyone.

April's entry to my 1 game a month challenge is a demo of a platformer.

Image
Download release.


Could you please test this for me and let me know your thought on the the 'feel' of the player's movement.

---
Now the technicals:

I've tried to make the engine as generic and as customisable as possible.

For this demo, there are no enemies, no animation, no background and no detailed sprites. Just jump your way past the spikes to the exit.

This engine is obviously incomplete.

It currently supports:
  • A dynamic (system editable) 16x16 px metatile map.
  • Entity friction/movement speed adjustable for each tile type.
  • Interactive tiles that are activated when the player stands on them.
  • A Super Mario Bros-like 'death' animation.
  • Static platforms.
  • A resource lookup table.
Currently the engine uses ~26 scanlines (~10% CPU usage) to move the player and update the map for SlowROM including DMA transfers.

Art assets were found on opengameart.org and licensed under CC-0. (castle tiles, ice platforms)

The map was created with tiled, python scripts is used to generate the metatile tilesets and the metatile maps.

During the month of May I am going to:
  • Integrate the metasprite subsystem from Elevator Madness DX into the engine.
  • Integrate the entity allocation and collision subsystem from Asteroids into the engine.
  • Add more maps.
  • Add a parallax scrolling background.
I still need to determine how to handle off-screen entities. I know I wont be able to update every object in the game. I'll need a system to mark which objects are processed or not.
Back of the envelope calculations suggest I should be able to process 14 enemies, 8 enemy projectiles, 4 player projectiles and 10 'particle' effects and still only use 50% of a frame for the rest of the engine.

I have something in mind that I'll ask you guys for your ideas when I figure it all out.


As usual the game is released under the MIT license and source is available on github.
Last edited by UnDisbeliever on Thu Jun 04, 2015 12:42 am, edited 4 times in total.
KungFuFurby
Posts: 264
Joined: Wed Jul 09, 2008 8:46 pm

Re: Castle Platformer - would like feedback

Post by KungFuFurby »

Very smooth for a SNES game. Friction-wise, seems to work quite nicely, especially on the ice platforms where I had to be more careful about slowing down.
93143
Posts: 1371
Joined: Fri Jul 04, 2014 9:31 pm

Re: Castle Platformer - would like feedback

Post by 93143 »

Cool. I wish I could see what I look like, but I suppose designing and animating a player character is nontrivial...

I did notice that there doesn't seem to be much difficulty in starting a motion on ice, or reversing direction; it only seems to be icy when you're not touching the D-pad. This combines badly with the fact that steering in the air is much slower than on the ground; there's a tendency to take off like a rocket in one direction or the other the moment you touch down (since ground motion is necessarily fairly quick in the absence of a B-run functionality), and if it's ice you just keep moving when you let go...

The lack of B-run can be a problem in some subgenres. Super Marisa World suffered from considerable fake difficulty because of this (good SMW-style controls but with Y taped down).

Also, while jumps can be steered Mario-style, it seems they're all the same height no matter what, which I suppose is more of a design decision but might restrict your level design options and/or result in fake difficulty in some scenarios... What with the constant height and the reduced horizontal mobility, the jumps have a bit of a floaty feel right now...

Maybe I'm spoiled by being predominantly a classic Mario player; my standards for platforming physics are very high (and fairly specific due to lack of heavy exposure to other platform games)...

I didn't notice any bugs (unless you aren't supposed to be able to repeatedly jump by holding the jump button down), but I don't really have time to stress-test it...
User avatar
Khaz
Posts: 314
Joined: Thu Dec 25, 2014 10:26 pm
Location: Canada

Re: Castle Platformer - would like feedback

Post by Khaz »

I like it! There's only one thing that feels a tiny bit awkward to me, and that's control in midair. If you jump while running and then press nothing, you maintain your present velocity perfectly. But if you turn around you can slow down and change direction in midair. So you do have control in midair, and therefore you should probably not remain at top speed unless you're holding forward.

The character has a bit more momentum than I'm used to, it takes longer to slow down, but that's not really a problem. It kinda just depends on who and what the main character is on whether it feels right.

One thing to think about. The character's width, in terms of collision detection, matches up perfectly with the tile widths. Which means in that tiny gap, just to the left of the last vertical gate on the right, you can only fall through if you align yourself down to the pixel. Which would be frustrating if you ever actually have gaps like that. I have this problem in my own game actually and I haven't quite resolved it yet...

I like the gates and the ending! :P
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Castle Platformer - would like feedback

Post by Sik »

You accelerate too quickly and decelerate much slower. That makes it harder to control. On top of that there isn't any friction in-air, the usual thing is for there to be reduced friction (e.g. half the normal friction), this also makes the character harder to control.
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Castle Platformer - would like feedback

Post by tepples »

If you have the buttons tied up for attacks and things, you could always bind run to double-tap forward like Kirby does.
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Castle Platformer - would like feedback

Post by UnDisbeliever »

Thankyou for your opinions. I have updated the physics.

I played Super Mario World for an hour while occasionally switching to my engine. I think these new physics constants should improve the game more.


old values:

Code: Select all

MAX_WALK       = 512
WALK_ACCEL     = 60
FRICTION       = 20
AIR_ACCEL      = 20
AIR_FRICTION   = 0
ICE_MAX_WALK   = 512
ICE_WALK_ACCEL = 58
ICE_FRICTION   = 2
new values:

Code: Select all

MAX_WALK       = 512
WALK_ACCEL     = 24
FRICTION       = 16
AIR_FRICTION   = FRICTION / 2
AIR_ACCEL      = WALK_ACCEL
ICE_MAX_WALK   = MAX_WALK
ICE_WALK_ACCEL = 8
ICE_FRICTION   = 2
For those wondering, I haven't implemented running or variable height jumping yet. I'll do that after I get the entity management system integrated first.

You can try the new demo: Here
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - would like feedback

Post by Drew Sebastino »

I'm not even going to lie, but I tied the new demo, and it felt like I was sliding on ice, even when I wasn't on the ice. Friction on the ground needs to be way higher. The distance a train takes to stop is probably comparable to the distance it takes to turn around at full speed. If there where a game to look at for advice on platforming physics, it would have to be the Donkey Kong Country games. You could do a frame by frame analysis and make something close to it.
d4s
Posts: 94
Joined: Mon Jul 14, 2008 4:02 pm

Re: Castle Platformer - would like feedback

Post by d4s »

I usually don't comment on here anymore, but this is great!

Your code is concise, highly readable and well-structured, just beautiful.

As for the gameplay, I think the physics of version 2 are almost fine.
It still feels like it is a bit on the floaty and "running-on-rails" side, but that may be caused by the lack of animation.
I think walking animations would be helpful to judge it properly.

All in all, great work.
Keep it up!


Concerning the feasibility of creating a game in a short timeframe:
My personal experience is that with a flexible engine that separates concerns sufficiently and handles resource allocation dynamically, creating a game/prototype in a short time is well possible even on the SNES.
To give an example, https://www.youtube.com/watch?v=c8zkOLJEIPc was coded in about 24 hours.

The code is not as presentable and fast as yours though, that's for sure. :lol:
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Re: Castle Platformer - would like feedback

Post by psycopathicteen »

I'm guessing you guys have more peace and quiet than I do. My parents are annoying as hell, and I have to keep putting programming on hold to do chores around the house at random times, as if I have nothing on my mind.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - would like feedback

Post by Drew Sebastino »

psycopathicteen wrote:I'm guessing you guys have more peace and quiet than I do. My parents are annoying as hell, and I have to keep putting programming on hold to do chores around the house at random times, as if I have nothing on my mind.
I really wish people would actually fill out the information in their profile thing. I always thought you were about 30 years old... I have a good amount of free time, but the reason I'm so slow to get things done is that I get burnt out really quickly while programming. I took me about 2 days just to make it to where my metasprite routine ran after all my objects instead of during it. (And it appears I've gotten a slight boost in performance, which is good.) I remember in the artwork thread I made, I quit working on the explosion after about one frame because I'm so lazy. I normally look at stupid stuff on youtube or play an SNES game or something as a break and then get back to working.
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Re: Castle Platformer - would like feedback

Post by psycopathicteen »

I'm 24 years old, and I'm stuck in a work training program that is one hour away from my house.
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Castle Platformer - would like feedback

Post by UnDisbeliever »

d4s wrote:Your code is concise, highly readable and well-structured, just beautiful.
That's great to read.

This is the second attempt at coding a SNES game. My previous attempt was about 7 years ago, the code was a mess. Combined with stress of my third year project for Uni and being unable to work on it without constantly breaking things I gave up on it.

It was probably at the same state Castle Platformer is currently in. It had map loading, entity movements (but no collision checking) and player animations. I'm not even sure if it exists on my network anymore.

When I decided upon this new year's revolution (12 working demos every month), I knew in order to keep my focus the code needed to be readable and modular.

psycopathicteen wrote:I'm guessing you guys have more peace and quiet than I do. My parents are annoying as hell, and I have to keep putting programming on hold to do chores around the house at random times, as if I have nothing on my mind.
I'm currently spending about 12 hours a week on SNES development. I work casually so I have more free time than I used to.
KungFuFurby
Posts: 264
Joined: Wed Jul 09, 2008 8:46 pm

Re: Castle Platformer - would like feedback

Post by KungFuFurby »

You speak of the Dream Fighter engine (or something like that) when you mention that attempt from 7 years ago?

You might have some of my long lost music from those days if you still have them in either .it or .xm format. Anything made in between mid-October 2007 and mid-August 2008 may be lost on my end due to a hard drive crash (I only have a single set of SNES All-Stars music marked "SNES All-Stars Some More Tracks", a complete collection of SNES RPG music and three XM files from Super Spectrum). My freewebtown.com links are also dead because freewebtown.com is no longer free.

I already turned some of my SNES RPG music into actual SNES music after briefly getting in contact with one of the developers (although I'm going to make my own sound driver to account for the fact that I'm going to need a data swapping feature since I am well aware of the fact that my music can still be overkill even if I optimize the samples. Plus, some of the music I made needs the use of flags to act as branching, which SNESMod definitely does not have).
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Castle Platformer - now with NPCs

Post by UnDisbeliever »

I have now added some NPCs to the game.

Image
Download.


I have added:
  • Running, (Press Y)
  • NPCs
  • NPC collisions
There are two types of NPCs, WalkAndTurn (which walk to the edge of a platform and turn around) and Stomper (which acts like a Thwomp). Both use the same physics routines as the Player entity.

Every NPC on the map is being processed, even if they are displayed or not. The system is using ~25% of the CPU (SLOWROM) processing the player, map, and the physics of 8 entities each frame.


Still to do:
  • Add a killable NPC.
  • Move NPCs out of the active list and into the offscreen list when they are offscreen.
  • Track down a bug in the MetaSprite routine that occasionally results in a 8x8 sprite appearing on the screen.
  • Determine how to handle NPC tile loading into VRAM/CGRAM.
  • Design and implement the animation format.
  • Change a single (or maybe three) tiles of the map without needing to do a full screen update.
Post Reply