Jump to content
  • Advertisement
Sign in to follow this  
pman347

Unity What exactly is Unity for?

This topic is 842 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am super new to Unity and just game development in general. I would like to know if a AAA game can be made using just Untiy. Some people told me you can only make basic games like rolling a sphere in Unity and AAA games use other languages to actually make anything complex. Cuz I don't see how C# can make good graphics etc. I'm not talking 'bout using different languages for performance improvements; I mean is it possible to make a AAA game at all using just Unity? If not, what is Unity for?

Share this post


Link to post
Share on other sites
Advertisement

Thanks! Yah, I don't have the money or people to make a AAA game, but I just wanted to know what I could use Unity for, before I start learning C# and stuff and then find out it was all just a waste. Because this guy on Stack Overflow said that in his company they just used Unity to bring together all the logic, sound, graphics etc. from many other  tools and Unity was just to stick it together, so then I thought "I knew it was too good to be true! You can't just use C# for graphics and everything (I know, sound might not be in Unity, but just the game)". But some people said you can make a full-fledged game with just Unity, others were like not at all, so I was just really confused.

 

Share this post


Link to post
Share on other sites

Thanks! Yah, I don't have the money or people to make a AAA game, but I just wanted to know what I could use Unity for, before I start learning C# and stuff and then find out it was all just a waste.

Learning anything programming related is almost never a waste. There are large amounts of overlap (since in the end it all gets run at the same computer) between languages, and other pieces of code like engines and libraries. You likely will not learn just one language, but instead learn a few, again expanding your set of tools, so you can pick the best tool for the job, instead of treating everything like a nail, since you only know about hammers.
 
 

I knew it was too good to be true! You can't just use C# for graphics and everything

Not sure I follow this. How is "draw this letter to the screen" exactly different from "draw this image to the screen"? In particular, since a letter is also a collection of black and white dots.
 
You generally make the pretty picture in some graphic editor program, but otherwise, "plot graphics" in C# (or any other language for that matter) is as simple as a 'plot image at (x,y) to the screen' statement. The actual rendering is then often done by a library, but that's still software you can theoretically write in C# too (but not done so for performance reasons).
 
However, the latter is not relevant. Don't aim to make C# your only hammer. Taste the world of programming. Have some C#, do some Unity, have a bite of Python and a flirt with Java. Try everything, have fun doing it, and keep the good parts and ditch the bad parts.
 
 

But some people said you can make a full-fledged game with just Unity, others were like not at all, so I was just really confused.

Welcome to the Internet where 10 people have 11 meanings opinions about 8 different things, although they all think they talk about the same thing as you are :P
 
The best way to find out how things really are is to try them yourself, so you can form your own (informed) opinion about it.

Edited by Alberth

Share this post


Link to post
Share on other sites

Thanks! Yah, I don't have the money or people to make a AAA game, but I just wanted to know what I could use Unity for, before I start learning C# and stuff and then find out it was all just a waste. Because this guy on Stack Overflow said that in his company they just used Unity to bring together all the logic, sound, graphics etc. from many other  tools and Unity was just to stick it together, so then I thought "I knew it was too good to be true! You can't just use C# for graphics and everything (I know, sound might not be in Unity, but just the game)". But some people said you can make a full-fledged game with just Unity, others were like not at all, so I was just really confused.

 

I haven't really used Unity beyond making a very, very simple game to check it out (Asteroids type game). For that I did have to use external an external program - Blender to model my ship. That said Unity has an asset store where you can buy things such as models for use in the game so you could theoretically make an entire game using it. Those assets might not always be suitable to your game though and for an AAA game they most certainly won't be. If you aren't too fussed about the models in your game and you have no voice acting then you could probably do it.

 

In my opinion though Unity is a good choice, for any other engine out there (or most at least) you will still need external tools to create your bespoke art assets. Programming wise though Unity will probably be enough for you (you can use an external IDE to code in such as Visual Studio Community 2015 which is free). I think it's a good place to start if you actually want to make a game and I quite like c# as a language.

Share this post


Link to post
Share on other sites

I think some of the other posts made it clear.  Unity can do it.  Can you?

 

Every game engine has some limitations, and they may have things in some that are better than in other engines.  Unity is famous for being behind UE4 in graphics, while it is also famous for being easier to use than UE4.  But, as you are just starting out, you are very unlikely to run into any limitations of any game engine, even Gamemaker: Studio.

Share this post


Link to post
Share on other sites

 

Thanks! Yah, I don't have the money or people to make a AAA game, but I just wanted to know what I could use Unity for, before I start learning C# and stuff and then find out it was all just a waste.

Learning anything programming related is almost never a waste. There are large amounts of overlap (since in the end it all gets run at the same computer) between languages, and other pieces of code like engines and libraries. You likely will not learn just one language, but instead learn a few, again expanding your set of tools, so you can pick the best tool for the job, instead of treating everything like a nail, since you only know about hammers.
 
 

I knew it was too good to be true! You can't just use C# for graphics and everything

Not sure I follow this. How is "draw this letter to the screen" exactly different from "draw this image to the screen"? In particular, since a letter is also a collection of black and white dots.
 
You generally make the pretty picture in some graphic editor program, but otherwise, "plot graphics" in C# (or any other language for that matter) is as simple as a 'plot image at (x,y) to the screen' statement. The actual rendering is then often done by a library, but that's still software you can theoretically write in C# too (but not done so for performance reasons).
 
However, the latter is not relevant. Don't aim to make C# your only hammer. Taste the world of programming. Have some C#, do some Unity, have a bite of Python and a flirt with Java. Try everything, have fun doing it, and keep the good parts and ditch the bad parts.
 
 

But some people said you can make a full-fledged game with just Unity, others were like not at all, so I was just really confused.

Welcome to the Internet where 10 people have 11 meanings opinions about 8 different things, although they all think they talk about the same thing as you are :P
 
The best way to find out how things really are is to try them yourself, so you can form your own (informed) opinion about it.

 

 

True C# is a language and you can think of it like this, If you speak some language and was greeted by someone of  a different language could you convey an express to yet the other know that you are lost and need help? The answer in most cases is yes. With this stated most languages support rendering code in some fashion. At least for c#, it's totally backed by windows which means big Microsoft is investing millions in tools and other support platforms for the language. The .NET platform is the answer for the windowing system and DirectX is also supported so there is no reason for c# not being able to render. Now the performance issue with c# is becoming less of a problem.

AAA developers use c++ because right now that is the platform that gives the best tools and support but sooner or later that would change.

Share this post


Link to post
Share on other sites

What jschmuff said. Also, Kerbel Space Program was made with Unity. If City Skylines and Kerbel Space Program can be made from Unity, it's more capable than anything you are likely to be able to crank out in the next several years with a small team.

 

Personally, I've decided to do DX11 and then now OpenGL 4.5 (and probably then Vulkan) rather than Unity myself, but after spending 6 months with Unity I was pretty impressed. Unity is probably the right choice for many who are just starting out.

 

I chose OGL over Unity for several reasons. First, Unity gets me into the bad habit of buying pieces of a game and assembling them rather than learning game programming. That's more my fault than Unity's, but Unity does lend itself to that if you're not careful. Second, one of the reasons I do game programming as a hobby is to keep my programming skills up incase I ever need to find a job with that skill (I haven't programmed professionally in years now that I'm a database administrator, but it's a good skill to keep sharp). So, I like working in C++. Third, I like the minutia. For a lot of people who just want to make games, building their own model file exporter in Python to extract model data from Blender into a custom model file and then writing C++ code to read the custom data and turn it into an animated 3D model is not something they want to spend their time doing, when they can just export an FBX model from Blender straight into Unity and 10 seconds later they are done! Viola! Ready to make games! But personally, I like digging into the details and the deep knowledge of how all that stuff works and I want to teach it to others. So, while this may be the right path for me, it's probably not the right path for everyone. And most people are probably going to be more happy going with Unity rather than OGL or DX.

 

As for C#, I'm a huge fan of C# even though I'm coding in C++ these days. I learned my chops in XNA on C# which not only taught me what I needed to know to tackle DX11, but also C#. I got a lot of experience in C# and I became a lot more comfortable with object oriented programming. Don't knock C#. It's pretty awesome. XNA can do pretty much anything DX9 can do (XNA was built on top of DX9), but just with a lot less work. MonoGame is the new XNA built on DX11 and it's pretty much capable of doing anything DX11 can do. Just because it's managed code doesn't automatically make it bad. As for C# in Unity, that's a little different, but still nothing to turn your nose up at.  C# is a good skill to learn. My C++ code is now days heavily influenced by my experience in C#. Before I learned C#, I wrote C code (non-object oriented) in C++. After years in C#, all my C++ code is heavily object oriented. C# just gets you into that OOP mindset and that alone is an invaluable reason to learn C#.

 

But judging by some of the games that have been produced with Unity, it's much more capable than you will be in the next several years. You're not going to hit a brick wall with it any time soon in terms of out growing it. And Unity keeps getting more powerful with every version. A few years from now it will probably be doing Virtual Reality on DX12 and Vulkan and that's some pretty advanced stuff.

 

But whether you go with Unity or OGL or DX or whatever, you should be thinking of making basic games for your first several projects. Everyone thinks they have to make WoW, or Elder Scrolls, or something because they are in 3D. Some of the best beginner projects are taking 2D classics and making them 3D like Pong, Space Invaders, Angry Birds, etc. Those are projects that one person can actually complete.

Share this post


Link to post
Share on other sites

Since posting previously I downloaded the latest version of Unity to have a go at seeing how difficult it will be to make something in VR. After loading up Unity it took between 5-10 minutes to have a few simple objects down in a scene and being able to put on my Vive and walk/look around. I dread to think how long that would have taken me to do if I had to write it all myself. That's what engines are for!

 

Valve have a Unity plugin that made things incredibly simple.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!