(Saturn homebrew) Sonic Z-Treme

Here is a new update on my new engine (WIP!) on real hardware.
I didn't implement back the physics/controls, so don't pay attention to that.
What's new : compressed per-vertex animation with interpolation (a bit like Crash Bandicoot and Quake 2), VDP2 transparency fade in, per-vertex realtime lightning (on Sonic only), audio using tones, splitscreen (not seen here), octree instead of an uniform grid for culling/collision, paletted/CLUT sprites, LOD model autogenerated for distant quads and probably many other things I forgot to mention.
It's not optimized yet, so there is room for lot of improvement.

 
Not sure why I'm not getting notifications, but excellent work.

Random question, but are you working under version control?
 
Here is splitscreen in action.
I should be able to optimize it enough for a stable 30 fps.
But 800 drawn quads on screen at 30 fps is quite amazing!
The gouraud shaded untextured quads also look great and are cheap to render, I guess I should find a way to use more untextured quads.
 
Out of curiosity, since this project is quite huge for a single person, is there anyone here who would be interested and could invest time who would like to join if I decide to make it more "open"?
I always intented to make the FPS demo the open source project while I keep working on my own on Sonic Z-Treme, but it's a bit overwhelming at times since I often need to rewrite huge portions of my code, while there are still so many things I would like to do.
Now, it doesn't mean I will make it more "open" or accept any random people who can't code but want their name next to project (I already saw 2 people online claiming it's their work even if they never coded a single line) but I'd just like your input.
 
I think it's doable to have community based feedback and support.

For programmers, the best way to get started is to get the project version controlled (git). If you use Bitbucket, they allow private repositories. You can then bring in contributors in privately to help you.

You could also then make a public repo where people (the community) can submit bugs/issues, etc. This repo won't have any source code.
 
I agree with mrkotfw proposal, also i'm always motidated to help, but don't expect good skills, other issue is like everybody is the free time.
 
  • Like
Reactions: XL2
Thanks for your input, I will certainly consider this option.

SAGE as been pushed back one month, which is a very good news since I wouldn't have been able to get a good demo in time.
I've since added support for very (very) basic world lightning (per face only) using palettes, so it comes at no costs, looks alright and allows to keep transparency.
Even with Quake maps it looks good enough since these have more often than not axis-aligned planes, which isn't the case in a game like Nights where you have curves everywhere.
I might still use gouraud for a bump mapping effect.

See here the images "AKIRA3" and "Chrome" for that bump mapping effect for those who never saw it.
 

Attachments

  • RedSand2.png
    RedSand2.png
    123.5 KB · Views: 154
  • CrystFrost.png
    CrystFrost.png
    146.6 KB · Views: 169
  • E1L7.png
    E1L7.png
    208.5 KB · Views: 159
  • AKIRA3.png
    AKIRA3.png
    27.1 KB · Views: 185
  • Chrome.png
    Chrome.png
    60.3 KB · Views: 211
So the AKIR3 and chrome demos are unmodified?
Unmodified.
I managed to use this technique in my own game, but I added green and blue gouraud to shift palettes and add transparency respectively.
It should allow - with some adjustments - some pseudo environment mapping at zero cost.
It works on real hardware, but doesn't work well on emulators.
See the picture here (emulator) :
 

Attachments

  • Z-Treme chrome.png
    Z-Treme chrome.png
    205.7 KB · Views: 161
Here it is with both the metal effect (working on real hardware nicely) using both green gouraud shifts (when the metal player is invincible) and red gouraud (both when invincible and not).
I added global lightning to the maps using per-vertex lightning and averaging the results to get a per-quad flat lightning shifting palettes.
I also added back rings and ennemies, but the ennemies are static since I didn't code in an insertion function for the octree nodes.
 
Back
Top