200 likes | 276 Views
The Totally Sweet team, consisting of John Emerson, Daniel Villa, Matthew Fiebig, and Kyong Yu, aims to enhance the gaming experience with modding goals such as attaching players to cars, building race tracks, and customizing end conditions. They have implemented features like third-person camera, custom weapons/models, and modifications to player and vehicle entities and scripts. Changes were made to enhance gameplay, including the ability for players to use default weapons in vehicles and vehicle physics adjustments. The modding process involved iterations of modeling work in software like Maya and XSI, as well as coding and scripting for weapon creation and game logic. Explore the Totally Sweet mod for an exciting and enhanced gaming experience in the racing world!
E N D
Sounds Like: “Totally Sweet” TotallySweet Team: John Emerson, Daniel Villa, Matthew Fiebig, Kyong Yu
Modding Goals of “Totaly Sweet” Attach players to cars. Build races tracks. Changing end conditions (laps/load next level) Third person camera. Custom weapons/models.
The Camera “ localPlayer->AddEffects( EF_NODRAW ); ” • Single in_camera.cpp controls all camera movement • Modified the CAM_Think() method to accomplish: • Third person camera • Hiding player model
The Player Entity • Classes which a player entity is derived • player.cpp • This class is extends c_baseplayer.cpp. • c_baseplayer.cpp contains definitions for the player entity, which baseplayer_shared.cpp extends and overrides needed functions • In order to properly modify player entity properties, correct modifications must be made between all 3 classes.
The Player Entity • Modified default player weapons to be useable within the vehicle • Default setting disabled player weapons in vehicle, found vehicle’s weapon ineffective • Modified function in baseplayer_shared.cpp to enable default player weapons when in a vehicle • Modified origin position for weapon fire • Required so that bullets and frags do not hit inside the vehicle frame • A new vector was defined and replaced the default vector
The Player Entity “ ” m_takedamage = DAMAGE_NO; • Spawn function immediately spawns a player in a vehicle • Required modification of the spawn function in player.cpp • Spawn function sets a flag making the player invulnerable
The Vehicle Entity • Classes requiring modification for our vehicle • vehicle_jeep.cpp • This class extends vehicle_base.cpp. Jeep properties are defined in vehicle_jeep.cpp • Vehicle scripts requiring modification • beetle_test.txt • Script responsible for defining physics of the vehicle
The Vehicle Entity • Modified vehicle_jeep property to disable default vehicle weapons • Allowed usage of player default weapons without conflict • Modified beetle_test.txt per our needs • Modified the vehicle to flip back over upon flipping upside-down • Modified uphill acceleration and traversal functions • Added vehicle sounds
The Triggers • Needed to give the game a “Racing Game” • Provided a way for players to have laps and lap checkpoints. • Laided on the map by the Hammer Editor • ts_trippers.cpp provides two trigger types: ts_check_point[0-8] and ts_finish_line
Several Iterations of Modeling work: Maya XSI 6 XSI 7 The Weapons
The Weapons - HL2 Model Process • First Export as SMD • View Model • Physics Box • Animation • Second Create a .QC interpretation script
The Weapons - Script • In order to create a weapon, there needs to be a weapon_name.txt to describe it.
The Weapons - Coding • I originally tried to extend the RPG class to create the logic for the dynamite launcher. • I was met by weeks of frustration from the DLL defining methods. • Finally I had to collapse the Dynamite Launcher's weapon logic into the RPG's to finish on time.
The Game: “Totally Sweet” Enjoy!