|
Kompressor was the fourth team project I worked on at the Guildhall. The task was to make a Racing game using the Half-Life: Source engine. I was Lead Level Designer on the project. I also assisted the Game Designer with both the design and documentation of the Game Design Document.
In the beginning of the project I was responsible for both directing and participating in researching the building techniques we would use to make a racing game in Half-Life: Source.
We encountered and overcame problems at every corner. From invalid brushes in the roadway, map size being too large, too many brushes in a map, too many props in a map, too many different textures loading at one time, and various Line of Sight issues with the final map.
In the beginning we started with each level designer (5 LDs) responsible for their own map. We realized that it would be impossible to properly polish all their maps to industry standard in the time allotted. We then cut the map down to 2 maps, and still we did not think we had enough time for two. The map number was then limited to one map that was half the size of any of the previous maps, this map was built by a LD. The map had enough twists and turns that LOS was never an issue. Even with this shrunken map we were hitting limits in the way of brush numbers and prop numbers. We then ditched this map and used a test map that our Team Lead, a programmer, had created. This map, the final map, was half the size of the previous map making it one quarter of the size of the original maps we started with.
We recognized the possible problems we would have with LOS, but decided to go ahead with the map hoping that the small size of the map would mitigate any LOS issues. This was not the case. But before we could worry about optimization we needed to decorate this barren map and then polish it to an acceptable level of completion. We did this by splitting up the map in to various sections to be built by individual LDs. I was then given these sections to incorporate into the main map as well as building the sections I was responsible for.
After the map was in an acceptable condition we felt it best to look into the optimization of the map. I was tasked with the optimization. By extensively using optimization tools (portals, occluders, etc.) and various tricks with world geometry I was able to minimize the amount of the map that loaded at any given position in the map. We still had a problem with stuttering. Minor stuttering occurred for the individual player whenever he was making his first lap around the racetrack, whether in Pre-race practice mode or in an actual race, that first lap posed problems. The stutter would never occur again as long as the player stayed connected to the server, but if the player were to disconnect and reconnect he would experience the stutter on his first lap.
By using the diagnostic tools provided in source we were able to determine that the stutter was caused by texture loading/swapping. It was like Source did not know what to do with the textures it had in memory and the textures it had to load in the current area. But it seemed to learn how to properly swap/load these textures once it had “seen” the entire map. We tried to remedy this by consolidating the texture library used in the map. As a test we removed 50 of the 250 different textures we were using , leaving us with only 200 different textures used. We tested and noticed no difference, and then decided to leave the remaining textures intact and would accept this minor glitch.
As it turned out our computers experienced the same problems in all the source games (Counterstrike, Half-Life, Day of Defeat) we played. We determined it was a Source/PC issue and we were satisfied with our attempts to remedy the situation.
|