Category: Development

All my development related posts. Programming, graphics etc.

Lua-based Game Engines

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.

Posted in Development Tagged with: ,

Game Development discouragement and what to do about it

I’ve been working on my asteroids VR game which has changed shape a couple of times already. Google has now opened the submission of Daydream apps to all developers so now we’re seeing more Daydream apps come online every day. My strategy was to get something done and released to Daydream before a glut of VR games saturated the store.

An idea for one of the scenarios in the game. A thief ship.

I still might be able to accomplish that, but I’m currently having difficulty as to what this VR game should actually be. What is the core game play mechanic? What are the rewards? Should there be locked scenarios? What kind of scenarios should there be? What should the user interface look like in VR? These are just a few of the numerous questions that have plagued me during this project. Trying find an answer to each of these and put it into code can at times be a long process. Even after you finish implementing something it doesn’t feel like you have accomplished much.

“If I could only code faster.”

“If only I had a better idea of how to implement feature A.”

“If I had half the talent of [big name game developer] I could already have this done.”

These are a few of the things that have popped into my head at times.  Here is the deal. Game development is hard. The ideas may come pretty easily and coding up a prototype to test the idea might not take too long. However, once you’ve settled on an idea and begin to tackle coding all the other stuff (user interface, save/load system, upgrades, rewards, in-app purchasing, web-site design, checks to make sure a user doesn’t crash your game), you begin to feel the weight of it all. As a single-person indie studio, you have to do all these things yourself not to mention sound design, music, marketing, building, packaging and releasing the game to x platforms.  I don’t care who you are. That’s a lot of stuff for one person to do. What’s more is you also have to resign yourself to not expect much (or anything) in terms of response to your game once it comes out. There are just so many games on all the stores now. Many of them free to play, but not all good. Most are junk, but it doesn’t matter because in this age of plentiful games, marketing is king. If you don’t have serious money to spend on it, you probably won’t get very far.  As a result, implementation of the answers you come up with to these questions that come up can become quite a slog.

Experiencing this ebb and flow of motivation and discouragement on whatever ‘main’ project I happen to be working on, I’ve come up with a schedule for my week. It’s designed to not hold me to that slog all day every day. I get breaks from the main project to go and create prototypes of other game ideas, etc. It also includes some production of programming tutorials as well as steaming game programming, and posting to this blog weekly. You’ll hear more about these other endeavors as they manifest. Until then. Try to stay motivated.

Posted in Blog, Development Tagged with:

My current VR plans plus a new game

It has been many months since my last entry here. I’m going to try to do a better job of being more consistent … maybe.  Well since then, “The Seed” interactive fiction experiment took a lot longer than I expected, and it’s still not done. I hope to return to it and finish what I started. I may work on it in parallel with some of my other projects. My main project right now is a Google Daydream VR app in which you operate a gun turret to shoot and mine asteroids, protect your base (which is located on an asteroid) from rogue factions. I have a very rough prototype working and hope to have something more to show in the next few months.

I think the timing for releasing a Daydream app is critical since the market is currently tiny compared to the current glut of mobile games. I considered (and still am) obtaining an HTC Vive, but at this time I think it is a bit too niche. Plus I wanted to get my feet wet with something that I feel might have a wider audience. We’ll see.

I saw a video of an excellent talk at GDC recently that caused me to detour briefly from the VR stuff to revisit one of my older games. I just finished a revamp of PixiCubes done specifically for Christmas. I’ve never tried releasing a holiday-specific game before so I’m interested to see if it goes anywhere. Of course, there is that giant hurdle that all indie games have to overcome, discoverability. I still haven’t figured that one out. If you’re interested in some Christmas picture puzzles, check out PixiCubes: Christmas Edition.

It’s currently available for PC,Mac, Android, and hopefully soon, iOS. I just submitted it to Apple for approval yesterday so we’ll see.

Posted in Blog, Development
Social media & sharing icons powered by UltimatelySocial