Page 1 of 1

From Unity to Love

Posted: Thu Mar 01, 2018 1:01 pm
by ChienBleu
Hello everyone, I recently discovered this awesome framework that is Love2D and I want to share my experience as a heavy Unity3D user. It may not be interesting for a lot of people but this post would have interested me two months ago so let's go.
It is important to say that I'm a student, that does develop smallish-prototype games for the fun and the learn. My experience and goals are nowhere near that of a company that make games for a living but still we are all human beings after all. What is relevant to me should at least make an anecdote to you.

Why Unity?

Unity is an amazing framework. I was trying hard to create a chunk system in Game Maker convinced that creating more complex games was not for me when someone told me about Unity. Then everything became different. I had such control. No more drag and drop bullshit and beginner friendly concepts that drive you mad when you are no more a beginner. At this time I was still an intermediate programmer and learning C# with Unity was boosting my skills. I continued learning to make games on Unity for years, accumulating prototypes. Recently I managed to achieve making a small framework for adventure games. It is in fact an old-zelda-style view with procedural seamless chunk loading and autotiling system that let me change the tiles in game. Cool and good, I was also doing shaders and stuff.

Why Love?

"Unity is great for 2D games it's not because it's a 3D engine that doing 2D games is not optimized, in fact it's faster" is something that I hear a lot on forums. In my opinion it's not entirely true. In fact Unity is super fast and optimized for 2D games. But doing an autotiled tilemap chunk system was something of a pain. Chunks were created as grids with a certain texture because drawing tiles as individual sprites entity was lowering my fps to a not-ok level. Those grids UVs were tweaked to make tiles correspond to the good sprite in the spritesheet.

Conclusion

Long story short, Unity for 2D miss a pixel-wise drawing function and it's normal because it's not designed for it. Sprites in Unity are three dimensional quads and are rendered as if by an orthogonal camera. So games that don't rely on intense use of full layers of pixel-perfect sprites and combination of drawing functions should be fine. The others will need to deploy an absurd amount of workarounds.

For the kind of game I wanted to do, discovering Love made me the same effect as passing from Game Maker to Unity. No more cameras, no more entities, no more editor. I was free again.

I know they don't serve the same purpose. And that Love is not really a game engine but more of a wrapper around SDL. Still, I love its simplicity, humility and community. And it's all the better for small 2D games.

Hope it will decide some 2D Unity users to give Love a chance.

Re: From Unity to Love

Posted: Thu Mar 01, 2018 5:48 pm
by zorg
ChienBleu wrote: Thu Mar 01, 2018 1:01 pm And that Love is not really a game engine but more of a wrapper around SDL. Still, I love its simplicity, humility and community. And it's all the better for small 2D games.
Technically, while most people indeed would call it a framework instead of an engine, the graphics part of Löve is completely OpenGL; SDL2 is only used for windowing and a few other non-graphics things, so to say that it's only a wrapper on SDL2 is kind of a disservice. :P

Re: From Unity to Love

Posted: Thu Mar 01, 2018 6:32 pm
by ChienBleu
Ho sorry I think I have seen that statement in other places. But I also saw that Love is hardware accelerated so that make sense it uses openGL for the most of the rendering. Thanks for the correction.

Re: From Unity to Love

Posted: Fri Mar 09, 2018 6:59 pm
by ReFreezed
Fun little read. It's sounds very similar to how I view Löve (and Lua). It's gives me some few simple yet powerful tools to use very freely, unlike in places like Unity where there's this massive system you have to obey (heh) the rules of and just have a lot of things to think about and friction to deal with constantly. (At least for 2D games, which is what I do.) Ugh. In Löve I create my own system however I want to, and that makes me a happy little programmer.