What is it?
LUMA is a student-run digital media production group at the University of Florida Digital Worlds Institute. Founded with a goal of providing talented students the opportunity to work on real-world projects, LUMA offers creative services to members of the UF and Gainesville communities. Faculty and staff in the Digital Worlds Studios provide guidance on collaborative projects that support the students’ experiential professional development.
What I did:
I worked in a cross disciplinary group of 20 with a team of 4 dedicated programmers including myself to produce an interactive web based city builder for the City of Gainesville to use for zoning law education where I developed systems in the Unity engine with C# to handle building, properties, zoning, and feedback. I accelerated development by simplifying our prototype game manager (1000+ lines) into modular classes and methods, smoothing movement in our 3D camera system, and helped to standardize our UI Manager by removing redundant code.
Challenges and Solutions
Our client repeatedly changed the specs for how zoning needed to work, to adjust for this I made custom components for each building that would include the zone type they were in and any exceptions for adjacent buildings. I made these components so that designers could easily add exceptions for buildings e.g. A bar can not be built next to a school.
I also created a adjacency tracker, and a workflow for designers to use it, since each zone was part of a set of 4, each zone in the set would be adjacent to the other buildings. I had designers parent these gameobjects to an empty and would get data regarding the siblings (adjacent buildings) to assist with my building rules. I assisted with other features such as the progression system, and created checking and building functionality to be accessed from the game manager which referenced the used components. I also created a smart response system to replace a hardcoded approach. I was able to account for every building in just a few hours, as opposed to a few weeks that would have to be modified every time the spec changed. My response system would populate template stings with the data from the building to be built, the result of the check, and why it failed. |
Lessons Learned
I learned the importance of creating developer friendly systems firsthand and was able to work in a professional environment with regular hours and commitments.
I liked the how smooth our development felt and how we could always ask for spec clarification from our team leads and work with designers to create powerful systems and workflows. |