as every time around the New Year, I would like to briefly summarize the
current developments and plans regarding the Cafu Engine.
Entity Component System
Generally, the development of the Cafu Engine progresses steadily and
continuously, and the Entity Component System is still at the center of the
In 2014, we have been able to complete the transition of the DeathMatch
example game from the old, class-hierarchy based implementation to the new
Entity Component System.
This also involved many changes to the Cafu Engine core. In its entirety, this
was a complicated task, because many "specialties" that were "somehow" hacked
into the code before had to be implemented in a much different (and cleaner)
manner in the new code. Another large part of the changes involved the Map
Editor, which has undergone a large number of high-quality improvements in
order to reflect the new features brought by the Entity Component System.
In 2015, with the bulk of the efforts already achieved, our focus will be on
the finishing and polishing of the related details. For example, practical work
with the Map Editor will expose areas where the new functionality is not yet
properly accessible, some of the above mentioned specialties are in fact still
undone or need another revision, and most importantly, the new features of the
Component System must not only be implemented, but also be employed and
presented. Specifically, one of my very next tasks will be to revise and fix
the "moving entities" code, so that the player can actually ride on moving
platforms, in lifts, etc.
In short, there is still quite some work to accomplish, but all details are
looking very very well, and I'm very much looking forward to it.
You can see additional high-level considerations about previous related work in
. If you would like to follow the
Cafu development progress more closely, you can also register yourself to
watch the Cafu Git Repository
Bitbucket, or subscribe to the related activity feed
In the course of the last year, we have been asked several times about the Cafu
Engine licensing model. Currently, Cafu is dually licensed: both as
GNU General Public License
(GPLv3) and optionally under a custom, commercial license.
At this time, we're considering to release future versions of the Cafu Engine
under an even more liberal license, e.g. under the MIT or BSD license. However,
no decision has been made yet and will only be done in the course of 2015.
[UPDATE: Put under the MIT license
We will also take the opportunity to clarify and simplify the process of
contributing to the Cafu Engine, which should be as easy and straightforward as
possible, in the hope to attract more developers.
Also planned is a redesign of the primary website. The current website has
served us well for many years, but as new design aesthetics and web
technologies have changed the way how websites are built, I have been planning
to modernize it for a long time, e.g. to make it "responsive" so that it works
well on mobile devices, and to update and clean-up its contents.
This endeavor is complicated by the fact that we use several sub-systems that
are actually independent of each other (main www website, support forums,
documentation wiki, issue tracker, reference documentation), but should still
present themselves in a common, consistent theme as much as possible. However,
as always the Cafu Engine programming has higher priority than updates to the
website, so please don't expect results anytime soon!
Finally, another change that I would like to see happen is a modernization of
our DeathMatch example game assets, especially more recent and more detailed
game maps, models, textures, etc. I already have quite concrete ideas and plans
for how this can be achieved, but it is really still to early to say more about
it at this time.
I wish you all a lot of fun with the Cafu Engine, and above all that 2015 may
be a happy and peaceful year for everyone!