Engineering at Havok®

Have you ever wondered what type of technical challenges the engineers in Havok work on? We have polled our engineers from development, developer-relations and dev-ops for a sample of the problems they work on each day. If these are the types of challenges you would like to solve, then we would like to hear from you!

engineeringVS

Here are the types of challenges we solve at Havok:

  • Devise an animation compression system which balances asset size, lossiness, runtime decompression speed and memory usage, as well as ease-of-use for artists, integration for programmers and ease-of-profiling for everyone
  • Build a system which allows any engineer in any Havok office to compile and run their code on any one of over a dozen completely different hardware platforms, checking for errors and testing performance without making them leave their desk or spend weeks poring through manuals and whitepapers
  • Implement a wind dynamics model for cloth simulation which satisfies the performance requirements of the most demanding clients, and design the interface and parameters flexible enough to be useful, but limited enough to be intuitive to a designer
  • Write the visualizer for a complex engine feature which lets clients debug their own performance spikes and capture profiles and glitches. Identify potential bottlenecks before they show up in-game, and decide what to choose to display to alert artists and designers to the dangers
  • Write a generic data saving/loading system which works cross-platform. Choose how to write one which allows for in-place, zero copy, zero parse loading. Future-proof it to work for the next generation of hardware
  • Wrap arbitrarily large asset geometries in structures that are efficient both in terms of memory size and runtime query speed, as well as being flexible enough to suit the requirements of any game genre, from FPS to MMO
  • Provide control over physics level-of-detail to the user to ensure that critical items in the game world behave precisely during user interaction, but non-gameplay debris-like items sacrifice accuracy for super-fast simulation
  • Provide robustness to systems which may have extreme or impossible real-world interpretations , such as solid objects spawning inside each other, capes of characters moving at superhuman speeds or vehicle models accurate enough to smash and roll realistically, yet controllable enough to provide all the fun the player needs
  • Take arbitrary graphics assets, with gaps, splinters, T-junctions and overlaps, and process them to produce geometry suitable for navigation mesh generation, hierarchical fracturing and deformation simulation
  • Write an automatic garbage collector which sacrifices academic generality and exploits real-world knowledge of client use cases to perform optimally in a game context
  • Develop a powerful and versatile multi-platform rendering engine suitable for all types of games and capable of rendering extremely complex scenes at smooth frame rates, subdividing and streaming large worlds while managing resources with complex inter-dependencies

hat