Search Unity

About new "2D features" of Unity vs Game Maker Studio (Hyper light drifter example)

Discussion in '2D' started by GazingUp, Jun 2, 2017.

  1. GazingUp

    GazingUp

    Joined:
    Jun 16, 2015
    Posts:
    271
    Hello,

    I'd posted on these forums some months ago regarding starting on Unity and I had taken a break to learn other concepts/real life stuff took over and I'm getting back to being excited to work on the next "IT" game that I'd like to make on Unity.

    I saw Hyper Light Drifter last year, the game's made in Game Maker Studio and I'd found that people were complaining about its performance at 30 FPS initially and that Heart Machine (Its developer) fixed this issue later on to 60FPS.

    With that said, for some reason, I enjoy the fact that Unity utilizes C# as its scripting language vs a very engine specific language like GML for Game Maker. I'm pretty conflicted at the moment as to which engine to go for exactly (the scale is still leaning towards Unity atm) and I wanted to get opinions on which engine (programming language would make it easier to code, say, a feature like a dash like the one seen on HLD? (First question)

    I grew up with Castlevania, Megaman X/Zero and many games that utilized the dash feature and I've always loved it. I love sword / gun action as well. I've also been a huge fan of RPGs like secret of mana, Diablo and Baldur's Gate.

    Has Unity changed much from 2013 til now on the 2D terrain? If so, how? (This is my second question)

    A little background on me, I'm currently a DBA, and I work on engineering tools that would act as an interface for databases (so front end development for DB stuff essentially.) So my skills right now are predominantly javascript, python, react.js, and a few other front end oriented stuff. But I've also dipped into OOP languages like C# and a little bit of java.

    I also love to draw, I'm not great at it, but I have cool ideas that are dormant until I can be good at the coding side of it. Time isn't necessarily an issue since I have a good job as a DBA at a fairly large company.

    I have also completed two tutorials for Unity already, a pong game, and a really simple space shooter game.

    The game I have deep in my heart is a similarly passionate game to HLD, dipped in pixel art / maybe some 3D lighting effects here and there and top-down view similar to secret of mana and Link to the past combined with a metroidvania style level design combined with some unique skill-sets that a player can achieve as game progresses (similar to getting the white megaman X). I know this is very ambitious, but like I said, I wanna start somewhere that makes me stick with something. So I came here for a pick me up.

    Advice? (Third question)

    Thanks.
     
  2. aflesher

    aflesher

    Joined:
    Dec 12, 2013
    Posts:
    28
    The first thing I'd say is don't let the programming language of choice dictate your decision. A game like HLD is going to take you 2 - 3 years of work minimum (I think HLD drifter took longer ...). I'd say it's more important to pick the right platform and just force yourself to adapt to the programming language. GML is a little strange for sure but I got used to it.

    I've been working on building a game with Game Maker Studio 2 for the last 7 months so I can speak to it's strengths/weaknesses. I will say that YoYo Games has made a lot of progress with Game Maker since HLD was released. Both in terms of features and performance. The game I'm working on runs at 60fps with 1080p resolution without any issues. I'm managing a lot of objects in pretty large rooms too.

    I am however on the Unity forums today because I'm thinking of ditching Game Maker and porting everything to Unity 2D. I haven't hit a major road block but it's been a lot of little things. Most notably their Spine runtimes (we use Spine assets instead of sprite sheets) seem buggy as hell without any noticeable effort on their part to resolve the issues.

    Anyways, I think you could go either way. I have a lot of experience with Unity but not building anything like HLD. If you have more specific questions about Game Maker I'd be happy to answer in this thread or as a pm.
     
  3. GazingUp

    GazingUp

    Joined:
    Jun 16, 2015
    Posts:
    271
    Thanks a lot for your response.
    The reason I was concerning myself with the language was because I was assuming a lot of the challenges people faced with game maker vs unity was the language more than the interface, but I think I'm wrong.
    I've fairly dipped myself into unity and it'd be a waste to use up time learning another engine so it's helpful to learn from someone that is already used to another engine.

    Is GML kind of like actionscript was for flash? Actionscript was kinda like a derivative of JavaScript, what does GML resemble? I have read people saying doing"complex" stuff with GML can be frustrating, compared to C#. Also correct me if I'm wrong but GML isn't exactly an OOP language is it?

    I feel like HDL may have taken some time because of the pixel art coupled with some of game Maker's quirky nature at the time. He started working early 2013 and the game was released early 2016 so yeah 3 years.

    I don't see pixel art games with unity that much. Is there a reason for that? My question here is, does game maker have features in the interface itself to help out with pixel games vs unity?
     
  4. aflesher

    aflesher

    Joined:
    Dec 12, 2013
    Posts:
    28
    I haven't programmed any Actionscript in probably 10 years so I can't really speak to how similar it is. However GML isn't really like any other programming languages I've learned. It's also not radically different either. Here are some of the highlights:
    • Scripts = functions. If you want to create a function you create a new script which you can call with parameters and get a return value just like a function. Kinda weird at first but not really a big deal
    • For objects the only objects in the language are game objects. So you can create an object but has to be given x,y, layerId values and added to the world space. The objects follow OOP principles and have things like inheritance though.
    • Data structures suck in Game Maker. No structs. Array is always pass by copy, not by reference. The game I'm working on is procedurally generated so I have a lot of large nested data structures. This has been a major pain in the ass.
    There is a couple of reason's why a lot of pixel art games are being released using GMS. For starters it's very accessible. $99 price tag and you can create a "drag and drop" project. While I don't recommend a drag and drop project for anyone who is remotely serious, it is an easy way to get your feet wet. It also has a proper tilemap editor. Having this editor is extremely useful for 2D games


    It also helps that GMS studio designed from the ground up for 2D games. Looking at the difference between setting up an animation using a sprite sheet in Unity and GMS. In GMS you create a new sprite object and import the sprite sheet (or individual images). Once you assign that sprite object to a game object it's ready to go. In Unity you have to go in and set the sprite type, pixels per a unit etc and then go into the animation editor. It's been a while since I've done this in Unity but it just seemed like a really convoluted and not very intuitive process.

    I can summarize my feelings about Unity 2D and GMS like this: Unity is a great platform for 3D development that can used for 2D development. GMS is an average platform that is designed for 2D development.
     
  5. xellfish

    xellfish

    Joined:
    May 25, 2014
    Posts:
    10
    We are currently developing a 2D game in Unity and have taken a cursory look at GMS as well. I can't say too much about the latter, but I can at least give some Pros and Cons for Unity from our point of view:

    Cons
    • Unity is gonna cost you. The default 2D tools in Unity are pretty anaemic, so you most likely are going to want to drop some money on 3rd party assets. There is some new stuff from Unity coming up soonish, which is nice, but still won't cover you entirely. Think in total we dropped at least a couple hundred bucks on assets by now
    • Depending on your ingame perspective, the sorting options in Unity are a bit lackluster. We're doing a Zelda style perspective, so we need sorting on the y axis, which fortunately was added recently, but isn't using sprite origins, so we have to do quite a few workarounds to make it work. I would assume that a native 2D engine like GMS should be able to do this properly
    Pros
    • I come from a traditional programming background, so I revel in the fact that Unity gives you access to a 'proper' programming language. It is also pretty ambivalent regarding your architecture. This could very well also be a downside, since you will have to pour quite a few thoughts into how to structure your game and your code, put personally I'd much rather think about how to do things myself and make it fit my game than try and constantly work around an architecture imposed on me by the engine. This was a big turn off for us with GMS and even Unreal to a degree.
    • Access to a full blown 3D engine is a big plus for us. We don't use any 3D objects (yet), but there is so much amazing stuff you can do with shaders even in a 2D game. For example, we use transparent sprite shadow blobs for our characters, and recently wrote a shader replacing image effect to be able to blend those into a uniform alpha value. You can also do a lot of interesting stuff with lighting.
    • As far as we can tell, there doesn't seem to be any other engine with as much potential platforms than Unity. The option to be able to publish to Switch, PS4 and Xbox without an issue is very enticing. Always nice to have options.
    • Writing editor extensions isn't exactly sexy, but it is still quite nice how easily Unity can be extended with Custom inspectors, importers, workflows etc. In a way Unity isn't just a framework for your game, but for your tooling as well, and you usually end up to having to write some custom tools for every reasonably sized game you make.
    Think this sums up why we ended up using Unity. That said, I'd like to give a shout out to Godot, which looks pretty nice as well, but seems to suffer from some of the same downsides as GMS.
     
    Chairman_Meow and aflesher like this.
  6. GazingUp

    GazingUp

    Joined:
    Jun 16, 2015
    Posts:
    271
    Thanks for your response guys.

    This is great information about the engines. I have worked on a platformer on unity utilizing pixel graphics created on my own.

    The language of GML, from what aflesher said does sound rather annoying and ugly code, which I dislike.

    Regarding the 2d assets, what did you mean by unity would cost you? Does game maker give tools to create 2D assets? There's a lot of third party assets I'm aware of to create pixel art or certain graphics since unity itself doesn't have the tools to help with that other than tiled, for the level editing which is pretty awesome.

    I'm interested in creating top down perspective as well. I've seen a few tutorials to help with that.

    Again thanks for this discussion. Pretty awesome stuff.
     
  7. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Funny how tilemap editors have hardly changed over the past 30 years. We're still clicking on little square grids of tiles to pick a tile and drawing almost every single tile by hand. I know there are a few ways to improve on that such as copy paste or automatically selecting the right tile to join tiles together etc, which is an improvement, but really... why is it so incredibly laborious and where is the procedural automation? You should be able to sweep your hand across the screen and have it generate an entire cave filled with interesting features.
     
  8. GazingUp

    GazingUp

    Joined:
    Jun 16, 2015
    Posts:
    271
    Isn't Tiled exactly that? You can literally drag your mouse across the screen with a particular tile and it maps it across the grids for creating the level terrain when it's pixel graphics.



    This is a video that shows this being done. I think it's really neat how the GUI works with Tiled.
     
  9. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    No thats not what i mean at all.
     
  10. GazingUp

    GazingUp

    Joined:
    Jun 16, 2015
    Posts:
    271
    Okay?
    Care to elaborate?
     
  11. GameDevGuy

    GameDevGuy

    Joined:
    Nov 4, 2012
    Posts:
    96
    Both Tiled and the upcoming Unity tilemap editor offer a really awesome feature that alleviates a pain point. You can set up rules for tiles that will generate other tiles around it. For example, you can have water tiles generate a "shore" tile around its edges. When you drag across the grid and create six water tiles, every one around it will have a shore edge unless it is surrounded by water tiles. It's a big step ahead of manually clicking every point. I'm a big fan.
     
    imaginaryhuman likes this.
  12. rIKmAN_

    rIKmAN_

    Joined:
    Jun 5, 2012
    Posts:
    9
    I'm in a similar position to @aflesher, where I am currently using GMS2 but finding the Spine support dire - not even bugs really but just a pure lack of implemented runtime features to enable anything more than playing an animation, changing a skin or attachment and do anything more than basic functions.

    As he says the devs don't seem to bothered with updating it, despite repeated requests on the forum and an offer from Esoteric to work with them and implement fully as an actual official runtime - which they basically turned down and fobbed off citing legal agreements.

    I haven't put 7mths into a game yet like him though, so am looking at Unity as an alternative as I it would be nice to be able to easily setup proper lighting and use shaders etc which are cumbersome at best in GMS2.

    Every time I've tried to use Unity in the past however I've just given up as everything just seemed overkill for what I was trying to achieve, I have zero interest in making a 3D game and the 2D features aren't great as everyone knows - but 2D in 3D allows some nice things with lighting, shaders etc as I mentioned and which is what *does* interest me.

    Rather than struggling for 1-2 evenings trying to get simple things working Unity, I just fall back to what I know and have everything working in GMS2 inside an hour or two.

    Any tips for getting over this welcomed, as I just can't seem to get over the hump as it never seems worth the extra time and effort it would take to get comfortable using Unity.

    How did you approach the transition of moving from GM to Unity @aflesher?
    Any tips?

    GameMaker is the best prototyping / small game engine I've ever used, it's so quick and easy to get things going that it blows away everything else I've used. It's when your project starts to grow or require serious features or integration with 3rd party tools that things start to get iffy.

    GameMaker 2 does have support for autotiling though which is what you are describing @GameDevGuy , though I haven't used it myself. I believe (without checking) it supports 16 and 48 tile tilesets for autotiling.

    It's shown a little in this video, but there are more in depth videos on just the autotiling setup if you search Youtube which will give you a better insight into how it works.

    You can also check the "Auto Tile" section of the online manual which can be found here.

     
    Last edited: Jun 8, 2017
  13. aflesher

    aflesher

    Joined:
    Dec 12, 2013
    Posts:
    28
    @DoobyDude thanks for the reply and the input. Especially the more detailed information regarding Esoteric's stance on support for Game Maker runtimes.

    I've finalized my decision to port my game from Game Maker 2 to Unity. I'm somewhat crushed about the decision as I estimate it will take a month to port everything. However, it's been a breath of fresh air moving to Unity and not just because the Spine runtimes are infinitely better. It's just a much, much more polished tool for building games.

    I have a pretty extensive background in programming (10+ years) so I feel right at home with Unity. I also spent a lot of time prototyping other games in Unity before I started building this game so it's not like I'm jumping into something totally new. I'm not sure what advice I'd have for you @DoobyDude . I'd be happy to answer any direct questions you might have though. Especially if it's something like "I'm doing X in Game Maker, how to achieve the same thing in Unity"

    The reason I initially chose GMS2 over Unity was the difference in movement and collisions systems. I have always felt that 2D platformers using proper physics engines for player movement have very clumsy and imprecise controls. Games like Super Metroid, Mega Man X, Super Meat Boy, Spelunky are examples of how I wanted my game to feel. However, in a recent post I made someone pointed me to this tutorial which attempts to achieve the same style of GMS2 "place_meeting" movement and collision detection. So far I've been really happy his solution of using Raycasts.

    tl;dr moved to Unity from GMS2, happy about the decision, hopefully never looking back.
     
  14. piggybank1974

    piggybank1974

    Joined:
    Dec 15, 2015
    Posts:
    621
    @GazingUp

    Personally I've used Unity for quite sometime now, I always think the 2D side plays second fiddle, to that end I've created my own Map Editor (Multi Level Editor), well actually its more than just a map editor, as you can create Plug-ins to create all sorts of stuff, I think with all engines you are going to like things and hate things, the engine gives you allot, but some times not enough in the correct areas, I've said many times it's does the hard things easy but the easy things hard, by that I mean, what you think it should do easy sometimes it makes it very hard but other are a breeze.
     
  15. mrCharli3

    mrCharli3

    Joined:
    Mar 22, 2017
    Posts:
    976
    For me it simply comes down to wanting to work with games for the rest of my life. And there are plenty of jobs for people who are skilled at Unity.
    Basically learning while creating, is important to me. But I guess if u just want to make 1 (simple) game as fast as possible you want an engine that is as easy as possible.
     
  16. piggybank1974

    piggybank1974

    Joined:
    Dec 15, 2015
    Posts:
    621
    join the club my friend, because I'm in my forties "shhh don't tell anybody", I can go way back, and remember how it was in the 80's.

    I picked up unity because I got sick of developing windows programs "Not apps, programs", mind you it was my job at the time, "I've just realised Unity Project Remover on the forum to day check it out"

    I would love to work with people that have the passion for creating games as I do, infact It's been over a year since I played any game that I've bought I'm not classing my game in google play by the way.

    I'm currently trying to learn blender so I can create a TD/C&C game, enjoyable it is but hard, I would rather program but when you on your own, you have to be a jack of all trades.
     
  17. GazingUp

    GazingUp

    Joined:
    Jun 16, 2015
    Posts:
    271
    Hello. Thanks for the response. I've gotten to using Unity after all.
    I really enjoy tiled for the level designing. The layering of objects and the map itself, how the whole map can be scaled manually before exporting really makes it easy to keep all scene maps consistent I think.

    And then there's C#. I really enjoy a language with clean code. And how there are static variables that you can share between two completely different objects that share one script is really neat.

    I'm really enjoying the tutorials and down the road plan to come here if I really want to get creative with the code.

    I'm not looking for simplicity, but longevity. Now in hyper light drifter I recall there was an issue with the fps being at 30 fps. In the ending credits of the game they'd shown one guy and his role said "60 FPS Conversion" or something like that. They had to hire another dude just for that which tells me it wasn't as straightforward to do so. And I think gamemaker's simplistic approach came with that cost. I'd rather not have that issue and have more control with how the game runs.

    Furi looks really similar to hyper light and was made with unity 3d. I've yet to see an impressive 2d game, like pixel art 2d.

    As for the making a simple thing complicated to do, an example I can give is this trending language called React.js for front end. It makes something really simple like an input box more complex and indirect. Was it uncomfortable at first? Of course. But as I got used to it, I noticed the benefit of consistency among all elements of programming in react.

    I am hoping Unity is the same. So far everything seems to be consistent and I like that more than simplicity.
     
  18. jc-drile77

    jc-drile77

    Joined:
    Jul 1, 2014
    Posts:
    230
    Hey,

    We are about to start a new 2D game, roguelike (rpgness).
    We have got Game Maker Studio 1: Master collection, and of course Unity.
    So here comes trouble, in its current state how does Unity handdle these types of games?
    I´ve been following 2D preview release for a while and it comes packed with a ton of awesome features which once you had to rely on 3rd party assets in order to have them (or develop your own), furthermore, some of them, including the tilemap are already on an official release which grants us security in the matter that they wont change their source code in the near future.

    GMS, has aged badly, have to say that GMS2 has come with a bunch of new features, and a totally reworked ide that we, its users, have been asking for years. The problem is we do not have GMS2 licenses but GMS1.

    So at the current state of affairs which one would you choose?
     
  19. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,980
    The programming language does not matter.

    As for the engines, Game Maker studio (2) is better than unity for 2D.

    While unity have been working on 2D features for years, they take years to come out (if at all) and are often underwhelming.

    Im still waiting for spriteshape (ferr2d smartsprite) before this can be considered a viable engine for 2D development.


    That said, I am a unity fanboy and really hope they get into gear soon.

    From reading the 2D preview forums, it seems that the 2D team get backbenched as theres barely any movement there, despite multiple cries for info etc constantly.

    You should not have bought GMS1, its old software so that is why its not aged well. Either buy the new engine or give it up, no point assessing a deprecated engine.

    GMS2 is on par with Unity but seems more stable and easier to get official responses from the team on the forums.
     
  20. jc-drile77

    jc-drile77

    Joined:
    Jul 1, 2014
    Posts:
    230
    I´ve had GMS:1 for quite a while (since ~2014), and already earned well above its price :), futhermore i was hoping to hear some comparasing between gms1 and unity 2017.2, i know it is not the current state of affais but it is what is on my table ^^