Love2d vs Unity3d

Posted in Tutorials

Comparing Love2d and Unity3d is a bit like comparing apples to oranges, but I've had a lot of hits on my blog searching for a comparison. I feel bad that that's not what I wrote. So I'm going to go ahead and write a quick comparison here.

Love2d is a small 2D framework for games intended to run on Windows, Mac, or Linux computers. It is completely free and open-source. There are no catches and no up-sells.

Unity3d is a big 3D engine with tools and editors intended to run on just about anything -- desktops, tablets, phones, etc. It is big and expensive.

So which one is right for my game?

If your game is 3D, then you should go with Unity or (if you aren't interested in building games for phones) CryENGINE or Unreal. Surprisingly, both CryENGINE and Unreal are cheaper to license than Unity3d Pro. Unreal, with it's awesome feature set, is completely free until you use it to make more than $3000.

I'd be remiss if I didn't discourage 3D game creation for newbies. If you are new to programming or game design, you should start by playing around with 2D game creation. Game creation can be a bit heavy on math. You'll need to know vectors, trigonometry, etc. 2D will be simpler. That said, with enough time and determination you can do whatever you put your mind to. So carry on.

If you're still reading this, I'm assuming that you are new to game development and you have an idea for a 2D game. So far you've researched some engines and some languages. Good start! In your research you stumbled across Love2d and the extremely popular Unity3d. Love2d is a dedicated 2d engine with some very limited 3d features (as of version 0.9.0). Unity3d is a 3d engine with fantastic 2d support. They are both capable of running basically any idea you have for a game as long as that game is 2D and runs on Windows, Mac, and Linux. However, they have very different workflows.

Unity3d comes with it's own editors. You'll start building your game by creating a "Scene" and then adding "Sprites" and "GameObjects" to the Scene and Components to those GameObjects. Scripts are just another component to Unity. You start by clicking things together then jump into code once you have a skeleton created. For someone familiar and comfortable with coding, it feels somewhat unnatural. If you have no programming experience, this might seem like an easier place to start. However, Unity's editors are just glue over a very complex system. You will find yourself dealing with Typecasting, Rigidbody physics, and an awful lot of advanced concepts very shortly.

Love2d doesn't have any editors at all. It encourages you to dig into the code right away. The structure is simple and Lua is a great language for those just beginning to program. However, once you get into a big project you'll need to create editors or write code to use an existing system. In my last project I used Advanced Tiled Loader so that I could use Tiled to create my levels. I had to write the code myself, but it wasn't so bad.

My Completely Biased and Unhumble Opinion: If you're new to programming you should start by downloading Love2d and working through a couple of tutorials. It is a wonderful place to start learning to program. Start there. Do a few tutorials to get the feeling of programming. See if you can't make a few small finished games. If it works for you, congratulations. Otherwise you can move up to Unity3d or another engine.

Where to Now: