Uploaded a new version. Download link here.
Changes:
- more work on reducing ship flickering when thrusters are used
- hopefully got detecting 50/60Hz right this time
- changed thrusters to work by pressing fire rather than up on all players
- attempted to make the tracks look "less flat" by adding different tiles outside the track.
Known bugs left to squash:
- timelimit for races
- ship selection screen
If I don't spot new bugs, I'll send this to MSXdev as an updated version.
Oh my god, I'm so bad at this game, hahaha! I think I'm still trying to avoid collisions rather than using them to move through the track! I need more practice
I'm disappointed that I didn't squeeze in an easier mode; the AI is level-specific and I suppose it could be possible to give at least some tracks an even worse AI (the one there now is deliberately worse than the optimal).
I think trying the time trials on the easier classes would be useful. The megaclass records are probably all made my friend who has spent far too much time with the game, and I'm not sure my best record starts with the same number of seconds in any of them.
... that's probably also the reason why the game is so hard, we two were the only people playing it.
I could try recording the optimized AI (not the one in the game) completing races to YouTube as examples, if you think that would be useful? (The AI was optimized to run through the tracks without other players.)
haha, I know exactly what you mean. A similar thing happened to me in Transball, I played it so much programming it, that the difficulty level was hard to adjust afterwards
But I think difficulty might be fine. This is just a game that requires learning to control the ships, which is nice. I'll be playing more of it later today
With having revealed my alter ego on another site, I thought I might as well link here two "better" blogs I wrote about BSR.
Pointless data reuse and how the AI was implemented/taught - the latter half is maybe the more interesting side as for how I optimised the AI on PC by simulating the AI.
Sprite flickering in BSR - If I have at most three characters made of two sprites each, then by cycling the character render order as 1234, 4132, 2431 will guarantee that each character is fully visible at least 1/3 of the frames rendered. Doesn't work with four characters clumped around the same Y-coordinate as the third one would be always invisible, but then another render order can be used.
Nice read!
Ideally, I'd do it when the display has finished rendering, but I don't know if there's a suitable hook for that.
The H.TIMI hook triggers on the vertical blanking interrupt, which occurs when the end of active display is reached.
And nice thing to use the program code for randomness! Also that building of the AI by simulating on the PC.
The "compressed data as random number sequence" would've been more efficient to do if I just took the first byte or two as a seed to a regular RNG. Plus, I think it could've also reduced the vertically adjacent columns of changed characters (such as stars in some stages).
Your description of the AI in Bumper Ship Racing is very interesting, great work, really! (even if I suck playing at it.. )
Indeed interesting way to create the AI! Reminds me of a common idea to create AI for RTS games called "influence maps", which are also based around the idea of creating these arrays that cover the whole map at a lower resolution, and rather than having complex calculations, the AI just checks the array at its current position for making decision.
Re: H.TIMI -- I misunderstood what that was, then. Anyway, thank you for your kind words (and apparently not spotting that many factual errors there; I am just a novice in this and not that well versed in computer architecture).