Перейти к содержимому

Halo: Dreamcast Evolved - Update 001 - First Demo Gameplay and Cutscenes

Jilted Canon

0:00 / 0:00

Halo: Dreamcast Evolved - Update 001 - First Demo Gameplay and Cutscenes

7 912 просмотров · 12 дн. назад
Jilted Canon
267 подписчиков
7 912 просмотров · 12 дн. назад
The very first Halo: Dreamcast Evolved demo went out to a few pre-selected people. Here, I present you 9 new minutes from the demo. Allow me to describe everything that has transpired since the last video update--Ahem! Halo may now be the best looking Dreamcast game in its entire library. New are self-casting shadows, bounce lighting, dynamic lighting, and chrome/glass reflections. Lights now colour characters as they pass through them. An alert light casts a red alarm feeling over the room and everyone in it, while the blue of a command screen casts abuzz on Keyes' worried face. This port was never going to look exactly like the Xbox, but I think the look I've landed on is really special. Now the shadows, because I'm a little proud of these. The idea came from Sonic Adventure 2. SA2 uses the PowerVR's shadow volumes: you send a closed mesh and every pixel inside it gets darkened. Cheap and clever, but hard-edged, since a pixel is either in or out and the whole frame shares one intensity. I was SURE there had to be a way to make them soft and still fast on a Dreamcast. As far as I know, nobody has done it. So I did. The PVR already does planar fog by per-vertex density, no extra pass. I did the same thing for shadow. Each limb (head, neck, torso, both arms) is a sphere, and every vertex of the character gets darkened by a feathered column falling straight down from each limb. The darkest wins. A limb's own vertices ramp in, so faces stay clean. [GEEKY TECHNICAL SPEAK, BE WARNED] Per vertex, per limb: one 2-wide dot product (two FIPRs), one FSRRA square root and a smoothstep. No extra polygons, no extra pass, no video memory, no reload when swapping happily between graphics settings mid-firefight. And guess what--the PowerVR can do soft self-shadowing. And it's relatively cheap, to boot. The hard version is real too (you can opt to use this instead if you prefer it): PVR modifier volumes, a 20-triangle prism per limb, up to 1,536 modifier triangles a frame, 131 KB of video memory at 640x480 (262 KB with 2X AA). That's Fidelity and Xtreme, in cutscenes. The soft one runs on every preset but Off. And the Xbox? Reading the Xbox source, object shadows land on the level only. Objects never receive them. The Chief's head shading his own chest is something the Xbox never did. It never had anti-aliasing either. We have 2X: every frame drawn at 1280x480 and the PVR blends each pixel pair back to 640. Horizontal only, since the Dreamcast can't supersample vertically, and it costs the GPU about 2x its drawing time. That's fine, because the game is CPU-bound and the GPU sits at 6-14% busy. None of this would fit in a frame without SH4ZAM. The Dreamcast has no vertex shader. Every vertex of every wall and character goes through the CPU, so cycles per vertex ARE the budget. Traditionally, and on Xbox, the GPU can do all of this; the Dreamcast PVR cannot, hence the CPU-bound nature. One dot product is one instruction (FIPR). A reciprocal square root is one (FSRRA). A sine and cosine pair is one (FSCA). The port makes over 1,700 SH4ZAM calls, and next to no additional written vector math was required. Skinning keeps one bone matrix in XMTRX and takes the second with three vec4 dots. Prefetch and cache-line allocation on the vertex records were part of a 35% cut in BSP cost per vertex (about 1.7 µs down to between 0.86 and 1.5). The collision mover is a port of OpenCE's own, on FSRRA roots, and it agrees with the Xbox's x87 maths to about 1e-6. The Chief also runs on Halo's own models, not the previously script-based decimation techniques implemented on Halo 64 (that I originally used), although they were fantastic for getting the game up and running on Dreamcast without the extreme Xbox polygons slowing everything down. We are running real Xbox models here along with intelligently redesigned LODs through a maximum intelligence MCP server through Blender. WHAT TO EXPECT: On my own preferred setting, I have decided on a balance between performance and visual fidelity, although you can change it whenever you want (there is even a 240p mode if you want to try "Xtreme" graphics setting). The default "Balanced" setting has gunplay typically between 20-30 fps and cutscenes around 30-50 (there are exceptions both below and over, and there is still much optimisation to do for the ones that drop into the teens). You can turn off graphics settings and draw distances to your liking. I am sure there will be complaints, but keep in mind this project has only started a week ago and I've poured about 100 hours into it and more money out-of-pocket than I care to admit; I have barely slept. Not that I'm complaining... in fact, I have never had so much fun working on a game in my entire life. I am absolutely in love with the Dreamcast's SH-4 architecture and I cannot believe still what this first of the 6th generation of consoles can do! It's Still Thinking.