How We Make High-Quality Maintainable Code for Educational Games

The core of what we do is making academic video games and simulations for shoppers. Usually these shoppers both shouldn’t have a improvement group or they do have a improvement group however their group doesn’t make video games. When our shoppers interact us for a challenge, we all know that our software program needs to be constructed to run not solely now however sooner or later.  Filament’s engineering group follows plenty of normal practices to maximise the extensibility and decrease the technical debt to create top quality code. A number of the key practices embrace:

  • Separating information and presentation: In conventional software design, this might be thought of a variation on separating mannequin from view, however this the extra generic concept that information ought to stay individually from the consumer interface and scene in order that it may be simply up to date and modified, and probably pushed by distant sources. Filament has instruments to load content material from CSV/Excel and JSON codecs that each one of our groups are educated on.
  • Enabling non-engineers to check: We write our code in order that it may be examined in opposition to the acceptance standards written within the consumer tales by a non-developer, each QA for practical testing and designers for consumer acceptance testing. By permitting these stakeholders to check on the dash and story degree, it’s extra possible they are going to uncover instances that the engineer didn’t envision, with time to appropriate.
  • Figuring out our instruments: We attempt to restrict the numbers of frameworks and instruments that we use in order that we may be deeply accustomed to those we do use throughout the studio. If we all know our instruments effectively (for instance Unity), it’s much less possible that we’ll be tempted to jot down an inner-platform, or repeat ourselves by writing capabilities that exist already within the .NET or Unity APIs in addition to adhere to conventions and customary practices in the neighborhood of builders surrounding that software or platform.
  • Writing loosely coupled elements: Codebases turn out to be unmaintainable when refactoring one element requires refactoring many seemingly unrelated elements as a result of coupling. Decoupling methods embrace relying on interfaces as a substitute of concrete implementations and occasion and callback-based indirection. We closely use each approaches when implementing gameplay techniques. These methods are additionally typically known as inversion of management.
  • Utilizing the knowledge of the group: We have now a workers of 10 full-time engineers and three technical managers with totally different specialties. Every challenge goes via an architectural evaluation on the outset the place the lead engineer presents to different members of the engineering group to get suggestions on the structure of key techniques. At this level, we additionally establish sure techniques that ought to be applied by a particular engineer who has experience in that space and is extra prone to keep away from widespread errors that may generate technical debt.

If you wish to be taught extra about how our course of can be just right for you, we’d love to attach. Contact us right here!