RPG project

developing/porting a new game or gaming framework? post in here!
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

RPG project

Post by Naomasa298 »

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. :(

Image
User avatar
Lardo Boffin
Posts: 2977
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: RPG project

Post by Lardo Boffin »

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
User avatar
tricky
Posts: 7692
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: RPG project

Post by tricky »

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.
VectorEyes
Posts: 572
Joined: Fri Apr 13, 2018 2:48 pm
Contact:

Re: RPG project

Post by VectorEyes »

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.
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

We've had various 3D maze games but no RPG elements in them (that I can remember).
User avatar
Lardo Boffin
Posts: 2977
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: RPG project

Post by Lardo Boffin »

https://www.homebrewlegends.com/the-shadows-of-sergoth/

[-o<

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
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

Lardo Boffin wrote: Thu Apr 23, 2020 12:43 pm https://www.homebrewlegends.com/the-shadows-of-sergoth/

[-o<

I have this on my CPC6128 and it is awesome!
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.

Once I get each part (dungeons, wilderness, town) implemented, I'll have abetter idea but I'm not overly confident.
User avatar
ChrisB
Posts: 546
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: RPG project

Post by ChrisB »

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.
Castle Defender, Untitled Dungeon Game, Night Ninja, Wordle, Waffle, Acorn Island, Beebchase, Ghostbusters
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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 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.

I dunno... what do people think?
User avatar
lurkio
Posts: 4351
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: RPG project

Post by lurkio »

Naomasa298 wrote: Fri Apr 24, 2020 11:22 am
ChrisB wrote: Fri Apr 24, 2020 7:19 am you might want to consider using some Sideways RAM - I'm sure another 16K of space would be helpful.
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.
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.

So you could make use of SWRAM and still target your game at a Model B. That wouldn't be "cheating"!

:?:
User avatar
Lardo Boffin
Posts: 2977
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: RPG project

Post by Lardo Boffin »

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
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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?!?!
User avatar
tricky
Posts: 7692
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: RPG project

Post by tricky »

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.
User avatar
Arcadian
Site Admin
Posts: 4221
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: RPG project

Post by Arcadian »

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?
Please subscribe to the ABug YouTube channel!
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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?
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.

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!).
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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.

Image

Image

Image
User avatar
tricky
Posts: 7692
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: RPG project

Post by tricky »

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 ;)
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

tricky wrote: Sun Apr 26, 2020 3:32 pm 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 ;)
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.
User avatar
trixster
Posts: 1173
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: RPG project

Post by trixster »

Looks great! :o
User avatar
trixster
Posts: 1173
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: RPG project

Post by trixster »

Lardo Boffin wrote: Thu Apr 23, 2020 12:43 pm https://www.homebrewlegends.com/the-shadows-of-sergoth/

[-o<

I have this on my CPC6128 and it is awesome!
This does look superb. Eye of the Beholder is shaping up well too for the C64
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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. :)
Last edited by Naomasa298 on Fri May 01, 2020 11:36 pm, edited 1 time in total.
User avatar
tricky
Posts: 7692
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: RPG project

Post by tricky »

We love developer diaries.
julie_m
Posts: 587
Joined: Wed Jul 24, 2019 9:53 pm
Location: Derby, UK
Contact:

Re: RPG project

Post by julie_m »

Write a proof-of-concept in BASIC, then rewrite the same functionality in assembler? That sounds exactly like my development technique! :D Not that that wasn't exactly what the Beeb was built for you to do .... :D

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 .....
User avatar
richardtoohey
Posts: 4075
Joined: Thu Dec 29, 2011 5:13 am
Location: Tauranga, New Zealand
Contact:

Re: RPG project

Post by richardtoohey »

tricky wrote: Fri May 01, 2020 11:15 pm We love developer diaries.
+1 to that!
User avatar
fwibbler
Posts: 763
Joined: Thu Jan 13, 2005 10:37 pm
Location: Essex
Contact:

Re: RPG project

Post by fwibbler »

richardtoohey wrote: Sun May 03, 2020 12:33 am
tricky wrote: Fri May 01, 2020 11:15 pm We love developer diaries.
+1 to that!
Me too!
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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.
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

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.
User avatar
0xC0DE
Posts: 1300
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: RPG project

Post by 0xC0DE »

Have you considered pucrunch or exomizer for data compression?
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
Naomasa298
Posts: 394
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: RPG project

Post by Naomasa298 »

0xC0DE wrote: Mon May 25, 2020 7:03 am Have you considered pucrunch or exomizer for data compression?
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.
User avatar
0xC0DE
Posts: 1300
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: RPG project

Post by 0xC0DE »

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! =D>
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
Post Reply

Return to “new projects in development: games”