RPG project
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
RPG project
So this is my 8-bit project.
Lots to do... I'm planning to include towns, a wilderness and dungeons. When I did this the first time round in the late 80s, I was able to fit everything in by heavy disc swapping. I wrote it mostly in BASIC with some machine code for the sprites. I think I can probably optimise it more this time round, but I forgotten so much that it's going to take some time.
Plus drawing all the graphics, planning objects, monsters, let alone actually design the adventure...
This might take a while!
Just thinking out loud... I used the sprite code from Creative Assembler, I'll do the same this time but I can save a good 30% of graphics space if I include mirroring code. I had to steal space from the OS originally, but I can't remember what pages can be safely used. I'm sure it'll be in the Advanced User Guide. I miss my copies of Acorn User.
Lots to do... I'm planning to include towns, a wilderness and dungeons. When I did this the first time round in the late 80s, I was able to fit everything in by heavy disc swapping. I wrote it mostly in BASIC with some machine code for the sprites. I think I can probably optimise it more this time round, but I forgotten so much that it's going to take some time.
Plus drawing all the graphics, planning objects, monsters, let alone actually design the adventure...
This might take a while!
Just thinking out loud... I used the sprite code from Creative Assembler, I'll do the same this time but I can save a good 30% of graphics space if I include mirroring code. I had to steal space from the OS originally, but I can't remember what pages can be safely used. I'm sure it'll be in the Advanced User Guide. I miss my copies of Acorn User.
- Lardo Boffin
- Posts: 2979
- Joined: Thu Aug 06, 2015 7:47 am
- Contact:
Re: RPG project
Nice! I always thought the beeb was lacking a game like this.
Adventure Language on GitHub
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
Re: RPG project
Looks great.
There are great remastered versions of the new AUG and user guide around here.
I'm sure I have seen Acorn User on some site too.
There are great remastered versions of the new AUG and user guide around here.
I'm sure I have seen Acorn User on some site too.
-
- Posts: 574
- Joined: Fri Apr 13, 2018 2:48 pm
- Contact:
Re: RPG project
That looks promising, and I'll echo Lardo Boffin's sentiments that the Beeb could do with a 3D dungeon crawler a-la Dungeon Master.
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
We've had various 3D maze games but no RPG elements in them (that I can remember).
- Lardo Boffin
- Posts: 2979
- Joined: Thu Aug 06, 2015 7:47 am
- Contact:
Re: RPG project
https://www.homebrewlegends.com/the-shadows-of-sergoth/
I have this on my CPC6128 and it is awesome!
I have this on my CPC6128 and it is awesome!
Adventure Language on GitHub
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
I'd dearly love to be able to include pictures for objects and character portraits but I don't think I'll have the room. Monster will be fine though as I can load these as needed.Lardo Boffin wrote: ↑Thu Apr 23, 2020 12:43 pm https://www.homebrewlegends.com/the-shadows-of-sergoth/
I have this on my CPC6128 and it is awesome!
Once I get each part (dungeons, wilderness, town) implemented, I'll have abetter idea but I'm not overly confident.
Re: RPG project
Good luck with you project. Seems like there are a few RPGs on the go.
Something Tricky suggested to me on my last project was you might want to consider using some Sideways RAM - I'm sure another 16K of space would be helpful. I'm doing it for my current one and it's really quite easy to use.
Something Tricky suggested to me on my last project was you might want to consider using some Sideways RAM - I'm sure another 16K of space would be helpful. I'm doing it for my current one and it's really quite easy to use.
Castle Defender, Untitled Dungeon Game, Night Ninja, Wordle, Waffle, Acorn Island, Beebchase, Ghostbusters
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
I could make it Master-only, but somehow, that feels like cheating. I managed to fit it into a model B the first time around, so I kind of want to do it again, if possible. The advantage of doing it for a Master would be vastly improved graphics - Mode 2 rather than Mode 5, and being able to store a lot more in-game but that's part of the challenge.ChrisB wrote: ↑Fri Apr 24, 2020 7:19 am Good luck with you project. Seems like there are a few RPGs on the go.
Something Tricky suggested to me on my last project was you might want to consider using some Sideways RAM - I'm sure another 16K of space would be helpful. I'm doing it for my current one and it's really quite easy to use.
I dunno... what do people think?
Re: RPG project
I like the purity of fitting your game into a Model B. But bear in mind that Model Bs could be fitted with Sideways RAM. And the latest version of JSBeeb comes with the lowest seven banks of SWRAM (0-6) enabled by default in Model B mode.Naomasa298 wrote: ↑Fri Apr 24, 2020 11:22 amI could make it Master-only, but somehow, that feels like cheating. I managed to fit it into a model B the first time around, so I kind of want to do it again, if possible.
So you could make use of SWRAM and still target your game at a Model B. That wouldn't be "cheating"!
- Lardo Boffin
- Posts: 2979
- Joined: Thu Aug 06, 2015 7:47 am
- Contact:
Re: RPG project
With 32K of sideways RAM available for around £20 (http://www.boobip.com/hardware/32kb-ram-32kb-rom), and very easy to fit, there is little reason not to target sideways RAM these days.
Adventure Language on GitHub
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
Atom, issue 5, YARRB + video noise killer
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
I always wanted to buy one of the Solidisk sideways RAM expansions. How could you ever run out of memory with 128k of extra RAM?!?!
Re: RPG project
Depending on how aggressive you are being, you can kick the OS etc out and with a sideways bank of RAM have 48 contiguous memory with the display at the bottom or in the middle (not is SWRAM).
I trample everything and all you need to reserve is &FC where the OS stores A on an interrupt and &204/5 where it jumps through on an interrupt. I'm not recommending this, but it is possible, but you should force a near power on RESET when you quit, otherwise the OS and BASIC won't have a clue what is going on. This also precludes simple multi-load games, but part of the stack survives (in my tests) so you can communicate back to !BOOT. I use this to save Carnival and Centipede high-scores.
I trample everything and all you need to reserve is &FC where the OS stores A on an interrupt and &204/5 where it jumps through on an interrupt. I'm not recommending this, but it is possible, but you should force a near power on RESET when you quit, otherwise the OS and BASIC won't have a clue what is going on. This also precludes simple multi-load games, but part of the stack survives (in my tests) so you can communicate back to !BOOT. I use this to save Carnival and Centipede high-scores.
Re: RPG project
Nice project, I mentioned this briefly in last night's Virtual Acorn meeting on Zoom. As others have said the Beeb was very much lacking in games from this genre so I really hope you're able to see this through to completion!
Could you produce two versions? Possibly on the same disc? e.g. one for the stock 32K BBC B in Mode 5 plus an enhanced Mode 2 version for the Master 128?
Btw, the online Acorn 'Zoom' meetings typically have slots for developers to show off their new or work-in-progress games: would you be willing to participate in one and give us an early demonstration? If so - we have meetings on Sat 2nd May and Sat 16th May - or would they be too soon?
Could you produce two versions? Possibly on the same disc? e.g. one for the stock 32K BBC B in Mode 5 plus an enhanced Mode 2 version for the Master 128?
Btw, the online Acorn 'Zoom' meetings typically have slots for developers to show off their new or work-in-progress games: would you be willing to participate in one and give us an early demonstration? If so - we have meetings on Sat 2nd May and Sat 16th May - or would they be too soon?
Please subscribe to the ABug YouTube channel!
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
Thanks Arcadian, 2nd might be a little too soon. 16th might be possible, as I said, I still have a lot to re-learn. Let me see where I'm up to by the end of next week.Arcadian wrote: ↑Fri Apr 24, 2020 6:58 pm Nice project, I mentioned this briefly in last night's Virtual Acorn meeting on Zoom. As others have said the Beeb was very much lacking in games from this genre so I really hope you're able to see this through to completion!
Could you produce two versions? Possibly on the same disc? e.g. one for the stock 32K BBC B in Mode 5 plus an enhanced Mode 2 version for the Master 128?
Btw, the online Acorn 'Zoom' meetings typically have slots for developers to show off their new or work-in-progress games: would you be willing to participate in one and give us an early demonstration? If so - we have meetings on Sat 2nd May and Sat 16th May - or would they be too soon?
If I do a Master version, I'll have to adapt my sprite routines to use shadow RAM. I'm not sure how I do that, I never had a Master back in the day (although I have acquired one now!).
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
This is SO not going according to plan.
Checked out the Creative Assembler sprite code. I swear I originally used it for MODE5 sprites, but it's designed for MODE2. I must have modified the code. But it also only works on 4 pixel boundaries. My graphic tiles aren't designed that way. OK, so that's fine, I'll just offset them. Except that's not going to work, since the code EORs pixels onto the screen. No big deal to change, except the way I'm overlaying tiles on top of one another, I need to mask some pixels, and the CA code doesn't support masks.
*sigh* So... 1) design a sprite format that supports masks (which also means doubling the size of sprites) 2) write a routine to display them 3) write a program to convert Windows BMP files into a format that reflects the MODE5 screen layout + masks.
I'd quite forgotten how the BBC's screen is laid out in a non-linear fashion. At least part 3 is going well (did it in RISC OS because handling byte arrays and binary file I/O is a pain in VB). Part 2 will be fun, since I can't even remember what most 6502 op-codes do any more.
In the meantime, sharing some of the static graphics I've designed so far. The Adventurer's Guild (where you create characters) plus knight and warrior character portraits.
Sorry for the rambling post.
Checked out the Creative Assembler sprite code. I swear I originally used it for MODE5 sprites, but it's designed for MODE2. I must have modified the code. But it also only works on 4 pixel boundaries. My graphic tiles aren't designed that way. OK, so that's fine, I'll just offset them. Except that's not going to work, since the code EORs pixels onto the screen. No big deal to change, except the way I'm overlaying tiles on top of one another, I need to mask some pixels, and the CA code doesn't support masks.
*sigh* So... 1) design a sprite format that supports masks (which also means doubling the size of sprites) 2) write a routine to display them 3) write a program to convert Windows BMP files into a format that reflects the MODE5 screen layout + masks.
I'd quite forgotten how the BBC's screen is laid out in a non-linear fashion. At least part 3 is going well (did it in RISC OS because handling byte arrays and binary file I/O is a pain in VB). Part 2 will be fun, since I can't even remember what most 6502 op-codes do any more.
In the meantime, sharing some of the static graphics I've designed so far. The Adventurer's Guild (where you create characters) plus knight and warrior character portraits.
Sorry for the rambling post.
Re: RPG project
I'm enjoying the ramblings and the sprites are amazing.
If I can help with sprite drawing, just give me a shout, or maybe a PM
If I can help with sprite drawing, just give me a shout, or maybe a PM
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
Thanks tricky! I may take you up on that offer later. I'm going to need a fair number of monster sprites drawn.
I've decided to surrender and use a couple of banks of Sideways RAM. There's no way I'm going to fit all the graphics into main memory, and it seems easy enough to do.
Re: RPG project
Looks great!
Re: RPG project
This does look superb. Eye of the Beholder is shaping up well too for the C64Lardo Boffin wrote: ↑Thu Apr 23, 2020 12:43 pm https://www.homebrewlegends.com/the-shadows-of-sergoth/
I have this on my CPC6128 and it is awesome!
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
Progress!
My conversion program from BMP to a mode 5 friendly sprite format works! And my program to output said sprite to screen works too!
It's paiiinnnfully slow at the moment (13 seconds for a quarter screen!) since it's written in BASIC, just to make sure my logic works. Now to convert it to assembler.
Apparently I'm reinventing the wheel since BeebSpriter does everything I'm doing and more - and more or less in the same way as well, but hey, it's all a learning curve. I had to look up how to concatenate strings in BBC BASIC so hey ho...
Pardon me if I use this thread to document progress, I'm just kinda excited at getting my first Beeb program in 30 years working.
My conversion program from BMP to a mode 5 friendly sprite format works! And my program to output said sprite to screen works too!
It's paiiinnnfully slow at the moment (13 seconds for a quarter screen!) since it's written in BASIC, just to make sure my logic works. Now to convert it to assembler.
Apparently I'm reinventing the wheel since BeebSpriter does everything I'm doing and more - and more or less in the same way as well, but hey, it's all a learning curve. I had to look up how to concatenate strings in BBC BASIC so hey ho...
Pardon me if I use this thread to document progress, I'm just kinda excited at getting my first Beeb program in 30 years working.
Last edited by Naomasa298 on Fri May 01, 2020 11:36 pm, edited 1 time in total.
Re: RPG project
We love developer diaries.
Re: RPG project
Write a proof-of-concept in BASIC, then rewrite the same functionality in assembler? That sounds exactly like my development technique! Not that that wasn't exactly what the Beeb was built for you to do ....
And don't worry about documenting your progress in public. It's always good to see other people's thought processes! (And for those who disagree, there's always the "page down" key .....) I'm itching to have a go at something dirty like writing directly to screen memory myself sometime soon, having been working on my own project with nothing but boring legal VDU commands .....
And don't worry about documenting your progress in public. It's always good to see other people's thought processes! (And for those who disagree, there's always the "page down" key .....) I'm itching to have a go at something dirty like writing directly to screen memory myself sometime soon, having been working on my own project with nothing but boring legal VDU commands .....
- richardtoohey
- Posts: 4075
- Joined: Thu Dec 29, 2011 5:13 am
- Location: Tauranga, New Zealand
- Contact:
Re: RPG project
Me too!
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
Hurrah!
The assembler version of my sprite routine is working! Spent half a day trying to figure out what the hell was going on (it was only displaying every other column), finally tracked it down to an AND#8 which should have been AND#7...
Need to modify it to include sideways RAM support and masks, but that should be easy enough.
Happy days!
In the process, discovered something strange about BeebEm. Apparently, it allows you to read past the end of memory into its own storage area. I managed to read bits of a sprite file off the disc image (by accident) that I hadn't loaded into memory.
The assembler version of my sprite routine is working! Spent half a day trying to figure out what the hell was going on (it was only displaying every other column), finally tracked it down to an AND#8 which should have been AND#7...
Need to modify it to include sideways RAM support and masks, but that should be easy enough.
Happy days!
In the process, discovered something strange about BeebEm. Apparently, it allows you to read past the end of memory into its own storage area. I managed to read bits of a sprite file off the disc image (by accident) that I hadn't loaded into memory.
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
I've decided to utilise shadow RAM and switch the whole project from MODE5 to MODE2.8 colours, yay!
This means rewriting all my sprite code, which is fine, since I hadn't got too far anyway, and rewriting my BMP converter program.
It means all the sprites will double in size, but I don't need to use a separate byte to store masks.
I'd like to build some compression into the tile graphics, but they're not very conducive to compression. By my reckoning, I can get 3, perhaps 4 tilesets into one bank of RAM.
I'm putting some simple compression into the static graphics though. If anyone has any ideas regarding compression, I'm all ears!
I've also got to convert all the graphics I've drawn so far to 8 colours. Fun fun fun.
I hope I'll have something to show on the 6th, but it's looking less likely now.
This means rewriting all my sprite code, which is fine, since I hadn't got too far anyway, and rewriting my BMP converter program.
It means all the sprites will double in size, but I don't need to use a separate byte to store masks.
I'd like to build some compression into the tile graphics, but they're not very conducive to compression. By my reckoning, I can get 3, perhaps 4 tilesets into one bank of RAM.
I'm putting some simple compression into the static graphics though. If anyone has any ideas regarding compression, I'm all ears!
I've also got to convert all the graphics I've drawn so far to 8 colours. Fun fun fun.
I hope I'll have something to show on the 6th, but it's looking less likely now.
Re: RPG project
Have you considered pucrunch or exomizer for data compression?
0xC0DE
"I program my home computer / Beam myself into the future"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
"I program my home computer / Beam myself into the future"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
-
- Posts: 394
- Joined: Sat Feb 16, 2013 12:49 pm
- Contact:
Re: RPG project
I haven't, but taking a quick read of the methodology, it' might be a little beyond me right now. I'd also be concerned about speed.
I've settled on a compromise - I'll compress any square graphics that don't need a mask. It's a simple repeat-count compression, using the top bit to indicate an unrepeated byte. On the knight image above (with 4 colours), it manages 60% compression - 5k down to 2k. Back-of-a-fag packet test with zip suggests that LZH compression manages 80%, so I'm happy with that.
I can save some space by writing a mirror routine for the non-square, masked graphics as well. It should be a lot easier to do in MODE2 than MODE5. At a rough guess, that'll make each tileset around 2-2.5k in size.
Re: RPG project
RLE is fine of course. Unpacking with pucrunch or exomizer is really fast. Fast enough to switch between tilesets on demand. The unpacker is about 300+ bytes for each. Just choose whatever works best for you at this moment. I'm following your progress with interest!
0xC0DE
"I program my home computer / Beam myself into the future"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
"I program my home computer / Beam myself into the future"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro