SAGE 2020 - Demo HELLSLAVE : Project Z-Treme

Overview

Frag like it's 1997!




Cool trailer by Retrodad :


"STORY" (sort of)
You were a space marine. But you only had one problem : you had nothing to shoot at and flying you out of earth's orbit was too expensive thanks to budget cuts. The government just won't waste money on a grunt. So your job consisted mainly in preparing holographic PowerVertex presentations for higher ups who never gave you any credit for your work. So you quit, hoping your mad skills in PowerVertex will be sought after.

Then one day, a recruiter from the private company "S" bumped into you on the street and asked you if you were a space marine. "I quit" you said. "We have a job just for you! Just sign here right now and we will even give you some icecream!" he said.
"Alright" you said.
After all, everybody knows Company "S", who created a machine so powerful that it allowed space travel accross different solar systems.
What could go wrong anyway?
You might put these skills from space marine boot camp into use and you would get icecream on top of that!

Next thing you know you wake up in a prison cell inside a spaceship, the VERTEX RIDER, bound for the Colony.
"Damn! I came here to kick ass and eat icecream. And I'm all out of icecream!".
25 years later, still no icecream in sight and you are still stuck in that tiny cell.
As you wonder if the icecream was just a lie, you hear several explosions and terrified screams all around you, with people mindlessly killing each others as the VERTEX RIDER crashes down toward the Colony's athmosphere.
"Damn, those zombies are gonna pay for shooting up my ride!".
As the ship's AI open the cells for the evacuation protocol, you stab to death a zombified guard while smiling and say : "I'm in hell and I'm its slave. I am the HELLSLAVE!"

The game
-Shareware edition (ok, let's just call it a free demo!)
-Fully 3D engine, the Z-Treme Engine, expanding on the Sonic Z-Treme engine from 2018 (but almost everything was rewritten, so at this point it's not the same thing at all), which makes uses of both SH2 cpus, SCU DSP, VDP1 and VDP2.
-4 players splitscreen deathmatch and 2 players splitscreen coop! The campaign is fully playable in coop!
-Gouraud shading lighting everywhere, with realtime lighting supporting up to 8 dynamic light sources per vertex.
-Fully 3D weapons and enemies with AI, animation and lighting - Even the flying body parts have realtime lighting applied to them!
-High res 64x64 textures (for the Saturn)
-Brand new original 3d rendering code, matrix, vertex transformation, lighting system, polygon creation, collision, AI, etc.
-Fully 3d engine using binary space partition with a PVS+portals occlusion culling system : somewhat similar to the technology used in Quake on PC, but fully running on the Saturn!
-Real transparency : water, light flares, clouds, windows, etc.
-Realtime reflections.
-Realtime reflections + dynamic lighting + realtime transparency : Look at a window, and you might see yourself and the room you are in... and also see the outside world! Try that on the PS1!
-The highest 3d enemy count for a FPS on the Saturn : 20+ enemies on screen, x 2 in coop mode!
-Way improved culling and low distortion (no more polygons disappearing in your face, no more polygons dancing in your face à la PS1).
-No draw distance limit : the engine doesn't even have a far plane for frustum culling!
-New and fully original matrix, vertex transformation, lighting calculation, polygon creation and polygon sorting code, mostly in C.
-High amount of particles and flying body parts everywhere.
-Doors, keycards, platforms and triggers allow more interesting gameplay.
-3d pad optimized. 4 players Mouse and keyboards supported! Just plug your mouses in the mutitap in port 2, while the gamepads or keyboards will go to the multitap in port 1.
-4 difficulty levels : easy, normal, hard and the hidden nightmare mode!
-No "protect a braindead NPC" missions!
-No cutscenes or boring story interrupting the gameplay!


A small word on the engine :
I started working on this version of the engine in 2019, but I started working on my BSP compiler in the end of 2018 after SAGE 2018.
It's a BSP based engine using a PVS (potential visibility set) and extra portals for occlusion culling.
Similar to Quake, but quite different at the same time.


The transparency is achieved by rendering offscreen : the Saturn's dual framebuffers are 256 kb each, so there is a lot of wasted memory since 352x224 at 16 bpp =154 kb.
I render the transparent elements using additive blending (and unshaded transparent polygons to hide them with walls and doors) offscreen, transfer that area of the framebuffer to the main ram via SCU DMA, then transfer that again to VDP2 ram via DMA transfers.
It's pretty simple, but the sorting and syncing a real issues with this technique, which requires to draw transparent polygons to prevent seeing the transparent stuff behind walls and doors.
The VDP1 supports half-transparency, but for flares and other light effects you need additive transparency, which isn't supported by the VDP1, but the VDP2 does, which is why I need this fancy technique.
The other way to achieve this would be to do like Scorcher did (at least my understanding of it) and software render the effects directly in the framebuffer, which is probably too slow to be worth it and won't scale well with more lights.

The 3d animations are done with vertex animation, using 32 bits vertices (3 bytes for XYZ and 1 byte for the normal) for each vertex for each keyframe, which allows "free" animations in terms of CPU ressources as I just need to update the vertex's starting pointer.

All the audio had to be placed using old Sega sound tools within an old Mac (68k) emulator...

All the engine's code for 3d, rendering, collision, AI, etc. is original, while the Sega Game Library is still used for controlling some system registers and timers - causing more problems than anything - but I hope someday to flush all of Sega's libraries.

The engine isn't optimized yet (almost everything is in C except a little function for the vertex transformation), so please keep that in mind when the framerate drops in some busy areas.
But it shouldn't really drop below 20 fps in single player mode, unless you are playing in hard or nightmare mode (20+ enemies on screen in some areas...).
Both SH2s are used, while the SCU DSP is used to help the main CPU with 3d models (such as enemies).
Both the 68k and SCSP DSP (sound CPU and sound DSP) are pretty much unused, only telling the SCSP to play PCM files.
Right now, the gameplay is similar to Quake, but I plan to make a campaign similar to Powerslave's campaing, with permanent powerups, hidden secrets (Vasectomy team dolls anyone?) and maybe replayable areas (I'm on the fence here as I am not sure if I truly prefer the Powerslave's progression or a more simple progression system like Quake...so let me know what you think).
I took lots of inspiration from Quake, Duke Nukem 3d, Powerslave and Unreal.
ALL THE ASSETS/SFX ARE TEMPORARY!

Known issues :

-There seems to be a rare bug causing crashes in some specific situations. The cause is unknown and It was only discovered one week before SAGE 2020, so it might take some time to fix it. Please report the issue if you experience it.
-Not PAL optimized : The PAL version (50 hrz) will play slower, I plan to fix that in the future.
-Sound effects sometimes don't play. I need to write my own sound driver or figure out what needs to be done to make the old Saturn sound tools working properly.
-In single player, the framerate can dip to 20 fps in some areas. It's mostly CPU related, with some rarer cases of VDP1 bottleneck.
-Polygons sometimes get the wrong sorting order (z fighting).
-The framerate while in splitscreen 4 players deathmatch can get low, like Goldeneye 64 low (cpu again).
-The game saves, but doesn't load games, so continuing is the same as a new game (but with so few levels, I don't think anyone truly need to save!)
-Some assets/animations look bad, I didn't spend much time on it
-THE GAME ISN'T OPTIMIZED YET!


Controls

Using digital controls, if you ever played one of Lobotomy's Saturn FPS, you will feel right at home!
The analog controls are based on the "Jevon" controls in Saturn Quake, aka Turok style controls, instead of the traditional "joystick to move/rotate".
It will feel weird at first since the face buttons aren't in a traditionnal 4 buttons "+" shape, but once you get used to it you might prefer it : YZBC are for movement, the analog stick for look, L to jump, R to shoot, D-pad to switch weapons.
You can also play using mouse+keyboard or mouse+controler : just plug the mouse in port 2 when you boot the game. If you want to play with mouse and keyboard in a 4 players game, all the mouses should be plugged in the second multitap in the same order as the controllers/keyboards in the first multitap.

Some future things I am working on right now :
There is a ton of under the hood work that I need to do, so the progression in the following months might seem small, but it will benefit the engine in the long run. New things coming out in the following months :
-Bug fixing
-New maps (duh)
-New enemies and pack enemy models per map (allowing more diversity since it doesn't need to stay in ram for each map).
-Better texture tiling, allowing both better visuals and less wasted memory (hopefully)
-Offline bots for deathmatches...if I can make them smart enough to be worth it
-4 players link cable and/or online support (a huge maybe as I don't have the proper testing environement)
-Improving the code overall for more speed
-Add save/load support with a better UI
-Rework a bit more the rendering code and memory usage to allow insanely large open areas with less blocky geometry. That area at the end of Vertex Rider is about half of what I want to achieve in terms of size.
-Re-add depth shading. I had to disable it for better static lighting, but I plan on re-adding it once I make it fast enough.


Cheat codes (all ingame) :
-L+START/R+START : Switch between wireframe and normal mode. Useful to see the overdraw and how the transition from normal to LOD model goes.
-UP+START : Skip level
-DOWN+START : Cycle the max framerate. It will get very very low (for testing collision), then get back up to a target of 60 (target, it will still be around 20-30 most of the time)
-B+START : Cycle debug stats on and off

Final note :
-I do not accept any game making requests or port requests (don't bother asking for Doom or Quake 2, I am not interested in porting them)
-And on a final note, no, Vasectomy Software is not a real thing! It's just meant to be a nod at Lobotomy's software as their work inspired me to make this game.
-EMULATORS AND ODEs ARE NOT SUPPORTED! Many of them can't support some of the advanced effects seen in the game. Mednafen seems accurate, but I can't guarantee the resultats.
-Use a Pseudo Saturn, a modchip or the swap trick to play the game. Burn it using the free app imgBurn.

Updates

0.202 : Fixed a bug that made some enemies/triggers not spawn while in Nightmare difficulty.
0.203 : Fixed a bug where some light flares didn't spawn in easy mode. Also fixed a bug where you could kill torches, flags and other objects. I didn't make extensive tests with this version, let me know if there are issues!
0.204 : Improved the texturing, with most textures now having a correct orientation (all the geometry is auto-generated from simple brushes, so it's hard to control the final results!). Also modified the intro to show the new Vasectomy Software logo.

Credits

Huge thanks to the folks at SegaXTreme :
-Game, game engine, bsp compiler and other tools by Maxime "XL2"
-Anton for the human enemy models and animation
-Ponut64 for some weapon models
-Corvusd for some weapon and dog animation/model. And also for always challenging me to push the graphics further with his insane challenges!
-Faffling, Mrkotfw and Jollyroger for their tips and technical knowledge of the Saturn hardware
-Café Alpha for building my USB dev cart and also helping me integrate it to my code (I haven't burned a single disc for over a year and I can do crazy tests for free! Very useful when making a game aiming at pushing the system to its limits!)
-Johannes Fetz for the inspiration and making me join the Saturn homebrew community
-Danny for helping me setup the dev environment back in 2017
-Emerald Nova, Cerv3ro and all the others who playtested the game
-SaturnDave for the Vasectomy Software logo
-And many others!

-Music : see the readme in the zip file

-Most assets (audio and textures) are "borrowed" from different games : Quake, Powerslave, Saturn Duke Nukem 3D. These will be gradualy removed as various artists contribute to the project and pump out new stuff.

-With so little playtesting, the game might have bugs or might even crash. Please report those!

Comments

What's a good Saturn emulator? I've always had a hard time emulating Saturn games. Shame, too. I have a couple first-party Saturn controllers and an adapter.
 
I tried getting this running in Retroarch, but no such luck. I'll try Mednafen when I get the chance.
 
I tried getting this running in Retroarch, but no such luck. I'll try Mednafen when I get the chance.
If you have a real Saturn it's always the best option. I never tried it with Retroarch, but Mednafen works fine for me. Avoid Yabause and SSF as they don't support many of the effects.
 
Hi XL2 this is a dreamproject for me i love the saturn one of my favorite systems ever, i would love to help with music and Sfx, are you planning redbook audio? compress adpcm or tracker using SSF on this game? let me know if i can be of any help
 
Hi XL2 this is a dreamproject for me i love the saturn one of my favorite systems ever, i would love to help with music and Sfx, are you planning redbook audio? compress adpcm or tracker using SSF on this game? let me know if i can be of any help
Hi! I haven't decided yet about music. Redbook is easy to use on the Saturn, while tracker music would require me to write a new sound driver. I tend to prefer tracker music (like the old Unreal/Unreal tournament), but right now my engine only supports redbook audio. I would certainly love to get help for music and sfx, as right now I am using stuff from other games.
 
Hey XL2,
The demo is amazing! What you have accomplished here is incredible. We have active transparencies, multiple entitites on screen simultaneously, huge outdoor areas, uninhibited draw distance, the list just goes on. When you emerge from the crashed ship in the large open area it has strong Unreal 1 vibes. Which is poetically fitting, because you are doing with your engine what people thought was impossible, much like the Unreal engine at the time.

It runs flawlessly on original hardware, as well as the Mednafen Emulator. The movement is silky smooth, the framerate is steady, the gunplay is very addictive, and the multiplayer is a blast. I made a quick mockup cover for you. I am an artist, both 3d and 2d. If you want any help on textures, models, animations, etc. You just let me know. Also, I made a simple cover mockup for you in my spare time.

You can see it here.

 
Hey XL2,
The demo is amazing! What you have accomplished here is incredible. We have active transparencies, multiple entitites on screen simultaneously, huge outdoor areas, uninhibited draw distance, the list just goes on. When you emerge from the crashed ship in the large open area it has strong Unreal 1 vibes. Which is poetically fitting, because you are doing with your engine what people thought was impossible, much like the Unreal engine at the time.

It runs flawlessly on original hardware, as well as the Mednafen Emulator. The movement is silky smooth, the framerate is steady, the gunplay is very addictive, and the multiplayer is a blast. I made a quick mockup cover for you. I am an artist, both 3d and 2d. If you want any help on textures, models, animations, etc. You just let me know. Also, I made a simple cover mockup for you in my spare time.

You can see it here.

Hi!
I am always looking for help from artists as I'm not really good at it myself. You can join the Segaxtreme discord server to talk about it if you want to contribute. Thanks for your comments!
 

Item information

Added by
XL2
Views
2,956
Comments
8
Last update

Downloads

More in Original Games

More from XL2

Share this item