Polymorph weekly news #2
Just like last friday, here’s a little recap of what happened inside Polymorph during the week. For this episode, I interviewed Pieter Heremans, one of the core developer working on the Polymorph engine. I first met Pieter when he was part of Lab[au], but you probably also know him for his involvement in HSBXL, F/LAT and many more projects involving hacking and open source technologies.
During our discussion to prepare this post, I was curious of why they had chosen to go for Ogre 2.0 and how Pieter was seeing the development of the engine.
There is 4 concurrent versions of Ogre (1.9, 1.10, 2.0 and 2.1), but the dev team decided to go for the 2.0 as it’s right now reaching a stable state and also works on mobile platforms. This page from Ogre team helped make the decision. The “problem” though is that most of the examples and documentation available online are for versions 1.x, so one of Pieter’s task is to fill that gap, meaning, porting or creating new examples and providing good documentation to compile Ogre 2.0.
Last week Pieter had managed to compile it on Linux (Debian to be precise) and Android. This week, compilation worked on Windows 10. If you care to see how he did it, check out his report in the related issue on Bitbucket. When I left the conversation with him, he was going to have a try at MacOSX, although that could maybe more problematic. It’s worth noting also that although the compilation for Android was successful, meaning software was running and debug messages were flowing smoothly, the violet (violent?) color displayed on the screen could mean problems with the graphics engine. If Ogre uses OpenGL on Linux and Windows, it needs to use OpenGLES on Android, and there might still be some bugs or things to solve in that corner.
I then asked if Pieter was contributing back to the Ogre development and where or how he was making the documentation. So far, he has only done little changes to Ogre’s code to be able to compile, but does not exclude pushing back his findings later on. As for documentation, he uses a viva voce approach at first with the help of the issue tracker. His plan is to tell @frankiezafe how to compile Ogre with its verbal instructions and see where François might have trouble or where he might be missing some packages. Then they would write a more structured documentation together explaining the process.
I also asked him about the analogy between Openframeworks and the Polymorph Engine. And here Pieter is a little more skeptical. Openframeworks is a very immediate tool that allows to start coding and get a quick result. Ogre has a more managed approach and is responsible of doing the scene draw itself. It’s also bigger, more complex and uses a different way to get things rolling. So, apart from C++ knowledge, the transition between Openframeworks and Polymorph Engine will not be an easy one. There is a whole lot of different things to take into account. But, where the analogy works, is that Polymorph Engine will be a bundle of Ogre with other useful libraries, proposed as a package. Right now, compiling Ogre means compiling it from libraries installed on your system, while compiling the Polymorph Engine would be working from a folder where everything is put together.
One of the addition of the Polymorph Engine that Pieter is looking forward to is the the use of libPD (Pure-Data) inside the game engine. Apart from the fact that it would permit all sound manipulations that Pure-Data already proposes, which is very exiting in itself, Pieter hopes to be executing PD patches directly inside Ogre. As he puts it, this would open collaboration between game designers and sound engineers, allowing to integrate their work directly in the game making process, without needing to recode the patches. We could also imagine PD patches becoming a form of scripting language for Ogre itself.
Next week, @frankiezafe is back from his Blender teaching at iMAL, and the whole Polymorph dev team will be working together on implementing the first game, still known as PEEL, in the Polymorph Engine. This will be an important week. So stay tuned.