Is Unity3D spoiling me?

Started by
19 comments, last by runonthespot 12 years, 5 months ago
I've been developing a sort of 'demo' of my "dream game" MOFPS with Unity3D using JavaScript. I've made windows for customizing equipment, fairly smooth movement, jumping and wall jumping, and a firing/accuracy system that I think works (for now).

However, I've been aware mostly from day 1 that Unity is the easy way out and it is sort of babysitting me. I don't really know much about hard-coding and the steps it takes to actually make your own 3D game from scratch. I'm not even sure if Unity's JavaScript can actually be considered JavaScript, or if they just named it that to add to the ever-growing list of "Java" names out there.

This project of mine is just to flesh out the physics system of my MOFPS dream game. Unity has been great, very easy to use in a lot of situations, and it seems very efficient. However, I'm not necessarily learning applicable skills here, am I? JavaScript seems so watered down whenever I compare it to C# or C++ examples here on GameDev.

I'm fairly certain that I want to pursue a game development career in some way, but this is the learning phase for me, as I'm still young, and I don't want to waste it.

So some of the questions I have now:

Is Unity spoiling me and hiding me from the 'real world'? Am I not learning anything actually useful while using this engine? Is there any way I might be able to use the demo in the future as a pitch to showcase how the game is supposed to play?

Should I stop using Unity and pursue C# or a similar language? If so, should I start by trying to develop my dream FPS, or should I practice on something different?


Some experienced guidance would really help me,

Thanks!

[twitter]Casey_Hardman[/twitter]

Advertisement

I've been developing a sort of 'demo' of my "dream game" MOFPS with Unity3D using JavaScript. I've made windows for customizing equipment, fairly smooth movement, jumping and wall jumping, and a firing/accuracy system that I think works (for now).

However, I've been aware mostly from day 1 that Unity is the easy way out and it is sort of babysitting me. I don't really know much about hard-coding and the steps it takes to actually make your own 3D game from scratch. I'm not even sure if Unity's JavaScript can actually be considered JavaScript, or if they just named it that to add to the ever-growing list of "Java" names out there.

This project of mine is just to flesh out the physics system of my MOFPS dream game. Unity has been great, very easy to use in a lot of situations, and it seems very efficient. However, I'm not necessarily learning applicable skills here, am I? JavaScript seems so watered down whenever I compare it to C# or C++ examples here on GameDev.

I'm fairly certain that I want to pursue a game development career in some way, but this is the learning phase for me, as I'm still young, and I don't want to waste it.

So some of the questions I have now:

Is Unity spoiling me and hiding me from the 'real world'? Am I not learning anything actually useful while using this engine? Is there any way I might be able to use the demo in the future as a pitch to showcase how the game is supposed to play?

Should I stop using Unity and pursue C# or a similar language? If so, should I start by trying to develop my dream FPS, or should I practice on something different?


Some experienced guidance would really help me,

Thanks!



Yes! Unity is spoiling you! Stop using it now and start programming your own engine in assembler.


Seriously, no. Use the tools that are available to you. I do recommend learning C# though, as that has advantages for you outside of Unity. The javascript language is compiled to CIL like C# is though, so there is no real advantage to using C# over javascript in Unity any more especially since they added generics to the javascript language,

Please, go ahead and make your dream FPS and stop worrying about if you're being spoilt! Do instead of Dream.



Edit: Oh I may not have been clear enough there. You can do C# in Unity. Unity is a professional game engine, and yes, you absolutely should use it to make your game. Coding one from scratch is not much use to you unless you are a C++ prodigy and can code your own engine in a few months. Your other real choice is UDK, and that uses its own scripting language which is only useful to UDK, so using Unity and C# is an absolute awesome choice.

I'm not even sure if Unity's JavaScript can actually be considered JavaScript, or if they just named it that to add to the ever-growing list of "Java" names out there.

I have actually had a 1-on-1 conversation with David Helgason, and he said that a Brazilian managed to put together a custom interpreter of their JavaScript language in 50-something billable hours. It was buggy at first but because of his performance he was hired directly and fixed all of the bugs (as far as they know).
It is JavaScript, but a custom implementation of it. It may not strictly conform to the standard but their goal is that it should, and if you find something that doesn’t they would prefer you to report it so they can patch it.




I'm fairly certain that I want to pursue a game development career in some way, but this is the learning phase for me, as I'm still young, and I don't want to waste it.

There is no need to consider that you are wasting it yet. I started off with mods when I was 15. Mods let me get the results I wanted, which allowed me to keep the enthusiasm I had as a youngster.
Meanwhile, in the background, I was also studying C++ and general programming so that I would one day be able to produce those results myself, without relying on existing engines.


Is Unity spoiling me and hiding me from the 'real world'? Am I not learning anything actually useful while using this engine? Is there any way I might be able to use the demo in the future as a pitch to showcase how the game is supposed to play?

On one hand, yes, but one the other hand it is giving you the motivation you need to continue exploring the field.
This is not a black-and-white subject.
There is nothing preventing you from exploring the world of game programming from its most basic components, just because at the same time you are also using Unity 3D to get results that make you inspired to pursue the industry further.
Aside from that, there are some jobs that actually ask for you to have experience with Unity 3D or Unreal Engine 3. Just make sure you are not relying only on this experience, or you are definitely shooting yourself in the foot.






Should I stop using Unity and pursue C# or a similar language? If so, should I start by trying to develop my dream FPS, or should I practice on something different?

Again, this is not black-and-white.
Use Unity 3D to make this game, and in the background spend your time learning how to make real games from scratch.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

There is no such thing as "being spoiled" in this context. Professionals determine and then use the best tool for the job, as measured in minimum expected time to create something that's up to standard. Full stop.

You can always go back and learn how to do things at a lower level. This is useful not so much because "you won't always have Unity to fall back on" (going forward, engines are only going to get more powerful, so this would only happen if you got into less powerful platforms such as mobile), but because it exercises your problem-solving skills and your ability to see the "big picture".

To that extent, get the most varied education you have time for. Dabble in stuff. Talk to artists (and writers and sound engineers and game designers and producers and even publishers, if you can).

The primary use for lower-level stuff is to create more new higher-level stuff. Everything is built in layers in this industry - just like basically any other industry. Nobody on this planet can make a pencil "from scratch", and you're worried about being "spoiled" by getting a "head start" on an MMOWTFOMG?
You would probably be surprised of how many professional teams are using Unity for their commercial projects. So no you are not spoiling yourself by using Unity. I would however say (based on experience) that you are spoiling yourself/Unity by using Java Script in Unity. You are both missing out on some cool features such as generic lists you can access directly from the Unity editor and enums you can access as drop down boxes in the editor. Plus the auto completion in mono develop doesn't work that well with Java Script, while it works super with C#. Finally Java Script in Unity hides away some of the code, which makes it a lot harder to understand the core principles behind object oriented programming.

So keep using Unity, but switch to C# now! If you in two years still haven't tried anything but Unity, then yes you are spoiling yourself :)


Is Unity spoiling me and hiding me from the 'real world'? Am I not learning anything actually useful while using this engine?


Yes.

Now go back to kiln and smelt silica so you can make vacuum tubes. Learn programming the proper way by building your computer from scratch.
I have zero experience with Unity, so I don't know how low level it is, and how much abstraction it puts over the OpenGL/DX programing.
It's modern to be a 3D developer these days, but some of them use Node->SetRotation(x,y,z) without even know there is thing bellow that is called a matrix, a quaternion etc..
There are 10 types of people in the world, those who write engines, and those who don't. smile.gif

I have zero experience with Unity, so I don't know how low level it is, and how much abstraction it puts over the OpenGL/DX programing.
It's modern to be a 3D developer these days, but some of them use Node->SetRotation(x,y,z) without even know there is thing bellow that is called a matrix, a quaternion etc..
There are 10 types of people in the world, those who write engines, and those who don't. smile.gif


No, silly. There are two kinds of people in this world.

Those who ship.

And...

...those who don't (= fired).
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
@OP: the only meaningful question to ask in this context is "am I progressing towards my goal?" - if the answer is "yes" then the remaining questions are "can I do it faster?" and "can I do better?"

If your goal is to make a game, then make a game. Waste no time with stuff that is unnecessary to making that goal come true. That includes building things from scratch (or do you think I'll start by building my own kitchen tools if I want to be a chef?)

If your goal is to learn low-level stuff, go do that. Waste no time with high-level engines and production values; those are beside the point.

If your goal is anything else... well, I think you got the point.

There is no cheating; everything we game developers do is a cheat.
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
Having the same concerns regarding Unity3D.

I concentrated mostly on learning the art side of the game industry during my early years. I heard about Unity a few years ago and from what I read it made implementing 3d art assets ridiculously simple. Having an art background I just wanted to see results. I decided to tackle implementing a 3D animated character in Unity. I was able to achieve this 3 years ago, since then I've been digging deeper into Unity. So, that's the angle I'm coming from. I needed to start somewhere and JavaScript was working out well enough for my personal development goals.


One could say Unity has it's limitations language wise. I understand the points argued against it and I'm in awe with anyone capable to program a 3D engine from scratch. The game industry certainly wants folks who can do this. Having no delusions of ever getting to that level any time soon, I continue to learn what I can and use all the bells and whistles Unity has in the meantime. It's just great to see fast results!

I like to believe presenting ideas and having working prototypes does hold some value though, even if it's written in JavaScript. Like some of you have already posted, moving on to C# in Unity is the next step. I look forward to getting there myself.

cheers! and best of luck on your game man!

This topic is closed to new replies.

Advertisement