Sporadic Posted July 17, 2015 Share Posted July 17, 2015 (edited) Hi all, I'm currently working on a new game using RB+. Been finding it really cool, once you get used to the way to do things. I put the Light Cycles project that I mentioned elsewhere on hold for now. It's a simple shooter where you blast away all the rocks before your shield runs out The shield will wear out quicker as the levels get higher. I'm thinking about adding some baddies to shoot back at you, different size rocks, etc, it's still WIP. All levels are randomly generated based off the same seed, so everyone should get the same levels every time. It just means I can be lazy and don't need to design waves for each level. There are 3 types of rocks, each gives a different score. Apart from looks and score, they aren't any harder to kill or anything yet. Still thinking that over too. You score will increase as you shoot rocks but at the end of the level your score is reduced based on time taken and shots missed. So don't just hold down the fire button if you want a big score. If you press Pause on the controller (once playing) then you can pick 3 sound detail levels: 0 = Mute, 1 = All sounds except player shooting, 2 = All Sounds. For some reason, sound level 2 blows up Virtual Jaguar randomly and crashes. It seems ok on my actual Jaguar though. I've tried a few things but not fixed that yet (could be cause i'm spamming the SNDPLAY too frequently?). So if you use an emulator, it's probably best to use sound level 0 or 1 for now. The game defaults to lvl 1. Also in the emulator, some sounds just randomly don't play. Again, this seems ok on my actual Jag. Please have a play and try out the ABS. I've stayed away from using a ROM because I want to play it on my Jag and only have a CD drive to play homebrews. No method to upload ROMS. I've attached some screenshots and an ABS/ROM for your convenience. I might post a video at some point. Also, if I tweak anything, make changes etc then i'll post new versions here. Controls B = Fire D-PAD = Move crosshair PAUSE = PAUSE (yep!) / Unpause *+# = Chew on a grenade When Paused, 0,1,2 to change sound detail Happy shooting. AstroStorm.abs AstroStorm.rom Edited July 17, 2015 by Sporadic 7 Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted July 17, 2015 Share Posted July 17, 2015 Congratulations! 1 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 17, 2015 Author Share Posted July 17, 2015 (edited) Congratulations! Thanks! Couldn't have done it without you guys. Edited July 17, 2015 by Sporadic Quote Link to comment Share on other sites More sharing options...
ggn Posted July 17, 2015 Share Posted July 17, 2015 (edited) Edited July 17, 2015 by ggn 4 Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted July 17, 2015 Share Posted July 17, 2015 Nice one Rik, congrats on convincing me to sign in at AA and post something for the first time in... I dunno tbh :0) I gave it a few plays just now, you've really got to grips with rb+, it's very nice to see. Game shows promise as well, at first I didn't realise the rocks were following asteroids type paths, it all seemed quite chaotic and random. Second play I'd figured it out, breathed a little slower and had more fun! Glad you're leaving the pixel-based stuff behind for now in favour of the kind of fun stuff that the Jaguar and rB+ do best. Not that I have anything against your Tron stuff, it's great, just I know how much more fun it was personally when I got away from playing with that particle buffer and pixel plotting in favour of objects and things. Seeing you do this stuff and sharing your progress is motivating for myself as well, so thanks again for that and good luck with your games. 5 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 17, 2015 Author Share Posted July 17, 2015 Nice one Rik, congrats on convincing me to sign in at AA and post something for the first time in... I dunno tbh :0) I gave it a few plays just now, you've really got to grips with rb+, it's very nice to see. Game shows promise as well, at first I didn't realise the rocks were following asteroids type paths, it all seemed quite chaotic and random. Second play I'd figured it out, breathed a little slower and had more fun! Glad you're leaving the pixel-based stuff behind for now in favour of the kind of fun stuff that the Jaguar and rB+ do best. Not that I have anything against your Tron stuff, it's great, just I know how much more fun it was personally when I got away from playing with that particle buffer and pixel plotting in favour of objects and things. Seeing you do this stuff and sharing your progress is motivating for myself as well, so thanks again for that and good luck with your games. Thanks for the kind words. Glad you enjoyed it! Yes, once I got to grips with some things it went much better. For example, to start with I was moving the crosshairs manually 3 pixels at a time. I also used a vsync in the main loop. This was ok on the emulator but once on the real Jag it was pretty slow and jerky. I changed the crosshair movement so that when dpad direction is pressed it sets the R_sprite_xadd or yadd to 3. Then at the start of the next main loop, reset that back to 0 ready for next input. This allows RB+ to do the smooth sub pixel stuff I also removed the vsync and changed to the Rupdall(1) command. That is lots faster than a manual vsync call! The starfield is real time, 16 sprites used for that. Its randomly created on start and then when the stars vanish they are reset to their original positions. Its hard to spot and saves generating random numbers at runtime. I'm thinking what to add next, would be nice to have some level variation or gameplay variation and push the Jag more. I was pretty surprised how easy it handles the full screen 16bit graphics. I stopped using the 4bit stuff and ended up doing most things 16 bit. It doesn't seem to slow things down. Perhaps it would with more going on? Some things like the rocks and stars are 4bit. I also couldnt seem to create any sprites smaller than 16x16. Anyway, I'm rambling now. Its just nice to talk about it and brain dump. I'm open for suggestions if any come to mind. Memory track saves would be nice ..... If I'm remembering correctly that Raptor supports them. Hint hint Cheers again guys. 4 Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted July 18, 2015 Share Posted July 18, 2015 (edited) Thanks for the kind words. Glad you enjoyed it! Yes, once I got to grips with some things it went much better. I have the utmost respect for people who take the tools available and create with them silently in the background and then release, as opposed to the people who continuously ask why this or that isn't available and yet never produce anything. So hats off to you And I hope to see more in the future! RB+ was created specifically to allow people to make Jaguar games themselves by leveraging the hardware easily via RAPTOR. Seeing games appear... magical feeling. I'll work with ggn to see if we can get MemoryTrack implemented in RB+. As you say, its a basic function call in RAPTOR so it should be fairly easy to implement (at the cost of 16k of RAM) The sprite size 'issue' is a limitation of the object processor. You can go smaller in x, but you have to increase the bit depth as (afair, from the top of my head) the image data width in bytes must be divisible by 8 (ie, a 16bpp sprite can be 8 bytes wide = 4 pixels) - you can go down to as low as 1 pixel high, the Jaguar won't care. Hope that makes sense? Edited July 18, 2015 by CyranoJ Quote Link to comment Share on other sites More sharing options...
ggn Posted July 18, 2015 Share Posted July 18, 2015 I'm open for suggestions if any come to mind. Suggestions, you say? Here's some ideas that came randomly into my head while playing: - Perhaps some things that shoot back at you? That would spice things up - Maybe have the player shoot the rocks in a specific sequence so you get more points? (a la bombjack) - Adding to that, in later levels lose a life if you shoot things out of sequence? - Memory track, sure we can add that. I just didn't want to add everything including the kitchen sink and then nobody ever using it! - All the time I was playing I kept thinking that it would probably be cool if this was mouse controlled. Now, we DO have a different audio player lying around which has mouse input but is a bit more restrictive... plus I have no means of testing it (no adapter for a mouse and vj doesn't support rotary devices). Of course a mouse can make the game all too easy. I dunno. Just laying it on the table, give it a thought and tell me if you think it'll be better for your game. 1 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted July 18, 2015 Share Posted July 18, 2015 I'm open for suggestions if any come to mind. I'm trying to keep with the moving cross hairs game mechanism, so how about an "intermission" every 3 or 4 levels where you: Dock with a moving target Try to keep inside a warp field or worm hole [1] Navigate through a moving asteroid belt (due to laser over heating?) [1] There was a game on the Speccy (I think) that did this, but I can't remember what its called. 1 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 18, 2015 Author Share Posted July 18, 2015 @CJ Cheers. Yes that sprite sizing makes sense. I found I had issues with other sizes too unless they were divisible by 8 if I recall. Even big sizes. Memory track would be awesome but no rush, please do in your own time. Is it pure Memory track or does it support cart/skunk saves too? If the skunk can save that is, not owning one, I've not looked into it. @ggn Yep those are cool ideas. I'll put some thought into that. I've shot myself in the foot really because you dont control a player character, there is nothing for the bad guys to shoot at. They would have to shoot into the screen. I had thought when a bad guy appears then the sheild could reduce quicker. Not as fun as getting shot at though. Could also add something in the viewport you have to protect. Mouse idea is cool, but I'm kind of a purist. I wouldnt want to alienate anyone from playing. Also, they would have an advantage and get higher scores. I think I'd rather force people to use the jagpad muhahahahaa. (I actually like the pad). So don't worry about digging that out. Although might be interesting im the future. I am after some help on scaling if someone can help out. I thought it might make it more "Jaggy" with some scaling sprites lol. Im having trouble doing smooth scaling. I could only get it to scale with whole numbers. I couldnt work out the correct sequence or bit shifts to pass to setobj for the size. Eg. If I have a float variable for the distance to the screen then I'd like to translate that to a scale size at runtime. Then perhaps I could have missiles coming at the player , into the screen. Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 18, 2015 Author Share Posted July 18, 2015 I'm trying to keep with the moving cross hairs game mechanism, so how about an "intermission" every 3 or 4 levels where you: Dock with a moving target Try to keep inside a warp field or worm hole [1] Navigate through a moving asteroid belt (due to laser over heating?) [1] There was a game on the Speccy (I think) that did this, but I can't remember what its called.Excellent, I like it! They would be pretty cool to add. I had thought of some kind of start level where you navigate to a planet. Depending on what you do it sets the seed for the random level. Maybe that could be an adventure mode hehe. Cheers for the input. The .bas file is getting monolithic already lol Its going to be huge after more additions. Quote Link to comment Share on other sites More sharing options...
ovalbugmann Posted July 18, 2015 Share Posted July 18, 2015 Great work Sporadic! Glad your making good use of the Jaguar Raptor Basic+ toolset. This looks like a very nice effort, thanks for the files to run on the Jag, man. Quote Link to comment Share on other sites More sharing options...
Nognir Posted July 18, 2015 Share Posted July 18, 2015 Cool need to try this on my jaguar tomorrow Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted July 19, 2015 Share Posted July 19, 2015 Memory track would be awesome but no rush, please do in your own time. Is it pure Memory track or does it support cart/skunk saves too? RAPTOR currently supports standard cart saves (eeprom), Jagtopus cart saves (Won't be of any use to anyone external) and web code generation (This is removed in the current public RAPTOR builds as we have no way to release a secured back end that won't expose all our own scoreboards) Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 28, 2015 Author Share Posted July 28, 2015 Just a little update; I've added a level transition mini-game (every 2 levels) to help you increase your score. Basically 'fly' through the navigation boxes. I might expand this and actually cause a game over if you miss 1 or 2. Still deciding..... Also just finished implementing the highscore system with name input. I'm at work at the moment, so I can't test it on my actual Jag. Once i'm happy then i'll release an updated version. 6 Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted July 28, 2015 Share Posted July 28, 2015 Jaguar coding at work... reminds me of someone I know... you're doing it right! 4 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 28, 2015 Author Share Posted July 28, 2015 Jaguar coding at work... reminds me of someone I know... you're doing it right! Have to do something useful at lunch 3 Quote Link to comment Share on other sites More sharing options...
ggn Posted July 30, 2015 Share Posted July 30, 2015 The .bas file is getting monolithic already lol Its going to be huge after more additions. Ok, this bugged me a bit so I searched the bcx manual and found this: $INCLUDE directivePurpose: $INCLUDE merges a file into the calling BCX file at translation time. $INCLUDE can be used anywhere in a program and the file will be inserted at the position of the $INCLUDE directive Definitely something I'd try! (crosses fingers this works!) 3 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 30, 2015 Author Share Posted July 30, 2015 Ok, this bugged me a bit so I searched the bcx manual and found this: Definitely something I'd try! (crosses fingers this works!) Nice find! I was going to look for something like that. I'll definitely give that a try as i'm currently pushing 1357 lines of code. It would be good to organise functions into utility files for example, or player stuff into a player.bas I've delayed releasing the update I mentioned because the navigation mini-game I added is too slow on my actual Jag. I only had chance to try it tonight (anyone need a coaster? I have a few laying around now... ) It's nice and quick in the emulator though. Shame the emulator isn't matching the real speed in this case. Normally it's the emulator that runs slow if anything. But, the highscore table works with and without the memory track inserted. I managed to save my first highscores So thanks again everyone involved in getting that added. Hopefully tomorrow lunch I'll get chance to tweak the mini-game and dig some speed out from somewhere. Just a shame I won't know if its working until I burn another coaster. 3 Quote Link to comment Share on other sites More sharing options...
ggn Posted July 31, 2015 Share Posted July 31, 2015 (edited) Nice find! I was going to look for something like that. I'll definitely give that a try as i'm currently pushing 1357 lines of code. It would be good to organise functions into utility files for example, or player stuff into a player.bas Pah! Not even 10000 lines yet? It's small then I've delayed releasing the update I mentioned because the navigation mini-game I added is too slow on my actual Jag. I only had chance to try it tonight (anyone need a coaster? I have a few laying around now... ) It's nice and quick in the emulator though. Shame the emulator isn't matching the real speed in this case. Normally it's the emulator that runs slow if anything. No thanks, we're good - after creating about 50+ of them to create ULS (which is the magic sauce JiFFI uses to generate CDI images) and a ton of others for sfdx I think we're covered! Plus, don't give those coasters away - just put them up on ebay as L@@K R@R3 PRE-ALPHA VERSION, $$$$$$! But, the highscore table works with and without the memory track inserted. I managed to save my first highscores So thanks again everyone involved in getting that added. Okay, I have to mention that I never tried this because I don't actually own a Jagcd (then again I do own a MT...). Huge relief to read that it works! Hopefully tomorrow lunch I'll get chance to tweak the mini-game and dig some speed out from somewhere. Just a shame I won't know if its working until I burn another coaster. Worst case, if you can post a snippet of the code and relevant supporting files we could help. (or you can send us the code if you're too ashamed to put it up in public!) Edited July 31, 2015 by ggn Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted July 31, 2015 Share Posted July 31, 2015 I'm happy to run test binaries for you, in both NTSC and PAL - PM me if you need this. 1 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted July 31, 2015 Share Posted July 31, 2015 I've delayed releasing the update I mentioned because the navigation mini-game I added is too slow on my actual Jag. I only had chance to try it tonight (anyone need a coaster? I have a few laying around now... ) It's nice and quick in the emulator though. Shame the emulator isn't matching the real speed in this case. Normally it's the emulator that runs slow if anything. How are you doing this? If its drawing lines you might be better off using scaled bitmaps instead. Or use bitmaps of lines and assemble them on the fly to make the shapes you need. Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 31, 2015 Author Share Posted July 31, 2015 Pah! Not even 10000 lines yet? It's small then No thanks, we're good - after creating about 50+ of them to create ULS (which is the magic sauce JiFFI uses to generate CDI images) and a ton of others for sfdx I think we're covered! Plus, don't give those coasters away - just put them up on ebay as L@@K R@R3 PRE-ALPHA VERSION, $$$$$$! Okay, I have to mention that I never tried this because I don't actually own a Jagcd (then again I do own a MT...). Huge relief to read that it works! Worst case, if you can post a snippet of the code and relevant supporting files we could help. (or you can send us the code if you're too ashamed to put it up in public!) Highscore code MT ship straight to production! Excellent The only thing I had to do was iterate over the raptor_highscores_hex array first to see if the player is in the top 10. This then drives the logic to display the "Enter your name" screen. Then call the hiscore_check(score,name$) function to actually enter it into the table. I'll see how I get on with this and post an example project if I get stuck. Cheers. I'm happy to run test binaries for you, in both NTSC and PAL - PM me if you need this. Awesome, thanks for the offer. Very much appreciated. How are you doing this? If its drawing lines you might be better off using scaled bitmaps instead. Or use bitmaps of lines and assemble them on the fly to make the shapes you need. It's a single scaled bitmap. All the bit of code is doing is updating the starfield (same as in the main game) and scaling a single 32x32 bitmap of a hollow rectangle from 0 to 255. Basically so it looks like it's coming at you. Its X,Y (random) position are worked out before this part of the game starts and stored in an array so there isn't any realtime RND going on. As it scales I have to adjust the x,y position based on the current scale because the origin is in the top left rather than centre of the sprite. This keeps it in the correct position as it scales. There isn't any crazy math here either. I'll play around and see what happens. Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 31, 2015 Author Share Posted July 31, 2015 (edited) Ok, this bugged me a bit so I searched the bcx manual and found this: Definitely something I'd try! (crosses fingers this works!) This totally works!!! I now have multiple .bas files with subs, functions in them. These then just get included at the bottom of the main .bas file. Eg. $INCLUDE "stars.bas" $INCLUDE "sound.bas" $INCLUDE "scores.bas" $INCLUDE "navigation.bas" $INCLUDE "util.bas" It even looks in the working folder for them so you don't need to hard code a full path Edited July 31, 2015 by Sporadic 4 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted July 31, 2015 Author Share Posted July 31, 2015 Just had an idea that might be cheaper in terms of performance..... Ditch the scaling and just create a 128x128 sprite and animate it to make it look like its getting larger/closer. Then I can just dump it at the correct x,y and run the animation..... rinse and repeat..... Could probably make it look a bit nicer too then. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.