So far, recording and editing these Love2D YouTube tutorials is fun, but it sucks up a good amount of time. This is especially true when you are doing coding videos and you aren’t exactly sure what your final product is going to be. I’ve found what seems to work best is sitting down, figuring out what I want the episode to be about, writing the code for it and making sure it works, then re-creating that while recording. This essentially means re-writing all the code I just wrote again, and sometimes I’ll change my mind in an episode and write parts of the code in a completely different way. It’s a lot of effort, but it is nice to have a “released product” video or two by the end of the day. I have even finished several episodes and uploaded them only to rethink what I had done and scrapping them. Last week, I also put the code for all the episodes I’ve created to date to a github repository. That took a decent amount of time as I didn’t do a great job of keeping zips of the code for each of the videos, so I had to recreate several of them from scratch. I also improved my VSCode plugin for Love2D by adding the ability to open a webpage for the love2d function the cursor is on. My journey with Love2D has been enjoyable as it is a different beast from Unity 3d, but I will be working on some C# goodness this week as I will try to participate in the 7-day rogue-like challenge 2017. We’ll see how that goes…

I spent last week knee-deep in Love2D recording video tutorials and learning more about the framework. I ended up with 7 more videos that are now scheduled for release. As a result, my VR asteroid prototype lay dormant all last week as did my ‘side project’. I found out this weekend that Defold is releasing a “pre-release” 2.0 version of their IDE. That will probably be yet another week-long distraction. My plan is to investigate the new Defold IDE and get some work done on the VR Asteroids prototype as well. Add my continued interest in GoDot Engine V3.0 and it becomes a busy week of coding, learning, and teaching. Then there is the new Pixelbyte work PC build and whether to go with Skylake or Ryzen…

3rd Edition of programming in Lua. The 4th edition is also available .

I’ve been on a mission lately to find something to use for game development other than Unity3D. Don’t get me wrong. I enjoy Unity development and C# is one of my favorite languages, but there are a few things that I don’t like about Unity. More than that though is the desire to learn something new. I decided to check out alternative game engines that use Lua (another of my favorite languages).  What I’m looking for is an engine that gives me at a minimum support for building binaries for: Windows, MacOS, Android, iOS (bonus points for Html5 and Linux).  Defold, Corona SDK, and Love2D were my first considerations. I’ve known about them for some time, but hadn’t taken the time to mess with them.

Lua Game Engines (the big boys)

Windows DesktopMacOSXLinuxAndroidiOSHTML5
Love2DyesyesyesyesyesYes with love.js (Not up to date with current Love2D version)
Defoldyesyesyesyesyesyes
Corona SDKyesyesnoyesyesno

Below are just a few things I liked/disliked about each of the engines. Note that these aren’t exhaustive lists by any means and are definitely missing things as I have not yet delved as deeply into any of them as I plan to.

Defold

The Good:

  • Component based
  • Nice message-passing system to pass data between GameObjects
  • WYSIWYG editor that does some of the janitorial work for you
  • New V2 editor in development that looks really nice
  • 3D is supported and there are plans to improve it
  • WYSIWYG particle system editor

The Bad:

  • Joystick support isn’t very good. At this point XBOX360 controllers are all that’s supported on Windows :/
  • The IDE is basically a customized version of Eclipse which I do not enjoy using at all

Corona SDK

The Good:

  • Very quick iteration time. You write code, save the file, and your changes are shown in a running project almost instantly.
  • Support for ‘instant’ development on target devices as well (haven’t tested this)

The Bad:

  • No 3D
  • The weakest cross-platform support
  • Just a few Windows-based joysticks supported (XBOX one, 360, etc)

Love2D

The Good:

  • Uses SDL under the hood for great cross-platform support
  • Strong community and active forums
  • Because of SDL, the joystick support blows the other two out of the water
  • Very quick to get something up and running

The bad:

  • Some Love2D library developers think it is funny to name their libraries with suggestive names (because the framework is called “Love” 2D). That’s immature and frankly, it is somewhat of a turn off.
  • Doesn’t provide and WYSIWYG tools and you must do all the lower level plumbing code yourself. Screen scaling, cameras, sprite batching, particle systems, etc.
  • No official 3D support

I have a side project in mind involving up to 4 simultaneous players which means joysticks are a must. I need joystick support. Good joystick support, and if you read anything above, you’ll know that Love2D has the others beat by a mile in this category. With Love2D there is even a built-in function to load a special joystick mapping file (courtesy of SDL) which describes any joysticks that are not supported by default. Very nice. So with that in mind, I decided to begin trekking dont the Love2D path to see what kind of progress I could make. I’ve created a few tutorial videos on Love2D the first of which can be found here. Depending on when you read this, there may be only one, but rest assured, there will be more. I’m enjoying using Lua to create games with, but I’m still not ready to jump the Unity3D ship completely. For now, the Lua-based game engines will be my side projects while my main projects will be Unity3d.