Skip to content
Denis Zdorovtsov edited this page Aug 12, 2017 · 9 revisions

The FlappyTools is a project generator. And the main purpose of a project generator is producing of projects for different platforms, IDE's and build environments to allow easy cross-platform build of a source base. The FlappyTools are developed as a part of FlappyEngine project, but it's independent from FlappyEngine and can be used in other applications.

In base of FlappyTools lies idea of templates. The first version of FlappyTools already contains variety of template projects for different platforms. Once you have written C++ code for one platform, you can order FlappyTools generate projects for another platform and your source files will be automatically attached to projects for Android Studio, XCode, Visual Studio and so on. Of course, there is not any magic behind this. You still have to consider which compilers will be used for compilation of your code and other factors. However, mechanism of project generation can ease your life, making your hands free of manual management of several projects.

About references and similar mechanisms. So, you can look at any other game engines (Unity3d, Unreal, etc.) , usually they allow you to choose the platform for building the project. Usually you can't add desired platform for building, but FlappyTools resolves this problem, you can easily create your own templates for whichever platform you want. Also you can modify existing templates. The whole mechanism of generation is designed to be clear, simple and flexible.

State of the project

About current state of the project. So, as you can see, it has number "too" in the project name. Actually, it's second implementation of the idea. The first version was implemented using Python, it actually can compile project for different platforms, including iOS, Android, emscripten (Web), Qt and CMake. First implementation proofs the idea described above. But, current projec supports only CMake building so far. In closest future I have no plans to extend number of supported platforms because all this stuff requires support and free time which I don't have right now. The main purpose of FlappyTools on current step is building of unit tests for FlappyEngine.

Other applications of generator

About other applications of the generator. I'll tell a short story about possible usage of the generator. One year ago I worked as a system programmer. I had just finished the university and it was my first work. I wrote firmwares for welding, balancing and press machines. I needed to debug all those firmwares and it was better for safety and speed to do all debugging in "simulator". The idea was to make the most of program as cross-platform module, write software simulators for all devices like LCD displays, motors, etc.. Thus, I had two projects, Qt and Eclipse, the most of work was made in Qt, and only final debugging and testing was made using in-chip debugging. I needed to support both projects constantly and it took a big part of my working time. It would be much more convenient to make these tasks automatically and FlappyTools is likely to fit for this purpose.

Clone this wiki locally