Hi, my name is Charles Hollingsworth and I am the Engineering Director for Xaviant. I have had the opportunity to transition our team from building traditional data-driven client/server applications to console/PC games. We have accomplished this by leveraging the powerful CryEngine3 platform, training our developers and then augmenting our team with experienced game engineers. We have adopted a dual mission on our engineering team: developing great software for gameplay AND providing a rich, stable infrastructure that maximizes the ability for programmers to “program,” designers to “design,” and artists to “art.”
Focusing on core competencies from our enterprise-scale, commercial software pedigree has allowed us to construct our (game development adapted) Lean-thinking house to accomplish our mission.
Although buzzwords and fluffy diagrams are always cool and certainly required for any self-respecting blogpost, I would like to specifically elaborate on the mindset and tangible systems that facilitate our commitment to this model. Developing engine functionality for spell casting, loot management, AI, etc. is the obvious responsibility of any engineering team, but the delivery, accessibility, and accuracy of this functionality is where we strive to differentiate ourselves. Specifically, in this post, I will explain our Respect for People pillar and give examples of how we remain committed to this principle.
Respect for People, from an engineering perspective, means that we are firmly committed to supporting those who create the essence of player experience. This requires a bit of humility which is difficult to swallow since it is obvious to everyone (in the universe) that engineering is the most important component of game development. Seriously though, it is easy to say we are “Design Driven,” but this is not easily quantified on a day-to-day basis. So, we have set ourselves up as a support group. We verbally and organizationally commit to “a spirit of service” toward our internal customers which manifests itself in things like:
- Extending the classic software “continuous integration” to include art and design
- Hourly builds
- Each hourly build is stability-tested by automated gameplay scripts and level walkthroughs
- Real-time visual feedback on displays throughout our work space (image above)
- Prioritization of development tasks based on impact to artist and designers tasks
- Avoiding 100% utilization so that we can immediately respond to technical roadblocks
- Updating task tracking system so that internal “customers” know the status of their technical roadblock
Adopting this “support” mindset has allowed us to avoid the tension that often exists between engineering and design/art. Credibility is earned here by eliminating wasteful technical overhead so artists and designers can spend the maximum time “building awesome.”
- Hourly builds of all code changes, including bug fixes, available to all artists and designers with a 5 minute installation
- Instant feedback from our ErrorTrax game log monitoring
- Detailed error information
- Meta-information (location, camera angle, file information) for quick defect reproduction
Maintaining this level of service raises expectations among the entire team and provides a healthy feedback loop for requesting tools and optimizations to further enhance workflow.
Additionally, “gameplay developers” extend our engineering team by actually sitting in teams with designers. This proximity encourages rapid iteration and allows the developer to precisely experience the designer’s workflow to create best practices gameplay systems.
Our flat organizational structure requires that every team member is personally responsible for eliminating waste and increasing the speed and accuracy of the aforementioned processes. In future posts, I will discuss how we promote this “learning” environment and implement the other pillars of our team’s philosophy: agile development and continuous improvement.