Jump to content

  • Log In with Google      Sign In   
  • Create Account


Is Unity3D spoiling me?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
20 replies to this topic

#1 Casey Hardman   Crossbones+   -  Reputation: 2157

Like
1Likes
Like

Posted 10 November 2011 - 03:43 AM

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!

Sponsor:

#2 BLiTZWiNG   Members   -  Reputation: 349

Like
2Likes
Like

Posted 10 November 2011 - 04:26 AM

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.

#3 L. Spiro   Crossbones+   -  Reputation: 12298

Like
1Likes
Like

Posted 10 November 2011 - 07:53 AM

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
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#4 Zahlman   Moderators   -  Reputation: 1682

Like
3Likes
Like

Posted 10 November 2011 - 08:23 AM

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?

#5 VildNinja   Members   -  Reputation: 420

Like
2Likes
Like

Posted 10 November 2011 - 08:39 AM

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 :)

#6 Antheus   Members   -  Reputation: 2393

Like
1Likes
Like

Posted 10 November 2011 - 08:41 AM

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.

#7 solenoidz   Members   -  Reputation: 514

Like
0Likes
Like

Posted 10 November 2011 - 09:14 AM

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. Posted Image

#8 DarklyDreaming   Members   -  Reputation: 363

Like
0Likes
Like

Posted 10 November 2011 - 09:20 AM

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. Posted Image


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."
~ Bregma

"Well, you're not alone.

There's a club for people like that. It's called Everybody and we meet at the bar."

~ Antheus


#9 DarklyDreaming   Members   -  Reputation: 363

Like
1Likes
Like

Posted 10 November 2011 - 09:24 AM

@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."
~ Bregma

"Well, you're not alone.

There's a club for people like that. It's called Everybody and we meet at the bar."

~ Antheus


#10 paka3d   Members   -  Reputation: 102

Like
1Likes
Like

Posted 10 November 2011 - 12:16 PM

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!

#11 solenoidz   Members   -  Reputation: 514

Like
0Likes
Like

Posted 10 November 2011 - 12:40 PM

@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?)



You made it look like if someone wants to ship a game they need to use a third party engine. Most of the people here roll their own engines and plan to ship a game. What the statistics said about most popular indie games and the technology they use ? It's not a black and white thing, as someone already said, and don't call me "silly", please. Thanks.

#12 Tiblanc   Members   -  Reputation: 552

Like
1Likes
Like

Posted 10 November 2011 - 02:13 PM


@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?)



You made it look like if someone wants to ship a game they need to use a third party engine. Most of the people here roll their own engines and plan to ship a game. What the statistics said about most popular indie games and the technology they use ? It's not a black and white thing, as someone already said, and don't call me "silly", please. Thanks.


It doesn't matter what the others are doing. If your goal is to get a game out and you have the choice between reinventing the wheel or using the thousands of hours of work people more knowledgeable provided to you on a silver platter, reinventing the wheel seems like a silly decision to me. Your game won't sell more because you wrote everything yourself or you did it in a "pro" language.

As for spoiling, as long as you learn proper programming concepts and architecture, the language and environment is irrelevant. With experience, you will be able to learn new languages in a matter of days as long as you have programming discipline. Using Unity might even help you because you can play with the big picture and have a better idea of how to do core stuff instead of redoing every classic mistakes. That is if you ever need to do it.
Developer for Novus Dawn : a Flash Unity Isometric Tactical RPG - Forums - Facebook - DevLog

#13 DarklyDreaming   Members   -  Reputation: 363

Like
0Likes
Like

Posted 10 November 2011 - 02:24 PM


@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?)



You made it look like if someone wants to ship a game they need to use a third party engine. Most of the people here roll their own engines and plan to ship a game. What the statistics said about most popular indie games and the technology they use ? It's not a black and white thing, as someone already said, and don't call me "silly", please. Thanks.

First, don't take "silly" so seriously -- being silly at times is a good thing. Second, yes -- shipping a game faster means using a third-party technology. Problem? Third, apologies if you took offence -- silly me for thinking that it was just humor leaking through; guess it didn't translate well :)

But yes, after rolling my own and comparing it to using an existing alternative multiple times, I've come to the conclusion that I'd rather spend all that time fixing nonsensical stuff like an editor be better spent towards achieving a more solid playtest, better QA, more time refining game mechanics, better graphics, sound or just about anything other than doing stuff that has nothing to do with making a better game.

Rarely, if ever, is there need to do anything else -- with the disclaimer that this is specific to you wanting to make a game and nothing else. Learning will of course change some of the parameters, depending on what you want to further educate yourself in.
"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."
~ Bregma

"Well, you're not alone.

There's a club for people like that. It's called Everybody and we meet at the bar."

~ Antheus


#14 kilah   Members   -  Reputation: 396

Like
1Likes
Like

Posted 10 November 2011 - 02:40 PM

What you aim for? That should be your main concern if you are in learning phase. Is it gameplay developer? is it runtime development? Is it tool development? Do you really know? Depending on your aim Unity is the right tool or not.

For example, if you want to pitch a position as a Physics programmer, creating your own collision solver will impress a way more a technical recruiter than anything you may do on Unity. On the other hand, If you want gameplay programming of any sort, stick with unity, as you will focus your mind on those problem you worry about, and not bother on lower level systems. If you don't have any specific idea on what you want to do, Using unity will always help you to understand the big picture first, which is always a good approach.

My 2 cents.

#15 SimonForsman   Crossbones+   -  Reputation: 5799

Like
1Likes
Like

Posted 10 November 2011 - 03:00 PM


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.


Pff, buying silica is cheating, if you don't mine it yourself you're not a real programmer™. (obviously using tools you've built yourself, from scratch)
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#16 Casey Hardman   Crossbones+   -  Reputation: 2157

Like
0Likes
Like

Posted 10 November 2011 - 04:40 PM

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 :)

Hey, thanks for the reply. Just wanted to make a quick note: Unity's JavaScript allows creating enums and setting them in the Inspector.
Example:
enum Effect
{
   Stun,
   Immobilize,
   Mana Steal,
   Mana Drain

}
var effect:Effect;

Things like that work and you can set them in the Inspector. I'm not really sure what generic lists are.

If I switch to C#, should I attempt to translate all of my JS scripts into C# scripts..? Sounds like a waste of time, but...

*********************************

Regarding the rest of the replies:

*********************************

Thanks for all of the answers! I think I'll just keep using Unity and try to get something presentable, at least in gameplay (because models are pretty much a lost cause with me).

I suppose I should try to switch over to C# sometime soon. I haven't necessarily had any problems with JavaScript so far, but I know in a lot of situations, knowing C# will be much more helpful than knowing JavaScript, especially since JS is so Unity-specific.

#17 Serapth   Crossbones+   -  Reputation: 5181

Like
0Likes
Like

Posted 10 November 2011 - 06:49 PM


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 :)

Hey, thanks for the reply. Just wanted to make a quick note: Unity's JavaScript allows creating enums and setting them in the Inspector.
Example:
enum Effect
{
   Stun,
   Immobilize,
   Mana Steal,
   Mana Drain

}
var effect:Effect;

Things like that work and you can set them in the Inspector. I'm not really sure what generic lists are.

If I switch to C#, should I attempt to translate all of my JS scripts into C# scripts..? Sounds like a waste of time, but...

*********************************

Regarding the rest of the replies:

*********************************

Thanks for all of the answers! I think I'll just keep using Unity and try to get something presentable, at least in gameplay (because models are pretty much a lost cause with me).

I suppose I should try to switch over to C# sometime soon. I haven't necessarily had any problems with JavaScript so far, but I know in a lot of situations, knowing C# will be much more helpful than knowing JavaScript, especially since JS is so Unity-specific.


Woo, wait what?

Javascript is Unity specific?

Alright, first off, all things being equal C# is my weapon of choice. I love the language and would personally choose it over Javascript in a heart beat. That said, Javascript is used far in away in more applications, spaces, nooks and crannies than C# is, by a country mile. That it is being forced like a bad enema on us all with HTML5 as the apparently future of programming, this is only going to become more true.


Basically what I am saying is, Javascript is anything BUT Unity-specific.

#18 Casey Hardman   Crossbones+   -  Reputation: 2157

Like
0Likes
Like

Posted 10 November 2011 - 07:35 PM



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 :)

Hey, thanks for the reply. Just wanted to make a quick note: Unity's JavaScript allows creating enums and setting them in the Inspector.
Example:
enum Effect
{
   Stun,
   Immobilize,
   Mana Steal,
   Mana Drain

}
var effect:Effect;

Things like that work and you can set them in the Inspector. I'm not really sure what generic lists are.

If I switch to C#, should I attempt to translate all of my JS scripts into C# scripts..? Sounds like a waste of time, but...

*********************************

Regarding the rest of the replies:

*********************************

Thanks for all of the answers! I think I'll just keep using Unity and try to get something presentable, at least in gameplay (because models are pretty much a lost cause with me).

I suppose I should try to switch over to C# sometime soon. I haven't necessarily had any problems with JavaScript so far, but I know in a lot of situations, knowing C# will be much more helpful than knowing JavaScript, especially since JS is so Unity-specific.


Woo, wait what?

Javascript is Unity specific?

Alright, first off, all things being equal C# is my weapon of choice. I love the language and would personally choose it over Javascript in a heart beat. That said, Javascript is used far in away in more applications, spaces, nooks and crannies than C# is, by a country mile. That it is being forced like a bad enema on us all with HTML5 as the apparently future of programming, this is only going to become more true.


Basically what I am saying is, Javascript is anything BUT Unity-specific.


Sorry, what I meant to say was it seems like JS with Unity isn't the same as JS in website development. Of course, I could be wrong there, but I looked a bit into using JS with HTML and it seems different than what I've been doing. For example, it seems variables were declared differently:

var name="John" was what I saw when reading on website development with JS, whereas

"var name:String = "John" is what I'd use while scripting with JS and Unity.


I also was under the impression that JS wasn't actually used to develop games with any engines other than Unity, though it is used with website development.

Of course, it's more than likely that I'm wrong :P

#19 Oberon_Command   Crossbones+   -  Reputation: 1795

Like
2Likes
Like

Posted 10 November 2011 - 09:05 PM

Technically, the "JavaScript" used with Unity is a custom dialect, and isn't quite the same "JavaScript" as used in a browser. Some people actually outright call it "UnityScript" in recognition of this. In fact, I think the MonoDevelop extension for Unity3D does this, too.

The following link may be of interest: http://www.unifycommunity.com/wiki/index.php?title=Head_First_into_Unity_with_UnityScript

#20 wolfscaptain   Members   -  Reputation: 200

Like
1Likes
Like

Posted 12 November 2011 - 11:10 PM

JavaScript is an implementation of the ECMAScript specs.
Unity's JavaScript is another implementation, except it doesn't really conform to the specs (same story with Flash's ActionScript).
That being said, JavaScript usage is all over the place, also in the game department, mostly since HTML5 and friends started getting implemented.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS