Vertical Shmup prototype

So a while ago a wrote a small vertical shooter prototype. My goal, other than learning the Saturn, was to build an engine-type thing that that would manage VDP memory a little better than having to hardcode assets and do a little bit of game object management.

saturn_shooter.png


It doesn't do a lot, but I think it's a decent start. Runs on hardware (!)

You'll need SaturnOrbit to build.

Source: https://dl.dropboxusercontent.com/u/17303735/Shooter.0.01.zip
Iso: https://dl.dropboxusercontent.com/u/17303735/shooter.0.01.iso
Bin: https://dl.dropboxusercontent.com/u/17303735/shooter.0.01.bin
 
Nothing very sophisticated. All the examples I found all worked with a fixed array of textures and pics. I wanted to break that and make a system that loaded textures on demand and handled all the addressing. You can see in level.cpp how it manually loads sprites. And then in the files related to game objects (player, enemy, etc.) they ask the VDP1Manager for their texture index by searching with the SpriteDef they want to use. Then at render time they use that texture index.

For VDP2, each of the four banks is setup as a stack. Choose a bank when loading a tileset or background and it'll also handle the addressing and copying of data.

It's not really complicated but it helps when a project increases in complexity: as more assets are used, hardcoding doesn't scale very well.
 
Good ideas. It all depends on the game. Often times, you'll be able to get away with simply building everything into atlas textures. As in, if you design your game around scenes (levels), you can load a large texture that includes ALL the textures for that particular scene. The great thing about this is that you can specify X,Y coordinates and generate an address from that. Ideally, you'll want to manually segment VDP1 VRAM into chunks. Say, have 1024 command tables (32KiB), the rest, for textures.

Again, depending on the game, you'll want to do as much of the work before the actual start of the scene.
 
So a while ago a wrote a small vertical shooter prototype. My goal, other than learning the Saturn, was to build an engine-type thing that that would manage VDP memory a little better than having to hardcode assets and do a little bit of game object management.

View attachment 4451

It doesn't do a lot, but I think it's a decent start. Runs on hardware (!)

You'll need SaturnOrbit to build.

Source: https://dl.dropboxusercontent.com/u/17303735/Shooter.0.01.zip
Iso: https://dl.dropboxusercontent.com/u/17303735/shooter.0.01.iso
Bin: https://dl.dropboxusercontent.com/u/17303735/shooter.0.01.bin

Good job !
Please keep forward in developing your game :)
 
Hello!

No real news. After getting it to work on hardware, I moved on to other projects. Right now I'm spending time analyzing old Sega PC games (Sega Rally PC, Panzer Dragoon PC) to see if there's anything fun in them. It does make me want to do more Saturn stuff.
 
Hello!

No real news. After getting it to work on hardware, I moved on to other projects. Right now I'm spending time analyzing old Sega PC games (Sega Rally PC, Panzer Dragoon PC) to see if there's anything fun in them. It does make me want to do more Saturn stuff.

You're always welcome back here :)
Hope you will continue your shmup project !
 
Back
Top