Video Game Programming Question

  • (2 Pages)
  • +
  • 1
  • 2

22 Replies - 2174 Views - Last Post: 20 May 2010 - 10:02 AM Rate Topic: -----

#1 Guest_caden*


Reputation:

Video Game Programming Question

Posted 08 May 2010 - 02:23 AM

Hello everybody...

I'm interested in learning how to code video games.

I want to some day try to create a game similar to Unreal Tournament 1999 if any of you have ever heard of it.

I basically just want to know, what languages should I learn in order to create games like this? Should I start off trying to learn
C++ or what? Any recommendations to help me get started?

Thanks
Is This A Good Question/Topic? 0

Replies To: Video Game Programming Question

#2 Kilorn  Icon User is offline

  • XNArchitect
  • member icon



Reputation: 1356
  • View blog
  • Posts: 3,528
  • Joined: 03-May 10

Re: Video Game Programming Question

Posted 08 May 2010 - 07:59 AM

I believe C++ is still pretty much the industry leader for programming games. C# is another great language, and with XNA having the ability to code for XBox and upload your games directly to Xbox live arcade, Microsoft allows you to start making money in a relatively small timeframe. I'd imagine that you could easily go from no knowledge of video games to a couple fully working, and possibly profitable games in a matter of just a couple of months using C# and XNA. They're both very powerful languages for games, though.
Was This Post Helpful? 0
  • +
  • -

#3 keithgarry  Icon User is offline

  • D.I.C Head

Reputation: 9
  • View blog
  • Posts: 63
  • Joined: 26-August 09

Re: Video Game Programming Question

Posted 08 May 2010 - 09:41 AM

You want to make a game like Unreal Tournament 1999? What previous coding experience do you have? I don't really like breaking the bad news but the amount of force and effort it would take to mimic that game is probably more than you have right now. Such games use C or C++ to handle the engine and a scripting language on top to handle the rest. You'd need knowledge in 3D as well as physics, both huge leaps in the programming world, and you'd want some online play too I bet. If you are super interested in this then I recommend you learn most of the C++ basics and then grab an open source project. The quake 3 engine is open source. You can google for a list of other ones.
Was This Post Helpful? 0
  • +
  • -

#4 Guest_caden*


Reputation:

Re: Video Game Programming Question

Posted 08 May 2010 - 02:11 PM

Alright thanks guys I'll start off learning C++ I guess.

Keithgarry: The only previous coding experience I have is XHTML/CSS for webdesign and PHP and some Java that's about it.

I'll just start reading up on C++

Also you said a 'scripting language on top'... what's a scripting language and what's it do?
Was This Post Helpful? 0

#5 Oler1s  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1395
  • View blog
  • Posts: 3,884
  • Joined: 04-June 09

Re: Video Game Programming Question

Posted 08 May 2010 - 04:27 PM

I don't think there's completely "good" information in this thread. I have some information and a few counterpoints to make.

Quote

I basically just want to know, what languages should I learn in order to create games like this
It's not a language issue. It never is. It's fundamentally a problem solving issue. That's pen and paper work. The reason those amazing games get made isn't because they chose an amazing language. It's because there are some top notch problem solvers and programming minds behind the game.

Quote

Should I start off trying to learn C++ or what?
No. I am not the only one who tells you starting with C++ is a bad idea. I currently recommend Python and C#. A few years from now, my recommendations may change. That's technology for you.

I'm not going to reiterate the reasons for my choices in full, you can Google that (especially look at gamedev.net's forums, as this question gets asked a lot). But the point is unless you are applying for a job in the industry in the short term, picking C++ because it is used in the industry is a bad idea.

Quote

Any recommendations to help me get started?
Python or C#. Pick one. Get started. Expect to spend 10 years at this before you feel experienced.

Now, what others said.

Kilorn said:

I'd imagine that you could easily go from no knowledge of video games to a couple fully working, and possibly profitable games in a matter of just a couple of months using C# and XNA.
No, this is unrealistic. C# and XNA shorten development times, but they don't remove all the other challenges of software development. Not the least which is problem solving ability.

keithgarry said:

If you are super interested in this then I recommend you learn most of the C++ basics
I don't want to start a language war here, but my ultimate point is this: unless you are applying for jobs in the short term, starting with C++ puts you at a disadvantage.

Caden said:

The only previous coding experience I have is XHTML/CSS for webdesign and PHP and some Java that's about it.
Consider using PHP and your design knowledge to make browser based games. Consider learning Java and making games with that. Or combine them. Java for a backend application server, and PHP + web design.

You can also do something similar with Python and C#, but you already have PHP and Java experience.

Quote

what's a scripting language and what's it do?
You could have Googled this question before you asked it here...

But a scripting language is a language that fulfills the role of writing scripts in a certain context. It's context specific because it depends on what you are doing. If I write in Python code and embed Lua, that means Lua serves as a scripting language. If I write in C++ and embed Python, I can embed Python scripts. If I wrote a Python HTTP server, I'm not going to call it a script. EVE Online MMO is written in Python; I dare people to call the MMO code a bunch of scripts.

Scripts tend to refer to two things. Code that is used with a host language or program. For example, modifying an existing game with additional functionality. Often done with scripts. The game has code embedded that runs these scripts. Without the game, the script code is meaningless. Usually, we consider scripts to be code that can be fed directly, as opposed to going through some complex compilation process. For example, you can write addons for Visual Studio. Here's the thing, no one considers an addon a script. You have to use the VS SDK and compile a proper plugin. On the other hand, I believe Adobe Lightroom can be modified with use of Lua or Javascript, I'm not sure which (Lua I think). In that case, the modifications would be considered scripts.

The other thing scripts tend to refer to is small, short, quickly written programs that accomplish high level tasks: parsing data files, connecting to the internet and grabbing data, doing a few calculations, and so on. So a language that is being used for such a purpose would be referred to as a scripting language.

This post has been edited by Oler1s: 08 May 2010 - 04:28 PM

Was This Post Helpful? 4
  • +
  • -

#6 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10461
  • View blog
  • Posts: 38,753
  • Joined: 27-December 08

Re: Video Game Programming Question

Posted 08 May 2010 - 04:50 PM

View Postkeithgarry, on 08 May 2010 - 12:41 PM, said:

You'd need knowledge in 3D as well as physics...

Very true. Game programming in 3D requires a ton of math and physics, including but not limited to Calculus, Trig, and Linear Algebra. Simple concepts to us take a lot of coding and math to model in 3D. I've written some tutorials on putting math into the context of game programming; you might specifically be interested in Part III to see some of what you may have to do, as I cover 3D Gravity using a Calculus concept- Volumes of Revolving Solids.

Link: http://www.dreaminco...topic168022.htm
Was This Post Helpful? 0
  • +
  • -

#7 Guest_caden*


Reputation:

Re: Video Game Programming Question

Posted 08 May 2010 - 05:45 PM

Oler1s, thanks for you tips but it's not really helping as in it's kind of discouraging me...

What's wrong with learning C++? C++ is the most used language for game development today is it not?


Also, when creating games, what usually starts first in the creating? Design or programming, or both at the same time?

For creating a 3D game what kind of programs are used to design games today?
Was This Post Helpful? 0

#8 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10461
  • View blog
  • Posts: 38,753
  • Joined: 27-December 08

Re: Video Game Programming Question

Posted 08 May 2010 - 05:55 PM

No one is trying to discourage you here, but rather describe the intense programming requirements and difficulties of a 3D game of any real complexity. If you do not have significant programming experience, you may find this project to be quickly overwhelming. I think the point Oler1s is making about C++ is that it is lower level than something Python, Java or XNA. The higher-level the language is, the more is abstracted so you don't have to write as much code in comparison to the lower-level counterparts.

Quote

You'd need knowledge in 3D as well as physics...

This is a very good point. In Game Programming in general, specifically 3D game programming, there is a lot of Physics required along with Linear Algebra, Calculus, and Trig. The math is very intense, so make sure you know what you are doing. I've written three tutorials on Putting Math into the Context of Game Programming, which you may find helpful. Part III is especially pertinent to what you are trying to accomplish as it covers 3D Gravity using Volumes of Revolving Solids.

Links:
http://www.dreaminco...topic165639.htm
http://www.dreaminco...topic166013.htm
http://www.dreaminco...topic168022.htm

This post has been edited by macosxnerd101: 08 May 2010 - 05:56 PM

Was This Post Helpful? 0
  • +
  • -

#9 Guest_caden*


Reputation:

Re: Video Game Programming Question

Posted 08 May 2010 - 06:10 PM

Well of course a game like Unreal Tournament 1999 would be very overwhelming to me now but what I'm trying to do
is get started with the basics... start understanding how it works and stuff and then over the years I can understand how to do what I want to do

So I think I'm just gonna start learning C++ and do some different things with it and try to get used to it.

I plan on maybe going to college for learning programming and stuff too so that will help.

Also like I asked earlier, what happens first, design or programming or both? And for the design for 3D games what programs are used?
Was This Post Helpful? 0

#10 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10461
  • View blog
  • Posts: 38,753
  • Joined: 27-December 08

Re: Video Game Programming Question

Posted 08 May 2010 - 06:16 PM

By design, do you mean the graphics/images/artwork or the plot/gameplay? The absolute first thing to design is the plot/gameplay. After you get the plot worked out, the development and artwork follow.

I'm by no means a 3D Graphics expert, so I can't answer your question about programs for designing 3D images.
Was This Post Helpful? 0
  • +
  • -

#11 Oler1s  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1395
  • View blog
  • Posts: 3,884
  • Joined: 04-June 09

Re: Video Game Programming Question

Posted 08 May 2010 - 07:47 PM

Quote

Oler1s, thanks for you tips but it's not really helping as in it's kind of discouraging me...
How am I discouraging you? I noted that C++ is not the best way to begin, and that you should consider building on your PHP and Java knowledge initially.

Are you asking how to start game development, or are you asking us to tell you that if you start with C++, you are on your way to be a l33t programmer making AAA games? Because if you want the latter reassurance, you are dreaming.

Quote

What's wrong with learning C++? C++ is the most used language for game development today is it not?
Sure, in the industry, it is most used. I am telling you that it is an irrelevant measure unless you actually intend to apply for jobs soon.

What you need is a language that has high level abstractions. That has good documentation, books, and other learning resources. That has good mechanisms for feedback during programming and for debugging. That is widely supported and has a community that is open to beginners. That has good access to useful libraries for components like networking and graphics. That makes extremely common tasks like i/o and tokenizing easy to do. One that ideally makes Unicode and parallel programming easy. One that isn't a dead end.

You want to know what it's like to program in C++ for a beginner? Go ahead and choose it. It's your choice. Let us know a year later if you thought you made the right choice.

Quote

Also, when creating games, what usually starts first in the creating? Design or programming, or both at the same time?
The game design document comes first. The GDD evolves, but a preliminary document is crucial. It establishes what the requirements for the development of the game. After a first draft, you can flesh it out a bit more with concept art. So initially you get the game designer and maybe concept artists (so good with sketching and painting). Programming doesn't start until significant analysis is done.
Was This Post Helpful? 1
  • +
  • -

#12 lesPaul456  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 173
  • View blog
  • Posts: 729
  • Joined: 16-April 09

Re: Video Game Programming Question

Posted 08 May 2010 - 09:28 PM

3D artists generally use many different tools to create game content. One popular tool is Autodesk 3ds Max. A free alternative to 3ds Max is Blender.

Since you're just starting out, you might want to look for some free models to mess around with. If you have the money, you can also buy some game-ready model packs.
Was This Post Helpful? 0
  • +
  • -

#13 keithgarry  Icon User is offline

  • D.I.C Head

Reputation: 9
  • View blog
  • Posts: 63
  • Joined: 26-August 09

Re: Video Game Programming Question

Posted 08 May 2010 - 11:32 PM

If you want to jump right into level design, graphics, and scripting take a look at the UDK. It's free and it's from unreal. Scripting languages are a whole 'nother tier (such as LUA) that are wrapped around your first language to make coding easier.

View PostOler1s, on 09 May 2010 - 01:47 AM, said:

What you need is a language that has high level abstractions. That has good documentation, books, and other learning resources. That has good mechanisms for feedback during programming and for debugging. That is widely supported and has a community that is open to beginners. That has good access to useful libraries for components like networking and graphics. That makes extremely common tasks like i/o and tokenizing easy to do. One that ideally makes Unicode and parallel programming easy. One that isn't a dead end.

You want to know what it's like to program in C++ for a beginner? Go ahead and choose it. It's your choice. Let us know a year later if you thought you made the right choice.


Real quick, C++ has all those things you mentioned just probably not in the form the OP is thinking. A majority of the help comes in the form of console IO(like dos prompt). It's not exactly Unreal, but there's a plethora of resources that can get the game developer going. Like you said your own biggest enemy will be lack of time and lack of motivation. I too went the route of C++ starting about a year ago. I've also been battered around and defeated (many times) by the once seemingly difficult concepts. I'm proud of all of the stupid little console applications I've made so far and my understanding of computers has only been enriched because of it. So yes, it has been worth it.

However, I think lots of people who say "I'm going to program the next best game" go in with unrealistic expectations and quickly get kicked back out, which brings me to the OPs next question about design. Yes, design always comes first by people who have experience. If you don't have experience you aren't capable of understanding what can and can't be done realistically. If you don't plan then you wont be able to look back and see what has worked and what hasn't. Always plan, always write down pseudocode if you feel you're having trouble or approaching a new concept.

Ultimately someone who declares they want to learn C++ is probably not going to be dissuaded. There's just something about the language that makes it kick ass. You *could* learn C#(and speed up the "learning" process tenfold) but you know what, $*%@ Windows(lol). Then again I'll most likely end up learning it anyways.

This post has been edited by keithgarry: 08 May 2010 - 11:34 PM

Was This Post Helpful? 0
  • +
  • -

#14 keithgarry  Icon User is offline

  • D.I.C Head

Reputation: 9
  • View blog
  • Posts: 63
  • Joined: 26-August 09

Re: Video Game Programming Question

Posted 09 May 2010 - 01:20 AM


Was This Post Helpful? 2
  • +
  • -

#15 Guest_caden*


Reputation:

Re: Video Game Programming Question

Posted 09 May 2010 - 05:30 PM

So would you guys say to not start with C++ and start with something else?
Was This Post Helpful? 0

  • (2 Pages)
  • +
  • 1
  • 2