From Unity to Love
Posted: Thu Mar 01, 2018 1:01 pm
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.
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.