Mode8 Flipscreen thing

developing/porting a new game or gaming framework? post in here!
Post Reply
User avatar
Symo
Posts: 16
Joined: Thu Dec 06, 2018 1:47 pm
Contact:

Mode8 Flipscreen thing

Post by Symo »

While I'm too scared to try and turn my old Master on after 30 years or so, I've recently started relearning 6502 and playing with BeebAsm and Beebem to work on a game engine to generate procedural flip-screen maps (its not going to be Citadel 3 but probably an RPG if I get round to making an actual game out of it) using Wang Tiles https://en.wikipedia.org/wiki/Wang_tile. its using a 256-byte wide Mode 8 as I always wanted to try something using it back in the day, so fast chunky graphics but more RAM to play with. I have an array of 256 screens with 117 unique tiles and 256 possible combinations (some can be flipped in the X direction so this saves on some storage - they are also compressed in a similar style to Citadel 2). So far memory is not a problem and will even fit in Mode 2 currently.

The idea is that an initial screen is generated, then as the player moves off screen a suitable random connecting screen is found that fits each side of the screen using the Wang tile approach. I just need to store the wang tile value for each screen, so 1 byte / screen :).

I've created a custom tile editor in c# + a thing to convert PNGs to a Beeb-friendly version which I can import into BeebAsm to build it. I've tried castle and cave-style tilesets so far and it works pretty well (the player will be 2x the height here - the screen tiles are actually plotted 2x height to save on sprite data and correct the squashiness of Mode 8 :).
Cave.png
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Mode8 Flipscreen thing

Post by tricky »

Looks pleasantly blocky and only 1/2 the horizontal res of a pico8 game.

I've said this before, but I would love to see a MODE 8 64x64 game that used linear mode addressing (like MODE 7) so it would be 2K to have really large sprites. I think that ColourSpace used this technique.
gfoot
Posts: 987
Joined: Tue Apr 14, 2020 9:05 pm
Contact:

Re: Mode8 Flipscreen thing

Post by gfoot »

That's really interesting, it'll be interesting to see how it develops.

I've been playing with procedural world generation too, based on being able to determine the content of a cell only from its x,y coordinates - this constraint was inspired by threads here about Exile, though I've deliberately not looked in detail at how that algorithm works.

I made an initial prototype on the beeb which was promising, and iterated it a bit, but then moved to Shadertoy to iterate on the algorithm with real time feedback. I can generate fairly large cave systems with interesting topology, foliage, "items" (which could be powerups, keys, enemies, etc), and varying degrees of connectedness. It remains to be seen whether the algorithm is fast enough when running on an actual beeb again though!

Hopefully I'll be able to post something more about it soon, I got a bit distracted actually playing Exile itself!
User avatar
Symo
Posts: 16
Joined: Thu Dec 06, 2018 1:47 pm
Contact:

Re: Mode8 Flipscreen thing

Post by Symo »

tricky wrote: Fri Dec 23, 2022 12:21 pm Looks pleasantly blocky and only 1/2 the horizontal res of a pico8 game.

I've said this before, but I would love to see a MODE 8 64x64 game that used linear mode addressing (like MODE 7) so it would be 2K to have really large sprites. I think that ColourSpace used this technique.
Thanks :) So far its only using 18 pages of RAM so 4.5k so far. I also have had a play at a Mode7 pixel (sixel) plotter and Bresneham-style line drawing algorithm. ColourSpace looks interesting, I wonder how much the Beeb could handle a falling-sand simulator (like Noita).
gfoot wrote: Fri Dec 23, 2022 1:21 pm That's really interesting, it'll be interesting to see how it develops.

I've been playing with procedural world generation too, based on being able to determine the content of a cell only from its x,y coordinates - this constraint was inspired by threads here about Exile, though I've deliberately not looked in detail at how that algorithm works.

I made an initial prototype on the beeb which was promising, and iterated it a bit, but then moved to Shadertoy to iterate on the algorithm with real time feedback. I can generate fairly large cave systems with interesting topology, foliage, "items" (which could be powerups, keys, enemies, etc), and varying degrees of connectedness. It remains to be seen whether the algorithm is fast enough when running on an actual beeb again though!

Hopefully I'll be able to post something more about it soon, I got a bit distracted actually playing Exile itself!
Cheers, have also spent many hours playing Exile and working on various ports over the years, the main one being in Unity though it didn't use any procedural generation, I've had experiments in random cave network generators using wave collapse functions most recently to create tiles which can be e.g. open space, a cave side, a tunnel section, a cave/tunnel join etc. The main problem with Exile is simulating the physics as modern physics engines are 'too good'. In Exile if you shoot something which is against a wall it will bounce back, whereas in say Unity physics it won't so I had to apply opposing force on a collision. Here is an old WIP version of my Exile port - https://www.youtube.com/watch?v=3eDtmh7dU-Q



I also did a basic Exile mod for Noita - https://www.youtube.com/watch?v=5f7D9zuI6Bc&t=0s
Post Reply

Return to “new projects in development: games”