Last month of the year has started, time to report the progress of November.
I worked a lot on the general project configurations. I wrote a tool to automatically update the common files all projects share. Before I had to update every project manually when I wanted to update e.g. a dependency. Will save me much time and ensure configurations don't run apart.
On code side I only updated the project infrastructure to match the new configuration. But I added clockUtils to the GitHub repository for Vcpkg. This is a repository for Visual Studio projects to get current version of different open source libraries. Hope this will help to spread clockUtils.
m2etis got some nice improvements. I removed some occurences of threads where they weren't necessary and reused old threads. Haven't measured performance yet, but even if it's not faster at all, code is much better now. I also replace gflags by clock_argParser. Replacement was very easy and now it works on all officially supported platforms the same easy way.
A nice result of updating also m2etis' project configuration was that m2etis can be built for Android now, too. Haven't run an application really using it so far, but it compiles fine now. Another step forward to build i6engine for Android.
Cwizz' GUI was improved furthermore. Therefore I updated Qt to version 5.6. Now I can use automatic DPI scaling. This resolves most issues I had with Android. There still are some issues, but they're not as big as before. I hope I get everything solved within the next weeks so the open beta can start in early 2017.
Very good news for Elemental War: I finished all tasks I planned for the singleplayer alpha and sent it to some friends a week ago. Haven't got any feedback so far, but work goes on. I added some new improvements and graphics and started with the conceptual part for the multiplayer modes. The singleplayer was a first big step for me, the next will be the multiplayer alpha. I hope I'll get it done fast now.
As usual there were much more small pieces of work done, but I wanted to focus on the major parts. Next progress report might be a complete retrospection of 2016. Not sure about that. Maybe I'll also write two news for that.
October is finished and it was a great month.
clockUtils 1.1 is already finished, but I need to build and upload the linux packages before the official release will come. But GitHub is already updated and the download section contains the source package and the Windows prebuilt packages for Visual Studio 2013 and 2015, both in 32 and 64 bit as usual.
The most important changes are better ini parser capabilities to query some informations about the contained data, better socket performance and a new LockFreeQueue implementation in our container library. The full changelog can be found on the changelog page.
Already released this month was the SocketPerformanceChecker 0.9. I also have some local changes for it that aren't on GitHub yet. That's only stuff to make the whole toolchain support Visual Studio 2015. I'll update the repository soon, still working on some improvements there.
For i6engine I fixed some GUI related bugs I found during the work on Elemental War. It works now much better.
I also started the work on a new tool for i6engine called TakeControl. It willl allow to handle the synchronisation of spoken texts very easily. There is actually just a GUI prototype without any functionality, but it will go on.
The main menu GUI is mostly complete now and I fixed some more bugs. There are just a few bugfixes and tests missing for the internal singleplayer alpha.
September over, almost reached some big milestones. Lets see, what we have done this month.
I haven't done that much for i6engine, but it was important. Most games might use some kind of animated textures. Think of a 2D games using sprites. In my case I need for an unannounced game and for Elemental War, which will provide some animated cursors. So this month was focussed on the support for easy to use animation using i6engine's GUI API.
Cwizz' open beta is almost finished. Only some small tickets here and there are open and the GUI has to be reworked for a better scaling on different devices, especially with different DPI. This will take a while, but we will release Cwizz soon for Android, Windows and Linux. This first release will contain only German questions, but we will add English ones as soon as possible.
If you have cool question ideas, you can create own questions in the browser version of our QuestionManager created by Michael, that will go live tomorrow I hope. Have to test it and maybe fix bugs that might still be in there. I'll write a seperate news for this.
Elemental War made also some good progress. The singleplayer alpha is almost finished. Next week I'll get the textures for the new main menu, cursors and more. On code side just a few fixes and testing are missing. The singleplayer alpha will go to some friends to get feedback about gameplay. The three singleplayer modes Elemental War contains are completely integrated and only will be extended by some more content like more items, textures, objects and small features, but no big game changes anymore (except my testers will find something that has to be changed).
After this internal release the work on the multiplayer will begin. I already thought a lot about it and it will become really cool.
Besides those three projects I did a lot for our test infrastructure. I set up a continous integration framework a while ago and added many jobs and could already find some bugs in different projects. Not all are tested yet, but at least the most recent ones like i6engine, Cwizz, Elemental War and clockUtils provide many tests to be as save as possible.
That's all for now. I hope one of the next news will be the release news for Cwizz.
Wow, another month passed, time is running so fast. This month was focussed on our games. There were also small things for the libraries done, but nothing really interesting. But an important improvement this month was the start of the continous integration testing. I wrote a small framework for this to test all our projects. There are already some jobs for some projects and I already found bugs, mostly in the toolchain.
But now I'll come to the projects.
I couldn't get much done for clockUtils this month, but the good news is, that a new release is almost finished. Just one ticket left. I want to add a lock-free queue to the container library. After this, the new release will come. If nothing intervenes it will be finished in September. Cwizz already uses a 1.1 revision as it needs the new ini parser functionalities.
Cwizz got a complete graphics overhaul. I not just improved the layout but also the complete style. It looks much better now. Besides this I also fixed some bugs we found during testing. On Sunday the next closed beta version will be released. After this one just one more will come before the German open beta version will come. This version is scheduled for November, so it's not a long time until then.
Another interesting part for Cwizz is the browser version of our question creation tool. It's still in an early stage, but I hope Michael will get it done soon.
So, many things going around here.
Also Elemental War good a real boost. I finished all gameplay elements I wanted to add for the singleplayer alpha I'll start in the next months. There are still a few things left, mostly optimizations and a little content. But in general the singleplayer mode now is mostly finished. After the singleplayer alpha has started the next big step will be to add the multiplayer modes. So I think a release in 2017 is still possible.
As the last news were mostly for the libraries, the focus has a little changed. That's because the libraries are really good so far. I add the features I need to finish the games. And the games will come soon.
Hey again. Another month has passed and more goals have been reached although I was a little unproductive this month especially because of the heat. But nevertheless here the newest progress report.
clockUtils 1.1 makes really good progress. This month I got MinGW on Windows running. The trick was to use the mingw64 distribution as it supports std::thread. I had to perform some minor changes, but now it also compiles using MinGW. Besides this there aren't breaking news. I completed some other small tickets like the possibility to remove entries from ini files and added some asserts to check valid states in debug mode (e.g. during the unit tests).
As it still belongs to clockUtils, SocketPerformanceChecker is mentioned at this place again. Maybe I'll seperate it to an own project also on the homepage some time. SPC got a new statistic representing the throughput. I thought this might be more useful than the current durations as one can directly see now how many messages with a given size can be sent per second. Also the SPC now displays all results in form of a LineChart. Looks great so far in my opinion. Code for it already on GitHub.
i6engine came off badly this month. I didn't even write the news for i6engine 1.0.1 release although it is on GitHub for some weeks now and also on the homepage. There were several bugs I found during my work on Elemental War, so I decided to bring this update. Besides this I fixed another bug in the Splash screen on Windows as it wasn't always on top. Now it is. The other changes were things like integration tests now stopping itself automatically and removing lua code and added it as dependency instead.
m2etis now builds all its dependencies itself during call of cmake. But the major improvement was done for the performance. While it is still not as fast as I want it to be I could improve the performance by around 25%. That's good so far. The main problem now is the slow serialization. I think I'll either look for a faster solution than boost or write one myself for clockUtils.
Yeah, here I got many things done. I fixed all bugs I'm actually aware of and finished a lot of other tickets. These included some content like new monster abilities, but also new features and optimizations. Especially the new item system was started. It's nearly the last feature missing for the singleplayer alpha I want to start this year. Actually there are five feature tickets left and some other optimizations, content and test tickets I want to finish before the alpha. So I'm in time.
Another good message: An old colleague of mine who already worked with me on most of my old Gothic 2 modifications helps me with textures now. He creates the level textures for some of settings and also for new tower models. And for tower models I now also have a contact. So also the graphical side make progress now.
These were the breaking news. There would be more about Cwizz, but therefore I'll have to create the homepage first. But to spoil a little: I set up a concrete roadmap for the open beta of the German language version of Cwizz and it will comes this year!
Wow, the first half of the year is already over. In this time I got so many things done and the latest progresses you can see in this news.
You might have seen it already, I released clockUtils 1.0.0 this month. It's a big step as it is our first major release. I added some new features for that release like the possibility to perform a DNS lookup for our sockets or improved argument parsing. The complete changelog can be found here.
Since the release I started work on version 1.1. The core feature will be extended compiler support. I already added an official toolchain for clang on Linux. This already worked, but gtest for our unit tests wasn't built with clang but gcc instead, so that's changed now. Actually I try to get it built on Windows also with MinGW, but that's rather tricky as there isn't ONE distribution, but many different ones, and I haven't a version that works and supports std::thread. But I have a now trace, so maybe I get it done soon. The other feature for the next release will be some improvements for our ini parser. I added support to query all sections of a configuration file and for every section all available entries. I thought it might be useful, but hadn't a use case for this before I implemented it, as all entries we use in our projects are known in the project and we didn't need dynamic accessing. But just a few days after I implemented it I saw that it will ease the implementation of a feature for Cwizz.
Together with clockUtils 1.0.0 I tagged version 0.8.0 of my SocketPerformanceChecker on GitHub. I mention it here as I developed it as benchmark and compare tool for our sockets. The results are really good.
Meanwhile I also added support for Qt sockets and also for m2etis. m2etis isn't a socket implementation so it basically will always loose against them. But it is a very good possibility to profile m2etis and compare it to raw sockets. Actually it is really slow, but I haven't added performance optimizations now.
i6engine got also release 1.0.0 this month. Also this release was the first official one so far. I don't want to go in detail about the release here, all necessary informations can be found here.
Since the release I just did some small things like upgrading the dependencies (clockUtils, m2etis, CEGUI, boost, OpenAL Soft). As it was requested on Twitter, I also added a small gallery with some screenshots from the tools we provide. You can find it here.
Because I found some new bugs during my work on Elemental War I'm going to release an update to version 1.0.1 after this sprint, this means Sunday in a week, July 10th.
m2etis 0.5.0 hasn't made many progress so far, but the good thing is, that I started work on it again. I already profiled it using my new SocketPerformanceChecker and found some bottlenecks. I fixed some of them and have many other ideas how to improve the performance. So lets see, what I can get out of it.
And of course also Elemental War made some good progress. I did a lot of refactoring to improve the code quality. That took a while, but it's much easier now to implement new features, fix bugs and more. I also improved other elements like the presentation of stats of towers and opponents and added many new features.
This month I got a lot of different things done.
While the code for clockUtils 1.0 was already finished, a logo, an icon and a small performance tool were missing. I'll get the logo and icon tomorrow as I can't create them myself, but I started writing the performance tool. The basic framework is already finished and six different socket implementations are available to be tested. Although there are still some crashes and it wasn't tested yet on Linux the results are really nice: clockUtils tcp async beats boost::asio tcp socket and both modes of clockUtils' udp socket beat boost::asio udp socket. I still have to test a bit and fix the remaining bugs, but I think the tendency is clear.
The complete code for the performance tool can be seen in the official GitHub repository at https://github.com/ClockworkOrigins/SocketPerformanceChecker.
The release of clockUtils 1.0 is scheduled for Sunday.
i6engine also got a lot of attention. I fixed all remaining bugs and added the last features for the upcoming release of i6engine 1.0.
The ParticleEditor now allows to define a box to visualize the size of a particle. This will help to get a good scale for new particles so there is no need to rescale them ingame.
While there are already a lot of plugin interfaces for our level editor, I now added the possibility to write plugins to insert own types of objects. As an example plugin I wrote one to insert NPCs for the RPG module.
During the work on the new GUI of Elemental War I found out that it wasn't able to set the default font to be used by the GUI. This option is now available.
And the last big feature was a way to be able to scale the size of a MovableText depending on the distance between camera and text. Therefore a callback can be provided which is called and shall determine the new size.
Actually there are just four tickets left. Three of them are for the logo, the icon and two textures that have to be replaced before release while the last one ist for the tutorials page on the homepage.
The release of i6engine 1.0 is scheduled for Sunday next week.
Elemental War now is public. I unlocked the homepage and uploaded a first screenshot with the new GUI being implemented. Beside this I added a lot of new stuff and fixed many bugs. The progress is really good. The only problem is that I still need some graphics guy, but I hope I'll find someone in the near future.
That's all for now, but you'll read me soon again as there are two upcoming releases within the next two weeks.
Today I opened the homepage for Elemental War, a tower defense game.
It will provide different single- and multiplayer modes and is a lot of fun. While the gameplay for the singleplayer is almost finished, the multiplayer wasn't touched yet. Also most of the graphics still have to be done. Nevertheless I also added a pre-alpha screenshot to the gallery to give you a first impression.
The next milestone in Elemental War's development is a singleplayer alpha for some friends to evaluate whether it is fun for others too or not and what shall be improved. I hope to get it done within the next two months.