This is absolutely the coolest thing I've seen in the Sonic realm in years. Just wow. Seeing it running on hardware is a little joygasm. Amazing, yo.
Hey, this is pretty cool, man! I kinda like that it's not trying to be an exact recreation of Xtreme. I think that'll free you up to give it your own spin. Nice.
Great job! It's amazing how the community is dedicated to that point, creating a game for the old saturn, unbelievable. I hope you can finish the project, I will pleasure to play it!
Have you considered trying to dive into Sonic World on Sonic Jam? Just, they have techniques that extended draw distance, so I figure it might be beneficial for your engine if someone managed to figure out what they did to get that effect.
In fact, what they did in Sonic Jam is rather easy : they just used the vdp2 to create the ground, so they can easily push the draw distance since the vdp1 doesn't have to draw many polygons. Compared to Sonic R, it's not that impressive. They also use half the refresh rate that I do (30 fps vs 60 fps). The original Sonic X-treme devs really had no clue about the hardware, it's really obvious when you see how they didn't even plan on using the vdp2 (except for the boss engine) and how the textures are all larger than 4 bpp. I'm still working on a new 3d implementation and I've taken a long look at Sonic R and Quake, I'm confident that I will be able to have a better draw distance at 60 fps, but it will take a long while to get there as the Saturn is super complicated and the hardware is obviously rather weak compared to what we have now. I'm also working on having full transparency to make the far away objects fade in and out. I did try my game at 30 fps, but I feel the difference is too huge with 60 fps, so the fluidity is worth all the trouble to get there.
Nice to see some Fan sites finally covering this amazing fan game http://www.seganerds.com/2017/11/30/the-sega-saturn-is-finally-getting-a-3d-sonic-game/ Keep up the good work XL2!
Good to hear about the draw distance. I look forward to seeing your fantastic progress. (when Sonic Mania port?)
Here is an update on this project - or I should say on the engine since I didn't touch Sonic Z-Treme for a while as I'm busy rewriting nearly everything - to show per-quad collision (I still need to work on it to make everything smoother). For Z-Treme, I don't know yet if I'll stick with 60 FPS or bump the graphics (dynamic lightning and gouraud shading) and go for 30, but my new version of the engine should allow much better draw distance anyway. But maps don't need to be blocky anymore like the Sonic X-Treme maps, which opens up lot of possibilies (like Project Condor-style or Sonic Jam-style maps). I almost fully rewrote the engine, I'm now using 4 bits sprites everywhere (except weapons), I added an octree for rendering and collision, wrote a new collision function, wrote an automatic mesh reduction (for LOD on distant objects) and now support the 3D pad (it wasn't even documented anywhere, I found by trial and errors that the dummy1 Uint16 variable is actualy the right trigger). I also switched all the maths functions to SGL FIXED format since they are more precise. For the graphics part, I'm using SGL only, while I use Jo Engine for the CD functions and audio and I'm using an ugly mix for controls. I still haven't coded a proper PVS or portal, so the overdraw can be huge, which is bad of course, and I also need to generate textures for LOD objects, which I plan to work on next, and a custom view frustum culling function (I'm still using the SGL slCheckOnScreen function, which is quite bad). Here are 2 test maps , both running in Yabause emulator : [media]https://www.youtube.com/watch?v=ScGVHMFB58M[/media] Peach Castle from Super Mario 64 DS - I didn't try to fix the geometry other than using Blender's auto triangles-to-quads and subdividing everything once - with an earlier version of the collision and rendering code (lot of clipping). https://www.youtube.com/watch?v=uBa6NNM4ZU0&t= Saturn Quake E1L1, converted with NOESIS to Wavefront .OBJ, then put on Blender to remove the doors (since my engine doesn't support them yet) and then converter with my newer version of my map converter to my engine. I'm not done on the updates I want to do - so I'm not sharing the source code for now (FPS demo and map converter), but I will once I am done (I guess in a couple of weeks) PLEASE TAKE NOTE : The textures seem weird - with poping as they get closer to camera. That's because I haven't coded the texture generation for the merged quads (LOD) yet, so it's just stretching one of the textures from one of the merged quads, and applies it to the whole quad. I will work on that feature within the next few weeks, which will also allow mipmapping (done offline, obviously).
This project is the first glimpse I've had of a Saturn homebrew scene beyond Game Basic waffling. I never thought I'd see it. I'm excited! You really know your stuff.
Hi guys! I need your opinion on a dilemna I'm facing. I was a bit stuck on Sonic Z-Treme as I tried several rendering methods. I stopped working on Sonic Z-treme to rewrite my engine and try other things. The result is that I'm able to render Quake maps at 30 fps with transparency and other effects. I can also use gouraud shading without issues and my draw distance is much improved (more than twice the distance it was). The real issue is that to play at 60 fps, I would need to dial back almost everything and put a static framerate (if the rendering can't keep up, it will stop rendering, and many foreground quads will be missing). In other words, it's always close to break, so I need to remove as many details as possible and use a low draw distance. What do you guys think? Is 30 fps (not interlaced) a dealbreaker? I will put a 60 fps option for sure, which should be ok on emulators, but on real hardware it wouldn't work that well. I think I learned the hardware well enough to use lots of good looking effects, I kind of feel bad removing them for better framerate. Here is a video showing an older version of my engine at 30 fps (but mainly 20 fps) on real hardware with transparency (like in Sonic R), split screen and per quad collision (instead of the older versions of Z-Treme which used bounding boxes and masks only). Don't mind the cheap models and cheap sky effect, they are placeholders : https://youtu.be/Bkpy5MdjM8I
Seems fine to me. A lot of old hardware did 30fps with their 3d, didn't they? I don't see any real need to be too picky. For older hardware like the Saturn it's a non-issue to me. Even top tier soft like Nights ran at 30 and I hate to think how much they would have had to cut down if they were pushing for 60fps.
Eh, I'm ok with 30fps. It's already much more than most 3D games of that time period, even when considering other consoles.
In fact, on emulator hitting 60 is really easy, no need to even overclock. On real hardware, it's quite harder unless you have several compromises. But it does feel much smoother, it's really day and night difference. Btw, I forgot to give credit to Andrew75 for the galaxy fortress map! I didn't want to show it before SAGE, but that transparency/fog effect looks really great on that map and it shows what can be done with the hardware special functions.
I also vote for 30, its been a pleasure to watch the progress if this project since it first showed on Jo-Engine. As always keep up the good work and hope for the best
Here is a realtime gouraud shading lightning test I did using PC Sonic R models and my own converter. [media]https://youtu.be/XapzA2yPEAU[/media] And here is what it looks like with VDP2 transparency (for smooth fade in like in Sonic R ) : [media]https://assemblergames.com/attachments/sonic-z-treme-preview-png.32361/[/media] I still haven't recreated the gameplay from version 0.03 to my new engine, but I will try to resume work shortly.
That's a really good effect! The stuff devs could have done if they fully understood the Saturn's hardware man. Would've been great.