Featured Projects

Xentu Game Engine

A slim, powerful, platform agnostic and easy to learn 2D game engine.

Xentu Website Progress

Great news! I am making lots of progress on the Xentu game engine website, and should be setting it live this Wednesday. It’s been consuming a lot of development time from the last three weeks. So it’s such a relief to be able to reach this milestone.

The website will be a home for people discovering the Xentu game engine for the first time. With outbound links to relevant pages (GitHub, Gitter etc…). A download portal for the Software Development Kit. An in-depth documentation hub to aid developers learn the engine. And a few other cool features that i’ll not go into just yet.

It’s still obviously going to be a work in progress, with some incomplete features. But that’s just unavoidable so early into the project. With it at-least online, I’ll finally be able to start building some actual hype and interest around the project.

Xentu Website Preview (On Mobile)

Facing Challenges

Building the site has been a bit more complicated than normal. Here is an idea of the hostile set of criteria I gave myself (try not to laugh);

  • The site needs to allow me to fully modify the design easily.
  • Speed matters more than usual. Scale-ability without destroying my bank account would be nice.
  • It needs to be low-maintenance, so that I can concentrate on the engine code and docs.
  • I need to be able to carry out website backup’s/restoration’s without aid from my web host.
  • All code I use, needs to not interfere with the licensing of the engine.
  • I wish to eventually translate the site into other languages.

Obviously I had an uphill battle to deal with, but regardless, the above needed to be adhered to in order satisfy the needs of the project. So first off the platform had to be picked.

I use WordPress for the Kodaloid website, so that was my first consideration as WordPress could work for the above list. But it’s a very lazy pick. and I almost fell for it!

Seeing as I know how easy it is to fall into the trap, and can imagine other people making the same mistake. Here is a breakdown of why I, and you should avoid WordPress when doing a big project that requires such stringent constraints:

I would need to build a custom theme.

I do this often for projects, as a lot of functionality comes out of the box. But the major problem with that as it is incredibly time consuming. Regardless of how minimal your idea is, a WordPress theme has to satisfy a minimal requirement set (i.e. be able to work as a blog, and not screw up built in styles). So for example at my workplace we build “boilerplate” themes to offset the time cost. And being honest even after years working on them, we still find bugs and performance issues.

WordPress is ideal for turning ideas into fruition fast, and that works for many situations (especially when time equals money). But for this project I just need something more reliable long-term.

Speed Concerns.

Plug-in’s in WordPress usually come with a whole load of bloat, using excessive, none optimised JavaScript, CSS and class name’s (yes that is a problem that frustrates me to no end). For a blog like this website, that’s fine as everything can be mitigated with some clever tricks. But for the Xentu website I am not willing to make those compromises. Shoddy code will only make the project look unprofessional.

Backup & Restoration

WordPress dos not have a great track record for providing adequate backup control. This is mostly because of the way WordPress stores content. People abuse the database spec frequently, so there is no plugin out there that can ever guarantee 100% risk free backups. Because it’s near impossible to predict what needs doing.

At work we mitigate this by using the cPanel backup system instead, which is a preferred method in my opinion, and something I will be using myself. However the system does backup everything, including WordPress core files etc… meaning it can be slower, and more manual than I’d like.

Another thing that’s niggling at me is that I feel it’s important to keep historical backups. Xentu is a long term project. So there will likely be a historical president, where having the ability to look back on what was said in the past may be critical. Overthinking a touch? absolutely. But then again I would rather over plan, than be caught unprepared.

Website Maintenance

I will need to login to the system, and update plugins frequently. I can’t tell you how much I don’t want to have to do that for more than one site. It’s a pain in the ass!

A good example is something that happened today. As I was writing this article, I got a message from my boss telling me one of the WordPress site’s has been hacked. Apparently over 100 database injection attempts had been recorded today. We naturally did all of our usual routine when this happens, and discovered that a 3rd party plugin had exposed a security vulnerability, allowing a hacker to break in because the client had not updated their plugins in two weeks.

We have hundreds of sites in our care, so luckily we are able to jump on things like that (yes even on a Sunday like today), and deal with the issue immediately as we have tools for such a thing. But this is the kind of risk you take when running a site on WordPress.

So what did I pick?

In the end I decided to build a custom solution, which is similar to how the Pico web framework works. Having no ties to a database or an email server means it’s as bullet proof as I can make it, so security and maintenance will be a breeze.

My solution does divert a lot from what Pico does though. For example I use underscores for the future multi-lingual support. Pages use plain old Twig from Symfony as the code is cleaner. And the documentation is all written in Markdown which makes my life so much easier.

Doing things myself means that I can control the design, so I’ve built the site using my favourite new framework named Bulma. It’s fast, lightweight, and far more modern than the ageing Bootstrap.

The solution is super Git friendly too, so I can make edits, backups, plus much more all through repositories.

Finally as it is all my own code, it all satisfies the MIT license, so this all covers the criteria I originally set-out for the project.

Wrapping Up

So my original plan was to put the site live this weekend, however there is some final work that needs to take place before I can do that, such as finishing off artwork etc… Though some plans have recently changed that will have a massive effect on the project as a whole. And those have meant I have pushed things back a little too.

My pixel art is going well by the way. And I’ll be including some of it on the Xentu website like I talked about in the previous blog post. For now thanks for reading. This week is a busy one for the project, so I look forward to sharing more of my journey.

Koda