IndieZen Dev Blog, Dec 2007
by Tony Richards · 01/03/2008 (7:28 pm) · 0 comments
Yes yes, I know it's already January, but I took a couple of weekends off for the holidays and I still wanted to post my December .plan.
The past few weeks I've been working on the IndieZen core C++ plugin framework. I've finished two complete iterations and I'm pleased with the results, meeting most of my requirements. There will eventually need to be at least one more iteration to clean up a few minor hacks, but that can wait until later.
Now that I've finished the core C++ plugin system, then next step is to improve the integration between the Equinox and IndieZen frameworks.
In case you don't know, Equinox is the Eclipse Java equivalent to the IndieZen C++ Plugins framework.
I've finished the first iteration of this integration already but I didn't really like the results. It was difficult to maintain and wasn't very flexible. I aim to improve (but not perfect) the flexibility, but the maintainability will be significantly improved from the previous iteration.
For starters, there are three packages. Core, Modeling and OpenGL.
org.indiezen.core contains most of the core interfaces. For now I'm only including the I_RenderingCanvas, I_RenderingView, I_KeyInputProvider and I_AnalogInputProvider interfaces as part of the open source implementation. Others will follow as I determine if they need to be open source or not.
org.indiezen.modeling contains the modeling interfaces and all of the native (JNI) proxies to go to the C++ framework. Quite likely most of this will remain closed source and I'll create a seperate com.indiezen.modeling package, but enough of it will be open source to allow others to create additional plugins and implementations.
org.indiezen.opengl contains the OpenGL native JNI proxies to go to the C++ framework. For now I cannot support DirectX because of the amount of code that would require to integrate with Eclipse. It won't be impossible but at the moment since OpenGL is supported on all target platforms then I'm happy to just stick with that. All of this will eventually be open source.
Each Java package also has a native JNI library associated with it. These are jniIZF for the core IndieZen framework, jniIZM for IndieZen modeling framework and jniIZOGL for the native OpenGL implementation.
Over the course of the next month I expect to complete the second iteration (the first was closed source, this iteration I'll only be working on the portions that will be open source).
I'll also complete my decision on which build system to use. I'm leaning towards Jam, although I'm still considering SCons. Once I make this decision it shouldn't take me more than a few days to get everything updated for cross-platform use.
I now have my iMac with OS X. My new Linux / Windows dual boot high-end PC is here and mostly put together, except I ordered the wrong CPU fan and the replacement probably won't be here until Tuesday.
Once my new computer is together (which I'll lose a few days since I'm itching to play some of the new recent games I've purchased on my new SLI 8800 GTX!!) then I'll get Windows and Linux installed on it and I'll make sure everything gets ported to Linux and Mac.
At the end of this iteration (subject to change) I expect to have a redistributable version of IndieZen Game Studio for Mac, Windows and Linux with several plugins. At a minimum I'll redistribute the Torque Script Editor (sans debugger), the .OBJ importer and the OpenGL model viewer. I may also re-distribute some of the yet unintegrated tools such as the GLSL shader editor and possibly the beginnings of a terrain editor.
If I have time I'll include an alpha version of the 3d modeling plugin... just remember that this plugin will not be Open Source as it will be the bread and butter that helps me to fund this project. I still need to have it tested so I'll eventually distribute free alpha / beta versions with time-restrictions on the use, but rewards for people who actually help test it (such as a free or reduced price copy).
If you're interested in contributing, the Torque Script Editor needs the debugger integration to be finished, but that requires Java, Eclipse and significant Torque knowledge.
I also need help coming up with the terrain editor, which will primarily be in C++.
Any takers?
Anyways, last month showed some excellent progress and I hope this next month is as fruitful. Wish me luck!
Happy Torquing.
The past few weeks I've been working on the IndieZen core C++ plugin framework. I've finished two complete iterations and I'm pleased with the results, meeting most of my requirements. There will eventually need to be at least one more iteration to clean up a few minor hacks, but that can wait until later.
Now that I've finished the core C++ plugin system, then next step is to improve the integration between the Equinox and IndieZen frameworks.
In case you don't know, Equinox is the Eclipse Java equivalent to the IndieZen C++ Plugins framework.
I've finished the first iteration of this integration already but I didn't really like the results. It was difficult to maintain and wasn't very flexible. I aim to improve (but not perfect) the flexibility, but the maintainability will be significantly improved from the previous iteration.
For starters, there are three packages. Core, Modeling and OpenGL.
org.indiezen.core contains most of the core interfaces. For now I'm only including the I_RenderingCanvas, I_RenderingView, I_KeyInputProvider and I_AnalogInputProvider interfaces as part of the open source implementation. Others will follow as I determine if they need to be open source or not.
org.indiezen.modeling contains the modeling interfaces and all of the native (JNI) proxies to go to the C++ framework. Quite likely most of this will remain closed source and I'll create a seperate com.indiezen.modeling package, but enough of it will be open source to allow others to create additional plugins and implementations.
org.indiezen.opengl contains the OpenGL native JNI proxies to go to the C++ framework. For now I cannot support DirectX because of the amount of code that would require to integrate with Eclipse. It won't be impossible but at the moment since OpenGL is supported on all target platforms then I'm happy to just stick with that. All of this will eventually be open source.
Each Java package also has a native JNI library associated with it. These are jniIZF for the core IndieZen framework, jniIZM for IndieZen modeling framework and jniIZOGL for the native OpenGL implementation.
Over the course of the next month I expect to complete the second iteration (the first was closed source, this iteration I'll only be working on the portions that will be open source).
I'll also complete my decision on which build system to use. I'm leaning towards Jam, although I'm still considering SCons. Once I make this decision it shouldn't take me more than a few days to get everything updated for cross-platform use.
I now have my iMac with OS X. My new Linux / Windows dual boot high-end PC is here and mostly put together, except I ordered the wrong CPU fan and the replacement probably won't be here until Tuesday.
Once my new computer is together (which I'll lose a few days since I'm itching to play some of the new recent games I've purchased on my new SLI 8800 GTX!!) then I'll get Windows and Linux installed on it and I'll make sure everything gets ported to Linux and Mac.
At the end of this iteration (subject to change) I expect to have a redistributable version of IndieZen Game Studio for Mac, Windows and Linux with several plugins. At a minimum I'll redistribute the Torque Script Editor (sans debugger), the .OBJ importer and the OpenGL model viewer. I may also re-distribute some of the yet unintegrated tools such as the GLSL shader editor and possibly the beginnings of a terrain editor.
If I have time I'll include an alpha version of the 3d modeling plugin... just remember that this plugin will not be Open Source as it will be the bread and butter that helps me to fund this project. I still need to have it tested so I'll eventually distribute free alpha / beta versions with time-restrictions on the use, but rewards for people who actually help test it (such as a free or reduced price copy).
If you're interested in contributing, the Torque Script Editor needs the debugger integration to be finished, but that requires Java, Eclipse and significant Torque knowledge.
I also need help coming up with the terrain editor, which will primarily be in C++.
Any takers?
Anyways, last month showed some excellent progress and I hope this next month is as fruitful. Wish me luck!
Happy Torquing.
About the author
I am the founder of IndieZen.org, a website dedicated to the Indie 2.0 Revolution where a number of Indie game development studios and individuals collaborate and share a suite of custom built open source game development tools and middleware.
