Q: Were there any particular challenges you ran into when porting the game? Obviously the Dreamcast had its limitation in comparison to UT's main platform, the PC.
...To deal with memory fragmentation over time, I reset the entire console between levels (I didn’t reboot it, I wiped the heap and started over from the start of the game).
The other big problem was the optical drive, which the PC version didn’t have to worry about. Unreal’s loading system in the first 2 versions of the engine were very seek heavy, which is terrible on an optical drive. So, my solution was to load each map and write out every byte that was read in. The development kit was unable to write files out, so I had to use a serial cable to write the data out and I captured it all in a PC terminal program, and turned the data into per-map data files. When loading after that, I could use these ordered byte data file to load from. It sounds pretty crazy, but since I reset the memory between each level, we always started from a known state.
Epic was working on the PS2 version of UT at the same time, and Tim Sweeney decided to use this same solution on the PS2. That was high praise for an indie game developer like me!"
Very smooth, sounds perfect for deathmatch or other round based games. Might work for other games that need to carry data over if you store player status somewhere safe and load it back into memory for the new level.
Read the rest of the article at http://www.dreamcastlive.net/blogs/post/Interview-with-Josh-Adams-Co-Founder-of-Secret-Level/