PDA

View Full Version : Video Game Making questions[programming, naming, and such]



Gourtox
2009-07-22, 06:23 PM
Ok I'm making a game to get some 3D modeler and programming experience. some basic information before we go deep into this. I plan on it being an RPG, turn-based, 3D, made with Panda3D (http://www.panda3d.org/index.php) game, and I want everything I use to be free or cheap. I don't plan on making money, but I do plan on selling it so everything I use has to be available for commercial use. Now in Panda3D you can use C++ or Python to program it with. I plan on learning them both, but which one should I learn first. I'm already learning some basic programming stuff from W3Schools (http://www.w3schools) like HTML, XHTML, CSS, and I'm starting Javascript(did I mention I might make a website for my the game?) If you know any good game engines suggest them to me. Yes I do pla on doing this by myself so the game won't be huge or complicated, but I don't want it to be crappy either.

As for the naming I need help with the name. The game is pretty much an meidevil RPG where everyone is a bunch of cubes and rectangles arranged in a human form. I'm thinking of calling it Cube RPG, but any suggestions. Any questions, suggestions, or something like that.

MethosH
2009-07-22, 08:11 PM
Ok, let me start saying what many will feel the urge to say... HTML, XHTML, CSS, and I'm starting Javascript ISN'T basic programming... Some will say it isn't programming at all! It's just... Messing around on your computer for fun.

Start with C++... Doing a game in Python is just asking me to kick your ass :smallbiggrin:
No really... C++ is the best choice here.

Can I ask you... Why Panda3D and not Ogre?

You should try doing in XNA also, its not fully free, but they have a great community.. XNA is not really an engine, but you can get stuff done.

quick_comment
2009-07-22, 08:23 PM
You don't mention any previous programming experience and you do mention stuff like learning HTML, so I'm going to assume that this will be your first nontrivial programming project.

Firstly, Python and C++ are both very useful languages and it's exactly right to aim to eventually learn both. However, you should definitely begin with Python, which has a well-deserved reputation as a rapidly written and easily read, as well as a newbie-friendly language. (C++ has much the opposite reputation in every respect, but is still worth learning for building robust and efficient applications when you've mastered it.)

Furthermore: don't let this dissuade you from learning to make games, but if you make your very first programming project something as complex as a 3D RPG you are basically guaranteed to fail. Now, trying and failing can be fun and enlightening, but if you want your first game to eventually be finished and playable, you should choose something simpler.

Many newbie guides advocate starting out by cloning a well-known simple game (such as Pac-Man, Tetris, Asteroids or Space Invaders), but personally I find this approach demoralizing -- you're probably in this because you want to make something original. Nevertheless, it should be that simple. Don't aim for impressive visuals, or even decent visuals. Do aim for fun gameplay!

I'd advise using a 3D engine for your first project only if you already know 3D modelling; it's not a good idea to attempt to learn both at once.

Don't worry about naming your project until it's at the very least playable.

Edit: Oh, and Javascript is "real programming", and you can make fun games (http://www.sarkscape.com/games/iphone/ninja-ropes-extreme/) with it. It's actually a pretty neat language if you look into it in a bit of depth. (Caveat: copying and pasting snippets of Javascript, as is fairly commonly done, is, of course, no more or less programming than copying and pasting snippets of C++ or x86 assembly.)

And anonymous people on the internet threatening to kick your ass is not really a good reason to abstain from the goodness that is Python. As much as I like C++, it provides the beginning programmer with a million little ways to shoot themselves in the foot. Python stays relevant when you're no longer a beginner because it's much easier and quicker to write, meaning that you can get more out of your programmer time for anything that's not performance-critical. For almost every project, programmer time will be the limiting factor for what you can achieve. Several "Serious" projects like Mount&Blade and EVE Online use Python as a scripting language for (presumably) this reason.

MethosH
2009-07-23, 12:01 AM
You don't mention any previous programming experience and you do mention stuff like learning HTML, so I'm going to assume that this will be your first nontrivial programming project.

Firstly, Python and C++ are both very useful languages and it's exactly right to aim to eventually learn both. However, you should definitely begin with Python, which has a well-deserved reputation as a rapidly written and easily read, as well as a newbie-friendly language. (C++ has much the opposite reputation in every respect, but is still worth learning for building robust and efficient applications when you've mastered it.)

Furthermore: don't let this dissuade you from learning to make games, but if you make your very first programming project something as complex as a 3D RPG you are basically guaranteed to fail. Now, trying and failing can be fun and enlightening, but if you want your first game to eventually be finished and playable, you should choose something simpler.

Many newbie guides advocate starting out by cloning a well-known simple game (such as Pac-Man, Tetris, Asteroids or Space Invaders), but personally I find this approach demoralizing -- you're probably in this because you want to make something original. Nevertheless, it should be that simple. Don't aim for impressive visuals, or even decent visuals. Do aim for fun gameplay!

I'd advise using a 3D engine for your first project only if you already know 3D modelling; it's not a good idea to attempt to learn both at once.

Don't worry about naming your project until it's at the very least playable.

Edit: Oh, and Javascript is "real programming", and you can make fun games (http://www.sarkscape.com/games/iphone/ninja-ropes-extreme/) with it. It's actually a pretty neat language if you look into it in a bit of depth. (Caveat: copying and pasting snippets of Javascript, as is fairly commonly done, is, of course, no more or less programming than copying and pasting snippets of C++ or x86 assembly.)

And anonymous people on the internet threatening to kick your ass is not really a good reason to abstain from the goodness that is Python. As much as I like C++, it provides the beginning programmer with a million little ways to shoot themselves in the foot. Python stays relevant when you're no longer a beginner because it's much easier and quicker to write, meaning that you can get more out of your programmer time for anything that's not performance-critical. For almost every project, programmer time will be the limiting factor for what you can achieve. Several "Serious" projects like Mount&Blade and EVE Online use Python as a scripting language for (presumably) this reason.

I agree with you in some points...

First let me apologize for calling Javascript "not real programming" :smallbiggrin:

I do agree that he should start with a simpler game project, not something in 3d. I dare to say he should start with ASCII programming, it helped me a lot to learn the basic concepts when I first started. There is nothing more rewarding than to see your first snake game made of ASCII characters finally working :smallbiggrin:

But I do disagree about your Python idea.

I understand that Python is newbie-friendly, but that isn't an excuse to start by it. I don't understand the assumption that people can't start with C or C++ because they will "shoot themselves in the foot". I think its the best way to start. He will learn to pay attention to what he is doing and take care of something that he probably wouldn't do in other newbie-friendly languages. While you are learning its the right time to get good habits, and I think a language that forces you to have those good habits is the best way to start.

I sure recommend you to learn Python as well, it is a great language after all and very useful some times... But isn't really that useful for games (on my personal opinion) since it's slowly being replaced by Lua.

Oh... You can also start with C# and use XNA... just saying...

quick_comment
2009-07-23, 05:59 AM
I had an answer written out to that, but a language flame war between the two of us isn't really likely to help a newbie, so I'll refrain :smallsmile:. (OP, this is what it's like being a programmer; be prepared for an inner urge to argue at length about the merits of various programming languages.)

The best answer is almost certainly to try both. Using each language will teach you different things (high-level thinking vs. low-level thinking and so on); see which ones you enjoy the most and stick with the corresponding language for a couple of smaller projects. Don't try to learn everything simultaneously (but don't be dissuaded from trying to learn everything eventually!).

Other languages you may want to check out are C (for "closeness to the metal" with fewer obscure gotchas than C++) and Java (for stringently enforced OO which appeals to some people, as well as free platform independence). When learning to program in a low-level language like C or C++, do get acquainted with a debugger immediately, it'll save you a lot of pain.

Hzurr
2009-07-23, 10:56 AM
Let me be the third to echo using C# and XNA. It's a solid environment to build in, there's good documentation, there's a good community, and if your game is good enough you could eventually get it on xbox live.

I graduated from University just over a year ago, and my last two semesters I took a video game class that revolved around using xna. I saw people who used it to make rpgs (both 2d and 3d), rhythm games, run-n-guns, fps', platformers, side-scrollers... you name it, I saw it tried. Some people used fully 3d environments, some used 2d, some (like the game my team made) was 2.5d.

I honestly can't recommend it enough

(And if it makes you feel any better, two of the guys that I was in a group with landed jobs at a video game company after graduating.)

MethosH
2009-07-23, 12:46 PM
I had an answer written out to that, but a language flame war between the two of us isn't really likely to help a newbie, so I'll refrain :smallsmile:. (OP, this is what it's like being a programmer; be prepared for an inner urge to argue at length about the merits of various programming languages.)


All I can say is... Wall said :smallbiggrin:

You should really aim to learn both, but at the same time will be a real pain in the ass.
One other way to decide is to check with the university you want go get in. (I'm assuming you are still not at any university) and check which language they learn first. This way you can learn a language... Do your game... And be ready for the years to come.

There are good chances that the first language your university of choice will present to you isn't an object oriented language... But you sure can find some similarities... If they choose C, go with C++ for now. If they choose Pascal, go with Python. (At least that is my opinion).

Some languages you need to aim as "must learn" should be C, C++, Python, Java, C# and Lua... Maybe you will need to learn some VB.NET during your life, but if you know these 6 most of the others will be very intuitive.

Oh, and if you are planning on do anything for iPhone you should learn Objective-C. That is a weird language if you ask me :smalltongue:

I will recommend once more C# and XNA :)
You know... Just in case :smallbiggrin:

DoomITP
2009-07-23, 02:39 PM
From what I know, C ++ is used in most games today so you should learn it.

KerfuffleMach2
2009-07-23, 11:54 PM
Ok, all of my advice and stuff comes from the fact that I am currently taking a game design program at a trade school.

If you don't have experience with programming or game making, do not start off on a 3D game. That's like trying to fly a 747 when the closest you've gotten to flying an airplane is watching Airplane! Start off small.

I'd recommend a Flash game, if you can get it. A lot of people have a copy of it, so ask people you know. They might let you have it.

If you do get Flash, you will need to learn ActionScript. That is actually the first programming language they teach at my school.

C++ is the most commonly used language right now. Learn it. Learn it well.

If you want to do some of the texturing or 3D modeling, learn Photoshop. There is no getting around the fact that you need it for that stuff.

Javascript would be good to learn as well.

And that's all I got for now.