Over the last month I've been working on the recreation of the Cargo Port level of Metal Gear Solid 1 (1998). The main goal of this project was to challenge myself on how far I could modify the game with my current modding knowledge. During the very fun process and with some great help from the community I've not only managed to get to a point where I'm really satisfied with the result, but I've also learned a lot about various modding parts such as rigging, modeling, UV-mapping, scripting, and ZE work and animation.
CHARACTER
The first step was to bring Solid Snake into the game. This was my first character rig for SWBFII.
HUD AND CAMERA
The next step was to recreate the HUD and Camera View of the PS1 game. It took me a while to draw every weapon icon, adjust the positions and fade effects, and make it compatible with every image resolution. I also added some of the basic MGS weapons: Ration, Cigarettes, Cardboard Box, Famas, Socom, Grenades, Stealth, Nikita Rocket Launcher.
MODELING
After the HUD and weapon mechanics were done I started to recreate every asset of the Cargo Port level from scratch. I'm fairly new to Softimage so I saw this as a great practice. While most of the models were easy to make due to their simple forms, others were more challenging. I also learned a lot about Texture Projection. Fortunately I found all ingame textures of the PS1 game online, so all that was left to do was organize the texture chunks and create proper UV-maps.
LEVEL CREATION
Once I finished creating every asset I built the level in 4 different layers in Softimage: Floor, Walls, Objects and Ceiling. Then I placed everything in ZeroEditor, added the necessary water and light effects and some extra props for the elevator animation. Creating barriers and planning definitely was my least favorite part.
SCRIPTING
I created some minor scripts for the project and loaded them from external files to not fill up my main LUA with a lot of code. The scripts include the CodecCall handler, Elevator handler, Teleport handler with fading, GameOver audio handler and the Detection System. The Detection System was pretty tricky but eventually turned out perfectly. Whenever an enemy hits the player, the iconic MGS music starts and the enemies pursue you. Only when you've escaped their fire for more than 6 seconds, the "alert state" returns to a "normal state", with the enemies returning to their original goal and the music fading.
All in all, this is the end result:
WIP
I am currently working on the elevator teleport and above-ground base to give the player an area to try out different weapons. Once I polished the projects some more I'm happy to release the source code for anyone interested.