Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
September 20, 2021
arrowPress Releases
If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Design Tool Programmers Have No Excuses Any More

by Borut Pfeifer on 05/27/09 05:50:00 pm   Expert Blogs

2 comments Share on Twitter    RSS

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


Design tuning tools have long suffered in their usability & workflow. We've finally reached a point where art tools & pipelines have common best practices, but design tools often languish for lack of attention.

Well, we live in 2009 folks. It just doesn't have to be that way anymore. The kind of tools I'm talking about are those that designers use to manipulate values related to game objects.

Even with only 10-20 variables per object, with many types of objects, you quickly have to tune thousands of variables. It can be quite time consuming to manage that kind of complexity. Making improvements to this kind of workflow can make a designer many, many times more productive.

For starters, C# provides anyone with a decent background in C++ a much easier, faster method of creating windows interfaces. I'm a big fan of using C++ whenever possible, because of my own expertise & speed in it, but I also remember the days of coding windows GUIs using the straight up Win32 API. We've come a long way, baby.

What takes the cake though is the ease with which you can add two major features to a design tool - Perforce integration and Excel import/export. Using open source and freely available modules, it's a snap. Best of all, if your design tools aren't going to be released, you don't even need to worry about any potential open source license issues.

P4.Net API - an API accesible through C# that allows you to create changelists, add files, submit them, etc. Your design data can get checked out of source control as soon as a designer starts making changes in the tool, then saved to disk automatically, and checked in at the push of a single button.

It may only save designers 30 seconds every time they change some data, but it's very quick to add (on the order of 25-50 lines of code), and it's 30 seconds *every time* they do that. Those seconds add up.

You can read more about the P4.Net here:

You can download source & binaries for it here:

ExcelPackage API - Even if you have a sweet user interface for tuning a single object, sliders and knobs galore, it's very useful to see the data for all objects all together in a different format. Instead of tuning one object to perfection, you can balance multiple objects against each other.

Designers often ask for this type of functionality - if they're not ignored, the data is often just spit out in a text file that can then be loaded into Excel with no formatting. But with ExcelPackage, it takes practically no more time to save out a nicely formmated .xlsx complete with cell styles and multiple worksheets (which you couldn't have done just exporting to text).

Excel Package allows you to create worksheets, add cell data and formulas, format cell styles, and save them. Then a designer can compare values in Excel, tweak them as they see fit to balance together, and then you can import the data back in. For large sets of data, this can be a huge workflow boost.

You can read more about ExcelPackage here:

You can download the binaries and source for it here:

It's worth mentioning that using worksheet styles does take a small trick (detailed here: Take a worksheet that uses all the styles you need, save out the .xlsx, and add a .zip extention (eg.

Open up the zip file and find the styles.xml file under the xl folder. Save that somewhere and then after you create the ExcelPackage object in code, call excelPackageVariable.Workbook.StylesXml.Load(filename). Now you can refer to styles in code by the names you used when creating them in Excel.

Within a matter of hours, using your design tools can be that much easier. No excuses!


Related Jobs

Mountaintop Studios
Mountaintop Studios — San Francisco, California, United States

Engineering Manager
Mountaintop Studios
Mountaintop Studios — San Francisco, California, United States

Senior Engine/Systems Engineer
Mountaintop Studios
Mountaintop Studios — San Francisco, California, United States

Senior Gameplay Engineer
Mountaintop Studios
Mountaintop Studios — San Francisco, California, United States

Data Engineer

Loading Comments

loader image