Its probably done to death but... Unity for Beginners?

Hello,

I’m a recently graduated student, and also recently hired student :stuck_out_tongue: (Sadly, not for a games company) I’ve been looking at game engine licenses for years now wanting to dive in and have done minor things like some Quake maps and models… but not writing my own games.

Although I went to a university world-renouned for its Comp Sci, I was an Information Systems student so I never got to have fun (haha, tell that to a student at the time) in classes like graphics and have mainly stuck to the world of MVC rich web applications (kind of a self-teacher with a nack for design…)

Anyway, my new job is all fine and dandy, but I still want to get into games finally as I think my brain is going to explode with all these pent up design-docs (yeah, I know - start small ;)) and right now I’m working on getting up to speed in .NET for my new job (I also happen to be pretty good with Python and JavaScript with the web background…)

For a while, I’ve been looking at Torque for its multiplatform capabilities (as an abused Mac gamer… this was important) but again and again I’ve always heard the horror stories. I’ve noticed Unity in the past but didn’t do a whole lot of research… lets face it, I loved Tribes… additionally I was put off by the lack of Linux support to be honest although. Its not a game-ender (obviously) but I’d really like to see all platforms get some love :slight_smile:

I’m just wondering what the level of experience required is… another thing I heard as a detriment to Torque - although the focus on scripting languages certainly gives me some hope :wink: The other worry is whether it is focused on 3D or not… I haven’t had a whole lot of 3D Math and while I do have ideas for 3D its not where I intend to start or think I’d be ready for just yet :slight_smile:

Did anyone else cut their teeth with Unity, or have any input of that matter…?

Thanks,
Jeff

When you have some experience in programming, you should find Unity easy to learn. There are rather comprehensive documentation of Unity specific libraries, which hides complex 3D stuff well (however, understanding 3D programming helps).

Unity scripting languages should be easy to adopt when you are familiar with Python and JavaScript: Boo is Python variant, JavaScript and C# are other options; but getting familiar with Unity specific libraries is must.

Check http://unity3d.com/support/resources/files/3DPlatformTutorial.pdf to get an idea of what kind of programming and other thing Unity game making requires.

Game development, in Unity at least (I can’t speak to other engines) is pretty specialized. A lot of skills will partially or mostly apply to it, but I don’t think that there is a non-game development background that will really 100% prepare you for it.

When it comes to scripting, Boo, Javascript and C# are your options:

Boo really shouldn’t be called a python variant. It has a python-inspired syntax but there are some big difference and some changes are specific to being designed for the CLI. That said, Boo is really nice – the big challenge will be that there aren’t a lot of examples.

Javascript in Unity probably really shouldn’t be called Javascript at all. It is a scripting language with javascript-inspired syntax. That means it looks like javascript but doesn’t behave like it (imho, being prototype-based should probably be a requirement for a scripting language to be called “javascript”). Javascript in Unity is really easy to use, and so you can focus on learning how to interact with Unity rather than learning a new language – as long as you don’t expect to be able to do many of the things you can do with Javascript in the browser.

C# is also an option. I personally don’t have a lot of C# experience outside of Unity, but it has grown on me. I’ll let someone else say if it behaves like expected or not – it seems to, from what I’ve read.

Well, I guess put it this way, is there somewhere else I would be better off starting?

Is it better to start from scratch with pure SDL to learn than an engine, or say Torque Game Builder?

Unity is the absolute first game engine I’ve ever used. In the last four months, I’ve scripted an RTS engine, multiple FPS combat AIs that use different styles of motion, a dragon flying engine, character interaction, dialogue trees with advanced triggers, and a whole pile of knick-knack scripts. Unity is extremely easy-to-use and code for, overall. (I’m using Unity JavaScript)

At the rate I’m going, I’ll have the game I’m working on finished in a year or two and it’ll be almost as good as a commercial release by a big company. I highly recommend Unity.

Which implementation language are you using for .NET?

Most likely, it’s either Visual Basic, or C#. If it’s C#, you’ll be very happy with C# in Unity, because C# in Unity is simply C# (it’s exactly the same language as in in .NET).

Having experience with .NET will help you with Unity scripting. Depending on what you want to do, it may help “a little”, or “very much” :wink:

Sorry, I should have been more specific… yes C# :slight_smile:

I guess the main thing is for people unfamiliar with game programming.

Programming with Unity is the first I have ever done, and I found it surprisingly simple to get started. The way that scripts get attached to game objects in a drag-and-drop fashion made a giant amount of sense to me (and still does). I’m sure the coding side of things should be a cinch for someone with a more fleshed-out background.

On the other hand, the background I did have was that of a computer-geared musician / sound designer and hobbyist digital artist (mainly 3D). These are areas in which I am constantly working to acquire new and better skills. Considering a large part of game development is content creation, this kind of stuff may be where you meet some challenges. Fortunately for me, I love every single part of making games, but if you don’t, you may want to look into collaborating, so that you have a potentially aesthetically pleasing product.

I’ve also played a heck of a lot of video games. If you’re going to make games, that certainly can be useful. :wink:

Starting from scratch is not a good way to go for a beginner. I highly recommend unity over any of the Torque products, because of the speed and ease of development.

I tried Torque a while ago and I liked the engine but I couldn’t wrap my brain around the scripting language… It just made no sense at all and there are few tutorials.

Oh, sure, they (Garagegames) tell you how the syntax works but that’s about it - very frustrating because what you really need to know is the libraries they are using. But of course, they don’t explain those… :roll:

I eventually gave up and moved on, looking for other 3D game engines that would really work for me. Eventually, I found Unity, and I immediately realized that here was the engine I had been looking for. It was uncomplicated ( not exactly “simple” ), easy to learn/use, very fast ( as far as development time ) and had a built-in physics engine ( a definate plus ) and dynamic script editing ( when you change and save a script, Unity [automatically?] re-loads it ).

Plus, publishing is a breeze. One or two clicks and you have yourself a standalone or web application. You can then give your game away for free or you can sell it, whichever you choose.

Unity supports a built-in PhysX physics engine, with Torque you gotta make your own.

Unity supports dynamic script editing, Torque does not.

Unity supports web applications, Torque does not.

Unity supports “paintable” detail meshes with built-in terrain editor, Torque does not.

Unity can publish to the Nintendo Wii console. Woot!

Unity has a very nice (Customizable!) GUI library ( sorry no actual interface designer, but that’s ok because it’s very easy to use even without one )

Unity does a lot of the work for you, and a whole lotta other stuff that I can’t list.

Bottom Line: GET UNITY!! :smile:

No matter where you start, no matter the engine, getting used to game development will take a while. That said, I think Unity is probably one of the easiest to get started with, possibly even easier than flash.

We of course all highly recommend it.

The biggest problem with torque that is often not talked about is that they give out their source. This is a problem because when someone says to Garage Games “I want to do X! How can I do it using the scripting language and tools that come with the engine?!” Garage Games says “Well, you can edit the source code to do that if you really need to”. However no one ever gets anywhere with it because getting a workflow going that involves editing torque source code is near impossible compared to what most users are ready to attempt.

The reason why Unity is so great is that the scripting is Extremely powerful no matter what language you use. If you wanted to you could set up your own game engine in scripting, with custom frame timing, control of rendering all they way through the process, custom physics, and terrain engine. The thing is that you don’t want to do that or have to do it because the built in functionality is really great already.

The real wonder of Unity is that it has all this power, yet the entry level for scripting is quite low. For example, this script could be the beginning of some MarbleBlast style controls:

@script RequireComponent(Rigidbody)
var cameraTransform : Transform;
var rollForce = 10;
var jumpForce = 20;

function FixedUpdate () {
	var forward = cameraTransform.forward * Input.GetAxis("Vertical");
	var right = cameraTransform.right * Input.GetAxis("Horizontal");
	
	rigidbody.AddForce((forward + right) * rollForce);
	
	if(Input.GetButtonDown("Jump")) rigidbody.AddForce(Vector3.up * jumpForce);
}

While this large script uses the mesh interface to generate metaball based meshes on the fly, with good FPS: http://www.unifycommunity.com/wiki/index.php?title=MetaBalls

You should really download Unity and do some experiments with your free trial period. You might fall in love with it :slight_smile:

Glad to hear all the positive news and chances are I’ll end up going for it when the funds free up, although I’m curious… why restrict the indie license from deploying to Windows? Surely indie developers would want to have Windows gamers playing their games to?

I guess I’m not sure the rationale for this?

Another reason to get people to buy the Pro version? :slight_smile: Indie developers use the Pro version too…“Indie” and “Pro” are just different names for “limited” and “unlimited”. The Indie version is ridiculously cheap for what you get and considering how much development went into it, so naturally there have to be some limitations or else everybody would just buy the Indie version and then UT would probably go out of business.

–Eric

Basically, Indie is like Maya’s PLE except with less limitations.

The idea is to allow kids and thrifty developers to make a whole game in Unity for cheap, and then when they market it, they can afford to buy Pro, and will make the money back plus more.

If you really want to focus on making a game, you should definitely use Unity but if your intentions are more academic, learning how to make a game and eventually get a job in the video game industry I’d advise you to go with a C++ engine as it will be more what you will see in the industry.

I’ve started creating games with the Ogre engine and creating a game with it prepares you a lot more to the game industry rather than creating games using Unity.

So really, I guess it depends on what you want to do. Creating games using C++ engines is a much longer and harder path that requires a lot of dedication. Creating games using Unity is just fun (and allows you to concentrate on creating a very good game).

By the way, Unity Pro is totally worth it, you can’t get any other professional engines for that price.

Just my 2cts :slight_smile:

…for now. This engine provides too good of results too quickly for it to stay underground very long.

The industry might use C++ more on the programming side of it, but the game developers almost always code in a script language and engine programmers use c++ (unity do to) so i def. think unity is more usefull as a tool into the game developing positions as it uses alot of the terms and concepts found. Where as if you wanna be engine programmer then C++ is prob. prefered.

And then there is the part about consoles. Here you might have to learn some C++ hell maybe even worse and go assembler.

But i do think you should distinguis between making the actual game/gameplay and making the technology used in the game.

I can see that point of view, but I’m not really interested in being an engine developer. Its not really where my interests lie so much and without the educational background not really worth it. I’m more interested in gameplay mechanics and producing something worthwhile than going under to the nuts and bolts (must be the web developer in me :stuck_out_tongue: - don’t recode what you don’t have to if there’s a good framework)

I’ll never write a better engine myself, and it would probably take me significantly longer (years) to get up to speed to write my own engine or still a long time to get ready for Ogre so I think I will go the Unity route :slight_smile:

Depends, I used to work in a video game company where every single line of the game was coded in pure C++. It was for a cross-platform game (PC, 360, DS and PSP).

No, really a lot of games are still developed in pure C++. And that’s too bad in my opinion but that’s a reality.

@jeffbax: I understand your position, and I feel the same here. I guess it’s just too hard for a single developer (or a small indie team) to create a great game in pure C++. Of course it’s possible but it takes a lot of times and it’s not even fun.
This is the reason why I also stick with Unity. :smile:

How comes that the UT technology has scripting then for a few years?

Sure the tech / coder guys need C++, but those creating the actual gameplay? I don’t think so, creative people have a serious anti love for C++ normally and that for good reasons I guess :slight_smile:
But if this is the case that they do C++ that would explain the serious drop in quality of the gameplay from AAA games. There definitely can not be that creative peoples in that positions then.

hiya jeff :stuck_out_tongue:
PM me at the other forum we’re in and I can get you started
As for Indie not allowing PC deployment, Unity’s a Mac gaming engine/IDE, and the PC/DirectX support requires manpower that’s gotta be paid for, too. :wink:
Plus transparent multplatform deployment is the domain of pro’s, and for people intending to make money commercially, the licensing philosophy is always in a bit of a different ballpark.
The pro license is still a steal.