I reopened today the #peel project, left aside 3/4 month ago. I was a bit worried about opening the IDE because a lot of things have changed.
Indeed, during the development of Tuning Score, I didn’t do the same mistake as the oneS i did with peel.
When I’ve started peel, my ideas about the polymorph package, and therefore the architecture of the whole project, were really vague. Due to the lack of global view, I have developped a lot of things in peel, such as a custom camera rig, a custom project format in xml and the classes to manage it, etc, etc.
The approach was quite different for Tuning Score. From the start, the code specific to the game has been separated form the “core”. The core has given the polymorph package. It is full of virtual methods, and, excepts crucial stuff, the rest of the important methods and params are public or protected. For programmers, this means it can be easily overloaded.
While I was starting the refactoring on peel, the benefits became crystal clear: I needed to replace the previous xml parser class by the one of polymorph. But for peel, i need a custom structure of data. By creating a custom class “PeelObjectManager” that extends “polymorph::PObjectManager” and “polymorph::PXmlParser”, the code to parse the custom xml tags has been done in 30 minutes 🙂
I think it will take 30 to 40 hours to have peel on track again.
Some screenshots will pop-up very soon, and several new features in the package:
- sound spacialisation in pd
- camera rig configuration via xml
- objects parenting via xml
- graph engine, usable for state engine, etc., with 2d overlay
- there might be other things…