Skip navigation

I posted the following on the Card Kingdom development blog.

Along with the Combat Corner and Designer’s Den, I want these Tool Time posts to be about tool development, not just on Card Kingdom, but for general tool development. I want to discuss how to make everyone on the team’s life easier when dealing with an engine by making smart decisions about form and functionality.

I see myself moving toward the engine and tool development path and it’s something I enjoy doing; I like making things work. I can do, and have done, game-play programming, but it’s usually a very specific, one-off solution. Coming from a Software Engineering background, every problem I see, I want to solve using a general, well designed and architecturally sound solution that will solve all similarly typed problems. Reusable, flexible, maintainable, all the -able words that make good code great is something I strive for. I want to use these posts as a log of things I’ve learned from developing tools, from usability to implementation, and maybe even a trick or two.

I’m going to start off with a tool I’ve been working on for the past few weeks, the model viewer. This tool was requested by our artists so they can see what their models look like in the engine with all of the lighting and post-processing effects applied. One requirement that really made sense was to implement the model viewer with the same control scheme as Maya. Maya handles camera control by holding the ALT key and then left clicking to rotate the camera around it’s focus point; right click and hold to zoom in and out quickly, along with the mouse wheel up and down, but slower; and middle click to translate the camera parallel with the view plane. Having the controls be the same really helps the artists not have to learn a new control scheme. They have better things, more productive things, to do than relearn just how to rotate the camera around their model. It also helps me as it’s a successful and simple model to follow. I don’t have to spend time devising a scheme, prototyping, user testing, fixing, etc. I know it’s a sound control scheme and it’s something that is easily picked up and understood by any users of Maya.

The model viewer also helped me as I am replacing the current forward rendering system with deferred shading system (more on that in a later posts). It was really helpful to test the new lighting system and be able to move the camera around inside the scene. It helped immensely and was not it’s original purpose. Double use out of a single solution is a win in my book.