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:

Re: Castle Platformer - would like feedback

Post by UnDisbeliever »

Entity Animation subsystem is now completed:

Image
Download.


Release Notes:
  • Walkers can be killed when stomped on by the player.
  • Entities are only processed if they are on screen (saving 60 scanlines).
  • Entity tiles/palette are loaded into VRAM/CGRAM when they are moved into the Active NPC list.
  • Entities are animated.
  • Variable jump height, it depends on your walking/running speed.
  • Hold B to experience weaker gravity (Same as Super Mario World).
The NPCs are by Jason-Em on the site OpenGameArt.org and are CC0 licensed.
I extended Jason-Em's hero sprite into a 10x22 sprite to form the player character.

For those interested, here is a graph of the CPU usage throughout a 96 second play test.
Image
The two thin CPU bumps are when I died, the five thick CPU bumps are when the chain is being raised.
cyc
Posts: 20
Joined: Tue May 26, 2009 5:39 am

Re: Castle Platformer - would like feedback

Post by cyc »

UnDisbeliever wrote:For those interested, here is a graph of the CPU usage throughout a 96 second play test.
How did you this diagram?
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Castle Platformer - would like feedback

Post by UnDisbeliever »

cyc wrote:
UnDisbeliever wrote:For those interested, here is a graph of the CPU usage throughout a 96 second play test.
How did you this diagram?
My game-loop calls Screen__WaitFrame once at the end of every frame. Knowing that I start CPU logging (with squelching off) on the SNES9x debugger. Then I grep the log and display only the lines beginning with Screen__WaitFrame address ($80/8243)

Code: Select all

$80/8243 AE 00 01    LDX $0100  [$00:0100]   A:0000 X:0011 Y:0000 D:0000 DB:00 S:1FFB P:envMxdIZC HC:0884 VC:260 FC:27 I:00
$80/8243 AE 00 01    LDX $0100  [$7E:0100]   A:0122 X:0004 Y:0000 D:0400 DB:7E S:1FFA P:envMxdIzc HC:1252 VC:261 FC:28 I:00
$80/8243 AE 00 01    LDX $0100  [$7E:0100]   A:00D1 X:0011 Y:0000 D:0400 DB:7E S:1FFA P:eNvMxdIzc HC:0418 VC:243 FC:29 I:00
$80/8243 AE 00 01    LDX $0100  [$7E:0100]   A:00CD X:0011 Y:0000 D:0400 DB:7E S:1FFA P:eNvMxdIzc HC:1292 VC:238 FC:30 I:00
And filter it with again with grep to get the HC and FC values:

Code: Select all

grep "^\$80/8243" CP_05_Animated0000.log | grep -Po "VC.+$" > data.txt

VC:260 FC:27 I:00
VC:261 FC:28 I:00
...
I then load the datafile (space separated columns) into Libreoffice Calc (Excel works fine) and trim it so VC is in column A, FC is column B.

I add the following formula to determine number of the scanlines after V-Blank (including frames skipped) (column D) =IF(A3 > 225, A3-225, A3-225+262) + MAX(IF(B2 <> 59, B3-B2-1, B3-B2+59), 0)*262 and D3 / 262 to find the CPU percentage (column E).

Then generate the line graph you would expect.

I chose snes9x debugger over bsnes-plus because it includes a frame counter in its log.
Revenant
Posts: 455
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: Castle Platformer - would like feedback

Post by Revenant »

UnDisbeliever wrote:I chose snes9x debugger over bsnes-plus because it includes a frame counter in its log.
Consider that added in the next release (or sooner, if you want to build from source :P)
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Castle Platformer - completed - would like feedback

Post by UnDisbeliever »

Castle Platformer is now completed and tested on a real SNES.

This release is only a tech demo, it only consists of 4 levels. I had difficulty designing levels that worked within a major design flaw of the engine.

Image
Download


Please let me know what you think.


The NPC bunching bug (you notice it when backtracking in the game) is caused by the way I activate and deactivate the NPCs as the player scrolls through the screen.

I'm going to have to rip out Entity allocation/activation/deactivation subsystem and replace it with something else to fix it. This is a core part of the engine's memory model and the way Entities interact with the gameloop. So I'm thinking back to square one and designing a new engine from the ground up.

I'm not completely scrapping this engine. The metatiles, metasprites, animation and physics modules are still usable.

My next major project a SNES Metroidvania spaceship survival game. I've tabulated 3 months to work on it and expect to release the first playable demo of it late August.
kp64
Posts: 31
Joined: Fri Aug 01, 2014 3:13 pm

Re: Castle Platformer - completed - would like feedback

Post by kp64 »

UnDisbeliever wrote: Please let me know what you think.
I played all the versions you have been posting , and Im very pleased and impressed,
the game is totally fluid and playable( and a bit too difficult).
Your code is very good and clean , It will be really useful.
there is finally a new open-source engine for SNES.
I really appreciate how you include all the legal mumbo-jumbo in the readme so you can be sure that
all the contents of the demo are CC and this can be redistributed without any legal doubt.

Are you going to use the APU in your next games?

Thank you very much for your hard work and I will wait for that Metroivania game!
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - completed - would like feedback

Post by Drew Sebastino »

kp64 wrote:there is finally a new open-source engine for SNES.
I congratulate you, UnDisbeliever. :) Do you want to give it a fancy name? I guess you said you're making a new one, so maybe you could do it with that one. I could be: UnDisbeliever Tech1. (I think you know where I'm getting that from. :wink:)
UnDisbeliever
Posts: 77
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Castle Platformer - completed - would like feedback

Post by UnDisbeliever »

kp64 wrote:the game is totally fluid and playable( and a bit too difficult).
Your code is very good and clean , It will be really useful.
there is finally a new open-source engine for SNES.
I really appreciate how you include all the legal mumbo-jumbo in the readme so you can be sure that
all the contents of the demo are CC and this can be redistributed without any legal doubt.
Thanks.

After reading quite a few stories about "art re-appropriation" in my news feeds, I decided to be transparent about where the art I use comes from. I've also add a ".source" file to all of my art assets to detail where they came from and the license they are under.

I don't know if you noticed but the first 128 bytes of the ROM are the copyright header, so even if the README disappears the fact its open source is still in the ROM when viewed in notepad.

kp64 wrote:Are you going to use the APU in your next games?
June's entry into my 1 Game a Month Chalange is game of Simon for the SNES using the snesgss audio engine.

Since that is a simple goal I'm also going to be fixing up snesdev-common.

I should have:
  • An implementation of the snesgss API.
  • An serial control port debugger driver
  • VWF fonts for my text engine
  • And a general cleanup of the snesdev-common
Espozo wrote:Do you want to give it a fancy name? I guess you said you're making a new one, so maybe you could do it with that one. I could be: UnDisbeliever Tech1. (I think you know where I'm getting that from. :wink:)
The first through that went into my mind as Chrono Trigger for some reason. Google-fu* tells me the name of the Wolfenstein 3D engine is called ID tech1.

No ideas on a name for the engine yet... Will need to put on my creativity cap for that.

---
* Google-fu: More reliable than your memories for trivia bits of information of little importance.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - completed - would like feedback

Post by Drew Sebastino »

UnDisbeliever wrote: Google-fu* tells me the name of the Wolfenstein 3D engine is called ID tech1.
UnDisbeliever wrote:* Google-fu: More reliable than your memories for trivia bits of information of little importance.
Looks like your Google-fu was wrong, because the Doom engine is ID tech1. ID tech2 is Quake, ID tech3 is Quake 3, ID tech 4 is Doom 3, ID tech 5 is Rage, and ID tech 6 is the upcoming Doom game. Any games in between those either ran on the same engine as another or ran on a slightly modified one. (I don't know why I felt like sharing all that.)
User avatar
rainwarrior
Posts: 8062
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Castle Platformer - completed - would like feedback

Post by rainwarrior »

So is Wolfenstein ID Tech 0, Catacomb Abyss ID Tech -1, and Hovertank ID Tech -2?
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - completed - would like feedback

Post by Drew Sebastino »

I guess so. :lol:
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - completed - would like feedback

Post by Drew Sebastino »

You mean, you can just talk to him like that? What does John Carmack do now?

Just thinking though, has there ever really been a publicized 2D engine? There are plenty of 3D ones, like all the id ones that were just listed.
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Castle Platformer - completed - would like feedback

Post by tepples »

Espozo wrote:What does John Carmack do now?
Chief tech officer of Facebook's Oculus VR division, and Id's parent company is (or was?) suing Facebook for poaching him.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Castle Platformer - completed - would like feedback

Post by Drew Sebastino »

poaching?
Post Reply