Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - [Coding competition 2024] Goblin Kart Rescue by raphnet

Reply to topic

Rate this entry!

1 (Terrible) 0% 0%
2 0% 0%
3 0% 0%
4 0% 0%
5 0% 0%
6 3% 3%
7 11% 11%
8 22% 22%
9 25% 25%
10 (Excellent) 37% 37%
This poll has expired.
Author Message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
[Coding competition 2024] Goblin Kart Rescue by raphnet
Post Posted: Thu Mar 28, 2024 10:44 am
Last edited by Maxim on Tue Apr 02, 2024 9:15 am; edited 2 times in total
https://www.smspower.org/Homebrew/GoblinKartRescue-SMS



Quote
On no, the local heroes have kidnapped the goblin princess! It's up to Braker and Booster to save the day with their trusty karts!
Buckle up and race through exciting obstacle courses to free all the princesses in Goblin Kart Rescue!
  View user's profile Send private message Visit poster's website
  • Joined: 19 Aug 2006
  • Posts: 102
  • Location: Brazil
Reply with quote
Post Posted: Thu Mar 28, 2024 3:19 pm
Last edited by mateusbond on Fri Mar 29, 2024 1:49 am; edited 3 times in total
Aaand... We have a new Raphnet game. This year's Coding Contest could only be better if Bock announced he has a KunKun 3 in the works... One can only dream.

About the entry: even without any sound, it is a very playable game. But... Is there a way to restart a race? It's not uncommon to screw everything up right at the beginning of a track.

Now I will anxiously wait for the finished version, since the entry is already pretty close to perfection. A great game with some great artwork (even if the trees seem to come from L*g*nd *f Z*ld*).
  View user's profile Send private message
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
Post Posted: Thu Mar 28, 2024 4:29 pm
Nice game!!! With some catchy music would be great!!!!! I think the circuits should have middlepoints to avoid going to the beginning if the car fall, but the rest is nice.

Question: why the rom is 1mb??? What has inside??? 256 circuits???? xD
  View user's profile Send private message
  • Joined: 09 Jun 2014
  • Posts: 378
Reply with quote
Post Posted: Thu Mar 28, 2024 4:51 pm
It is a very fun game. I was expecting Mario Kart or Micro Machines, but actually it is more like Track Mania, which is awesome too!

In 2-3 the CPU had some trouble. I've seen it driving into the pit near the end. And in another go it was stuck in the wall.
I was using Retroarch with PicoDrive, maybe it has to do with emulator accuracy
  View user's profile Send private message Visit poster's website
  • Joined: 28 Mar 2022
  • Posts: 37
  • Location: UK
Reply with quote
Post Posted: Thu Mar 28, 2024 9:52 pm
I had the exact same issue on a UK SMS 1 so I think Picodrive is innocent this time.

Excellently I drove back to check on the AI, hit the speed boost backwards and got catapulted off the entire map never to return :D

This is going to be great with a little more work though, I'm guessing the audio treats are hidden in that 1MB.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Thu Mar 28, 2024 10:25 pm
I had fun playing through but I used extreme savestate abuse to speed up restarts, there seems to be no point waiting to finish the race if you screw up. I'd love to see a ghost for the time trials, even better if there is a way for us to trade them...

My fastest time so far on 1-1 is 8"70, but I feel there's room to improve on that.
  View user's profile Send private message Visit poster's website
  • Joined: 29 Mar 2015
  • Posts: 67
  • Location: Japan
Reply with quote
Post Posted: Fri Mar 29, 2024 1:25 am
Thank you for your comments so far!

I wanted to fix some of the remaining issues, and have some music and sound effects, but there was just not enough time left... I will take care of that in the next build!

I was already aware that the AI had some issues, in particular the "stuck driving into a wall" issue. This should be corrected in the next build.

Also, an in-race menu will be added, to let the player restart or quit a race.

I will also think about improving the behavior of the game when falling off track... Not sure how yet, but using middlepoints or begin brought back on the track near the fall point are potential solutions.

Regarding the ROM size, in fact the real used size is 576kB, but the ROM size got rounded up to the next power of two (1024)... So it's mostly empty space.

Due to lack of time, I cut some corners.. For instance, each track stores a copy of the the meta-tile lookup table... but this should be centralized! I also did not use compression for track data... At least some of it should be compressed in ROM and decompressed to RAM at runtime for a given track... I'm pretty sure that the next release will fit in 512kB, as I will take the time to make better use of ROM space.
  View user's profile Send private message Visit poster's website
  • Joined: 13 Mar 2007
  • Posts: 38
  • Location: Vitória da Conquista, Brazil
Reply with quote
Post Posted: Fri Mar 29, 2024 2:22 am
This is really fun! I'm glad you're planning to add a quit option via pause menu, it is frustrating to keep racing when you know you've already lost.

A couple of things that I think can be improved: when you start the race your position is "1th", which is weird. Don't know if that's intentional. Also, sometimes I knew I was ahead of my oponent and I was still 2nd on screen, the position only updated when I finished the race. And using the word "quit" after you finished first in a race is also strange, I guess "exit" would be better there.

Looking forward to having sound in this one!
  View user's profile Send private message Visit poster's website
  • Joined: 23 Jan 2010
  • Posts: 439
Reply with quote
Post Posted: Fri Mar 29, 2024 9:14 am
Quote
I guess "exit" would be better there.

Maybe an option "next" for other races or circuits would be cool.
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Fri Mar 29, 2024 11:35 am
Micro Machines has data for the track layout on a large scale (96x96 squares) counting up in order, and tracks the last one your car was in; when you die you respawn in that square, using the AI data to choose the direction. This same track square is used for other modes to determine who is in front, lap counting and deciding who is the winner (as the start/finish line is where it resets to index 1), and penalising you for excessive shortcuts (index jumps by too much)

This data is decompressed to RAM as it’s very compressible. There’s a screenshot of my (incomplete) editor showing it at https://github.com/maxim-zhao/micromachineseditor which might be enlightening.
  View user's profile Send private message Visit poster's website
  • Joined: 06 Mar 2022
  • Posts: 671
  • Location: London, UK
Reply with quote
Post Posted: Fri Mar 29, 2024 4:08 pm
I became addicted to this almost instantly, some great gameplay fundamentals and love the game narrative as ever @raphnet.

Agree with other comments about having to finish the race when you know you've lost.
I've not actually played Micro Machines on the SMS, but on the Playstation you do respawn close to where you went off the track, and also if the other player finishes the race ahead of you the level ends immediately so you don't have to (or get to) finish your lap. Maybe an option to automatically finish the race if your opponent wins?

And likewise, would very much appreciate something sub 512KB, I'm sure it's possible here unless theres a FMV in the ending credits ;)
  View user's profile Send private message Visit poster's website
  • Joined: 09 Aug 2021
  • Posts: 131
Reply with quote
Post Posted: Fri Mar 29, 2024 6:12 pm
very nice and polished game! only lacking any audio, unfortunately. hope you add that.
  View user's profile Send private message
  • Joined: 27 Feb 2023
  • Posts: 136
  • Location: France
Reply with quote
Post Posted: Sat Mar 30, 2024 6:44 pm
Super smooth scrolling and tight gameplay.
  View user's profile Send private message
  • Joined: 01 Feb 2014
  • Posts: 878
Reply with quote
Post Posted: Sun Mar 31, 2024 4:16 pm
This is easily my favorite entry this year. The graphics are great and impossibly cute, the tracks are fiendishly designed and a delight to navigate. The handling of the two different karts is impeccable. Add sound and some quality of life improvements and you got an instant classic.

The rival AI does have some problems, though, especially in the ice levels.

Does the story mode has an ending? I won every princess, but nothing happened.
  View user's profile Send private message
  • Joined: 09 Jun 2014
  • Posts: 378
Reply with quote
Post Posted: Sun Mar 31, 2024 9:01 pm
A few more suggestions (maybe you already planned some):

- improve the graphics of the trees. Make them less blocky
- The kart rotation is a bit jerky. It could be fixed by centering all the frames
- Use palette cycling to animate the tires.
Mario Kart does the same. How much you can do depends on the colors you have to spare. If you have only 1 color you should use it on the player kart tires. If you have 2 color, you can either improve the animation of player kart, or animate the tires of the CPU kart.
- OR... perhaps just store all different tire animation in rom. You are already reading the kart animations on the fly, right?
  View user's profile Send private message Visit poster's website
  • Joined: 27 Apr 2021
  • Posts: 32
Reply with quote
Post Posted: Mon Apr 01, 2024 1:07 pm
I love it, very good game :)
  View user's profile Send private message
  • Joined: 29 Mar 2015
  • Posts: 67
  • Location: Japan
Reply with quote
Version 0.9.8
Post Posted: Mon Apr 01, 2024 2:16 pm
Version 0.9.8 is now available, with many improvements based on your feedback!

Improvements/New features:

- The title screen and menus now have music
- Sound effects (motors, etc) have been added
- Added an in-race menu, for restarting or quitting the race, or merely pausing.
- When falling off-track, players/AIs now respawn nearby instead or returning all the way to the start.
- The "results" screen now has a "next level" option.
- Thanks to using Compression and slightly better data structures, the ROM size is now < 512kB.

Bug fixes:

- Correctly handle cases where the player jumps off-screen (respawn instead of disappearing forever)
- Display "1st" instead of "1th" at the beginning of the race.

TODO / Being considered for next release:

- The AI still has issues to be addressed (stuck on a wall), but at least for cases where it fell off-track, it's already better now since it respawns nearby.
- Less blocky trees
- Tweaking the kart sprites for less jerkyness (and yes, those are read from ROM on-the-fly)
- Tire animation?
- End sequence (ATM, even with all princesses, nothing special happens)

  View user's profile Send private message Visit poster's website
  • Joined: 19 Aug 2006
  • Posts: 102
  • Location: Brazil
Reply with quote
Post Posted: Mon Apr 01, 2024 3:01 pm
Great update! The main problems are solved, the game is a blast.
  View user's profile Send private message
  • Joined: 06 Mar 2022
  • Posts: 671
  • Location: London, UK
Reply with quote
Post Posted: Mon Apr 01, 2024 3:46 pm
Great update, this is so much fun!!
(and thanks for squeezing it under 512KB, really appreciate that..)

Did you change the difficulty at all? I'm finding it much easier to beat the AI now, although perhaps I'm just in a better mood today!

I thought I found a tiny bug on the level select screen - I couldn't see to select levels 1-4 or 1-5, only 1-1, 1-2, 1-3 and "back", but when I quit and went back in I couldn't reproduce it. Will keep an eye out in future.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8652
  • Location: Paris, France
Reply with quote
Post Posted: Wed Apr 03, 2024 1:00 pm
Game is great fun to play !
My main feedback is that the tracks are really short, I think it would be even better to have long tracks. Even if it means they are more challenging to clear, requiring more attempts, it would make things more tense :)
  View user's profile Send private message Visit poster's website
  • Joined: 19 Aug 2006
  • Posts: 102
  • Location: Brazil
Reply with quote
Post Posted: Wed Apr 03, 2024 5:59 pm
Bock wrote
My main feedback is that the tracks are really short, I think it would be even better to have long tracks.


They're hard enough for me the way they are now. If they get longer, I'll probably get mad at them all the time. Maybe I'm just a terrible virtual driver. But the truth is I usually "prefer quantity over quality" on my racing games (I mean, more and more diverse tracks instead of longer tracks).
  View user's profile Send private message
  • Joined: 01 Feb 2014
  • Posts: 878
Reply with quote
Post Posted: Wed Apr 03, 2024 6:02 pm
mateusbond wrote
They're hard enough for me me the way they are now. If they get longer, I'll probably get mad at them all the time. Maybe I'm just a terrible virtual driver. But the truth is I usually "prefer quantity over quality" on my racing games (I mean, more and more diverse tracks instead of longer tracks).

I agree with this. The short and sweet tracks are among the things I like most about the game.
  View user's profile Send private message
  • Joined: 18 Jul 2020
  • Posts: 375
Reply with quote
Post Posted: Wed Apr 03, 2024 6:08 pm
Very nicely done! Tight controls. I like the car sprite when the computer beats me and jumps up and down, to rub it in my face XD
  View user's profile Send private message
  • Joined: 23 Jan 2010
  • Posts: 439
Reply with quote
Post Posted: Sat Apr 06, 2024 12:50 pm
raphnet wrote
Version 0.9.8 is now available, with many improvements based on your feedback!

Improvements/New features:

- The title screen and menus now have music
- Sound effects (motors, etc) have been added
- Added an in-race menu, for restarting or quitting the race, or merely pausing.
- When falling off-track, players/AIs now respawn nearby instead or returning all the way to the start.
- The "results" screen now has a "next level" option.
- Thanks to using Compression and slightly better data structures, the ROM size is now < 512kB.

Bug fixes:

- Correctly handle cases where the player jumps off-screen (respawn instead of disappearing forever)
- Display "1st" instead of "1th" at the beginning of the race.

TODO / Being considered for next release:

- The AI still has issues to be addressed (stuck on a wall), but at least for cases where it fell off-track, it's already better now since it respawns nearby.
- Less blocky trees
- Tweaking the kart sprites for less jerkyness (and yes, those are read from ROM on-the-fly)
- Tire animation?
- End sequence (ATM, even with all princesses, nothing special happens)

Much better! Maybe is the case in add more laps and rivals? or different rivals for each stage?
  View user's profile Send private message
  • Joined: 07 Mar 2021
  • Posts: 62
Reply with quote
Post Posted: Sun Apr 07, 2024 9:01 am
A micro machine with graphics that pay a little homage to Mario Kart. As usual, a very good game. The update clearly makes it even better, especially on respawn and the sound effects add a lot!
  View user's profile Send private message
  • Joined: 29 Mar 2015
  • Posts: 67
  • Location: Japan
Reply with quote
Version 1.0.3 - More levels and more fun!
Post Posted: Mon Apr 15, 2024 4:26 pm
Hello!

We finally added the features and the content we had hoped to have in time for the initial release, plus a few new ideas and tweaks in response to feedback and there we are! Finally version 1!

- Added more levels! There are now 6 levels per world, and the 6th is a boss track with laps!
- Improved CPU driver for better obstacle and fall avoidance - more challenging!
- Respawns are now limited to 2 times per race, and they come at a cost: You must wait for the a ghost to comes to pick you up. Better watch-out for the track edges!
- Levels and worlds are now locked by default, and unlocked by advancing the story mode.
- Added an endless mode with a stronger CPU opponent, for endless fun even after saving all princesses. How many races can you win in a row?
- Added story slides shown at given milestones in story mode.
- Many tileset and track updates (Difficulty tweaks, decorative elements, updated trees, some animations...)
- Updated player sprites for less jerky rotation

Thanks to everyone who played the game and commented! I hope you will like this new version.

  View user's profile Send private message Visit poster's website
  • Joined: 19 Aug 2006
  • Posts: 102
  • Location: Brazil
Reply with quote
Post Posted: Mon Apr 15, 2024 6:51 pm
Incredible! Such professional polish! Now, if only we could have bosses that are different from the regular rivals...
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3828
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Apr 16, 2024 12:39 pm
Lovely little game!
Is this using GSlib for free-direction scroll?
  View user's profile Send private message Visit poster's website
  • Joined: 29 Mar 2015
  • Posts: 67
  • Location: Japan
Reply with quote
Post Posted: Tue Apr 16, 2024 11:45 pm
Thank you!

I used SMSlib and PSGlib, but otherwise everything else is my own implementation, including the scrolling code and supporting tools. Everything is coded in C. I always wanted to try figuring out how to do free scrolling, so this was the perfect game to finally attempt this!

There were many interesting technical challenges, especially deciding how to store track data in a way that is somehow compact but still allow fast random access for the game to run smoothly.

Generating track data is handled by a tool I wrote which reads Tiled files directly and then outputs things in the right format for use by the game engine.

Track data includes: Tilemap of metatiles (2x2), metatile lookup table, terrain flags (collisions, slippy, off-road, holes, dash, jump...), AI data (driving directions), zoning information for rank/laps tracking, list of coin objects and respawn points, player start positions... Without any compression, everything would not fit in the SMS RAM... so some things are stored uncompressed in ROM, some are decompressed on-the-fly, and others are decompressed to RAM.

I am thinking of writing an short article to give more details on how everything works, if I can find the time...
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Wed Apr 17, 2024 7:13 am
For comparison, Micro Machines uses 96x96 metatiles for the track layout, to allow it to fit the data it needs in RAM for relatively large levels. Collisions are done on an 8x8 grid.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3828
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Wed Apr 17, 2024 12:31 pm
raphnet wrote
I used SMSlib and PSGlib, but otherwise everything else is my own implementation, including the scrolling code and supporting tools. Everything is coded in C. I always wanted to try figuring out how to do free scrolling, so this was the perfect game to finally attempt this!


Oh, nice! I wonder if the 'free scrolling' code is in a form where it wouldn't require much to be turned into a library, even if I suspect (as SGlib) you would have to share the tools to creates such maps.

raphnet wrote
I am thinking of writing an short article to give more details on how everything works, if I can find the time...


Please do! I would really love to read the technical details and the reasoning behind your choices.
  View user's profile Send private message Visit poster's website
  • Joined: 04 Oct 2019
  • Posts: 84
  • Location: Brazil
Reply with quote
Post Posted: Thu Apr 18, 2024 1:54 am
This game has the looks and feels of an early SMS release, and is quite addictive! Well done! =)
  View user's profile Send private message
Reply to topic



Back to the top of this page

Back to SMS Power!