viernes, 8 de julio de 2011

Holiday Island in GoldenEye

It's a crazy summer night in Holiday Island!

Download the patch here
When I first showed the the GoldenEye hacking comunity from the Shootersforever boards my first attempt with Blue Resort, the user  radorn told me that was a map he also had in mind to make in the future. He sent me his list of future projects which had some maps I also wanted to do. But what really took my attention was that that the two first islands from Pilotwings 64 were on the list.
Giving my experience with Kakariko I thought that maps that big and open would be impossible at all. But as I gained experience with the Editor and understood better how the GoldenEye engine works, the idea seemed more feasible. By that time radorn had left the community.

I started ripping geometry and textures in January 2014, at the same time with Blue Resort. If Blue Resort was a side project from Goldfinger 64, Holiday Island was something to be done in very small steps.

Pilotwings64 is a game that abuses LOD and poping, so ripping the geometry took some days from month to month. I merged the full island (with some objects missing and a lot of low detail models) in order to see about how many polygons the level would need. There were more than 9,000 tris there and I started to worry, hehe. Luckily the island itself was around 5,100 tris and the other models I would add as props. This would really help the console version, although it was the opposite for emulators.

Full map with all elements as part of the background with max LOD was over 12,000 tris. That was the version that I though it would work best on emulators, and I used it to place all the trees and lightpost as props for the console setup. This means that all the elements are in the same spot than in the original game.

There was a bug when I first tried this full version. Some of the textures were white. This happens because there are some untextured tris on that room of the background. It already happened to me in Peach's Castle a year ago, although that time it was a full room that turned white. There's a feature in editor that lets you apply a texture to those untextured tris, so fixing it is easy.

The map needed to be splitted as usual. This time I did it myself thanks to the new features coded by SubDrag in the GoldenEye Editor. I splitted the level in 36 rooms. Since the level was so big, splitting and modelling the new clipping took some time. But this map didn't need any addition to improve navigation.
The only thing that needs it Turbo Mode on because it would take ages to get anywhere!

Some props gave me some headaches when I tried the level ingame. The sunshades didn't render unless they were overlapped with the sky, and the boats didn't show at all. Thanks to SubDrag I fixed the sunshades (never put topflag tag in primary tris). But there was no way to fix the boats, so I removed them from the console version (in the emulator version they are part of the background).
A funny fact is that I used the collison box form the palms with the crossed trees. I did the same with the big trees but they weren't centered and it didn't work well. Lightpost also have their own collision box using only the base and main post.
The yellow planes are also props (the orange one is part of the background) but they don't use a collision box (it didn't let you go near the plane form certain spots). Instead of that I modeled the clipping with the shape of the planes an disconnected the tiles. Same clipping trick was used with the big plane.

Some textures had to be done by me because they didn't extract when I ripped them from the rom. These textures are the structure for the ferriswheel and the ones used by the fountains in the big lake.

Everything was ready to test on console. My only concern was that there wasn't enough memory to have 4 player matches without issues. Blue Resort already gave a lot of trouble, and Holiday Island was bigger, with three times the total amount of tris, more textures, bigger setup file and longer drawing distances.
It took several tries to get the right allocations but that part was easier than expected. I only needed to cut down drawing distance a little for 4 players to avoid some blackouts.

The sky in multiplayer is black because the level is so tall that the sky glitches. You can only fix that by disabling the clouds, but for some reason the sky main color in multi turns black if you do it.

After that only the emulator version was left. I did two versions in order to see what would perform better: a map where everything was part of the background or a map where all the elements were props. Both maps only had one room because loading a lot of rooms simultaneously on emu adds lag.
I already expected the version with props to be the worst, but I never thought it would perform less than 2 frames per second with 4 players, hehe. The other version was around 20 fps for 4 players.

But there was another unexpected occrurence while adjusting the allocations for the emulador version. It turns out that if memory is low enough the level doesn't load the secondary geometry (the one used for transparent textures or surfaces that the bullets can go through); if you rise it a little then the level won't load at all; and if you rise it again to the right amount then it will load both primary and secondary geometries. But this is for maps that have only one room. Funny.

So that's how the gigantic Holiday Island make it into GoldenEye. I'll probably never do a map like this again because there are a lot of things that can go wrong. Someday there will be a version for Perfect Dark, but that might have drawbacks.

The utilities I used were:
-'1964 v1.1' emulator and 'Nemu 64 graphics (combine debug)' graphic plugin in order to rip the geometry as VRML and textures as BMPs
-'3D Studio MAX R6' to merge the VRMLs and convert them to FBX.
-Autodesk FBX converter 2012 to convert the FBX to DXF (Autocad) and OBJ (for Deled)
-'AutoCAD 2004' to model clipping and add some parts to the map.
-'DeleD CE' to chop the level and export as OBJ.
-'Irfan View' to edit some textures.
-'GE Setup Editor' to edit the GoldenEye rom: adding textures to the rom, injecting the level, fix and colour textures, adding shadows and lights, edit the colision (clipping) and portals, put guns and spawn points, modify the skies settings, change the image and name of the map... and creating the patch.

No hay comentarios:

Publicar un comentario