Unity Education - Javascript For Non-Programmers.

Hello All;

I am super interested in learning Javascript for Unity, and I have no clue where I would start in regards to this. I am a 3D Artist, however I would like to be able to code at least the basics and grow from there.

So I put this to the community, as this would be a saleable product for whomever does this. Make a video tutorial series for non-programmers, teaching Javascript using Unity.

I for one would gladly pay for this education.

Kind regards;

Yes! This would be great. I’d buy it.

I look at the code and my eyes roll back in their sockets and my jaw sags.

Great Idea :idea:

For that matter, a book like this would probably need to cover two things… basic programming concepts and game specific concepts. This sort of thing could prove to be a tall order though, as getting anywhere in Unity really requires the user to be comfortable writing complex code to accomplish tasks which are deceptively simple looking to the end user. The less willing you are to get into any actual programming, the more rigid and boring the end product is likely to be.

That said, if Unity is a bit too overwhelming at first, you might want to step back and try out something like Adobe Flash to experiment with simple game mechanics in a 2D world first. Tackle something small like a Pong clone, then tweak it with an original idea. Once you are comfortable with that much, Unity should become a lot more useful and exciting, once you start to visualize the possibilities and realize just how quickly those ideas can be executed.

Well,
I have to say that I am pretty much interested into writing some sort of book regarding javascript for Unity programming for artists (that’s an idea that has been floating in my head for some time…) but there’s a big hole in this:

I am a programmer myself, and always hadn’t had any problems in understanding code… I sometimes tried to put myself into an artist, and that pretty much worked to get things explained but, i wouldn’t really know where to start!
Starting from scratch, that means from variables declaration, loops, modificators… I am not even talking about inheritance or polymorphism… just the basic things… I am not really interested in writing about them, and actually, you can read about them in the faboulous book cocoa and OBJ-C programming with Xcode, a free ebook, where those basic programming principles are really well explained.

Anyway… as this is something I may end up doing, I’d like artists to post about what things they would like to be covered in a potential “unityscript for dummies, or… semidummies”.

What aspects of unity should be treated?

Philip

Yippee! A future customer! :wink:

That’s actually what I’m doing right now. I’m creating a series of games in Unity, commenting the code heavily, adding a text about the steps used to create the game, and I will soon be filming myself going through the text about the steps used (once I finish the latest tutorial).

The only caveat is that I’m a businessman. I’m planning on selling the complete package and separate tutorials when they’re completed and optimized. (Separate pricing for institutions and individuals, of course.)

I’ll be covering the creation of six different games in increasing complexity:

• Classic Tanks (Basic player controls, guns, bullet management, health, basic GUI)
• Asteroids (Looping arena, player ship, UFOs, asteroids, high score table, master scripts)
• 3D Tanks (Cannon aiming, computer AI, random environmental hazards)
• Centauri Outpost (Asteroid mining, upgrades, building creation, AI on a strategic scale, advanced GUI, winning conditions)
• Death Station Nine (Randomized game space based on difficulty, FPS AI, FPS player controllers, doors, elevators)
• A Cow’s Life (RPG character development, random turn-based fights, more advanced GUI, trigger-based story continuation)

These aren’t due to be at what I’d call a “polished” state for at least half a year, but their creation is coming along as scheduled.

I’ll also be selling the games separately, of course. :stuck_out_tongue:

Since this would be totally related to Unity, I would like to see not necessarily a JavaScript course, but actually a Unity API course. Teach what the methods (functions) in Unity are for, then explain how JavaScript would implement the calls with some video example so noops, like me, can see it in action.

In parallel with this, perhaps some info on what Unity can do without needing scripts. It’s one thing to know why and where to use scripting, but it’s also nice to know what kinds of things can be done without scripting as well.

The whole idea behind this request is to learn the basics, I understand the time and involvement that something like this would require, as I have the up most respect for coders. Considering the crap they have to deal with. Learning code is time consuming and tough, however it would be the same on our end, 3D artists teaching non-artists to do what we do hahahaha a daunting task . . . ??? Absolutely haha on all fronts.

I have coders working with me on my game projects, so it is not a needed or an urgent issue for me to learn code, however it will not hurt to know some things about it.

Kind regards;

I’ll throw this out there:

A very focused Unity JavaScript book that teaches specific tasks most commonly used in games; such as, attaching movement controllers to an object and a character. And, how to set up a character in Maya / LightWave / Max so it imports correctly.

Writing basic AI code on pathing, finite states, etc. so that NPCs can move around and react to the player in at least a rudimentary manner.

etc.

Another possible approach to this might be to actually modify Unity’s IDE itself, giving Unitron a series of common gameplay mechanics code segments available as a series of drag and drop modules.

For example, let’s say you have game that calls for a “fox and hound” style pursuit system. You could drag and drop the module into your game’s controlling game object, followed by a window that would pop up asking you to define the “fox” and “hound” elements in your game, and their control system. Further nested modules could define the nature of the control system, with actions such as pursue, evade, idle along with what other game objects can alter those actions and what priority each of those game objects have over those actions.

Of course, this kind of functionality can be replicated in current versions of unity via the inspector, but it lacks the context sensitivity of what I’m trying to describe.

In the meanwhile, there was a show I saw recently that was examining one of the major commercial 3D game engines used in the industry (possibly the current Unreal engine) that showed off some really interesting features. One of which, was a slider-controlled approach to controlling game objects based on their location within a terrain, almost like how vertex weighting controls the surface of an object controlled by IK. (For example, the distance from a certain area on the terrain would gradually alter the actions of a game object/character, sort of like a Unity trigger, but with an adjustable falloff…)

It’s possible that replacing hard-coding elements with more visual elements like this in future versions of Unity could make game development much more accessible to non-programmers. Even tweaking the inspector to handle more advanced forms of data handling, such as using curve editors in place of manually defined loop routines, could greatly improve Unity’s accessibility.

Different needs, different solutions.

If someone is new to programming and in particular game programming i wouldn’t recommend starting with 3d. Although there are also quite some things which are easier done in 3d than 2d, it’s way more often the other way around. You just have to consider a lot less things in 2d than in 3d which gives you the opportunity concentrating more on the core of your game/problem.

BlitzMax for instance is a very easy, powerful and rewarding 2d tool, no click&clack or drag&drop but that’s also not what you want when you have the intention to learn how to code. I wouldn’t recommend Flash as Flash nowadays is much more a really powerful programming tool hidden in an completely messed up IDE. Processing might be an option as well if you’re not this much interested in the gaming and more in the programming/concept aspects, so is Ruby.

Anyway once you got the idea of how to solve certain game typical issues you could progress to the 3d world. Although quite some things will be done completely different in there you still should be able to benefit from the basics you’ve learned in the 2d world.

Might be old skool thinking but in my opinion it’s the better way also for the sake of an better overall understanding.

Wow, I am about to agree with taumel… I’ll lose my club membership and monogrammed jacket, but here goes. ( j/k taumel :wink: )

I agree completely. You also really want to learn solid engineering practices early on, and the more variables you have to juggle in your environment, the more likely you are to take shortcuts, and generally do strange and terrible things.

Taking it slow in an environment that doesn’t tease you with tons of cool toys allows for a less stressful and more productive learning experience.

This is a matter of opinion of course, as everyone learns a bit differently, but a solid framework of good practices is more important than a lot of “professional” programmers seem to think.

-Jeremy

I really wonder how these jackets look like. :O)

I’d send you a picture of mine, but they already took it back. It wasn’t too impressive anyway, although the logo did glow in the dark. :wink:

-Jeremy

Depending on the type of learner you are, it may be easier for you to first sit down with some of the basic tutorials available and work through them. The scripting employed in each is very basic and it is great way to get an initial overview of the Unity framework and physics engine and the fundamental constructs of any game.

Next step, download one or two of the demo projects various community members have uploaded (the Zombie car demo comes to mind–which is blast to play as well) and start playing around with them, looking at how the games are put together, how basic functionality and behaviors are implemented. Then take some of the basic concepts you’ve learned like how to make a basic car with a rigidbody and some wheel colliders and create your own little game, maybe a simple game where you drive a box and 4 cylinders around on a piece of terrain. You can then experiment with more adding more features from the platform, and at your own pace. Play around with the center of gravity on the car so you don’t flip it over when turning, add other colliders to deal with what happens when you do, throw other objects in there and play around with what happens when you run into them, etc.

There are thousands of sites out there that can give you a quick tutorial on Javascript (or if you prefer C#), but only subsets of the features of either language are required to script in Unity, so certainly don’t start with the languages first. Start with Unity and sample code and then go look up things you want to understand better. The complexity of Unity scripting comes from the very sophisticated Unity class framework and physics engine, but you don’t need to learn everything at once.

The problem I think you would have with a book on this topic is that it is very hard for an author lead people collectively through a very wide ranging topic of study such as this without disappointing quite a few of them. Some will want to dive down into the details of things that the author will gloss over. Others will be overwhelmed by detail when all they wanted was an overview. Although there are about a hundred books lying about my office at the moment, I think there is no better way to learn than through OPC…Other People’s Code (“code” more generally meaning game objects, components, scripts, etc.). I have been programming for a lot longer than I would care to admit, and I learn something from the many of the brilliant developers on this forum almost every time I come here.

By the way, not sure what sort of CG artist you are, but you certainly won’t find anything more complex on your journey than, say, modeling fluid systems in Blender :slight_smile:

I wonder if this dark is more meant i an aura or day/night relationship but hey you can send a picture of you without the jacket as well. ;O)