Get the latest Education e-news
 

Go Back   Game Career Guide Forums > Game Career Guide > Getting Started
Forum Home Register Members List Mark Forums Read

Reply
 
Thread Tools Display Modes
Old 08-05-2010, 02:15 PM   #1
jebbers
Junior Member

Activity Longevity
0/20 11/20
Today Posts
0/11 ssssssss8
Default Starting from scratch - Learn a language or OO Programming first?

In other words, should I start learning a language like Java or C++ (still deciding on which one to start with) *OR* should I learn about OO Programming first?

A friend recommend I read this book before jumping into any language and I was just wondering what others thought. Here's the book:

http://www.amazon.com/gp/product/020...=ATVPDKIKX0DER

And here's the C++ books I've been eyeing, listed in the order I'd read them in:

http://www.amazon.com/gp/product/032...ef=oss_product

http://www.amazon.com/gp/product/020...ef=oss_product

http://www.amazon.com/gp/product/013...ef=oss_product
jebbers is offline   Reply With Quote
Old 08-05-2010, 03:28 PM   #2
jebbers
Junior Member

Activity Longevity
0/20 11/20
Today Posts
0/11 ssssssss8
Default

A follow up question about choosing my language:

I mostly use my macbook pro, and would prefer to use it as the computer of choice when programming a game. I understand that if I choose Java then it won't make a difference whether the person who wants to play the game is using windows or osx as long as the game is being played through a browser. If it's then put into an offline client, however, then it *will* matter, correct?

So, if I was to learn C++ first and make games on OSX, i'd have to make it FOR the mac with no exceptions, right? You can't run c++ games in a web browser? And I can't make a c++ game for windows using a mac (i.e. to port it)?

Knowing all of this, what do you think I should do? Is there a language that makes the most sense for me to learn first keeping all of this in mind?

I know I could always just install windows onto my macbook pro and run it in bootcamp but I was hoping there would be a better solution.
jebbers is offline   Reply With Quote
Old 08-06-2010, 12:03 AM   #3
Adrir
Administrator
 
Adrir's Avatar

Activity Longevity
2/20 20/20
Today Posts
0/11 sssss1464
Location: London, UK
Default

Quote:
Originally Posted by jebbers View Post
I mostly use my macbook pro, and would prefer to use it as the computer of choice when programming a game. I understand that if I choose Java then it won't make a difference whether the person who wants to play the game is using windows or osx as long as the game is being played through a browser. If it's then put into an offline client, however, then it *will* matter, correct?
So you're just starting out programming?

I have found find that C++ confuses many beginners; although, I also know some good programmers who started out with C++. Java, however, is a comfortable choice for many novices. Either way, you will most likely need to learn about objects alongside the language. They are, afterall, both object-orientated languages.

Both Java applets and applications run through the JVM (Java Virtual Machine). The main difference being applets are constrained by strict security policies (known as the 'sandbox'). Software written in Java will be cross-platform regardless of whether it is an applet or an application. This is, of course, providing you arn't using any native code (for example, some graphics libraries are DirectX wrappers).

See The Java Tutorials.
__________________
Michael 'Adrir' Scott :: Games, Virtual Worlds, Education
Networking | Current Project | Research | Teaching

Last edited by Adrir : 08-06-2010 at 12:05 AM.
Adrir is offline   Reply With Quote
Old 08-06-2010, 12:27 AM   #4
yaustar
Administrator
 
yaustar's Avatar

Activity Longevity
2/20 19/20
Today Posts
1/11 sssss2254
Location: UK
Default

Quote:
I understand that if I choose Java then it won't make a difference whether the person who wants to play the game is using windows or osx as long as the game is being played through a browser. If it's then put into an offline client, however, then it *will* matter, correct?
Not quite true. Even if it is an applet on a browser, it may have some incompatibles. On the flipside, a standalone Java executable can work across platforms without modifications.

Quote:
So, if I was to learn C++ first and make games on OSX, i'd have to make it FOR the mac with no exceptions, right?
Wrong.

Quote:
You can't run c++ games in a web browser?
Not to my knowledge.

Quote:
And I can't make a c++ game for windows using a mac (i.e. to port it)?
Yes you can via cross compiling.

What is your end goal? If you want to make games that work on most platforms (and browsers), then learn Flash or even use Unity. At this stage of learning, do you really care if your games runs on different platforms? Even at a later stage, do you really care?
yaustar is offline   Reply With Quote
Old 08-06-2010, 04:02 AM   #5
jebbers
Junior Member

Activity Longevity
0/20 11/20
Today Posts
0/11 ssssssss8
Default

My end goal is to be making and selling games independently on a variety of platforms (pc, mac, mobile platforms, iDevices, xbox live arcade/indie, and playstation network) within a year. I'll be using Torque and Game Maker in the beginning and slowly transitioning away from them as I become more comfortable at programming (which I'm guessing will take between 1-2 years).

It's important to state that this doesn't mean I'll be jumping right in and making complicated 3D games (that's not even my interest anyway, as I prefer to work on 2D games for a while)... so I'm thinking, and hoping, 1-2 years is a realistic estimate.

Also, I'm a big fan of rogue-like games so I'll also need to be able to learn how to make procedural gameplay. Which is another reason why I'm not going to stick with Torque Game Builder or Game Maker for too long.

And then there's Unity, which seems awesome (and also uses Java) but it's something I'd probably want to purchase if I used it seriously and $1200+ is certainly nothing to sneeze at.

Side question: How to people typically go about porting their flash game to an iDevice? Is there a program that can do most of the work for them or do they often have to re-write it completely in a new language? If the latter, which language?


A little timeline:

1) Start making small games for the pc and mac

2) Then start making games for iDevices

3) Then make games for Xbox Live Arcade/Indie Games

Last edited by jebbers : 08-06-2010 at 04:08 AM.
jebbers is offline   Reply With Quote
Old 08-06-2010, 04:39 AM   #6
yaustar
Administrator
 
yaustar's Avatar

Activity Longevity
2/20 19/20
Today Posts
1/11 sssss2254
Location: UK
Default

Quote:
Side question: How to people typically go about porting their flash game to an iDevice? Is there a program that can do most of the work for them or do they often have to re-write it completely in a new language? If the latter, which language
Depends. Most times, it will be the latter. C++, C and/or Objective C (Or Unity/other tools available).

Unity can use Javascript for scripting, it doesn't use Java.

Unity is your best bet for 'write once, port easily for other consoles' (except for Indie Games). Live Arcade is not the same as Indie Games and is much more expensive to develop for and target (you have to be become a licensed developer, you have to buy an SDK and hardware, you have to pay for the testing they do and you also have to wait for your slot to appear on Live Arcade. PSN is not much cheaper).

You have no easy 'god' solution for what you want to do.

For timelines steps 2 and 3 (Indie Games only as Live Arcade is not realistic if you think $1200 is too steep), you are really restricted in what you can use.

Last edited by yaustar : 08-06-2010 at 04:42 AM.
yaustar is offline   Reply With Quote
Old 08-06-2010, 05:22 AM   #7
jebbers
Junior Member

Activity Longevity
0/20 11/20
Today Posts
0/11 ssssssss8
Default

First off, I just wanted to thank you for the help you've given so far, I really appreciate it.

To clarify, I certainly do expect to be dropping large amounts of money (like the $1200 for unity or $X.XX for a developer license) in the future.

I just meant that, as a beginner, I don't think I should be dropping anything like that until I've gained enough experience to make a game that I believe will sell enough to recoup the costs.

So, what it sounds like is what I expected. I'll jump right into C++ and learn it as quickly as possible. I've found a bunch of fantastic books that should really help me out here. While learning C++, I'll also continue to experiment with and make small games using the Torque Game Builder (the 2D one) before moving on to the free version of Unity. Eventually, I'll purchase Unity Pro and the required licenses and sell a few of the games I make there before eventually switching to C++ completely.

Of course it's important to keep this as flexible and fluid as possible but, as a tentative plan, I think this seems solid.
jebbers is offline   Reply With Quote
Old 08-06-2010, 05:32 AM   #8
jebbers
Junior Member

Activity Longevity
0/20 11/20
Today Posts
0/11 ssssssss8
Default

One last follow-up, what do you think are realistic expectations here:

How long do you think it would take a person who has never programmed anything to be a sufficient enough programmer to be able to make a relatively simple 2D platformer (Super Mario World, for example) using C++? Keeping in mind that the person would probably spend about 30 hours a week learning how to program.
jebbers is offline   Reply With Quote
Old 08-09-2010, 11:39 AM   #9
ndimucci
Senior Member

Activity Longevity
0/20 17/20
Today Posts
0/11 ssssss156
Location: CT
Default

Quote:
Originally Posted by jebbers View Post
One last follow-up, what do you think are realistic expectations here:

How long do you think it would take a person who has never programmed anything to be a sufficient enough programmer to be able to make a relatively simple 2D platformer (Super Mario World, for example) using C++? Keeping in mind that the person would probably spend about 30 hours a week learning how to program.
Don't let the "simple" graphics of a 2D platformer fool you into thinking it's relatively simple to make. More simple then a 3D game, yes, but still complex and challenging endeavor.

So how long will it take to create a 2D platformer using C++? Only you can truly answer that question, but expect for it to take a long time. If you used, say, C# and XNA, expect the time to make it to be cut in half, at least (there are many reasons for this, and as you grow as a programmer you'll understand why). But you're a mac user so XNA is probably out of the question unless you want to install Windows 7 on it.

However, you basically want to be a sole, indie game developer. Best bet is to go with XNA and release games on the indie section of Xbox Live. There really isn't an easier way to develop games and get them on a popular platform, capable of selling. I think you'll find yourself overwhelmed if you try to make games virtually from scratch in C++ (prove me wrong!).

There's a lot of ground work that you need to cover before you can start programming games. People have started with C++ with much success, others haven't. Personally, I say don't start with C++ if you are truly serious about programming. Start easy, learn about the concepts of programming first before trying to master a language. May I recommend the follow books.

http://www.amazon.com/Python-Program...1382412&sr=1-3

Maybe when you're done with that you can move onto C++ if you choose.

http://www.amazon.com/Primer-Plus-5t...8&sr=1-1-spell

After that, then maybe you're ready to learn game specific programming with C++. But don't neglect learning design patterns, OO principles, data structures, etc. I personally love the Head First series of books, so I'll recommend them.

http://www.amazon.com/First-Design-P...1382589&sr=1-2

http://www.amazon.com/Head-First-Obj...1382589&sr=1-4

http://www.amazon.com/Algorithms-Dat...382612&sr=1-12

http://www.amazon.com/Data-Structure...1382640&sr=1-1
__________________
Software Developer
http://www.linkedin.com/in/ndimucci

Last edited by ndimucci : 08-09-2010 at 01:01 PM.
ndimucci is offline   Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Powered by vBulletin® Version 3.6.9
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
All times are GMT -8. The time now is 04:18 PM.






UBM Tech