Can you make games like Hyper Light Drifter in Unity?

I read in an interview that Alex Preston(the developer behind the game) said “Unity is less suited for 2d” . I’m just mildly familiar with gamemaker but I imagine Unity asset store to be much more populated with useful assets. (and Unity more powerful in long term).

I’m intermediate with Java (still learning) I know that Unity is written mostly in C#, if I want to make games like hyper light drifter or Transistor, which platform would be most suitable for me?

I’m sorry for probably one of the noobish questions around here, I’m hoping someone more experience could shed a light on this.

Thanks for you help

1 Like

Yes, it’d be just great for that! Unity is immensely suited for 2D, with an entire 2D engine under the hood!

1 Like

You will get a lot more achieved using Unity for 2D games than rolling your own engine:

  1. Unity deals with all the hardware, all the operating systems, so you don’t have to.
  2. Asset store and hundreds of free assets help you get the effects you want.
  3. And so on. Honestly, you’re an idiot if you do a desktop 2D game without Unity.

I chose unity for my mobile 2D games, so it is easily performant enough. I get it though. I’ve coded (and published) 2D games in C++ using my own engine. I understand both sides of the fence, and there isn’t a benefit to coding your own 2D engine in 2016 unless it’s designed to run on hardware significantly worse than typical mobile phones. It would have been beneficial 6 years ago to DIY.

1 Like

One thing to note is GameMaker is when I used GM(Years ago) it was donked up slow! Like thousands of times slower than Unity. User scripts were extremely slow and collision was also very slow. Last year some friends used it for a game and also had performance issues with basic setups. Recently they’ve hired a few Crytek people and have been pushing performance I think and collision and stuff seems to have got quite good.

Unity 2D is OK at best… lots of things to be desired but totally good enough to make a game. No way would Unity be able to compete with GameMaker in development of a game like Hyper Light drifter. Something like Rayman Legends would be a different story though.

Talking ease of use or perf? because ease of use changes in Unity’s favour beyond simple 2D. Want 3D boss? nope. Want 3D background elements? nope. How about shaders? uh oh.

1 Like

Ease of use.

Certainly robustness is something Unity will win on but it’s always a compromize.

Well Unity is easier as you get more ambitious. It’s not black and white. Lets say you make a game maker game but really need it to look a certain way? there begins your struggle. What if you need better sound? the problems multiply in polish phase, which most people never reach.

Unity itself suffers the same problems vs UE4 once you go beyond Unity’s capability, at this point, Unity’s time savings begin to be lost. It’s the same scenario for game maker.

At this point I rate it like this:

Simple 2D games: Game maker
Complex 2D games: Unity
Simple 3D games: Unity
Complex 3D games: UE4

This isn’t surprising that the easiest choice becomes the hardest choice when you cross a threshold of ambition. Unity is a closed box so it gets harder with more hacky workarounds for 3D. Similar relationships exist across all engines.

I didn’t say “right tool for the job” earlier on because the job is pretty vague when complex 2D vs simple 2D enters the argument.

2 Likes

Yep, that’s why I mentioned Rayman as that’s a project that wouldn’t be suited to GameMaker and would be easier in Unity. Lots of 2D games just fit within the scope of GameMaker though, Hyper Light Drifter is a great example where Unity would add nothing and just slow down development.

Unity pretty much just offers a 2D renderer and a Physics engine and nothing else(Except a 3D engine) so it’s pretty bare bones.

I made a prototype for a platformer that took about three weeks on and off in Unity to get a good feel and good platforming gameplay. A similar project in GameMaker only took an hour or so (And was better).

Unity has SVG Importer and that pretty much makes it the best for a whole lot of use cases(Anything vector based).

1 Like

Most important thing is to go with an engine and stick with it. Game Maker and Unity are your main options for this.
The thing is that GameMaker is easier to use than Unity, but what you’re learning in GameMaker is not that useful outside of the engine itself. With Unity you’re learning C#, which will help you learn programming.

If you’re only just starting I personally would recommend Unity if you’re in it for the long run and GameMaker if you just want to put something out very quickly.

1 Like

So pretty much the consensus here is that, Hyper light drifter, Transistor sort of game are better done on game maker? What about if I was using visual scripting tools like playmaker?

Could you elaborate on what Unity isn’t capable of on creating games like hyper light compared to game maker?

There is a game called CRAWL that has a very similar 2.5D combat feels to HLD, it is done by Unity though.

In your opinion, can a game like HLD be done in Unity using tools like Playmaker?

It is more suitable for 2D than unreal engine. Also this is merely his opinion.

That’s not necessarily true.

This is true.

AFAIK it is mostly written in C++, with C# being used for scripting. You can do a lot on C# side of code, though.

I’ll assume by “platform” you meant “engine”.

Picking unity for 2d will be a better choice than writing your own engine. The engine is fairly powerful and fairly extensible. Shadowrun:Returns was made with it, as well as pillars of eternity. You can also achieve good results with gamemaker/rpgmaker if your game fits those engines well. Basically, RPG maker and GameMaker will be signficiantly more limited than unity engine but can still be used to make good games. If you can program, unity will be probably a better choice.

1 Like

I wouldn’t touch playmaker and similar visual tools. The best way to use unity is using C#. That’s my preference.

If you aren’t a programmer, GameMaker may be a better choice.

But yeah, you should be able to create Hyper Light Drifter in unity engine.

1 Like

Yep. But you should just make a prototype in both engines and decide. That’s what pros do. Why don’t you?

1 Like

Its worth noting that the interview was published in June 2014. The interview mentions about two years of development. That means that Alex Preston’s evaluation of Unity versus Game Maker probably happened in 2012.

Unity and Game Maker have both come a long way since then. In 2012 the only way to do 2D was to build a 3D game and constrain physics on the z axis. Unity now has dedicated 2D tools, a 2D physics engine, a sprite workflow, decent UI support and so on. Game Maker now supports far more platforms. I’m sure there are plenty of other Game Maker improvements I’m not on top of.

So today, Unity is well suited to make 2D games. The differences between Unity and Game Maker in terms of suitability are far less significant. What you need to look at is suitability for your particular game, rather then a general suitability for 2D.

1 Like

I’d say if you game is like HLD use GM, if it’s going to get more complicated then use Unity. GameMaker will make development much easier while Unity is more powerful.

It’s not that it’s not capable it’s just less efficient with time. I’d also say that you’ll have more support from YoYo games than Unity… especially if the game get’s a good following.

The guys who made Crawl are industry veterans. They worked on AAA games and then at one of the most successful mobile studios in the world. Whatever engine they made it in it would have been awesome but I’d say that they chose Unity because they like the freedom of .NET and having the ability to do more complex stuff.

If you are looking to eventually work in games as a job as a programmer then working with Unity should totally be considered as experience in Unity is more highly values then GameMaker.

I’ve used both GMStudio(latest iteration of GameMaker) and Unity, so I think I can judge pretty well. For the record, I have both installed, but I’m currently using Unity for my game, because though the game is 2d in gameplay, I want 3d graphics.

GMStudio, for 2d games, is really the bees knees. When I say 2d, I don’t mean 2.5d(except maybe iso graphics, but still 2d), and I especially don’t mean 3d limited to side view or anything like that. I mean pixel art, or HD art, or vector art, or even 3d pre-rendered into sprites. In the past things weren’t as good, but the latest GMStudio product is actually pretty good. The GML language can do a lot, and it can actually be compiled into C++ code. Even without that step, it is no longer run-time interpreted like it used to be. It has a physics engine integrated too. And despite what Hippo said up there, you CAN create shaders in GMStudio. In fact, people have made shaders meant for 3d, including ones that do vertex animation, etc… There is a shader set on GM’s asset store that does lighting, but not only simple overlay lighting, but rather normal based lighting, so you have to give it a normal map to go with the colored sprite, and it uses lights in 3d space and ends up looking 3d despite only being drawn in quads. But, for 3d games, GMStudio is crap. You can do some things, but it doesn’t have much of anything built in. The physics is only for 2d, there is no collision for 3d, and worse, there isn’t even any out of the box method to load 3d assets. You can code it yourself, but there are much better options.

Unity, for 3d games, is excellent. For all the good things about GMStudio for 2d games, Unity has it for 3d. And Unity has some 2d features as well, though they aren’t as advanced as GMStudio. But if you want 3d graphics, despite 2d gameplay, Unity wins. I’m not going to elaborate more, as this forum is Unity’s and there are plenty of things that have been said above. Also, if you intend on staying “free-to-play,” Unity is going to be better, as it can do 2d and 3d, and doesn’t put limits on export platforms. GMStudio has a nice free version(also with splash screen) but it doesn’t allow export to all the platforms.

I just wanted to clarify those few points in GMStudio’s defense. It has evolved into something much better than in the past.

2 Likes

Since you have more experience using Game Maker, tell me. Is it good performance wise? Because games like Hyper Light Drifter (locked at 30 FPS) and Hotline Miami (gets slow and performance drops with glitches) had been at a disadvantage.

It depends on what you are doing and how you are compiling it. Gamemaker used to run the “runner” which actually included a byte code converter as well, so you could literally compile code at run-time. This was not good for performance though. Yoyo converted the runner to C++, which got much more performance out of it, but the GML was still interpreted(though faster than it used to be). But now, with the GML getting converted to C++, I’d say the performance is as good as it can be. HPL I’m not sure about, but I remember Hotline Miami was using an older version of GM before some of these updates. I personally, though I won’t claim to have stretched it out much, have never ran into performance barriers, except on HTML5 builds.

One thing that helped performance as well that wasn’t in earlier versions was the texture pages feature. When you build a game, you designate texture groups for all of your graphics. The “compiler” then groups these onto texture atlai, which you can then control for performance. This reduces texture swaps, as you can “flush” the current uploaded textures and upload the ones for the current level. So anything used in all levels, like GUI, the character, some enemies, powerups, would all be in one group. And then any graphics for a given level(and only that level, unless it is reused later) would be in a different group. So between levels, you would flush, then it would load only the new groups you draw, meaning you never have textures uploaded to the GPU that you aren’t using.

I would mention as well, though you can break out of it if you want to, the game loop is generally frozen at a certain FPS. This does make things easier, though in my case I always set it to 60 FPS instead of 30. It helps in that you don’t have to care about deltaTime because it is always the same, and the game is “self-optimizing” because it won’t mess with updating or drawing faster than 60FPS. It makes things easier to move around and stuff. But if you want to run full speed, you set the speed to 9999, but then you have to calculate the deltaTime, and of course use it to control movement speed just like we do with Unity. I’ve never messed with doing it though, because I’ve never needed to, never going below 60FPS even with integrated graphics laptops. In fact, that is one of the bigger advantages of GMStudio for 2d games, you don’t have all the overhead of the 3d engine.

2 Likes

Thanks for taking the time to share all of this. Definitely sounds like they’ve put a lot of work into it to overcome the weak points. There is also no doubt they are a top contender for 2D game development. Even for pseudo-3D game dev using raycasting:

https://www.youtube.com/watch?v=25JRoM90Rc8

If GMS can handle games like that (where literally the entire display is being redrawn in tiny slices every frame) I can’t see it really suffering from performance issues.

Kind of makes me wish I had actually investigated it. I bought the Pro version last year as part of a Humble Developer bundle for $10. Since then I investigated HaxeFlixel, GLBasic, Monkey X and many others before settling on MX. However, in recent months I completely revamped the way I develop in Unity (throwing out all monobehaviors & component based design except for one GameManager (main loop) and Configuration GameObject) and now even making 2D games with it is very straightforward.

I might have to check out GMS at some point over the winter when I take my holiday vacations.

As for the OP, I’d say of course Unity can handle a game like HLD. It really comes down to which development “kit” you prefer to use.