I had a conversation with a fellow game developer yesterday, who like myself hails from the oldskool days of the ZX Speccy and learned game design by coding in assembler (something I was never comfortable with).
When I told him I used Unity to create games he was quite dismissive, calling it a ‘jack of all trades’ and stating that he’d always get better results writing his own engine from scratch.
My counter-argument was that as a solo dev if I had to write everything from the ground up I would more than double my workload and possibly never reach the point of completing an actual playable game. I also stated that with today’s increasingly powerful mobile tech we no longer need to ‘push the envelope’ to create a wonderful game, and that ultimately ideas and originality mattered more than realistic grass rendering or streaming a mega-texture at 60fps.
He replied that Unity (and other middleware such as the Unreal Engine) just aren’t capable of the technical feats he required. Unity being an ‘average car for going shopping’ he’d rather build his own Lamborghini and travel in style, he said.
People who poo-poo Unity are entitled to their opinion. If he thinks he can build a “better” game by writing his own engine, then more power to him. What matters here is what works for you.
Bottom line: Unity can produce some really great games that people will play. There are more than enough games out there that already prove that. You are only limited by your own skill set and budget.
Both points of view are valid to an extent. Unity is certainly very capable of producing good results and enables you to be far more productive in a far shorter time span than creating your own bespoke tech. Having said that, if you stray too far outside of common game design and development practice, or performance is absolutely critical, you could easily find Unity starts to become limiting and works against you. At the end of the day its about picking the right tool for the job.
How do you know he hasn’t already? The OP didn’t make any mention of his or his buddies skill level other than to state that they were old school dudes who at least puttered in assembly back in the day.
As to whether it’s “better” is kind of subjective. If I wanted to develop a custom engine for a game I could sell the game and then sell the engine. More money = better.
If I wrote the engine I could implement any future features with a full understanding of how things work in my engine with free license to change anything I want / need for the cost of development time. More flexible = better.
If I wrote the engine I would have to learn a ton of stuff and then implement it all consuming more time than I would likely care to spend. So for me less time = better and I would choose to use a 3rd party application such as Unity. I think most of the people that would visit this forum on a regular basis fall into my category or we wouldn’t be on these forums.
The real question should be is it better for YOU… where YOU are a unique entity who’s skill and time can only be measured by the value YOU place on them. Is it worth YOUR time to make an engine? It’s not for me but it certainly was for Unity, ID Software, Crysis and Minecraft.
As i myself started/learned assembly coding on my ZX Spectrum back in 1984/85 (most advanced was a Pacman clone, but than left for the Amiga), i felt the instant urge to respond
He sounds like living in a dream world and probably has no clue of game development how it is done since the early 90’s. He’s of course entitled to his opinion, but even for the most basic games, like tilebased 2d engines exist today as opensource . There’s simply no need to start from scratch, except for the learning ( and later on going crazy and frustrated ) experience …
Precisely.
I’ll repost some words I had in a private discussion, because they’re relevant to the subject.
(disclaimer : I love Unity, and will certainly not change for another game engine. It has brilliant qualities, like an incredible workflow, simplicity, flexibility, and above all, performance. This list below is just an illustration of the point Nullstar made above.)
But … all of these walls I hit would have been the same with any other engine, in my opinion. An engine is intended to be a jack of all trades.
What I liked with Unity is their intent to optimize constantly the core performances. I mean we’ve seen some patch notes where you could read “200% performance gain for X feature”, while the base one was not so horrible.
As a dev who knows he will have to recreate a lot of engine features for complex gameplays, that is precisely the kind of direction I want an engine to take : performance improving. Everything else ? I’ll make my own versions anyway, I get it now.
So yay for Unity. The only thing that tickles me is how I had to make my own version of core features because the builtin ones were lacking some precise (obvious) functionality. And technically, this is lost time, as it made me write one feature two times (the builtin based one, realize it lacks an important detail, then writing my own one).
TL;DR : Analyze all of your technical needs before blindly relying on the engine core features, and take the time to clarify what you’d better rework from scratch, and what not. That will save you a lot of work time.
But don’t start everything from scratch.
Why reinvent the wheel? I don’t think the performance gained developing your own engine would outweigh the time/effort/cost. It’s a waste of time if you’re a game developer in my opinion, what matters is the game and the players don’t care how it was made, only how it plays.
According to his word he already has developed several top ten iOS games for clients - though I am not familiar with them personally and won’t pass on any details. I’m sure that these games are competent, well-executed examples, though probably not technically groundbreaking.
He did think if you strayed too far from accepted and general game design parameters Unity would present an obstacle - something mentioned above.
He also derided Unity’s 2D / Sprite capabilities.
In my opinion, Unity offers a fantastic toolset and I have no hesitation in recommending it to potential developers. As a music producer, I see a parallel - do I need to build all my own instruments from scratch to create a great piece of music? Of course not.
I made that point - 95% of end players won’t care how your game was made and they won’t rate it with more stars because you’ve written the rendering engine yourself. They’ll rate it because it was fun, or it made them feel excited, or scared, or because they liked the character and the scenarios in the storyline.
Actually most people who see the Unity logo will say “oh it’s another Unity game” because in certain groups Unity has a reputation for putting out low graphics quality games from hobbyists (which is one of the strengths of unity, there’s a free version and it’s easy to use) Which is why a lot of developers/publishers try to hide the fact they used Unity.
When someone releases a high quality game with the Unity logo displayed people will say “wow, Unity games have gotten a lot better” regardless of how many AAA games have been released with Unity. Just look at youtube comments (yes I know, it’s like watching a train wreck) or game portal sites that host unity game like kongregate.
There are certainly groups of people who admire someone who can create an engine by themselves (Natural Selection 2) but you’re right that the majority wont care how the game was made.
Some people always know better I guess. For those with the know-how, it’s fine to spend time writing an engine from scratch. For me, that’s not an option. I could not begin to challenge Unity’s own coders by developing my own system.
I don’t feel limited by choosing Unity - my technical requirements are fairly modest and my biggest headache is designing a level that plays well and that can be resolved in a truly satisfying way.
I feel there could be some parallels drawn with the overuse of CGI technology in movies. Consider how much more advanced the technology used making ‘The Phantom Menace’ was than that available for the original Star Wars and you’ll get where I’m coming from.
There are many things that just aren’t practical for a solo developer … if I were to try to write Unity myself it would probably take years of work. There’s a team of over 100 people behind it, you can’t compete with that. As far as a raw engine goes, just rendering and physics, you could do that fairly well by yourself but all the extra support infrastructure, editor, features, etc no way.
Unity isn’t really targeted at making an engine dramatically better than one targeted at a specific task I don’t think. The ultimate goal is to make it so that you don’t have to spend all the time you would normally spend making an engine. He’s technically correct in that, if his skill level is good enough, that he could make an engine that would be better suited for his specific needs than Unity, but with Unity he wouldn’t really have to.
The highest quality games made with Pro usually don’t show the Unity logo at startup so the bias is for the public to be more aware of Unity at the lower end of the market, unfortunately.
It’s not meant to do 2D graphics, it’s meant to do 3D.
And yes, anything made for a very specific purpose, will do that very specific purpose better. For instance, a printer/scanner/fax-machine is really kind of mediocre at all of those things.
PRO TIP: Spend more time with friends who don’t deride things.
My game before recently was entirely in 2D. Setting up 2D in Unity is easy. Also the logo is a 2D rendering of a 3D cube from one specific angle. Annnnd the website is Unity3D.com because Unity.com was already registered.
Did you tell him that Bad Piggies was made with Unity? The Angry Birds guys have like 90% of the money in the world or something ;), they could have used anything at all, including their own 100% custom engine made out of solid gold. But they decided to use Unity.