Some time ago I and Jim Munroe released an authoring system called Texture. The system was under development for several years as we spent a couple of hours here and there whenever we had the time.
I use a time tracking tool called Toggl to keep track of how long I've been doing various things, so I have relatively accurate statistics for how much time I've really spent working on Texture. The system has three major parts: the Writer that authors can use to create Texture games, the Reader which is the "engine" that plays those games, and the Public Library which is the repository of public works made with the system.
In total I've spent about 326 hours on the project. The summary is below:
Time (hours) | % of total | |
---|---|---|
Writer | 141 | 43% |
Public Library | 73 | 22% |
Prototyping | 50 | 15% |
Reader | 42 | 13% |
Project management | 20 | 6% |
326 |
Some notes about those figures:
- Prototyping is time spent on planning and making mockups and initial throwaway versions before deciding on the final design. We did a lot of trial-and-error iterations and test versions before starting to work on what became the final product.
- Project management is mainly emails and Skypeing with Jim to discuss and plan the project.
- Because of reusable code there's some overlap in many areas. Working on something that was needed for multiple areas is marked down somewhat arbitrarily in the statistics.
- I didn't start tracking time right at the beginning, so the prototyping figure is the most uncertain one. A total of 300-350 hours for the entire project should be about right.
Additionally, while I did all the programming work, these figures don't include Jim's contributions that total to about 250 hours. He did most of the system design and spent a lot of time on the community outreach, managing beta testers and writing demo games.
For me the main takeaway from these figures is that it takes a relatively short time to make a new system, but a lot of time to make a user-friendly tool for authoring games in that system. For example, two of my custom-engine games (Ex Nihilo and Ex Materia) were both practically one weekend projects from scratch, but building an editor for others to make similar games would take at least a month or two of full-time work.
Finally here's some statistics about the lines of code in each part of the system, excluding third party libraries. "Other" includes mostly helper scripts and server setup.
JavaScript | HTML | CSS | Other | Total | |
---|---|---|---|---|---|
Writer | 4051 | 1298 | 536 | 36 | 5921 |
Public Library | 1924 | 1268 | 208 | 47 | 3447 |
Reader | 964 | 135 | 499 | 0 | 1598 |
Other | 385 | 0 | 0 | 36 | 421 |
Total | 7324 | 2701 | 1243 | 119 | 11387 |