I thought I'd share my progress with my first game for the NES, Falling Blocks.This is a port of my game that I wrote for the ZX Spectrum - see here if you want to try that version out: https://github.com/soiaf/FallingBlocks

I plan on adding some extra levels/challenges that weren't in the ZX Spectrum version.The game itself is essentially a variant of Tetris, but I'm adding some features which hopefully should make it interesting to people.I only started learning 6502/NES programming last month, but as I've done assembly programming I had no issues with 6502, the fun has been learning how to interact with the NES.

Attached is an early alpha of my game - just one level, with no special features - I guess it's really just to show that I've started

Some notes about the controls:Pressing Start in-game will switch on/off a ghost - this shows where the shape would end up if you were to drop.Pressing B will swap the shape with the saved shape. You can't swap again till you have placed the shape and are on a new shape.Tapping A quickly will drop the shape to the bottom (though you then have a brief moment of time to move it left or right). Holding A will make the shape move quicker down the screen.

In the final version I will have a settings menu where, for example, the user can choice their preferred default behaviour for the drop button (always drop, fall faster while held, or mixture).

The one concern I have about the game right now is sound/music. I made a test version where I integrated GGSound into my code, but I have no talent for producing music myself, so I guess I'm going to have to look around for suitable music that I'm allowed use. If anyone has any suggestions here I'd love to hear them.

When I'm finished the game (or close to being finished at least) I plan on putting the source code up on my GitHub account.

Attachments:

File comment: Very early (alpha), one level only, version of Falling Blocksfallingblocks_v43.nes [24.02 KiB]
Downloaded 217 times

I spent much of my teen years playing a similar 'falling block game'. And, I'm so used to the button choices of that game, that playing your game is like trying to ride a bicycle backwards, while using my hands to pedal.

I spent much of my teen years playing a similar 'falling block game'. And, I'm so used to the button choices of that game, that playing your game is like trying to ride a bicycle backwards, while using my hands to pedal.

You'll really like level 3 of the game then

But seriously - in the ZX Spectrum version I allow people to define their own keys. In theory I could add the same functionality to the version (so for example people could choose to press down for drop), but I'm not sure if it would be worth the effort. Would people like having the ability to define the buttons?

For what it's worth, I play TGM and could write you a book about Tetris design, rotation systems, wall kicks. But... you're probably not interested if you're aiming for a more classic Tetris. (LJ65 is quite modern in gameplay.)

So... instead I'll mirror the others in saying reconsider your default controls. There's a lot of Tetris games for a d-pad, A, B, Start, Select button layout. Tetris (GB), Tetris (NES), Tetris DX, Tetris Plus and many more™ and most of them do what dougeff suggested. Considering most people that will play this have probably played one of those games, it's worth following suit to not turn off players of those games.

Also, I found a bug. You can fast drop the next piece before it comes out. This seems like it'd be a neat feature, but it's hard enough to do consistently that I'd bet it's a bug:

Input display on the bottom left. I press A way before the other piece enters the well.

Ok, I'll definitely change the keys to that selection, so that'll be in my next alpha release.For that I'm planning on showing a different level, this one will be a bit more difficult, but should be a good demonstration of what I'm planning on adding to the game.

Thanks for the feedback everyone, I really appreciate it.

@Kasumi - I'll definitely give LJ65 a look!The plan is to link the randomisation to when the user clicks on Start from the main screen, right now having predictable patterns makes it easier for me to debug. But I'll definitely consider making the next alpha release more random. Thanks for the bug report, I'll have a look at that over the weekend and see if I can work out what's happening there.

Here is my latest version of the code.Hopefully this should give a better idea of what I'm trying to do with the game - in this level you have an expanded list of dropping shapes and random blocks appear every few turns, sometimes helping, sometimes causing frustration

The main things I've worked on since the last version are

*Modified the game controls*Added extra shapes*Added one of the difficulty factors (random blocks appearing every few turns)*Tidied up some of the code*Added most of the high score code (not fully working yet though)

Two known issues with this releaseHigh score not always recognising a high score (and sometimes setting the high score to a score that is not)If a random block completes a line it will not be recognised as a winning line till the next shape has been played

@KasumiThanks a lot for the animated gif/bug report. I was able to replicate it fairly easily thanks to your report, though it took me a while to figure out what was going wrong!But I've fixed that and have been tidying up the code and adding some new features, hoping to have a new testable version in the next couple of weeks.

Latest WIP version attached. This has a few bug fixes, but also has a lot of extras the previous versions didn't have, scoring, lines completed etc.Lots of work still to go, but I'm happy that this is beginning to come together.This version still only has 1 level to play, but is a different level from the other versions, with a new challenge for players.

Since my last update I've found someone to compose music for the game, which is great!I've integrated ggsound into the code.I've added a couple of settings on the title screen, you can now choose your preferred drop method and choose the difficulty level.I've also started tidying up the code, some of the code I wrote at the beginning is very wasteful of memory and I now need that space

Thanks to everyone here for their feedback and I'd especially like to thank Teuthida for the music and sound effects, Derek Andrews for the ggsound sound engine and help fixing issues.Thanks also to Shiru, Drag, Damian Yerrick and Joe Granato for some code snippets used.

Who is online

Users browsing this forum: No registered users and 5 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum