Do You Find Unity Makes Game Development Faster Or Slower ... Easier or Harder?

Yes I realize these are the Unity forums and people are likely to highly favor Unity either because they have never used anything else or because they have and still like Unity better.

For those of you who have experience with development in other APIs/engines how does development in Unity compare for you personally?

The reason I am asking is because I often find myself thinking why is this taking so long? Where “this” is whatever project I am working on when pondering the point.

For example, I am currently working on a 2D scrolling shmup game. I’ve spent 54 hours on it so far just to get to this point:

When I think back to when I was developing with other APIs I wonder why it seems to take longer in Unity. For example, when I was using Blitz or C# & XNA I could do things like this in about 2/3 to 3/4 the amount of time it takes me now. Although I am not positive, I think the difference is just the time spent in the friggan Editor creating prefabs and assigning sprites,scripts and other junk to prefabs. Granted, I do as little as possible in the Editor so I can actually start developing but still this overhead on every project just slows the development pace down compared to things I have used in the past that do not use this kind of workflow.

Just curious how others find the development in Unity compared to other ways as far as efficiency and productivity of dev time is concerned.

3 Likes

It’s fast as heck if you make everything modular. You end up spending most of your time tweaking values in the editor to fine-tune the behavior of different objects. Compare this to the cycle of test, stop, edit and trying to design ingenious class hierarchies. The key for me has been making every script I write 100% reusable as much as possible. This means generalizing as much as possible. Then you end up getting the majority of your functionality through a few drag and drops and you just add a controller script to an object to get the behavior that is unique ONLY to that object.

The best way to think of it is you start with a basic slate and then you add layers of functionality to these blank slates. If two objects are similar, copy and paste them and then add another script to give you the changes to the other object where it differs from the original.

Using the editor and the genius of prefabs is actually the #1 way I have saved time at all.

For example, how would you structure your levels and stages? Complicated structures, right? What I did was literally create an array of Stage classes that contained an array of Wave classes, and I just tweaked each level right in the editor, collapsing the stages when I was done working on them. I must have saved hours just by not having to scroll through code to modify stupid little things like the spawn rate of this object, or the falling speed of that object… in my next game, it’ll be even more efficient because I’ll be tweaking everything while playing the game. That’s my #1 consideration from the very beginning, how to limit the need for editing scripts. Because when you edit scripts, the game crashes in the editor and you need to restart it.

That’s what it’s really all about, micro time saving and maintaining a flow state in your work. It is literally exactly the same thing as playing Starcraft. I also found that while working in one window primarily, utilizing the GUI, I was able to avoid alt-tabbing to the forums because I was getting things done so fast I just wanted to do more.

That’s my take, it’s so much faster to work visually than just in code for so many reasons.

1 Like

Hmm asset store stuff can make things quicker (like shaderforge)… Using shaderlab for me slowed things down as opposed to using a material editor. I find the component based scripting pretty quick and very simple to use, but that was offset by having to build a lot of tools to fill in the gaps…

It really depends on what you’re doing I guess, the engine I’m using now is simpler and quicker to get things done than Unity.

1 Like

Maybe that is part of the issue. Most people are probably using Unity in a much more “Unity way” than I do. :wink:

My levels are actually done with SpriteTile that I bought on the asset store. Terrain data for the parallax scrolling is all just layers of map data. The enemies and prisoners are all just markers on another map layer. It is all visually done but not in a scene. The scene is basically completely empty until runtime. As the map scrolls it is scanned for enemies and so forth to appear. Basically I just did it the same as I always have with other dev environments. So to me it is like the editor is adding extra work to do on everything. Although I do like the ability to visualize the data in the inspector and make adjustments on the fly. That can definitely save some time on the fine-tuning part.

1 Like

Yep. That’s the time suck. The old ways be slow and require more testing to get it right. WYSIWYG is here to stay!

1 Like

Well, if you want to deploy to multiple platforms it certainly is faster usually. I think for most 2d games it is way overkill

So it sounds like you could answer this question yourself, why do you use Unity if it is faster for you to use a different environment?

2 Likes

You know I have been thinking about that too. I think you basically hit the nail on the head. I can see where for 3D Unity makes game development faster and easier. But for 2D, in my experience, it makes a project more complex, more time consuming.

Great question! The reasons why I chose Unity are:

  • I was tired of continually needing to swap dev kits every few years or so. I have done it so many times now that after Blitz and XNA I just wanted to find something that looked like it would be around for a long time (like 7 to maybe even 10 years) before it fell by the wayside. Unity seems to me like it will be around for many years to come. I could be wrong about that but that is just my gut feeling.

  • I wanted something that would allow me to make games for many different platforms. Unity by far seemed to be the best for this aspect. This is probably not as important now. At one time I thought it would be cool to be able to put out a game on PS3 in the Minis section. And I even considered a cell game although I personally am not into them at all still it had some novelty item appeal. Now I’d probably be content with just Windows, Mac, Linux and web. In reality it may be all that I will ever end up doing anyway. Still the thought that it can support the consoles is a nice one.

  • Finally, to a much lesser degree, another reason is I kept reading good things about Unity. About how all of these people who had never made a game before were knocking out games in it. Far more people were doing it than ever before. So I figured it must be doing something right. Figured I should check out this thing to see what everyone was raving about.

I have been thinking a lot about exploring other APIs and engines for 2D games. Because I think there has to be something better for them. Certainly not GMS I checked that out and hated it. Seemed like just a big console of push buttons to me. I am not into all of this GUI editor stuff.

The reason why I have stayed with Unity is because I continually strive to improve my workflows to eliminate the bottlenecks. And I spend time searching the Internet and checking out videos because I keep thinking I have got to be missing something. Certain things that people are doing that allows them to develop faster. I just assume they must be developing much quicker than I am otherwise I don’t understand why they would stick with Unity either. :wink: So far though my searching has not turned up much. Most videos and tutorials show the same basic workflows over and over. Mainly just slow, tedious work inside the editor. Mainly laying out the entire world inside the editor having everything in a fixed location already set there. Basically set piece games. Even the name kind of says it all: a scene.

I believe it is making my work a lot faster. I love the scripting in Unity. It is much better than using anything like Game Maker or even DirectX. I started my project at the beginning of summer and I have a lot of stuff done. Obviously there is a lot of polishing that needs to be taken care of. The things that I am going to work this week are posted in the description if you care to look. Anyways, I don’t think I would have completed a lot of what I have now if I used a different engine.

(btw my game is a Bullet Hell Top Down RPG game)

edit: I guess it is important to mention that although it does not look like there is much going on and it seems like this could be finished in like a week, I did already program a lot of major features such as: Randomized dungeons, huge loot drop system, inventory system, a very flexible ai base framework as well as a base player framework, and under the hood stuff such as object pooling for any object and a whole UI class with lots of functions that control every aspect of my UI. This was all possible because of Unity’s flexible work flow.

1 Like

I’ve used a bunch of different middleware engines over the years, and so far Unity has been the best one. I don’t know if it necessarily makes development of the whole game faster, but it definitely speeds up and simplifies the time it would have normally taken in the past to add new features. So as a whole, my games take around the same amount of time to make, but each one has more and better features, so it balances out. I’ve only made 3D games with Unity so far, for the record. Haven’t done anything 2D in Unity yet.

2 Likes

Your game looks cool to me. I’ve been wanting to make a top down zelda-like action rpg for a while now. I know yours is more like a Smash TV style of game but it still made me think of an action rpg just from the perspective. lol :wink:

Anyway, looking forward to play-testing it. Be sure to throw it over in a Feedback Friday.

1 Like

Definitely faster and easier.

Things I don’t have to write:

  • Collisions
  • Physics
  • State machine (so switching between scenes is possible)
  • Game loop
  • Delta timing (so game will go exactly as fast as it should, regardless of clock speed)

Things I have to write:

  • Actual game logic

So it’s definitely faster to use Unity. Not necessarily easier, especially when trying to do something that something custom made would be better suited for (example would be voxel games - sure, they’re 100% possible in Unity, but often custom-made engine would be better performance-wise, especially if we’re talking really small voxels, not big 1m textured blocks like in Minecraft).

Definitely though I like sometimes gets to the basics as much as I can, for example now I want to make a pico-8 game, but don’t have $20 required to obtain pico-8 ;(.

WebGL 2d games I would definitely stay far away from Unity for now. I can write a small tile based WebGL game in a few hundred lines of javascript(tutorials to do this in many books) using something like Pixi.js with a download size of <200k as opposed to the 15MB or so in Unity, that just makes no sense.

There are some smaller things I tend to overlook when searching for the greener grass like drag and drop GUI, sprite slicing/atlasing, etc. If you go to another framework it probably has that stuff, but if you do it from scratch suddenly it is a pain. Really depends on the game though, I was able to do a tilemap and display it to the screen fairly easily with no framework at all. That doesn’t mean I get a bunch of cool shader effects and all that but if I just want to display a bunch of tiles, you don’t need Unity for that.

3D I think there is no question, Unity is a lifesaver.

1 Like

That’s it exactly. I mean all 2D needs is ability to draw images at a certain location. Period. Whether tiles or sprites. I don’t need shaders or any other stuff. All I am using Unity for is basically a blitting engine (although of course it is 3D here not true 2D blitting) and audio API. No Animator/Unity Animations. No shaders/materials. No physics stuff. Basically nothing. I develop basically the same as I would in anything else except for the mandatory messing around in the editor.

Coming from a Blitz background as well I do find Unity to have some issues. I prefer to focus on 2D also and it still just isn’t quite the ideal solution. Like you say I can bang out stuff that works in Blitz in quite a short time in comparison. Some things Unity does do well (for me) that I would otherwise have to spend a lot of time doing, would be the complex stuff like physics, collisions, rendering, etc… probably a lot moreso if you’re into 3D.

But there are still problems and like you I still feel like it just all takes sooooooo much longer than it should.

I also think expecting people to use the likes of mecanim to do a 2D game is awful. Animation curve editor - not very wysiwyg and so much time spent fiddling with the mouse. And I agree all this prefab stuff and things having to be all put on the proper objects and all this… just seems like a lot of management and ‘work’ to try to translate stuff into how Unity wants to do things, rather than it speaking my language.

Like, I want to add a sprite on the screen and make it move. What do I have to do… we’re looking at importing a texture and setting up import settings, fiddling with sprite slicing and all that, generating sprites into the scene, fiddling around with the camera to make it look right, dealing with materials and shaders, who knows about lighting, then once we’re onto getting the thing to have some kind of behavior… well… now we’re down boring old scripting, in a non-game-focused language, or trying to use some clunky third party thing which has all its own quirks and limitations. It really should all be so much easier than this. It just isn’t and efficient workflow.

At times it makes me want to go back to Blitz, except for I DO prefer Unitys cross-platform power, its stability, its continually being upgraded and fixed, the huge community and good documentation etc.

So, mixed bag for me… it saves time in some areas, totally sucks in others. This is partly what puts me off sticking with a project. Creative people would be far more productive and stick with projects much longer if al this pain would be removed.

2 Likes

As others pointed out, there is no definite answer.
You always have to keep in mind that Unity is a general purpose engine with lots of functionality.
Of course it is easier to create 2d games in an engine specialised on 2d games. The same goes for FPS games or RPG games where highly spezialised engines exist.
But here the asset store and the great flexibility for editor enhancements come into play, which can lessen the pain with certain things.
For what Unity does, I would say it is very easy and fast to work with.

1 Like

That looks awesome! I was talking to a friend just a few months or so back about the idea of building a simple game app actually kind of a virtual console. This pico-8 is basically just what I was thinking of! I will have to check into it more. Thanks for mentioning it.

Yeah, you’re welcome. Shame I can’t get it (would have to save two whooping months for it, after paying bills, buying food, etc. there’s only $14 left for other stuff, sometimes less). If there would be possible to invite/gift it…

The poll is impossible to resolve and the correct answer is unity makes it harder and easier because some parts aren’t done for you and other parts are. For example a Matinee style director, blueprints, shader editor are missing. On the other hand the component based workflow, easy modification of editor and easy scripting make things much easier.

So it’s both, in the same way UE4 is both. Pros and cons.

2 Likes

If you restrict your project within Unity limits, then yes it’s actually really fast. If you are looking for impossible/unavailable features such as next gen gigantic terrains populated with procedural elements and other open world out of the box features then you will hit a wall really hard. In other words, it will be possible to some extends but requires lot of time and effort and no matter what you do, it won’t look or perform as good as the competition (UE4).
In my case, I try to restrict my self to the limits of what the engine can offers out of the box, with the sole exception of rendering (shaders and camera rendering), which in our case I had to write it from scratch as Unity default/built-in ones was a tad slower on mobile.
Some parts of Unity are quite flexible and extend able which makes your goals faster, others requires tremendous amount of time.

2 Likes

Just tonight alone I was able to build a system for managing the camera, transitioning to different colors like fading to black, etc. there’s an audio controller and I can crossfade music (I lacked that in the last project), now I’ve slapped together a rudimentary title screen with a couple of little menus. I don’t know how it can take longer. I’m just slapping things together and they will work perfectly fine, then later on I’ll make them pretty. What’s not to love?

1 Like