Search Unity

Going to Unity for 2D games, is it wise?

Discussion in '2D' started by OutcVP, Jul 23, 2016.

  1. OutcVP

    OutcVP

    Joined:
    Jul 23, 2016
    Posts:
    11
    So I have been making games for a while (I have a couple on Steam and also on iOS and Android). So far I have been using a great game making tool called Fusion, it is in the same vain of tools as Game Maker etc. The good thing about this is that it has been very easy to learn and that you really don't need to know "raw" coding to be able to make something with it. However I have been thinking about the future a bit and if I should begin to transfer over to a real raw coding language instead of using one of these more graphical game making tools to be more "future proof" and flexible.

    Now Unity is the one engine I have heard the most about and that it should be a really good tool. I just wonder how good it is for making 2D games? And how hard it is to learn? It is possible I would like to do 3D games also in the future, but for now I am sticking to 2D. I am just a bit afraid that it would be stupid to learn a new language and a new engine from scratch to make 2D games in an engine that is made for 3D games? (I mean it is even called Unity 3D). Or is it a good engine to make 2D games in also? Or does it feel like you have to "fight" the program to do it? Like it never feels like it was designed for that purpose? While I have been mostly making casual "idle games" so far , I am looking forward to making a 2D rougelike soon, like this one for example:


    Or this one, my favorite 2D game of all time:


    Also, while it might be a hard question to answer, how long would you think it would take to learn C# and Unity until you can actually make something yourself with it? A month? Six months? I don't really have any coding experience, but I think the fact that I have actually made and released some games before should help with understanding the logic and structure of it all. I would start with a simple kind of game, something like this: https://madewith.unity.com/games/farm-away
     
    Last edited: Jul 23, 2016
    richardthere likes this.
  2. PeaceLaced

    PeaceLaced

    Joined:
    Jun 2, 2015
    Posts:
    53
    Unity has good 2D capability, though I have nothing to compare it to as this is the only engine I have ever used. As for the C#, with any programming language it takes time to master, but there are numerous tutorials and references on this site and other places that make learning easier.

    I am currently on 2D as well, mostly to get familiar with Unity and to strengthen my C# skill, but what I am most looking forward to is VR development. If you have any interest in 3D or VR, making the change now while you are still motivated to do 2D is probably better than waiting till you want to jump into 3D or VR. At that point the knowledge of your old engine will be somewhat useless and you will be that much further behind.

    Good luck and hope to see you around.
     
  3. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,448
  4. OutcVP

    OutcVP

    Joined:
    Jul 23, 2016
    Posts:
    11
    That looks interesting. Maybe that would be a good middleground to start with. Do you think I could learn the basics of how Unity works by using Playmaker and then learn C# on the side?
     
  5. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,038
    This is a bit like walking into an NRA office and asking if you should own a gun :p

    Back in the day people used Unity's 3D to do 2D. It was pretty basic, and you really did have to fight the engine at times. Then the 2D part was added, and things have improved considerably. It's on par with real, dedicated 2D engines now, although minor features are still in development (tilemaps are right around the corner, finally, making it mostly feature-complete for 2D as far as I am concerned). If you still want more out of Unity for 2D there's 2D Toolkit, which adds the missing features.

    I've observed many people truly fighting Unity in general though, because they didn't grasp the intended workflow. Just start with tutorials to get the hang of it - the Learn section at the top of the page is often overlooked, but it is ACTUALLY useful :)

    Packt also have a nice free book on Unity 5. Short volume that serves as a good fundamental introduction to using the engine.

    If you are willing to learn, and already understand enough game logic to actually have made games, I don't think you should need very much time at all to learn C#. Use MSDN for anything C# or .NET-related you don't know about, use the Unity docs and forums to search for any Unity-specific methods and classes. EVERYTHING has been asked, and for the most part you can find it through an external search engine - the internal one isn't good at logically grouping things, or grouping results at all.

    Here's my short-list of bare essentials you must learn: The basics are flow control and loops (if, else, switch, for, while, do-while), classes, methods, inheritance. The slightly more advanced features are interfaces, delegates, events, function overloading, enumerators and iterators. The Unity-specific/3D-specific concepts are game objects, transforms, physics, sprites, all things mathematical, coroutines and using the editor.

    If you look up each concept you can determine how daunting it is. Even the slightly advanced C# features are explained with examples in two pages, so it's not that bad :)

    Playmaker can be useful (I have three license, so it must be), as it might be close to what you know, but I suspect you have what it takes to jump right into real programming.

    (By the way: The domain is unity3d.com, but the engine is actually only named Unity. The 3D part was because somebody else had already grabbed the unity.com domain.)
     
    Last edited: Jul 23, 2016
    JoeStrout likes this.
  6. OutcVP

    OutcVP

    Joined:
    Jul 23, 2016
    Posts:
    11
    Thanks! About tutorial, is the tutorials on the site preferable, or is there some even better external source?

    I did not see any free book in the link you gave, I got to a page called "packt" with a ton of paid books and videos.

    Is Playmaker useful even if you know programming (since you also have it?) I am thinking it could perhaps be fun to get something up and running with it first, and then dive deeper into the raw stuff.. ? Btw, I did not find any buy button for playmaker, do you have to buy it from within Unity or something? (and how much is it?)
     
  7. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I don't think you will achieve more than any of the 2D game makers out there if you can't code, you may achieve less. Because yes, you do need to code to get more from Unity, otherwise you'd be stuck using something like Playmaker in Unity which means you are back to square one.

    Download Unity, try it. It doesn't cost anything. Compare it with others. Your opinion is the best one.
     
    Martin_H likes this.
  8. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,038
    Yes, both. The more sources you have to learn from, the better :)

    I had the wrong link in my paste buffer. Fixed it now! They have a sale right now though, so you can find yourself a $10/9€ book on 2D while it lasts ;)
    (I wonder when Packt will start paying me…)

    Yes, it can be useful. Some game companies use it to create dialog/quest systems, or all the basics of a game, which means the less coding-inclined artists can easily modify things like locking mechanisms, triggered events and so on without asking a coder.

    I have a bunch of Playmakers just in case I need to work with such artists, mostly. Don't need it so much myself :)

    It's in the asset store, link at the top of the page. You'll usually find it trending, and it's literally on sale more often than not. Put it in your wish list and wait two weeks - a sale is almost guaranteed ;)
     
  9. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Can someone who is familiar with the Cocos2D featureset tell us how Unity compares to it? The only familiar name from the Cocos2D forum I remember having seen here is @slembcke2. Hi there!
    What are the Unity equivalents to Cocos2D's:
    - actions
    - scene transitions
    - sprite management (just accessing them by name, no matter if they came from a spritesheet or single file)
    - sprite animations
    ?

    Excuse my potential ignorance, but I was a bit surprised when I learned that they have no tilemap support yet. I thought that was like... a barebones standard feature of every 2D engine? Isn't it? I don't know enough other engines to compare.


    Also how essential is having this tool for working painlessly with spritesheets?
    https://www.codeandweb.com/texturepacker
     
  10. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,038
    The lack of tilemaps is an odd one, yes, but when Unity's 2D features were new the magnificent 2D Toolkit was already in widespread use, and in true UT fashion they implemented the bare minimums and started polishing. Did you know tight sprite-packing was a Pro only feature? Madness! And there wasn't even a GUI system with a graphical editor!

    I don't use TexturePacker at all after it basically switched to subscription, as I'm starting to get too many of those sort of apps. I'm also unhappy that I can't download the last version my licence is valid for, and that it auto-updated to a version I had to pay for again.

    Unity supports tight packing with rotation, sorting into separate (named) sheets and margins around sprites. That's all I need. TP has a neat colour dithering feature which can help with getting the best results out of RGBA4444 or lower bitrate texture compression formats, but you can dither with other tools and handle all the packing/rotating inside Unity itself.
     
    Martin_H likes this.
  11. OutcVP

    OutcVP

    Joined:
    Jul 23, 2016
    Posts:
    11
    One thing I have seen some threads about that could be a problem with unity and 2d games is something called "pixel perfect". But what does this really mean and what is the real problem?
     
    Martin_H likes this.
  12. slembcke2

    slembcke2

    Joined:
    Jun 26, 2013
    Posts:
    270
    Oh, I dunno. I'm a bad person to ask. I still make my own engines because I strongly dislike Unity 2D. I'm mostly here because I've ported tech I've made for my own engines to the Unity Asset Store (Super Fast Soft Shadows and RetroAA). We've sort of been loosing money doing it too. :-\

    Actions: Not anything in particular. You can use coroutines or animations, but they are definitely not as easy as actions.

    Transitions: Not really sure of anything that isn't "bring your own".

    sprite management: Unity's built in stuff is *really* bad. It tends to turn a simple sprite into hundreds of triangles. Unity states that the threshold for trading off CPU usage and GPU fillrate is based on the iPad 2. So... very obsolete hardware. It also assume you'll never rescale your sprites or anything normal like that. Bad bad bad. Use TexturePacker, and if you actually want polygon clipping, then TP's is far superior.

    Sprite animations? Dunno, never used them.
     
    Martin_H likes this.
  13. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    My license is several years outdated and I've still used it for something this year. On the website the upgrade store says I can get another year of upgrades for 20 bucks, I think that's a very fair system and I wouldn't call it subscription. If it was like Adobe CC I'd be with you in being opposed to the model.


    Working with a 2D engine one might expect that it's easy to work with lowres 2D pixelart sprites and have them "snap" to the pixel grid. Apparently it's not easy at all and you need to take care of a bunch of things yourself.


    Thanks a lot for all the info, that was very helpful! Sorry to hear the assetstore sales aren't going so well :(.


    It's a bit of a bummer that when it comes to rendering and handling sprites, apparently Unity 2D can't do half the things that Cocos2D could do 5+ years ago. Maybe that's the tradeoff that comes from it supporting so many plattforms and it being an allround game engine instead of just a dedicated 2D graphics framework?
     
  14. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    It's not; it's called Unity. People sometimes mistakenly call it "Unity 3D" because the website domain name is unity3d.com, since unity.com was already taken (in hindsight it would have been better to use something like unityengine.com). In any case it makes a lot of sense, since you'd be using the same engine for 2D and 3D games, so less to learn in the long run. Also there's no reason why you have to strictly stick to one or the other; you are free to mix 3D stuff in with 2D (since it's technically really all 3D).

    I don't really agree with some of the above. e.g., sprite triangulation isn't perfect and it would be better if there was an adjustable threshold (though this is apparently in development), but it's generally fairly reasonable, not hundreds of triangles:

    Screen Shot 2016-07-25 at 11.56.21 AM.png

    Plus you can simply disable it if you don't want it and just use quads. For animation, you create a sprite sheet, drag it into the scene view, and it creates a sprite with an animator. This isn't super easy to understand at first, but watch a video (e.g. here's one) and you'll get it, or you can ignore that and animate strictly with code if you want. I prefer that level of flexibility rather than being locked into one way of doing things.

    --Eric
     
    orb and Martin_H like this.
  15. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,038
    Yeah, it's a better price now than I was quoted last time I tried the upgrade box! But still, I can't find a binary that works with my licence. Anyway, TP is less useful to me now than it was back then.

    When you say Cocos2D, which one do you mean? ;)

    First it was a Python engine, then there was an iPhone OS-only engine largely following the API, but made by different developers (only one at first). Then they sort of discontinued it, after a brief time of also supporting Mac builds, but not making them compatible with the iOS code. THEN there's the C++ variant which appeared somewhere between that, and I'm not sure it's got a single developer shared with the other engine variants.

    All of these of course supporting different levels of features, sometimes even per platform within the same engine. I'm sticking to Unity, because I'm actually getting stuff done between real work!
     
  16. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    I only used the iOS one in the period where it was maintained by Ricardo Quesada, until around the time where Lars Birkemose took over. I very briefly looked at the c++ variant, but I'm not smart enough for c++ and visual studio. And the iOS-only nature of my project is part of what killed it. So yeah, you have a very good point and there's no way I'd start anything 2D on the iOS Cocos2D now. I'd also go for Unity, even if I have to implement some of the stuff I'm missing myself.

    But I still think it's a shame that Unity seems to be so far behind in some aspects considering how much staff they have, and how long it's been on the market, and how much of their business relies on mobile games.
     
  17. OutcVP

    OutcVP

    Joined:
    Jul 23, 2016
    Posts:
    11
    About mobile games. How is the performance on things like mobile compared to other engines?
     
  18. LiterallyJeff

    LiterallyJeff

    Joined:
    Jan 21, 2015
    Posts:
    2,807
    Performance is great as long as your don't do anything silly with your implementation to cause lag like crawl the hierarchy every frame etc. Also depends on the device you're running.

    The biggest difference I've found is final app size and install size being larger with Unity.
     
  19. polydark

    polydark

    Joined:
    Jul 26, 2016
    Posts:
    11
    Hey man, I'm fairly new to Unity myself with a bit of XP in Game Maker Studio. For me personally it seemed better to spend time learning something like C# rather than waste time learning GML (GameMakerLanguage) which can only be used in Game Maker. So i just wanted to say that if want to do 3D in the future then you might as well invest in that future by spending the time now to learn Unity & C#. There is a wealth of learning material out there to help you on your way, which i myself am now discovering. Also the UNITE Boston 2015 conference showcased a new TileMap system built into UNITY that can be used in both a 2D and 3D capacity which i found extremely exciting.
     
    Martin_H and LiterallyJeff like this.
  20. jc-drile77

    jc-drile77

    Joined:
    Jul 1, 2014
    Posts:
    230
    They have said pretty much all.
    Looking at the videos you posted you want to create a tilemap based game so you should grab a tilemap editor from the asset store(as sugguested above).
    You can do whatever you want in Unity, its matter of time and mastering it.
    As stated before Unity will give you its best if you learn how to program.
    To get started you have the learn modules
    There as also some live session such as this:


    But if Unity has an unique aspect its its comunnity, just check how many people replied to your post, and the Quality of the replies!
     
    Martin_H and PeaceLaced like this.
  21. jc-drile77

    jc-drile77

    Joined:
    Jul 1, 2014
    Posts:
    230
    I have checked some of your games in http://www.varagtp.com/ (its yours right?)
    For what I´ve seen you have used almost everything GameMaker could give you, so going for Unity is a good step towards being a better Game Developer.

    How long would it take to get to know Unity?
    - Moving from gamemaker to Unity is not that hard, in GM the events, actions... (step, alarm etc...) get quite messy after a while, and are not that flexible, the scripts are not real scripts, and the way the assets work is a disaster.
    At first you will be a little bit lost, but with time and effort (which you have, as seen in your games) you will love it and going back to GM will be an awful experience.
    Currently Unity is the most powerful engine for 2D games, but, Hey!, it doesnt come free, you will have to work a little harder to make out something better from Unity.

    C#?
    -Yes dont even look at Unityscript .
    How?
    - The few coding things you learned in GM can be easily ported to C#, so not only you will be able to make the same things easily in c# but with time, you will discover, how to say, a new world, full of amazing features that you wont know how could you had been without them for so long :)

    Times?
    -Thats totally up to you, more time you invest equals less time it requires :)
     
    Martin_H likes this.
  22. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    I believe Unity is very capable of making pretty much any kind of game, one way or another. I don't think there's hardly any kind that is totally off-limits impossible, even with oddly obscure custom graphics engines. Anyway... the question sort of is, how 'natural' or 'intuitive' does it seem to use Unity for 2D.

    To me this is where Unity still has a bit of a way to go. 2D can be simple. I mean, you select your sprite - which should ideally be as simple as loading an image into your project and then clicking and dragging it into the scene without any other setup required. But because Unity is broader and needs to cater to 3D and texture atlasas and all that gubbins, it makes it more complex. So now you have to tell unity it's a sprite texture and bla bla bla, before you can simply put it in the scene.

    So now let's assume you dragged it into the scene and it's a "Sprite" object. That is, presuming that you already set up your camera which generally is not set up properly for 2D. It defaults to 3D unless you specifically started a `2d` project and the settings in the camera might not be right for your game art. So now you have to fiddle with all that gubbins too try to not only figure out what the numbers should be or what they mean, but then set them. You don't just get a standard 'this works out of the box' for a 1:1 mapping default 2d camera.

    So now the sprite is in the scene and you've got a camera to look at it (and it should really be a given that there is a default 2d camera in place, without having to know why a camera is needed). Now you want to do something with the sprite. You have some nice animation frames that you hand-drew in glorious pixel art. And so intuitively it should now be extremely simple and quick to animate the sprite. What is the shortest path to doing this? You'd think it'd just be a matter of maybe the engine detecting that you imported 20 sprites with numbers on them... so, ok, its a 20-sprite animation, the texture atlas is automatically handled, and as soon as you dragged it to the scene the thing starts animating in a loop at a standard animation framerate. Right? Well, not likely. You gotta do some other setup steps.

    You gotta combine the image files into a sprite sheet, which takes a bunch of configuration, and you gotta have it detect the size and shapes and all that if you want colliders. And then maybe you end up with what I think is some kind of 'strip' of sprites - I've seen this in some Unity videos where it shows up as an expandable strip, but does it just automatically become an animation when you put it in the scene? I think not likely (correct me if I'm wrong). So you've got a sprite on a sheet with some frames and now how the F do you animate it? Just basic frame flipping. Why is this not completely obvious? Is there a framerate setting somewhere? Is there something I have to do to make the images cycle? Do I have to create some kind of weird animation clip or fancy extremely over-the-top-complex animation graph, just to get these frames to cycle? I have no clue. And as an experienced developer I am sure beginners will find this totally perplexing.

    Ok so let's assume you did 'something' to cycle the animation frames. Now you want to move the sprite. Maybe it's an enemy, to keep it simple - woebetide if you want a basic control system attached. So you just want the thing to maybe move left and right, like a sprite walking along a platform, and changing direction at the end. How do you do that? I mean, now you're dipping into either scripting, or fancy animation graphs, or animation clips, none of which is direct, immediate, or intuitive. Just to move a sprite. There could've been a contextual menu or something which lets you choose standard behaviors in a matter of seconds. But no. No "right click - move the mouse over to 'move left-right' and release" for you. So now to even get basic stuff done you're up sh** creek and having to wonder, well, where on earth do I go to make this happen, what do I have to do?

    This is a terrible 2d developer experience. So now maybe I'm grabbing for my copy of Playmaker in hopes it makes it easier, or looking up 2d tools on the asset store in hope that they might be my salvation (even though most of them add even more configuration options and complexities). Or maybe I'm going to go hardcode and pull up a script editor just to make this sprite move, coding in little numbers and math and collision detection stuff just to accomplish this simple end result. Hardly intuitive or easy or welcoming or a good use of time. And you want some basic player controls? Can you just choose a character controller off the shelf from a simple popup menu? No. Get your script editor out.

    This is where 2D frustrates me in Unity, it's just not intuitive, it's not WYSIWYYG enough, it relies far too much on the very broadly separated-out user interface of Unity which tries to cater to an extremely wide range of possibilities while making the simplest, most common possibilities obnoxiously longwinded. It should be easier than this Unity! Take the pain out!
     
  23. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Unity does that automatically, though, if you have the project set to 2D.

    It does, actually. Yes, you do have to figure out the animation function; see the link to the video I posted above.

    Meh, there's nothing wrong with learning to program, and most people can do that if they put some effort in. I think hard-coded pre-defined behaviors would be a really bad idea; I mean the whole point of getting away from things like GameMaker is to get rid of those limitations. People who are happy with GameMaker are free to stay with it, and that's perfectly fine; it has its place but Unity should not try to become GameMaker. However, Unity does have standard assets which has a platformer controller, so you can have something to play around with right off the bat. This is the way to go, since you can modify it as you get better at scripting, then eventually toss it and go fully custom as needed, plus it doesn't bloat the engine with stuff you don't use.

    --Eric
     
    Martin_H likes this.
  24. jc-drile77

    jc-drile77

    Joined:
    Jul 1, 2014
    Posts:
    230
    Select 2D project and its a sprite automatically.

    A camera that works out of the box for any kind of game and sprite size?
    Seems impossible
    Not that hard, but thats why there are tutorials too :)
    upload_2016-7-27_18-36-22.gif
    Have you tried animating sprites in GM?
    You have tons of official tutorials with scripts included in order to do that, if it wasnt enough you can grab an official complete project from the asset store and play with it.
    Yes you can, get it from the website and use it, but will you learn something? Nah, nor will make an actual game.
    What pain, thousends of newbies have used Unity with no struggle, its even easier the 2D than the 3D :),
    it does lack some core features such as tilemaps, but you can grab a GM style tilemapper from the asset store for free, and for a few bucks some really interestings extensions. Moreover Unity is about to bring its own tilemap editor :9


    Looks like @Eric5h5 ninjaed me :C
     
  25. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    I see what you did there. See you think that just because people have 'found solutions' that this means there isn't a problem. You're lacking some vision here. What I'm saying is that these things should be, and could be, far simpler and far easier for everyone, so that there didn't HAVE to be tutorials. And this has nothing to do with Game Maker or any other competition - that's like saying, well, nobody else does it any better so why should Unity? That's nonsense. Unity can do better than this. And yes, there should be a default camera for a standard sprite size targeting a standard resolution, like say, 1080p or something. And yes it should be extremely simple to implement simple things, not hard to implement simple things. And yes there is pain. Yes newbies have used it WITH struggle that they don't admit to because they don't know how much better things could be, AND many have fallen out of love with Unity because it IS a longwinded struggle, especially even compared to those other specialist 2D game engines (not saying I compare them but...) ... Unity should and could be doing better at making the 2D workflow far more 2d-streamlines, cutting out all the extra 3d-related nonsense and getting down to simplicity.
     
  26. Cherno

    Cherno

    Joined:
    Apr 7, 2013
    Posts:
    515
    Personally, I think Unity's 2D features are missing some critical components. I can live without tilemaps when quad meshes can do the same job (with more work), but the Z-sorting being bound to seperate GameObjects (via layers) is messy. For example, I don't see any way to make something like the old X-Com game work; isometric view where the terrain is not flat but rather made of boxes for each tile, if you will, and there are multiple height levels. So far, the only option to do something like this is to completely ignore the built-in layer-based Z-sorting and do it the old fashioned way, which means moving objects along the world z axis so they appear in front of the wall in tile row y.

    My biggest general wish is to make Unity more runtime editor friendly; That means it should ideally be possible to do everything that can be done via the inspector, or the Editor tools Unity provides (such as file import tools, sprite editor tools) can also be done in a standalong built during runtime, even if it's just via script. All variables and functions should be exposed! I'm thinking of the ParticleSystem (where a good chunk of functionality has beenn exposed lately), but also things like the Animator state machine. It would make it much easier for developers to let users add user-created content.
     
    Last edited: Jul 27, 2016
  27. jc-drile77

    jc-drile77

    Joined:
    Jul 1, 2014
    Posts:
    230
    I believe this is getting offtopic but,

    Yes UT could do a better, but Unity is an engine for a broad variety of games, from Ori And The Blind Forest to Angry Birds 2 passing through silly games such as Flappy Bird clones.
    So a default camera could actually be a drawback as you would have to change it all over again (in most of the cases).
    Tutorials? No tutorials? Even Microsoft Powerpoint has tutorials, learning how to use Unity is just as hard as learning GameMaker, but insted of events you use scripts. Furthermore I would say its even easier if you have some coding background (SOME).
    Other 2D engines such as Godot or Cocos2d might have a better initial 2D workflow, I do not know as I havent played around with them long enough.

    Getting ride of all the extra 3D-related stuff may not be as appealing as it sounds for a 2D developer, combining 2D and 3D is actually pretty nice for some games.
    Perhaps, to be able to select an isoleted inmersive 2D mode?
    But that would get things even more complex ( if they were).
    Unity still has many things to improve 2d wise, but its current state is not as bad as the picture you are giving.
    Im not trying to defend here but you are getting too visceral for no aparent reason.

     
  28. slembcke2

    slembcke2

    Joined:
    Jun 26, 2013
    Posts:
    270
    I have absolutely seen a 256x256 (or maybe 512x512) sprite turned into almost 400 triangles on multiple occasions. The sprite even had ~70-80% coverage, and was roughly square. It was just under the dynamic batching limit, so it was bringing Unity to it's knees on a desktop machine trying to batch them all on the CPU. Maybe the settings are different now, but at the time (~6 months ago) the options were completely unclipped sprites (so not even rect clipping) or fully overblown polyclipping for all sprites in a sheet. Given the art assets for the game, the former wasn't viable either. It seemed like a pretty stupid situation when the Unity docs quoted it's hardcoded poly clipping threshold to be based on obsolete hardware.

    I mean I've used Unity for 3D stuff on a half dozen medium sized projects going back to 2009. It's pretty good for an inexpensive 3D engine. 2D though? I'm not sure I'd start a new 2D project with Unity any time soon when there are good, free, crossplatform alternatives with all sorts of other benefits (some are easier, some are more powerful, many are faster, etc).
     
  29. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Just curious, what are your favorite 2D engines for PC desktop as target plattform?
     
  30. OutcVP

    OutcVP

    Joined:
    Jul 23, 2016
    Posts:
    11
    Thanks!, yes that is me :)

    Just to be clear though, I actually used Fusion, not GM for my games :)
    Fusion is a program in the same vein as GM though so they share a lot of things.
     
  31. EmreCan29

    EmreCan29

    Joined:
    Jun 9, 2019
    Posts:
    1
    Unity isn't the best choice for 2D game development. Many people on here are biased. If your goal is to make 2D games then there are better engines out there that will suit your goal. If you think Fusion is too basic and you want a more powerful tool picking Defold, Cocos2d, Godot would be your best option. At the end of the day it's your choice. Do what you prefer. There is no point in using a more complex game engine if you are not going to use most of it's features. Not only that but you will also have to write a lot of code which means it will be a lot more time consuming to finish your game. Also I know that there are people complaining about some issues they had while making their 2D games in Unity. No reason to make it harder for yourself. Even sticking with Fusion might be the right option for you if you are not going to work on bigger, more complex projects. You can't go wrong with Construct and GameMaker Studio either(unless you really want to use a programming language). Those game engines aren't super powerful but good enough to make some great 2D indie games. For example Death Gambit is made in GameMaker. There are many popular games made with Cocos2d. Big mobile game dev studios use Cocos2d. With Defold and Godot there are not so many games out there since they are still new engines but that doesn't mean they aren't good. If you want a good 2D game engine that is more powerful and flexible, I would say in my opinion your best option is to go for Godot(You can code in C#, C++, GDscript even coding in lua is possible I believe with the right extensions). It's completely free and you don't have to wait for a bug to be fixed you can change the source code of the game engine yourself. At the end of the day it's your choice. Game engines will have cons and pros. Pick the one you like the most.