Senior Project

Hello Unity community, this is my first post at these here forums :slight_smile:

My question is a fairly simple one: would it be possible to make a mid-high level game in roughly 6 months, with no prior programming knowledge?

I am pretty experienced, fast, and quick-to-learn when it comes to computers. I understand that I would have to learn an entire programming language from scratch (I’ve only learned a tad bit of Java), make the models, then actually go through the entire programming process of the game. I already have a pretty solid concept down and understand the UI.

Then again, I need some perspective here. I’m not sure if this is a realistic goal or not.

Also, if you could include anything that would help me out, such as “make a 2d game”, or “use Java, not C#” that would be very helpful.

Thanks.

Although I myself am new to Unity, I am not new to programming or gaming. I say nay. It took me quite a while to learn programming logic. It’s not as easy as it looks, it takes a while before you start going “oh, that’s what that’s for.” I will say though that UniScript does facilitate things a lot and I am going to start making an Asteroids game in a few weeks. I can almost guarantee that I will write it with much less code than it took me in Flash. It still doesn’t make it any easier, programming logic takes a while. On top of that you are also going to learn 3D, which also requires it’s own sort of logic and hands on practice

When you say mid/high level game, that instantly makes your goal unrealistic. You could probably go for a casual game and do a good job there, but when I think mid/high level, I am thinking a decent FPS or a simpler RTS game or what not. The amount of art and programming involved in any of those games is huge for one person to do alone, especially if they are starting from scratch.

Now if your goal were something like Tetris or Asteroids, then I would guarantee you that you will get enough knowledge to get those done in a little over half the time. However, if you were to learn ONLY what you need to be able to make those games, then that time could be shortened even further. It’s not a bad strategy as you could learn getting your hands dirty, not a bad way of doing things.

To give you an idea;

This is an XNA game made by one guy. Supposedly he made it in 6 weeks. However, that dude had massive amounts of experience coming into that game, and that is just one stage. I am sure that if he would’ve needed to make a full game with several stages and multiplayer functionality, it would’ve taken him a lot longer. And again, his experience counts for a lot.

As to recommendations, you don’t have to make a 2D game, you just have to make something that is either a finished game or a polished demo.

The former means you will have to probably do something 2D, a platformer would be an example. The latter could be something a lot more developed like a FPS or RTS but you will probably not be able to get all of the game art needed for a full game so you would just have to make a polished demo with one or two stages.

Finally, use C#. You will thank me later when you learn how incredibly awesome the Microsoft Visual Developer IDE is.

Any other questions, feel free to ask.

Use javascript. The docs have little if any C# examples. I did a course in C# but still dont get it. I did no such course in javascript and routinely contract as a programmer and realtime tutor over the internet. I learned purely from the docs tutorials and here on the forum. Theres far more support for javascript. Its closer to conventional english too.

You’ll thank me later :wink:

No you wont be able to pull this off in 6 months sorry to say- well its unlikley should I say.

Good luck, enjoy your work!
AaronC

I still recommend C#. I do not see what is so difficult about the language. I learned Actioscript 2.0 very well(which is Javascript’s sister) and moving to C# was a none issue. Again, the Microsoft Visual Developer IDE is so good that the extra learning curve is well worth it. The code complete(intellisense) system is great for speedy programming. On top of that, you get code hints for parameters, methods, and properties. Meaning you can often skip having to go to the documentation online or on your HD, you can just read little pop-ups as you code. Very convenient.

The book I recommend is the following;

It is the one I used and it is great because it teaches you C# with fun little mini-games as start-up projects. You will use console(DOS like) programming for this which allows you to focus exclusively on programming logic. You will learn little to no .NET which is good because you first want to get programming logic down before getting into that framework. You also don’t really need it immediately if you just want to get started with Unity.

C# has a number of little niggles when used with Unity (can’t just do something like transform.position.x += 2.0 for example), the option of using dynamic typing in Javascript makes certain tasks much easier, and personally I’m more concerned about the readability of a language as opposed to the writability, since I spend a lot more time reading my code than writing it. Maybe that’s just me though. :wink: Use whatever you like; there isn’t a “best” choice.

–Eric

I won’t argue which language is better, because you are right, they all do the same so there isn’t a best choice. However, like I previously mentioned, one will make you work in UniTron and the other in Visual Dev. I think that you would need a great selling point for Javascript to combat that feature, because it is quite strong.

There are more than just those two choices. Plus a lot of Unity users are Mac users, and are not using VS regardless, unless they’re adding virtualization to the mix (which some do).

–Eric

Very good point. I guess Plethorix should clarify what operating system he uses. If he’s a Mac user then obviously it’s whatever he feels more comfortable with. However, if he is a PC user, then he should really weigh the slightly quicker learning curve of Javascript, and other features, to the benefit of VS.

I would also like to comment that just because there are more Javascript tutorials around does not mean you would not be able to understand them as a C# user. Code is code as you have pointed out Eric, so the real learning curve is just learning a few of the other features like strict typing. It’s not like C# is going to require many more months of hard studying. And while it may not be as well documented in the Unity community, it is one of the most popular languages around outside of it and that should help him as well.

I see a lot of people write this, but in my firsthand experience that is sooo not the case. As I said I did a C# course, learned how to make tiny apps for windows, and it helped my Unity work not a bit.

I can dissect most javascript, but the differences between C# and unity JS are pretty black and white. In Javascript stuff compiles and works, in C# it is unreadable and non-comprehensible, doesnt work and has little if any reference material. (In my development world) I’m completely out of a job if its a C# task.

Just as my situation is not like everyones, people who say “code is code newbie do it with C#” also need to realise that they too do not offer a global perspective that is genericly accurate, and in my experience is a flat out lie. When I see advanced scripters say to use C# to total newcomers, I shake my head in the knowlege that in my firsthand experience, this is really bad advice. The docs have 99% JS examples for a reason I would suggest.

And my advice is only worth 2c, so spend it as you will :slight_smile:

a function is a function, a void is a hole…
K.I.S.S.

AC

That’s the thing, I am probably an intermediate programmer, I wouldn’t consider myself advanced at all. To explain why I believe that code is code, if you look at university programs, you will notice that they have an introductory class that is about programming logic. They don’t use any programming language per se, they just teach the concepts that are universal to all languages. This is a strong indication that most programming languages at their core are pretty much the same thing. Having slightly different syntax is like speaking British English to American English, or Spanish to Portuguese, whichever analogy you prefer, but it’s not like speaking Chinese to English, they’re not that different.

Also, please take note that I am not one of those elitist that goes “OMG C# IS SO MUCH BETTER AND UR A NOOB IF U USE JAVASCRIPT LOL”. JS is just as good in my book, so is Boo for that matter. I am merely pointing out my experience here and I had a completely different one to the one you had. My transition to C# was pleasant thanks in large part to that book I recommended. Sure, there are still advanced features that still make me scratch my head, like delegates and crap like that.

The reason I recommend C# is not because of an elitist mentality or anything like that, it is because if the dude has a PC, he could really benefit from VS. Take it from me who has been programming with a crappy programming editor in Actionscript, the few times I was able to use VS were a pure joy.

I would like to understand where you are coming from however, and I mean that in a good way. Do you have any examples to show that C# is more unreadable compared to JS? Because I don’t think a language’s readability has that much to do with the actual language’s syntax, but rather the programmers and how well they write their code, how well they name their variables and functions.

If I write

private void acd() {
float x23 = 4.5f
}

then obviously those are horrible naming conventions and it will make the code very unreadable. I personally make very descriptive code. Actually, a great advantage to Visual Studio is that you can write incredibly long variable and function names. Because of the auto-complete, you don’t have to type out the whole thing. I know I did this when I made Pong when I learned a bit of XNA. I could be wrong of course, just send me something and I will gladly look at it.

Hey no problem, we have two truths :slight_smile: truth is like beauty, subjective.

I just ran over some C# scripts I was having trouble with earlier and managed to get them working, which is really good, so I guess I should have a go at the locomotion scripts next, and the latest character customisation project just released. If I can get them going then I’ll definately stand corrected, and will share with the community.

Getting into scripting means constantly improving skill levels, and in this case to a point I wasnt aware. Sometimes all the work and no play means you dont appreciate what you’ve actually learned. If I get stuck with the locomotion conversion, I’d like to PM you about it if poss. Who knows maybe I can actually write in C# one day too.

Thanks for the valuable prompt! :smile:

AaronC

Well, I’m glad you were able to work that out. I don’t know exactly what I did but you’re welcome :slight_smile:

What character customization? That sounds interesting.

That is actually a good idea and something I would recommend to anyone. You should obviously have your preference, whether it be JS, C#, or Boo, but you should be able to at least read each one. In this manner you can then read other people’s code no matter what it was written in. Since I know Actioscript, I guess I don’t really need to learn JS, although I may be wrong. I will definitely take a look at Boo when I feel a lot more comfortable with the Unity API, which so far, I feel like a total noob again.

Also, about you contacting me. I would love to help you, don’t get me wrong, and I will most certainly do my best. However, I am a Unity noob and I am not THAT experienced with C#, I have probably 15% of my programming experience in the language so it’s not that much. I also have no experience with the Unity API. I basically used that book I recommended in my second post and made console applications and I eventually made Pong in XNA as well as some other smaller prototypes. I will be glad to help out because it will serve as a learning experience. I’m just giving you the heads up so you don’t think I’m something I am not. :slight_smile:

I am using Vista 64-bit dual-booted with Ubuntu64.

Thanks for the info thus far, any other opinions are appreciated.

I say stick with JavaScript while you’re learning. It’s much simpler and easy-to-use, so it’ll increase your chance of actually completing a project in six months.

Personally, I managed to make a game within two months of playing around with JavaScript, and I had no prior ActionScript or C++ experience. One thing to keep in mind, though, is that the documentation is your friend. Use the script reference and manual a LOT until you get to the point where you’ve memorized all the primary functions and classes.

My above comment was a bit rushed, so I’m commenting again with a bit more to say.

First off, thanks everyone for the quick and insightful responses! :smile:

@Joseph Ferano: Yeah, I didn’t mean a mid-high level game. I understand that that’s a totally unreasonanable thing for me to do in my time period. Basically what I’m looking to make is a fairly good game that would impress. I want to go as far with it as I can.

Also, because I forgot to add this in before, I wanted to say that I would have roughly 2-3hours per day to work, and maybe more on weekends.

Java sounds like the way to go for me.

Once again, thanks for the inupt guys.

Just a note its technically javascript, Java is a different language. Just incase you go signing up for a Java course thinking you’re on the money, like one of my tutors almost did :wink:

AC

Whoops, thanks for the heads up man.

Yeah, I was about to mention that :slight_smile:

If you have that amount of time and you really stick to it and you are dedicated, I can see you making a good game within 6 months from scratch. The key of course is having a realistic game goal that can be done by one person.

If you choose Javascript then great, you will definitely be dealing with a slightly cleaner and dynamic language. It should help you get up to speed a little easier. Just don’t fall into the trap of closing yourself off to other languages. You still need to at least know how to read the others since there may be projects out there that have some coding principles you like that are written in either Boo or C#. I also recommend you at least take a look at Visual Studio so you are at least aware of it and what it offers. Trust me, when you work with UniTron and all of a sudden start using VS, you are going to go “DAYUUMMMM”. If you still prefer Javascript, then great, it’s a good choice, but choice requires knowledge of both options, or else it really isn’t a choice :slight_smile:

Six months on a 3D game? If you have all of the art and sound assets, I can see that coming off with plenty of community help and solid work from you. Otherwise, you’d be good to try something a little bit more tame

Given the time constraints, I’d suggest The RPG Toolkit, personally, as you can prototype a game really easily with that. The Blender Game Engine is also effective at modeling simple game interactions with a minimum of scripting.

I, too, am only just scratching the surface of the power of the Unity system. While it is powerful, and much simpler than other 3D engines like Torque, to create something that you could expect a decent grade/review from, with little prior experience and no assets, you would need either donated/free art, donated/free music, a serious eye for code, hopefully a measure of game design skills, and one heck of a good plan. If you have all of these, you can probably completely ignore me.

Really, Eric5h5 is right: there is no “right” choice, unless your teacher/professor/boss said there is. Still, this appears to be a very helpful community, I’m sure they’ll give you plenty of help! I certainly hope these comments/suggestions help you, good luck!

Alrighty. Looks like I’m going to start working on learning JavaScript.

If someone could point metoward what I should be doing and in what order to make this game, I would really appreciate it. I know I’m going to need some help learning to model objects (or will I?) and I’ll need to know which program/ generator to use. Really, any tips or tricks you could share would be awesome.