Hello, I am new to Unity and my team wants to try making a 2D action platformer game like Megaman.
I am pretty proficient as a programmer, and in my previous game using C++ I had my own animation system that used spritesheets.
I have looked around and seen things like 2D Tool Kit, Spritemanager 2, etc, and they seem fairly useless to me.
The videos for these add-ons show them making sprites and animating them with the animation editor… but animation is something I can do myself using scripts. I also plan on doing the collision detection myself. The main advantages that these tools provides seems to be the optimization of draw calls and the creation of an “Atlas” which probably saves on memory usage.
So what’s the difference between an Atlas and a spritesheet… and how hard would it be to make my own and use it in a script?
If its slower for me to use the animation editor than to code animations by hand, are there any other advantages to using the animation editor?
Also, i’m pretty sure “pixel perfect” images are pretty easy to set up using basic math…
Are these toolkits just convenience features that will limit me in the long run or can you pretty easily integrate them with your own physics, collision, and animation sysytem?
a texture atlas is a spritesheet, they are basically the same thing. a big power of 2 texture that contains many texture elements to save resources, which are very important if you are dealing with mobile devices
i use 2d toolkit a lot, and its awesome, very easy to use and incredible time saver, setting up a proper sprite system that takes advantage of dynamic batching is very tricky, specially because you have to deal a lot with runtime mesh generation.
you can mix it with anything you like and any methodology you like to use with unity, because after all you will use the unity components.
about the convenience vs i can make it myself, of course you can make anything yourself and every 3rd party tool is for convenience, even unity itself, as you could roll your own engine and take years to do it, but you could do it, but its always the question, can you afford to spend time on technology thats already been made or spent a couple of dollars and save a lot of time and speed the development process of your project, remember time its money… with technology you simply can not afford to take too long, because somebody else eventually will do it and probably better.
I’m a bit disillusioned with 2dtoolkit/ex2d etc also, they don’t really seem to do much. They’re not a full 2d solution. They address a problem which is that sprites need to share a draw call in order to be faster and thus needs an atlas, but why the user has to know anything about that or do anything to make that happen is questionable. Beyond that and some basic animation editing like setting up loops to cycle through images, there isn’t a lot else that really helps with 2d development. I’ve been evaluating these 2d systems myself lately because I thought I would buy one to help me with 2d also, and I still might, but I’m so disillusioned by their limitations that I’m very rapidly heading back in the direction of making my own.
I have spritesheets working using materials and I think I can manage the dynamic batching myself pretty easily. Also iOS is not our primary target so its something I can worry about down the road.
So far Unity is working pretty well for me, but it has some annoyances such as saving the line endings in Mac format and not integrating with visual studio express 2010 properly.
@ImaginaryHuman… as I’m also giving some thought to buying one of these 2d systems, I’m curious about what limitations you are talking about. What do they not provide, and what would you want them to do before you would consider them a “full 2d solution”?
I’m just getting started on my journey towards being a game developer, so there is the very real danger of me not recognizing a system’s problems. So far I’ve been quite reluctant to actually buy anything off the asset store for this reason.
We used this on our upcoming title dropping bombs, you can see some of the menu and ingame effects here:
It just came to mind, since you mentioned you’d want to do the animation and collision detection yourself, that you could very well use prime’s toolkit. It made it possible to go the one drawcall route for all the ingame effects and menus just as good and flawless as we expected. Proved to be a wonderful decision to switch it up.
Yeah, maybe give it a try if you haven’t already
I just bought 2DToolkit, and also NGUI which does some 2D stuff.
What these 2D tools do is usually only cover some problems in Unity, such as the fact that lots of sprites produces lots of draw calls, so they have these atlasing systems which should’ve been a standard Unity feature in the first place. That’s kind of a making up for something that wasn’t done right, so I don’t count it as a feature. Then there’s the ability to animate a sprite. Well, if you can call it animation when all it really is is putting images in a sequence and looping through them. That’s pretty limited, and also something that should’ve been built into Unity. Then there’s setting up colliders. … sort of helpful, although a bit clunky and not much different than using Unity itself to do it. Then there’s support for fonts which is kind of already a Unity feature albeit minus the atlasing. So overall there is not much going on here other than bandaiding some areas that Unity falls short. It really doesn’t go any way at all toward helping people make 2D games easier, design levels easier, animate and produce gameplay easier, add special effects, define areas of interaction, deal with tilemaps and parallax, there is no sign of pixel-perfect collision detection, no 2D drawing tools, etc etc etc. There’s a tonne of stuff missing.
Agree with you. I bought the first GUI system package available and I loose most of my time doing things that should be include in the package, and fixing bugs of this package…
I would have been 10 time faster making my own. (And I know that for a fact, because I already did my own GUI system for commercial java mobile games…)
Unity is a 3D engine. It is extensible to use any scripts or plugins you want to write, but always at heart a 3D engine. Pixel perfect collisions for custom sprites would be a fantastic feature for someone to write, but to include it into Unity is sort of taking it in a direction that it probably wasn’t meant to go.
EasyMotion and that other bones-animator thing are pretty interesting but I still don’t feel it’s being done right. I come from an extensive 2D development background and when I look at how these tools are doing things in Unity it doesn’t feel right to me. It feels like someone is taking a 3D engine with a workflow that is not suited to, or relevant to, 2D game creation, and trying to stick to that workflow at the expense of the tools being somewhat fringey and not really nailing anything. I am putting together designs for what I think a 2D editor should be like, because I just don’t see anyone doing it how I would like it. Hopefully other people will agree with me and like it the way I’m planning.