SEGA Saturn 3d Racing Game Project screenshots Atlas Atlas Creator Atlas Game Packs Benchmark RAM Emulators Mine Sweeper Patching: Enemy Zero Patching: PlanetWeb RB library Rockin'-VR Saturn Game Tutorial Save Game eXchange Save Game Manager Saturn High Level Interpreter Saturn Tools SCU indirect DMA SGL replacement Sound Player Terrain Renderer Texture Coordinates The Rockin'-B All Stars Tic Tac Toe WinterSports Eins Game Park 32 Mac OS X SEGA VMU Windows
3d Racing Game Project
Making a 3d racing game for SEGA Saturn.
This project tries to build a racing game engine for SEGA Saturn. Well, a wishlist of things people would like to have in a racing game is very looong, if not even endless. A racing game can't be done over night and probably can't be pushed to completion by a single person only.
View some screenshots.
So everyone who is interested is invited to join the project and contribute ideas, code, gfx like tracks, cars and background stuff.
from where it started
It started from the DRIVING, DRIVING2, SHOOTING and BIPLANE examples from the SGL. They include a space partitioned 3D world and a ground following / collsision detection system and a very simple driving simulation system.
The problems with these examples are that the tool to generate the polygon map and the collision data is not available. Also the code is loosely thrown together and full of redundancies.
creating new tracks
I made a tool called RB_SaturnMAP which generates the space partitioned 3D track data and which computes collision data as well.
Now the track can be replaced with custom tracks either completely selfmade or converted from other racing games.
In general, creating custom Saturn 3D data is possible, but requires a lot of work since all material properties and textures have to be applied by hand in the 3DEditor of SS-SDK (WGT from antimes page). The size restrictions of the 3DEditor can be worked around with my tool RB_SaturnMAP.
A new feature introduced here is to read and write binary track data, which will enable to load different tracks on Saturn, instead of using a hard coded one.
Significant optimizations were applied to the runtime collision detection method. While trying to understand the ground following system used in the SGL examples, I implemented a different one but went back to an optimized version of the method in the examples. It is an approximation which complies with and benefits from the Saturn quad texturing method.
The original source is not very modular. This has been changed and thus the base is made for 2 player games. Horizontal and vertical splitscreen is already implemented for polygons (but not yet for backgrounds).
The collision/ground detection routine is located in the RB library while the track rendering function is still in the racing game sourcode.
The system used to create and display tracks with ground/collision data can be used for other games, too (like SHOOTING and BIPLANE are no driving games).