Gregory's Software and Stuff

DevLog May 2019: CCAnimationEditor and Other Projects

Posted on 2019-05-27

As mentioned in the last entry, I am working on an animation editor for CrossCode called CCAnimationEditor. In April this project got put on hold because I ran into a few walls that I initially could not figure out how to get through. Now the project is no longer on hold and I have managed to get through those walls, but the project has been going at a rather slow pace since there is less to work on. I would say it's about 90% done and the first beta version should be released on May 31, but I'm not sure about that since I also have an essay due in 2 days.

The one of the challenges in development was the file format. All of the properties for the animations were stored in a grouped format, for example here is an excerpt of the player animation file:

This made programming the save and load routines to be a bit difficult, but I like a good challenge. I still haven't tested how well the output from editor works in the game, but I'm sure there wont be any problems.

The other problem was how to editor's GUI was programmed, I used MetroFramework, an extension of WinForms to make the GUI. The controls for editing the properties were auto-generated based on the objects defined in the program using an array of labels and input controls for the interface. While this worked fine for most things, when it got to making dynamic arrays there was a problem since the entire array and interface would have to be re-generated every time the array was resized and it would also tend to clutter the interface. Eventually I managed to get around that by having the array editor on a separate page:

There are also a bunch of other limitations currently in the current version of the editor, including:

All of these limitations will be resolved (or at least attempted to be resolved) once the program is out beta. Anyways, that's all for this month. I will make another post later this week about the status of CCAnimationEditor and wether it is ready or not.