Cartridges! Coming Soon-ishly!

Yes! I’ve finally found some lovely people from 8-bit Evolution to team up with who publish retro games! They’ve taken a liking to a few of my games in-progress so far and now they really need to be brought home over the finish line.

This is one of those geeky dreams of mine that I had since being on the playground in the 90’s, to have a game of mine on a Nintendo console, on an actual cartridge, complete with box and instruction booklet, the whole shebang!

So, I really need to tighten up some code on Formula Racing to make it as optimal as I can (again) in GBDK, get the password system in-place, sort out that difficulty curve, add some endings, some sorta music and that game will be done and ready for perusal. Also, I need to make some awesome box art like I made for They Are Everywhere 😉

gameboypaknmgb-fixed

It’ll be one of my game developer “awesome things to accomplish” things marked off the list and I never was sure which way to achieve it so I’m very grateful for 8-bit Evolution to reach out to me on this one.

And there I was considering some Sega Master System development instead. Well, maybe again in the future eh 😉

Gearing up for 2 Players!

Gameboy Development has been really good fun over the last 14 months and in total I’ve made over 10 games which are all playable in one state or another, which is nice!

I’ve played with some gameboy colour stuff and feel like I have a good handle on MBC1 style bank switching. Audio is coming nicely along the way and will keep on evolving over the coming months until I’m happy with both editor, exporter and GBDK implmentation.

But, one of the things that was in a lot of gameboy games was the ability to link up to another system, allowing for two player games. Normally in a versus mode scenario.

I WANT TO DO THAT!

And I want other people to be able to to do that also!

So, there are decidated functions and variables inside GBDK for handling such functionality allowing for not just link cable but other accessories to be attached, such as the gameboy camera and printer! I’ll look into those at a later date but for the moment, the next goal is to make a 2 player game!

Jams Jams and More Gameboy Jams

So, October has been a pretty intense month for game jamming, with two jams co-inciding with each other at the very start of the month the amazing GamesForBetter Jam hosted by the lovely SoGoodStudios and Sizeable Games, handily encompassed by GBJAM5 where developers make a game based around the general theme of the Gameboy. But, let talk about the Games For better Jam first, it was pretty eventful after all!Things started off in a fairly compromising fashion when I realised that I had packed literally everything I would need with the exception of a power cable for my laptop. Big mistake and thanks again to the lovely Jupiter Hadley for sorting me out with that one, you’re awesome!Our group constisted of 2 coders and 1 artist. What with both our coding skills coming from very different approaches I made the odd call to make a live demake of the PC game programmed by Tom who did a great job turning code and gameplay around with amazing speed onto the gameboy.

A fairly tall order for two days but I figured it would be pretty cool and unique way to tie things in for the GBJAM that was also running at the same time.

I was unable to get any code underway until ~midday on Saturday but we were able to get a really solid concept going of essentially a bullet hell shoot-em-up where you have two weapons, one is a standard peashooter, not too great but does the job, the other being a wider, more destructive shot from a slowly replenishing ammo source, which when fired can destroy bullets and most enemies. The trick being that using this too much will make more enemies indestructable, linking the game into the theme of anti-biotic resistance.

With time running out on the 2 days worth of Jam time, we had a really playable version on the PC with 10 seperate levels culminating in a boss fight which played really well but was a struggle to capture any real footage for oddly. The gameboy version lagged behind but had 10 very similar but slightly different levels and a few bugs.

It was a great Jam and the first time I’ve worked as part of a team in one of these events, it was great fun and whilst we didn’t get picked to be played at the event, I felt the game would be worth continuing development on for the rest of GBJAM5.

So, a trip back home from Plymouth, catching up on some sleep and a few play-throughs later, I’d decided what I wanted to add to the game.

  • Bosses
  • Bug-fixes
  • Pausing
  • Gratuitous Sampled Sounds
  • A pre-title screen to show off said sampled sounds as a little easter-egg.

Now being back in a home environment meant that coding time was more scarce as there are many other factors at play, not least the trips to work, awesome family times and the joys of housework. Late night is really the only option for coding @ home 😉

I had managed to write a tool in PHP in previous weeks to convert an 8-bit 8,000Hz RAW wave file into 4-bit, 4,000Hz but hadn’t really played around much with it, aside from verify that it worked. So, it really needed to be in the game in some form. Making a talking intro screen game boy announce “Game” “Boy” “Jam” “5” seemed a cool idea and fit in quite nicely with some more advanced bankswitching for me. It worked pretty well as a little novelty before the main game and I’ll work on making this play nicer (without game pauses) at some point.

Bosses were fun to play around with and got tougher as the levels progress. They use fairly simple movement patterns but fire a viscious amount of bullets on screen, some later bosses are supported with standard enemies to up the difficulty some more and all squeezed into the main ROM bank with space to spare.

There were some minor bugs with the GamesForBetter version but this was mostly just the score not resetting on replay and a couple of sound bugs due to me not resetting registers at the right point in the game loop at times.

Space Splosions and More Gameboy Tools on the way!

Yay! Space Splosionator 2086 was completed last Wednesday for the Workshop Wednesday challenge over at the lovely socoder forums and whilst it didn’t get as much time as I’d hoped to spend on it, plays pretty well, albeit in a tough as nails way.

The theme for the Jam was Hashtag so the game takes place in side a hashtag…in SPAAACCCEEE!
Space Splosionator 2086 spacesplosionatortitle
I know, awesome right? XD

What’s there in the game worked really well, there’s a starfield, lasers, targetting reticule and enemies that zoom into the screen and attack you, all complete with screen shaking effects!

It does essentially boil down to whack-a-mole, but it’s good fun for a few minutes 🙂

You can playit online via the gamejolt emulator orr, for a much better experience, use the BGB emulator and download the ROM instead!

http://gamejolt.com/games/space-splosionator-2086/186987

 

In other news I’ve made myself a tool to convert 8bit 8000Hz audio into 4bit 8000Hz audio for including wave sounds into gameboy games via sound channel 3.

I’ve shyed away from this channel before as I didn’t really get how it worked but now I’m playing with wave forms including triangle and sine waves to get more sound variety out from the gameboy!

I’d love to see if it’s possible to stream a low frequency sound whilst a game is playing. It’d be really low in quality (60Hz) but could be suitable for some applications, probably not vocals though. We’ll see!

So, August and me coding in GBDK didn’t really happen.

Yeah, yeah, I didn’t even update this blog either. For over a month!

But, that doesn’t mean I’m stopping gameboy development, far from it. There’s plenty of games I need to finish off before I move onto tackling 6502 ASM again in October / November.

There’s quite a list of them now, how does it always end up like this!

Formula Racing.
It’s nearly all done, but just needs a bit of polish and better ROM bank management.

I Shall Be Queen.
I’d really like to add that boss fight in there sometime soon. Then I’ll accept it as complete.

Shield Warrior VII.
It’s a small game I attempted to make for Ludum Dare 36 during the bank holiday weekend, but life and family fun was way more important. So, I need to finish this one off soon!

Ayasumi Todayachi.
A horizontally scrolling shmup with alternating weapons.

Space ‘splosionator 2086.
A quick Whack-a-mole type game. But in space!

They Are Everywhere.
I’ll come back to They Are Everywhere again sometime again. I feel it needs re-programming now I have a better knowledge of the system as opposed to in October last year.

Roll on September!

Bit Bit Jam 3 Post Mortem

Hiya. I’m Ryan Carson and this is a lil transcript for my video about “I Shall Be Queen” for the Gameboy and Gameboy colour, made in 1 week for the 2016 Bit Bit Jam. This is the first game jam I’ve entered which is entirely dedicated to retro console development and Has been lots of fun to take part in.

The chosen theme this time around was “Red Hot Princess Carnage” and resulted in quite a variety of games being made for systems dating as far back as 1976 / 7.

omgslimes
Early Dev Shot- Lots left to work on still here! I think this was on tuesday / wednesday…

A you can see I ended up making a double-dragon style beat-em-up where you play a princess character, out to steal control of the kingdom by yoinking the queens crown.

The game takes place over a total of 3 stages with enemies getting tougher as the game progresses, starting off with basic slimes, moving onto snakes, floating eyeballs and arrows being shot through the stage at you.As has been mentioned a few times to me now, hitting the enemies is considerably tougher than it should be, mainly down to the height of the enemies being less than your primary punch attack.

With a bit of skill, you can manipulate them to wander down into the punches and there’s always the simpler jumping kick and mana consuming ranged fireball you can throw with the select button.I started off with a simple base code consisting mainly of collision detection and fader for the monochrome gameboy and the rest of the code was written during the week.

I was really proud with the pixel work I could put into play with this game, particularly for the main character, although, using such a large sprite for her in-game meant I had to dedicate 18 tiles per animation frame. Not good when I need to consider enemies, power ups, etc.

I could have a maximum of 14 unique frames but ended up with a total of 10, comprising of:thegrid

  • 1 Standing Frame
  • 3 Walking Frames
  • 2 Punching Frames
  • 1 Jumping Frame
  • 1 Kicking Frame
  • aaand 1 Death Frame

That’s still the majority of the 256 total available to me, leaving me with only 76 tiles to put enemies into!

I wanted to have some variety to the enemies with at least some animation so opted to make the enemies fit into 4 tiles per animation frame, with a maximum of 4 animation frames per enemy.

There’s 4 different enemies in-game, so that’s adding another 64 tiles, leaving only 12 (well..okay, 16, one enemy had just 3 frames to save on space)

The remaining tiles were dedicated to power ups, shadows, visible punches and kicks leaving a paltry 8 spare tiles at the end, I was really pushing the limits to what I could use here and many other scenes went the same way, it was tough trying to cram it all in!

Somehow it managed to fit in though and with a few sneaky tricks to reduce cpu usage, not checking for certain hit detections on every frame, etc, etc. Further code reductions to allow the main game code to fit inside one 16kb bank, the game squeezed into it’s available space.

queenspritesandconvI was hoping to add a boss fight with the queen towards the end of the jam but, despite having prepared some sprites, simply ran out of time and ROM space come Monday to add this so, had to replace it with some rather odd dialogue scenes.

All in all, I’m pretty happy with the way this game turned out. I’m tempted to round out the remaining bugs and add that boss fight at a later date but yeah, a few flaws but, it plays pretty well and looks better than I thought it would!

Heck, I even managed to add some requested scenes from a guy at work’s request, but you’ll probably need to view the code to figure it out 😉

Why not give it a quick play through at Gamejolt?

Click here to Play Me I Shall Be Queen

Oops, err yeah, the video, I’ll be uploading that one shortly ;P

gbcolortitle

More News on Formula Racing and other Gameboy Development stuff

Right, a few more changes have been going on under the hood of Formula Racing, including an overhaul of the A.I. which was a lot more predictable than in the current version, the A.I. can now branch into different paths depending on the track layout and is a lot less likely to crash into things as a result. So you really need to plan your overtakes now!

This has called for a redesign of some of the older tracks to handle this variant of the A.I. which has turned out to be a great blessing, with a lot of optimisation in the code now present to reduce CPU usage I’ve also weeded out some unneccessary lines of code and removed the speed overflow bugs that were present.

These bugs caused boost pads to stop the car and crashes to occsionally accelerate the car instantly to it’s top speed!

While this is all good, it’s resulted in the game becoming much tougher than before, unpredictable A.I. really puts things into a twist.

There have been some graphical changes to each course group also, billboards, trees and other elements being locked to each group help to give each track a slightly different feel, which is pretty nice!

The password system is almost there for Grand Prix mode and I’m working on a custom sound editor in the background just for the hell of it.

GBDK and sound can be a pain in the arse, there’s lots of ASM based solutions but GBDK could do with something, however basic it comes out initially. Unobfuscating the process could result in more games with soundtracks in, which would be nice!

There’s a couple of little A.I. bugs to sort out still but they should fit in nicely with the ~500byes remaining. I’m hoping to add a car explosion effect also in the remaining space!

Oh my gosh. it’s 1am, time to sleep, will post again soon!

Coding A Gameboy Game – In An Hour?!

UnSeen Gamescreen Just another Saturday night and I noticed the one hour game jam was on in a minute or two. So, time to roll up those coding sleeves and bosh out a game based on the theme “Stealth”

One hour really isn’t much time to make a game in so I had to use some fairly ugly hacks to get the game working, it’s a simple affair, guide the shadowy character to the “WIN!” text and you win. that’s it. Whilst security beams are switched on and off, with animation, audio cues and walking sound effects. The only collision routine used is that with the background layer. There’s so little time to get anything working that my collision routine is a little iffy, resulting in sliding along walls.

onehouroneNevertheless, I’m glad I managed to make something “slightly” more substantial than my previous one hour game jam attempt under the theme “Everything is dangerous” again, simple enough, avoid the spikes, walls, etc. Just under an hour.

Even though these games aren’t much, it’s nice to try an intense burst of game coding every now ‘n’ then!

Download Links for the ROMs below:

Formula Racing Gameboy Homebrew Developments.

Well, it’s been around a month since I’ve posted on here about the updates to Formula Racing and there’s a lot more going on with the game now! Read on to find out about what’s done and what’s still to go.

What’s done?

More tracks! 

There’s now 10 tracks designed for Formula racing, including my new personal favourite USSR – 1! I’m going to be re-visiting the track designs for previous levels shortly, in order to spruce them up a tad.

More Track Details!

I foolishly forgot that I had a spare 128 tiles to use for either sprites of background tiles.. So, I’ve been making use of the new tiles to add more definition to the track layouts. Mainly USSR-1!

Track obstacles.

Just racing the opponents wasn’t enough for me after a while. So I’ve added more obstacle tiles that will blow your car off track should you run onto them. You will run onto them!

Boost Tiles.

Because, every racing game needs boost tiles of course! So far, only on USSR-1 but that’s fine. Revisiting older tracks, yeah!

Track Intros, last lap warnings, Variable Lap counts Per Track , an actual finish AAAND that vital feature. Pausing.

So, yeah, that’s a fair amount of stuff added to the game which has had a couple of important effects.

The games plays better and is getting closer to being an actual game now.

I’m seriously running out of spare ROM space for my main game loop – 270 bytes at last count tonight. I have sfx to add and music!

Whoa…MUSIC?

Yes, that’s right, MUSIC! I’ve been chatting to the fantastic gameboy chiptune composer NordLoef about in-game tracks and he’s agreed to help make some music, which is really great news, I can’t music for toffee, cake, biscuits, even the promise of coffee and a peanut butter wrap.

So, yeah, he’s going to be in the game credits and, hopefully getting a physical cartridge at some point! I’m really looking forward to importing the tracks into the game, that’ll really make it a more complete gameboy game and hopefully some people out there will enjoy it also?

ION – A gameboy action puzzle game in GBDK in development

Despite not having many hour last weekend for Ludum Dare, I started to put together the pieces for another lil Gameboy Game called ION. Where you take the role of a charged particle that needs to attain certain levels of charge to proceed to further levels and boost the players score.

It’s a fairly simple game in essence and uses ice physics for motion control with state-based A.I. charges that vary between seeking and fleeing routines to keep the player on their toes.

Here’s a quick 20 second video with some of the game in action.

There’s still a way to go, but I’m planning on adding obstacles, slow and charge wells to help mix the gameplay up.