Jump to content
Mugi

Dimension Shift

Recommended Posts

Hey all.

 

Due to the (un)popular demand, I decided to dedicate a thread for this project too, so here we go.

 

Dimension Shift is a platformer I'm making together with FIX94, an extremely talented Assembly programmer and programmer in general.

the game itself is designed and illustrated by myself, along with programming work split between myself and FIX94, who more focuses on engine programming, while I dabble in feature programming (honestly, we both just do whatever, but I suck, and he doesn't so...)

all the audio in the game is composed using famitracker by Jeremy Sebastiano (aka. Digit2600)

 

The project started as my personal test to see how hard can it be to make a nes game, so I bought nesmaker and started putting things together.

FIX joined me after he saw my first test rom of the game and was "dissappointed that all my efforts go to waste because the game engine is so limited"

so he poked at it until we turned nesmaker's engine into a bi-directional scrolling platformer.

that rom was submitted to the nesmaker's byte-off competion where it fetched best pixel art award, and gave us the needed motivation to do the move over...

 

fast forward 9 months, the whole game engine has been redone, more graphics designed, the story fleshed out and we are at this day (november 15th 2019 at the the time of writing.)

i've learned quite a bit of how to bend the NES to my will. (FIX is just happy he has to rewrite less of the things i wrote to make something that doesnt waste 99999999 cpu cycles lol.)

 

this is a mapper 30 rom, and the engine currently features cool things such as;

- 4directional scrolling with automatic scroll correction and dynamic scroll locking per screen (H only, V-only, Free movement)

- full chr ram bankswitching

- makeshift scanline counter (mapper 30 doesnt have this feature, so DMC IRQ is used for midframe screen splits)

- separate "cutscene engine" with full upper and lowercase text printing. Capable of drawing 1024 unique tiles + text font per screen

- parallax scrolling

and of course the usual things needed for a game, such as funky physics yadda yadda.

 

the project is going forwards somewhat smoothly, we are currently missing an entity handling system and a good pile of stage design.

all the basic mechanics of the game are in various states of working order, physics, wall climbing, attacking, hud, money, health etc etc.

the latest big addition was the completion of the weapon metasprite system that allowed implementing multiple weapons that all have their disdinct characteristics.

different damage, different attack speed, different hitboxes. and so on and so on.

 

the gameplay style is rather faithful to shatterhand where i draw a lot of inspiration from.

the game will feature 7 playable stages including the really short intro stage, a stage selection screen, an array of obtainable weapons, ability to revisit stages, fancy boss fights, flashrom save/load feature, and propably a lot more that I just forgot to type here.

 

I really dont want to say anything about when this game will be completed, but it will be eventually done, in one form or another.

this my first time doing pixel art and my first time programming a game and my first time programming in 6502 so be gentle.

 

few screenshots below.

game_088.png.43c20acc245876bfde570d7780c13f44.pnggame_108.png.797d12ef56e0104538964553e86e36d9.pnggame_184.png.a532ffcba29b55be9d902e799dd83c72.pnggame_162.png.6dea62aa25849fc98c9658a7f859798c.png

game_187.png.587cb751ab5d6279f1c941ae7dd1e630.pnggame_191.png.1387581d8a90bcc0d11aaee57baff270.pnggame_189.png.646aef8d59d6de63beb49a2c144d71c4.pnggame_192.png.dca23c90b3f5ce6c3b8ee87a9c38560f.png

game_193.png.0f7eacac0f7cb34e2082f95245a85fe1.pnggame_194.png.62d88141cd74dce18a942415ce75e52f.pnggame_195.png.eaf9ef673f11a38da0700d87d36ef05a.pnggame_196.png.cd54b6ffc8d317e48a71d4a99fc0c7f7.png

game_197.png.2902884c5badb306930fad463c98387d.pnggame_198.png.fad6cfbe5991333a852751dbfd1ae6fc.png

 

 

Edited by Mugi
  • Like 10
  • Wow! 1

Share this post


Link to post
Share on other sites

it's a digitized picture made out a combination of a drawing I made and a photograph I used in conjunction to get a more realistic feeling for the sky.

the title screen girl image is also a digitized image I drew, scanned, and then converted to play nice with the NES.

 

while I'm quite pleased with how the currently implemented graphics look, it is worth a mention that at this point in time, literally everything aside the character sprite design and the title screen are WIP and subject to change.

 

edit: i cant spell

Edited by Mugi

Share this post


Link to post
Share on other sites
43 minutes ago, gauauu said:

First time doing pixel art? That's amazing work.


well, first time using it for anything more than hiding dickbutts into random internet memes.

also my first time working with nes' color restrictions etc.

the few pixel art things i've drawn in my life prior to this project have all been 256 or in some cases of small images 16 colors, with no grid / palette restriction in usage.

 

I've received critique regarding some of my stage designs in the game repeatedly regarding the fact that my reuse of foreground assets as background assets makes it sometimes really hard to see where you can and cant stand in the game, and it's a fair critique really... It's been a long and tedious learning curve to design gameplay screens for a NES game and while my graphical style is generally very well regarded (which I really appreciate btw!) the whole platform visibility matter is just one of the many things i consider to be my big shortcomings in NES graphics work.

 

Edit: I added a small video clip to the first post that I recorded yesterday after finally getting the weapon draw code to work.

since then, i finished the dynamic weapon hitbox code today, so the hitboxes are a bit more accurate than they are on the video.

the hitboxes also only generate when the actual hit happens, not when the button is pressed, that caused, for example the item crates in the video to break before the weapon actually hit them.

Edited by Mugi

Share this post


Link to post
Share on other sites

Thanks for posting this! I feel all projects deserve their own thread for discussion and if the creator doesn't start it, someone else will eventually. :)

I enjoy the pixel art! The art alone looks very polished. The title screen is one of my favorite screenshots. Well done! I really like how you broke down what has been done so far. It's fascinates me how you were able to get away from NESMaker's limitations and do your own thing. The NES limitations are frustrating enough, but to also be limited by software can be doubly frustrating. Well done!

Share this post


Link to post
Share on other sites
4 hours ago, m308gunner said:

That stage select screen... Shatterhand?

more or less. I always wanted to make a shatterhand 2, and when i finally decided to make a game that is not blantantly violating it's copyrights, the whole design of the game literally started from that fact. It needs a stage select..... Like shatterhand.

we all know that shatterhand is the best nes game, and you can disagree, but then you are wrong 🙂

3 hours ago, Orab Games said:

Thanks for posting this! I feel all projects deserve their own thread for discussion and if the creator doesn't start it, someone else will eventually. 🙂

I enjoy the pixel art! The art alone looks very polished. The title screen is one of my favorite screenshots. Well done! I really like how you broke down what has been done so far. It's fascinates me how you were able to get away from NESMaker's limitations and do your own thing. The NES limitations are frustrating enough, but to also be limited by software can be doubly frustrating. Well done!

Thanks.

There really is no intricate secret involved in getting away from nesmaker's limitations. One just stops using it.

I could rant about the tool and it's uses for all eternity really, but I kinda already did in the other thread so I'll just leave it at that.

and yeah, the biggest dealbreaker for me with it was that it did not allow me to do some things i knew full well that the nes is capable of doing. On a system as limited as the NES, indtroducing further limitations, while necessary in the case of an UI tool, is a terrible idea.

 

ironically enough, the thing that really tipped me over is the fact that the palette entry #$2D was removed from the color selector. 😛

 

Share this post


Link to post
Share on other sites
1 hour ago, Mugi said:

ironically enough, the thing that really tipped me over is the fact that the palette entry #$2D was removed from the color selector.

That is because of color $0D. It can cause issues with some tvs. I'm assuming that NESMaker must have a fade routine that decrements by $10. If you are using the colors $1D, $2D, or $3D and fade out to black, once the system displays $0D, it can break the game. I would assume that the designers decided to just leave column color $xD out to avoid that issue. The recommended work around is to use a similar color.

Here is more information about that issue: https://wiki.nesdev.com/w/index.php/Color_$0D_games

  • Thanks 1

Share this post


Link to post
Share on other sites

If you look at the games that make use of that color entry though, it's primarily the Codemasters games and the Immortal. I noticed when playing my Codemasters Famicom games on my tv, sometimes I'll get the wobbilyness. I've heard rumours it might have been due to poor reverse engineering of the machine or poor / misunderstanding, why they opted to make so much use of that color in the Codies games.

Share this post


Link to post
Share on other sites
2 hours ago, fcgamer said:

If you look at the games that make use of that color entry though, it's primarily the Codemasters games and the Immortal. I noticed when playing my Codemasters Famicom games on my tv, sometimes I'll get the wobbilyness. I've heard rumours it might have been due to poor reverse engineering of the machine or poor / misunderstanding, why they opted to make so much use of that color in the Codies games.

Immortal flat out doesn't work on my 36 inch sony trinitron and some of my flat screen tvs.

Share this post


Link to post
Share on other sites
24 minutes ago, Orab Games said:

Immortal flat out doesn't work on my 36 inch sony trinitron and some of my flat screen tvs.

It works fine for me, but I use a crt old tv.

Share this post


Link to post
Share on other sites

the fade thing is one reason for it yes.

my game takes excessive use of the color 2D and also does so in conjunction with palette fading.

I've had a long discussion about this matter with Joe and while he said he has zero plans to ever make that color available to use through nesmaker UI** he's been more than understanding with my frustration with it.

 

now, the color can be taken to use simply by exporting a palette (copied to clipboard) changing the palette entry, and then importing it back.

the problem with this in nesmaker, especially if you use the in-tool screen painter, is that this color is also not displayed (it displays as white.)

i believe i talked him over to making it correctly display in the subsequent versions, even though it will still not be available from the UI.

 

and for those wondering, Dimensionshift's palette fading routine has been sanitized to deal with 0D.

Share this post


Link to post
Share on other sites
4 minutes ago, Mugi said:

and for those wondering, Dimensionshift's palette fading routine has been sanitized to deal with 0D.

Awesome to hear! I'm glad that you are already aware of this issue.

Share this post


Link to post
Share on other sites

FIX94, my developing partner is a long time nes/nintendo guru, and also an author of his own nes emulator, FIXNES. add to that, while this is my first actual game development project,

i am practically romhacker for life, and aside actual programming experience, I've amassed a wide range of snippet information regarding little things such as this.

We are well secured in our knowledge of what should and should not be done.

 

going back to nesmaker enough, i just felt like mentioning that nesmaker's current versions do not have a palette fader as an UI function either.

a fade routine that is broken and incompatible with the nesmaker engine is included in the assemblies, but using it requires one to rewrtite the entire palette handling assembly, and a lot of

the fade routine itself. (this routine is mostlikely a leftover of an earlier engine version, used to make trollburner, and propably used on some early development versions of mystic searches.)

Share this post


Link to post
Share on other sites

those graphics look beautiful. 

i was not happy about providing #$2D support to project blue, but ellen convinced me to anyhow, and i agree that it's important to have access to as many colors as we can, given the limitations that we're forced to work with. 

Edited by toggle switch

Share this post


Link to post
Share on other sites
7 minutes ago, toggle switch said:

those graphics look beautiful. 

not quite PB level but its getting there 😛

Share this post


Link to post
Share on other sites

Looking forward to seeing this thread blossom. I've greatly enjoyed the window provided into development thus far. 

But does it conveyor much tho? 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...