Reasons not to use Unity
Paul whoknows

I can't find a good reason not to use it, even for 2d games.

Edgar Reynaldo

Unity Uber Alles Mein Fuhrer!!!~~~~~

Edit

To be serious, what's so great about it? Can you show us something you've made with it?

pkrcel

I might agree there are no practical reasons, but then again one should look at reason advocating its use, not the contrary.

jmasterx

-The commercial license fee is a big one.
-People who don't like C#?
-A bit bloated?
-The Engine Problem

That's about all I can think of. I don't use it because of my first point. Other than that, I've heard pretty much nothing but good things from people who have used it.

l j

2ez u scrub

Performance isn't optimal I guess. Not too big of a deal for most games.

OICW

If I'm not mistaken you're not given source codes unless you pay some really big fee. So no easy modifications unless you pay in advance and probably find out it's not the right tool for the job. I'm myself toying with the idea to try it out, yet still I'm intrigued by writing my own engine.

GullRaDriel

Speed.
Framework.
Fashion victim thing.
.

Arthur Kalliokoski

I was reading about it a few weeks ago, and the full $$$ version only has a few advantages over the free version, so I downloaded it and played with it awhile. I didn't like it and haven't messed with it since. :P

I suppose if you're willing to put a couple of months in to learning it, then adding a couple more months adding specific stuff to get around the "generic look", it'd be alright. I've spent way more than that using C and OpenGL, but there's no accounting for taste.

roger levy

I can think of a bunch. It doesn't give you as much control - you are locked into whatever they provide, and must mold your goals to fit in their framework - things that are normally real simple become complicated. It is huge. None of my Unity-using friends seem to know much about it, gleaning random things from the people they know, forums, and tutorials (which can become outdated). This is because the docs are not complete, with many descriptions for properties being a repetition of the property name. Android support is not ideal; rather than testing your program on the device, you must use a remote app with choppy graphics and laggy controls. Though they added 2D support, it is not that comprehensive, requiring you to buy plugins for tilemaps, pixel precision, batching, and more.

In short, not all the glitters is gold.

Paul whoknows
pkrcel said:

I might agree there are no practical reasons, but then again one should look at reason advocating its use, not the contrary.

Reasons advocating its use? I'm afraid basically all, is one of the most professional game engines out there, it's free, it supports multiple platforms, suitable for 2D games, enough for me. That's why I'm trying to find reasons not to use it.

jmasterx said:

-The commercial license fee is a big one.

The commercial version only have a few extra features most people won't ever need. You can sell the games you make with the free version.

OICW said:

If I'm not mistaken you're not given source codes unless you pay some really big fee. So no easy modifications unless you pay in advance and probably find out it's not the right tool for the job. I'm myself toying with the idea to try it out, yet still I'm intrigued by writing my own engine.

It's a closed engine, you are not allowed to mess with the source code.

I hate Matthew for making quote so damn hard >:(

Arthur Kalliokoski

I hate Matthew for making quote so damn hard >:(

Wat?

{"name":"608975","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/8\/f8ba8a972a3714fcdfe02cd20b130a4c.png","w":583,"h":130,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/8\/f8ba8a972a3714fcdfe02cd20b130a4c"}608975

OnlineCop

I use Unity3d all the time when I make games. I've only used the Mac version, but not the Windows version using Visual Studio.

MonoDevelop/Xamarin that comes with Unity has been stripped down and compiled specifically for Unity. It's outdated and kinda klunky.

Unity allows for rapid development. Plugins (like NGUI) really make it fun to use.

The free version, like everyone said, only lacks a few features that the Pro versions offer. I've rarely used the features in the Pro version; I could have easily have gotten away with the limitations and no one would have been able to tell. But since work bought licenses, I never had to pay the sticker price for it.

I've shipped about 12 games in the Apple and Google stores that were made in Unity (both 2D and 3D).

What I like is that you can see results immediately. You can modify stuff right in the engine, hit Play, and see how things react. You can code with vanilla C#, or you can extend it with Linq and other extensions. (You CAN use Javascript if you want, but JS isn't as feature-rich as C#.)

It smells nice.

I guess your mileage will vary. Of course, so will using Lua, OpenSceneGraph, or Qt. I've found that C#/Unity is "fast enough" for most of my programming needs, and since it's MUCH faster to program in a higher-level language than C/C++, you can get "more" game done in "less" developer time.

What do you WANT to do: spend extra time using a language that gives you a lot more speed on device, or extra time using a language that gives you less per CPU cycle but lets you develop faster?

jmasterx

I've always wondered why there are not really that many languages that are high level that can compile to native code.

I feel like this is a problem that should be solved in some way.

Wouldn't it be great if when you develop, things are compiled to intermediate language which allows you to change things while the engine runs etc, all that nice stuff, but your final build grabs all your scripts and everything and makes a nice native binary blob for that target platform. And it would be optimized to get nearly the same performance as writing native code.

I haven't ever looked much into this so I don;t know what's out there, but I feel like I often hear that using an engine/script solution gives noticeable performance hit over writing native code with something like Allegro.

Dennis

Here is a reason: It is proprietary closed source software.

StevenVI

I don't have much time to develop games on my own anymore. And since I don't really play them either, I've pretty much stopped doing it completely. This is a game that I had started working on with Unity though, about a year ago:

Raid 3D

I thought the engine was pretty cool and no, I don't see any reason not to use it. I only spent like a week's worth of evenings on it, most of it was in learning how to do everything.

I've not seen any good arguments presented here for why not to use it. I say go ahead and start making cool games with it. No sense in writing low-level C code just to stroke your ego. :)

Arthur Kalliokoski
StevenVI said:

This is a game that I had started working on with Unity

unity web player
install now!

No, thanks!

StevenVI

unity web player
install now!

No, thanks!

Yet you probably have the Flash player installed and have no problem with that.... ::) (Not saying you definitely do, but you presented no argument for why you don't want the Unity player. It makes it possible to play Unity3D games just as easily as Flash games.)

I also have a Linux build available if that's more your speed, but it's a bit older. http://www.skoobalon.com/random/unity/raid/2013-10-16/Linux.7z :P

Arthur Kalliokoski
StevenVI said:

you probably have the Flash player installed

But the pr0n!

Trent Gamblin

The best reason not to use it is PLATFORM LOCK IN. You have no control over what happens to Unity in a year, or even tomorrow.

Do you really want to invest years into a game and leave its future up to someone else?

If you're making trivial games it doesn't matter either way, have fun.

You may not care about platform lock in. If you can see yourself making a game, selling it to a bunch of people, then abandoning it a year later, Unity may be for you.

Max Savenkov

I don't have much experience with Unity yet, but I'd say it's better suited to some genres/kinds of games than to others. For example, creating a tile map in Unity is a PITA, even according to my friend and colleague, who is a long-time Unity programmer. I also think it isn't quite well-suited for 2d games... But I have a bias for Allegro in that department :)

Even with 3D games, Unity should not always be your choice. It can get kind of slow (and hard to optimize) when you want big open worlds (as far as I know, streaming terrain chunks isn't easily done). Overall, performance might be an issue, especially if you didn't pay enough attention to it from the beginning: like all "visual" programming environments, Unity makes it easy for your artists to put together unworkable beast of a level, sometimes by just pushing a few buttons (anecdotal evidence: some changes done to a scene by sound designers brought FPS to nearly zero in a game my friend was working on).

Also, it seems to me that default lighting model in Unity is somewhat... unique. You can often tell a Unity game by just looking at screenshots. This is not a very good thing, and you should be prepared to tinker with shaders etc. to avoid making a stereotypic-looking game.

I have experience with at least 3 Unity-based games that came out in past few years: Shadowrun Returns, Wasteland 2 and Jagged Alliance: Flashback. To me, they all share a feeling that levels are kind of cramped due to engine's limitations, and system requirements and load times do not really match the look of those games.

Then again, Unity offers a way to make your game quicker than any other framework or engine, due to excellent tools and wide selection of assets and additional components in Asset Store. Do not forget about Asset Store, for it could be a great boon to a indie game developer! While there are rumors about similar asset stores for Unreal Engine and CryEngine, so far they are not present (also, I heard that Unreal Engine 4 is an unstable, poorly documented mess with half-broken tools, which should be avoided at any cost). So, at least prototyping game-mechanics in Unity is an option you should consider, even if you will later code the full game with other/custom engine.

EDIT: And web deployment. Don't forget web deployment. I know you all refuse to download Unity Web Player, but the new Unity will be able to compile games into HTML5 and will not require WebPlayer. And putting an online demo version of your game on your site is said to greatly increase conversion rate (source: some Banner Saga interview. This is also why I still hope to bring Allegro 5 to web via Emscripten, but technical problems with the new releases of Emscripten are preventing me from further progress so far.

l j

For example, creating a tile map in Unity is a PITA

Somebody will probably write a plugin to make it easier.

Quote:

It can get kind of slow (and hard to optimize) when you want big open worlds (as far as I know, streaming terrain chunks isn't easily done)

It's certainly possible, just look at KSP, although the performance in that game is indeed not great.

m c

Unity has some bugs?

Gideon Weems

The main reason has already been mentioned: It's proprietary (and therefore susceptible to platform lock-in). In a way, Unity represents the same sort of step back that "the cloud" does with storage.

Free software is the way of the future.

OnlineCop

Free software is the way of the future.

I disagree. Blender3D is (and will remain) free software, but it's no Maya. Paint.NET is free (but is no longer open-source), but it's no Photoshop. Code::Blocks is free software, but it's no Visual Studio.

Free software tends to be "backed" by hobbyists, which makes it difficult to give them the dedicated time and attention that you get when a company can throw money toward a project.

Free software certainly has its place, though. I feel most software out there could benefit from "many eyes", although without a central authority to keep the project on track (along with some kind of financial backing), projects will struggle and won't be as polished as they could become.

Unity3D has been demonized here as having "platform lock-in". It's doing pretty well for itself for ONLY being available to play on Linux, Windows, Mac, iOS, Android, Windows Phone 8, and Blackberry.

Yes, if you develop an app with Unity3d today, it may change its business model tomorrow and you won't be able to pay the license fees and all the apps you've created can't be updated anymore. But look at it this way: Angry Birds and a lot of other well-grossing games out there are built on Unity. If you were to make a butt-ton of money, and Unity decides to change its license from under you, your app is still "out there", making you money.

Corona SDK (using Lua) requires that you pay them annually to have the ability to "recompile" your app. So if you pay the fee one year, and the next year you find a bug that you need to patch, you have to pay ANOTHER year's fee just so you can recompile the one-line change and push it out to the App Stores.

With Unity, I can keep using my outdated license to make enhancements.

Build away. Make some money. If their "proprietary (and therefore susceptible to platform lock-in)" software dies tomorrow... you're still making money. :P

Thomas Fjellstrom

Thats fine if your only goal is to make money.

StevenVI

I'd say it's fine if your goal is to just have fun, too.

Currently I've been developing software for the Roku when I have free time. I have absolutely no intention of selling any of my software -- I actually feel that there's not enough open source for the Roku, so that's how I release everything.

The Roku platform is a closed ecosystem like the Apple Store, though it offers a bit more freedom: you don't have to pay to join their developer program, and can publish your channels privately without requiring a review.

Tomorrow they could shut down their developer program and push a firmware update to disallow custom channels to be run. This would be a ridiculously dumb move on their part, but they could do it if they wanted to. I would be royally pissed if this were so, but that doesn't stop me from developing for their platform, which though it has bugs like everything else, is still an excellent interface for pushing media to a television.

Unity could do the same thing. Apple could do the same thing. Amazon could do the same thing. Google could do the same thing. Microsoft could do the same thing. You can't live your life being scared of someone closing the platform that you're developing for. If something you like goes away, you adapt and port to a new platform. That's life.

If Allegro 4 development ceases, you port your game to Allegro 5. ;):P

Paul whoknows

Thanks for the comments. I'll give it a try.

Trent Gamblin
StevenVI said:

If Allegro 4 development ceases, you port your game to Allegro 5. ;):P

Good luck porting a Unity game...

jhuuskon

Unity represents the same sort of step back that "the cloud" does with storage.

You mean that I not having to carry around USB drives to school and back because I can just throw my files to OneDrive and have them available whenever and wherever I log in is a step back? Fuck you.

Paul whoknows

Good luck porting a Unity game...

Porting games between engines is one thing (UDK<->Unity) :)
Porting games between low level game libraries is another thing (SDL<->A5) :)
Porting games from a low level library to an engine is other thing (A5->Unity) :):D8-)
Porting games from an engine to a low level game library is suicide (Unity->A5) :-/:-X:(:P:-/

bamccaig
Chris Katko

Actually, there's a couple damn good reasons not to use Unity anymore. And I was the guy looking to get into Unity the last month or two.

Apparently everyone (in the Unity community) hates it now. Why?

- "Microtransactions." In order to do, basically anything, you either have to script in house, or purchase dozens of 5/10/15/$25 "assets". All the stock stuff is barely enough to prototype the simplest ideas with.
- You still have to code... basically everything. Yeah, you get a renderer. But you still have to extend it and write shaders (or buy them for only $15!) to do anything that a real project will need. If you actually use any "stock assets" you're laughed at for not being a serious developer, and stock assets like the FPS controller actually have plenty of bugs.
- Not only do you still have to write everything, now you have to learn the Unity API and all of it's quirks. Which means when something goes wrong, good luck looking through obscure documentation (if there's any at all) to find out if it's even your fault.
- Their new CEO. This caused a huge commotion. He is John Riccitiello and he's literally the ex-CEO of EA who gave us micro-transactions and always-connected internet DRM. He also was quoted once at saying how great it would be for someone playing Battlefield to run low on ammo and pop up a request "Do you want to buy an ammo clip, for only a dollar?"
- EA.
- EA.
- Anything that isn't "stock" or "standard" you literally have to fight Unity to get your way. And that includes "down-grading" things that Unity does that you don't actually want.
- Kiss $1,500 goodbye for every operating system you support for a Pro License. And going without? Enjoy not having "optimizations" like vertex culling. That's right. They literally make your game slow by not culling in order to force you to upgrade.
- From what I remember, network support isn't actually included. They outsource you to another third-party company you have to pay yearly.

I was going to make a 2.5D Duke Nukem-style game in Unity. But basically the more I looked into it, I was going to have to strip out so much of Unity and code so much of my own... I wasn't really getting anything out of it.

I'm still doing preliminary work on the game, but Unity is now out. Lots of people recommend switching to Unreal Engine now, apparently. Though, I have zero experience with it.

StevenVI said:

If Allegro 4 development ceases, you port your game to Allegro 5.

Allegro 4 development... hasn't ceased?

If my game moves forward into a more serious setting, I'll be making commits as necessary. But things are tight right now, so no commitments.

Trent Gamblin

Porting games between engines is one thing (UDK<->Unity) :)

No, you are quite wrong. Porting anything to or especially from Unity, even if it's to/from another high level engine, is suicide.

Mark Oates
Quote:

Because. >:(

:)

pkrcel

Choosing a "good" tool (Unreal Engine, Unity, Allegro5, irrlicht, OGre3D, WHATEVER) is part of the deal, but the juice is that not everything will ever be optimal for everyone.

Unity is successfull, widely praised and supported by tons of assets, I can't see a compelling good reason not to grow an expertise on it, make money with it, or just have fun.

Also, it opens up opportunities as a freelanceer, to my limited knowledge there ARE out there freelance Unity consultants that hire for less than the wondrous enterprise priced Unity support, and make a good living out of it not being "full-fledged game developers", but have valuable skills.

Then again, MAYBE John Riccitiello as a fresh CEO could be bad news....:P

Johan Halmén

C♯ looks better than C#.

pkrcel

ahahah, wouldn't you have a better sig meat already I'd sig that ;D;D;D

Arthur Kalliokoski

How about the musical synonym? bb <- that's supposed to be a B flat...

Ben Delacob

...and that's supposed to be D flat.

raynebc

It would have been better to name a programming language B♯ or C♭ since there is no interval between B and C in the normal 12 note scale.

Erethar

This thread caught my eye because I'm currently dividing my time between a solo project using Allegro and a group project using Unity.

With allegro, I get to use my choice of OS (Linux), editor (Vim), and language (D). It generally just feels like I'm in more control, and I have a better idea of what's going on.

On the other hand, Unity provides a lot more built-in functionality (physics, 3D, collision, GUI, something resembling an entity-component framework). And while I get annoyed with needing a heavyweight UI to build my game when I'd rather be working for a terminal, its definitely easier on the artists.

Unfortunately, this means alot goes on behind the scenes that I don't really understand. A Unity project contains hordes of "mystery files" and hidden build settings, and that scares me.

Chris Katko

That's what irks me. That feeling of not knowing on what's going on under-the-hood. Not knowing the feel, the quirks, without slamming into them when everything crashes to the ground in Unity (or any other engine).

I've been stuck working with Microsoft Dynamics the last three months or so for work and it's the most disgusting feeling of "not knowing." You literally have to change registry keys to turn on error messages, and then, you get at best a stack trace, at worst, you get a blank file. And if the problem is on Microsoft's end? You can't even find a phone number to call. And if by chance you do get a dialog box with an error? You get error numbers. No names, no descriptions, nothing. And if you google for that number and nothing comes up? Oh well.

As for artists, technically, you can write plugins for most 3-D modelling plugins to mirror your game engine to show how everything will look in your renderer vs the default modeler's. Sure, that's not "drag-and-drop" like Unity, but the point is, if it's extremely important for your artists to get that level of interactivity, it can be done if you spend the time on your tool chain.

So clearly, engines like Unreal and Unity can take up a lot of a certain kind of work for you (namely, the rendering engine). They're worth investigating, but not without accounting for all the negatives as well. Programming productivity is as important as artist producivity. And "fighting the engine" is as much a time waster as "re-inventing the wheel." Personally, I would shoot for using smaller, succinct, properly encapsulated and vetted libraries/packages. Don't want to re-invent error logs? Fine, get a free, tested error logging library. That doesn't mean you need a full engine. But of course, that's colored by my personal needs for strong customization (as I don't make "common" games), and my complete lack of respect for any engine that gets in my way of "my programming."

jmasterx

Microsoft Dynamics

I worked with CRM for a few months as an intern. never happening again.

Worst part is the employees there were writing SQL queries directly to the CRM database to have more control, but this just broke everything when the company tried to upgrade to CRM 2011.

Yodhe23

Does Unity have al_init_mindcontrol();

But seriously as a professional(?) games developer there's no competition.

jmasterx

No, Unity only executes commands that the user has consented to >:(

Chris Katko
Yodhe23 said:

But seriously as a professional(?) games developer there's no competition. [to Unity]

The Unreal engine seems to disagree.

Paul whoknows
Yodhe23 said:

But seriously as a professional(?) games developer there's no competition.

I'm a professional game developer 8-)

The Unreal engine [www.youtube.com] seems to disagree.

Not free, not at all :( you even have to pay 5% royalties, it really sucks.

Chris Katko

Not free, not at all :( you even have to pay 5% royalties, it really sucks.

Well, you have to decide what your profit margin and scope are going to be. Clearly plenty of developers fit the bill. It seems that Unreal is more for a medium-sized company than a small indie company. However, I'm not minimizing your opinion, so please don't take it as that.

Unreal's Webpage said:

If your game makes $1,000,000, then we make $50,000.

That's really not that bad for a complete tool chain. I recall in the 90's when everyone was blowing $20-100K a pop for a single SGI workstation... the only way to make a professional game.

Also, I would imagine older versions of the engine cost less since BioShock for the iOS ran on the Unreal 2 engine. Also, there are other engines like the Cryotek engine which has no royalty payment, but I am definitely not familiar with it.

My point is really that you're not stuck with Unity.

Thread #614752. Printed from Allegro.cc