Samsara

About

An old monk must surpass deaths tests in order to be reincarnated in the 3rd Person adventure/platformer, Samsara. Samsara was a collaborative work between students from the University of Michigan-Dearborn (UM-D) and the College for Creative Studies (CCS). CCS came to UM-D with Samsara, looking for programmers to support their students. I joined the project as part of my senior design seminar; development lasted 2 semesters.

The development teams consisted of the programming team and the art team; the teams worked more or less independently when not meeting together. Jason Briney (Instructor for the CCS students) lead the art team, while I took up most of the team lead responsibilities for the programming team. The greatest challenge here was maintaining the version control system. We uploaded the whole Unreal Development Kit to Assembla using tortoiseSVN to give everyone access to a shared code repository. Assembla also had tools that allowed us to create and assign work items. This did a great job of keeping everyone on the same page, but it didn’t come without its fair share of problems. Conflicts sometimes occurred where code would be lost. Downloading the 4GB+ worth of files that made up the repository was daunting and couldn’t be done on campus computers. Halfway through development we decided to switch to a newer version of UDK, which left some members alienated in an older version of the engine, due to the size of the repository.

The game itself looks beautiful, a real benefit of working with art students (no lousy programmer art to be found here). I ended up programming the player’s movement and abilities. Things turned out well in the end, but there were systems that we never got the chance to fully implement. We had planned to have more collectibles in the space that could then be spent at an in game store on levels for the abilities (below), but we had planned too big and ran out of time before we could build the store interface. The leveling system is still accessible through the debug commands (below). Death was supposed to manifest itself to the player and provide tips on puzzles, or cautions about challenges but he was cut at the last minute, leaving the game devoid of dialogue. Three levels were originally planned, but that was soon reduced to two, then one as the deadline loomed closer. The resulting level however is quite sound, it is a very large space, providing a diverse range of environments and challenges many evident in the screenshots above.

Samsara is still great despite the issues I’ve noted here, it controls well, has great variety, and provides a challenging platforming experience. The game also features an original score that can be heard in the menu as well as through parts of the game. You can download Samsara with the download link below.

SamsaraDownloadButton

Credits

Programmers

Nathaniel Dessert Additional Programming
Joshua Oziemski Gameplay Programmer
Matthew Tuskey Menu Programmer
Andrew Williams Gameplay Programmer

Artists

Anthony Amrose Character, Modelling, Texturing
Nick Austin Animation
Kyle Bowman-Tricken Modelling, Concept Art
Rosie Cole Art Director, Modelling, Texturing
Ryn Dzuirgot FX Artist
Chase Holton Design
Aaron Loftis Environment/Concept Art
Norma Martinez Modelling, Texturing

Additional Artists

Matt Dewater Animation
Nicholas Ngyuyem UV Mapping
Ryan Staniszewski Lighting
Zack Waggener Soundtrack

Controls

Move Press ‘W’, ‘A’, ‘S’, and/or ‘D’
Look Move Mouse
Jump Press Space Bar
Super Jump Hold Space bar (if unlocked)
Sprint Hold Shift (if unlocked)
Interact Press ‘E’

Upgrade Tree

Super Jump Upgrade Paths

Level 1 Super Jump enabled
Level 2 +25% Normal jump height
+33% Super jump height
Level 3 +20% Normal jump height
+25% Super jump height
-50% Chi cost

Sprint Upgrade Paths

Level 1 Sprint enabled
Level 2A +100% Sprint duration
Level 2B +33% Sprint speed
Level 3A +22% Sprint speed
+100% Sprint duration
Level 3B +8% Sprint speed
+66% Sprint duration

Debug Commands

Press the ‘~’ key to access the debug command line console
setChi (0.0-100.0) Sets the current available chi to user defined value between 0.0 and 100.0.
setChiRechargeTime (any) Sets the rate at which to apply the chiRechargeAmount. Default is 1.
setChiRechargeAmount (any) Sets the amount of chi that is applied when chi is recharging. Default is 6.
setMaxFallSpeed (any) Sets the max speed the player can survive landing. Default is 1500.
enableSuperJump () Enables the Super Jump ability.
enableSprint () Enables the Sprint ability.
setAirControl (0.0 – 1.0) Sets how easily the player can course correct while falling. 0 = no air control, 1 = full air control.
setSuperJumpLevel (1/2/3) Sets the super jump level. Can only be 1, 2, or 3.
setSprintLevel (1/2A/2B/3A/3B) Sets the sprint level. Can only be 1, 2A, 2B, 3A, or 3B.
HealDmg () Restores full health.

Leave a Reply

Your email address will not be published. Required fields are marked *