Right, so, after Floofy Sheepie sort of fell over and things, I've begun work on this lil game based on the awesome Flapadiddle game by Jayenkai of aGameaWeek fame
So far I've got procedurally generated levels, obstacles the player character and some other bits working.
Here's the title screen it it's current state also.
I'm planning on adding different worlds with different obstacles, methods of level generation, varying gravity and a 2 player vs mode, (maybe a set adventure quest.. I dunno).
All the levels are procedurally generated and based of set seeds so there's good scope for this to be accomplished inside a 32kb nROM cartridge I reckon. So far the games code is at 4kb and the basics are almost all in place.
I'm hoping to set aside around 8kb for music and sound effect data, is that enough for a few minutes of music in general?
Cool!
Quote:
I'm hoping to set aside around 8kb for music and sound effect data, is that enough for a few minutes of music in general?
I think you're safe with 8kBs as long as you don't use samples or just one short sample or so.
Though there's no straight relationship between minutes and kilobytes. It is heavily dependent on what driver you're using, and how you compose your songs.
Thanks FrankenGraphics, It's handy to know roughly where the limits will be when coding stuff up
For some reasons that in-game shot reminds me heavily of stage 1 of Salamander.
Ha! Didn't see that until now
FrankenGraphics wrote:
Though there's no straight relationship between minutes and kilobytes. It is heavily dependent on what driver you're using, and how you compose your songs.
For the Pently driver, you can count on 1.3 to 1.9 kB of code and static data (depending on effects enabled at build time) and about 1 byte per note or rest or 2 bytes per effect change, with savings possible if you repeat patterns or use short loops. This means you can fit a lot of music into 8K.
OP: How many tracks were you thinking? And were you thinking
Balloon Fight or
Silver Surfer complexity?
Lewts see....
1 track for the intro screen
1 per world, those'll be the longer looping ones, probably 5 or 6 different worlds
1 ending
1 vs ending
1 level select
1 level complete
1 game over
So, potentially 12 tracks then, 6 aiming for around a minute with the rest being shorter. Will look into the pently driver as well as gradual games' one, I'm sticking with NES ASM3 despite it's limitations as it seems to make the most sense to me so I'll keep that into consideration.
Thanks again and, merry XMAS!
Finally gave it a test on the NES tonight also, t'works!
Nice christmas themed tv set you've got there - your nes also seems aboutas yellow as mine!
I'd love to hear how you're procedurelly generating levels - what kind of techniques you've decided to use, etc.
Just to say I highly enjoyed your gameboy blog, as well. Thanks for taking the time to publish that.
FrankenGraphics wrote:
Cool!
Quote:
I'm hoping to set aside around 8kb for music and sound effect data, is that enough for a few minutes of music in general?
I think you're safe with 8kBs as long as you don't use samples or just one short sample or so.
Though there's no straight relationship between minutes and kilobytes. It is heavily dependent on what driver you're using, and how you compose your songs.
Generally, faster music is prone to be more dense, and take more space per second that slow paced music.
Hopefully I'll finish this game off then I'll write a post up on what does what online somewhere, also, wow,yeah, I haven't published anything on my blog in a while! I should probably make sure to update more often next year!
GBDK is what has led me down towards ASM, sooo, yeah, let's see how it goes.
Regarding the random generator, I'm just taking a value, multiplying by 13, adding 1 then sotring that as the next rand.
But I'm only updating that random generator when I need to. So, it's not per frame or anything, has a pattern of sorts, yet seems to be pretty random for the genreated levels at least so far. There's some obvious elements inside each level but I'll be making each world with a different stlye of generation, all using the same PRNG though.
rychan wrote:
I'm just taking a value, multiplying by 13, adding 1 then [storing] that as the next rand.
That's a kind of
Linear congruential generator.
If you ever need a "better" source of randomness, you might find the linked article above useful.
Thanks for the link, will check it out if I find this one proves not great for the level generation.
Had a lil break away from the code but, planned out some bits to sort out each day this week.
Tonight was level name generation, as every level needs a quirky / memorable name right?
https://twitter.com/refreshgamesuk/status/950871711121117185I'm posting more detail on my blog again this year, if you fancy a gander it's over at
https://refreshgames.co.uk/
So, I've got a bit further in some aspects since my last post, there's a background generated (after the rest of the level is)
and the platforms are now in much better postiions.
All 256 variants are beatable levels (yes, I tested them, of course I did)
Just need to figure out the best way to make it that each platform is generated one at a time next, then it's much closer to completion. Still, a long way off but a big step.
Orraaaaa! The platforms are now memory mapped in zero page as pointers! (YESSSSSS)
Also, for NROM 256, surely my filesize should be 40kb, not 49kb?
Orr have I missed something?
Code:
PRG ROM: 2 x 16KiB
CHR ROM: 1 x 8KiB
ROM CRC32: 0x5ddeb4ae
ROM MD5: 0xf67bcc4f6cf62b95cb3fde08520e7a41
Mapper #: 0
Mapper name: NROM
Mirroring: Vertical
Battery-backed: No
Trained: No
[edit]
Fixed it, just removed the last 8192 characters from the file and resaved, apparently windows 7 always rounds up
[/edit]
Managed to get platforms to spawn in one at a time now, yay!
https://twitter.com/refreshgamesuk/status/957420327784632327More things to get done tonight.
A solid nights coding, keeping track of the landed platforms, and there's now a proper level end condition. Feels good yo!
https://twitter.com/refreshgamesuk/status/958489025316380672Tomorrow - scoring, possibly some indicator of invincibility and...errr other stuff?
Added some lil bits to indicate score death and, finally just 3 lives ( although it's a bit late and they don't update in the display currently)
The game now returns to the menu screen a-okay after you die, ready for the next game to begin.
https://twitter.com/refreshgamesuk/status/961386067025854465Had a cool looking bug whilst getting the return to menu screen thing working, here's a linky to it
https://twitter.com/refreshgamesuk/status/961363457311428610
Found some time to code flap happy today again, and, make a handy video to show the changes made.
No sfx yet though. need to work on that and some other bits
[url]
https://www.youtube.com/watch?v=KiGlMJLpBqw[/url]
I really like what you have done here! A nice original game that really stands out from the usual glut of platformers.
If you were interested in getting this professionally published by Epyx I would love to speak more with you.
Thanks for the compliment, it's coming along slowly but surely
I'm more than happy to be coding games with the team at Mega Cat Studios however.
rychan wrote:
Thanks for the compliment, it's coming along slowly but surely
I'm more than happy to be coding games with the team at Mega Cat Studios however.
That's cool. Been speaking with them for the last few days and hopefully we are going to be working on some projects together.
Now, time to flap through egypt!
Just a teaser pic, showing what I'll be aiming to get things to look like for this next set of levels.
Starting to get somewhere with the egypt levels tonight.
That and generating some fairly rough sound effects in code, adding the important invisibility flicker and. well, mostly playing the game inbetween all that.
Had a lil playtesting sesh before work with some workmate this morning they all agreed that it seemed fun but way too tough. Which is pretty much what I was expecting regarding difficulty. I'm not selecting levels from a batch or anything yet. Should be easy enough to do though when the time comes.
Restructured my ASM code to handle both dungeon and egypt level tilesets. Just need to sort out different level generation and change the enemy types around next
Got some much nicer egypt levels being generated now. they are a tad on the tough side but that can be balanced out with rng control.
Here's a lil gif of it.
The importance of flashing platforms is underrated at best.
Still gotta add those snakes!
Aaand boshed out a mock-up for the space levels with some sprites from an old unreleased mobile game that I'll probably port to NES after this game's finished.
Apologies for the lack of updates been pretty under the weather of late should be back onto things this weekend again though!
Still struggling to carry on over here which is fairly frustrating, gonna write up a checklit for tomorrow and hope to achieve something on there!
After quite the haiatus, managed to crank out some ASM over the weekend and the space levels are nearing fruition!
https://twitter.com/refreshgamesuk/status/1018997267347464193
Lil bit of tinkering left in space but I've planned out the underwater levels tonight.
Got the underwater levels set-out a bit more in FCEUX and a love how cute the sharks loo currently. Just need to add more to their movement patterns andthen I'll be pretty happy with it!
Starting to make the sharks move more like...err guppies in the fish tank... still deadly mind! Will add some light homing to one of them to mix things up.
Apologies for the delay in updates, been busy with bits and bobs all over the place with work, family and, thankfully found some more time for some work on Flap Happy over the weekend!
So, I've set out the instruction booklet and designed a simple, fun little logo for the game.
Tidied up the code a bit and decided on the game modes as follows:
Easy (less, slower enemies)
Medium (normal speed enemies)
Hard (normal speed enemies, tougher levels)
Hardest (as above but with the toughest levels only)
Endless (Each level is randomly selected and, as implied, there's no end)
Single Stage (A single stage select with number of frames taken displayed in the results)
Have written up a handy sound effects and music chunks of code recently.
https://youtu.be/QcpWTKTK3K4I need to make improvements to both but at least they're working fairly well so far.
Finished up writing up my music engine recently, quite pleased with the results so far, just need to tidy up the game, sort out the ending and I'll FINALLY be done!
(then it'll be onto game #2)
Made a bunch of fixes, added a roulette style fruit system to quickly garner extra points to earn extra lives, few more bug fixes, more music tracks and an ending then it'll be done!
Handling high scores now, a bunch of bug fixes made, just under 8kb left to go for coding up the ending, more game audio and the layout of the single stage select mode. This'll be interesting as it closes down to completion.
So, I also need to ensure a good difficulty curve, spent a bit of time over the last couple of days assigning difficulty ratings ( 0-10) to the stages, whch, of course, means playtesting each one and noting it down. It's a time consuming process but I'm ~40% complete with 416 / 1024 levels rated, duplicates removed during the process. Haven't found an impossible level yet, which is a relief as that could change everything.
Also, added visible ceiling spikes to each level to make it more obvious that the player can't just flap away through the top of the level itself.