beginner game programming questions

  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »

52 Replies - 30902 Views - Last Post: 05 September 2013 - 04:11 AM Rate Topic: -----

#1 toko.rogava  Icon User is offline

  • New D.I.C Head

Reputation: 4
  • View blog
  • Posts: 14
  • Joined: 03-September 13

beginner game programming questions

Posted 03 September 2013 - 10:21 AM

hello, im new to programming(by new i mean, that i do not have the slightest of an idea how stuff works around here) and i want to program a game, not a grafically perfect AAA game, but a basic, simple 2D game, to show myself what i can do.however i DO NOT WANT TO USE AN ENGINE! i want to start from the roots. so here is the question What language should i use? i want my game to be either PC or IOS, doesnt have to be both, but it will be nice if it is. i want the language to be usable later in different, more complicated and higher class games, since im thinking of becoming a game dev(maybe... maybe). next question, what types of games are easier to make(of course i dont want a tic tac toe or something like that) even though i will put a lot of time and effort in it, i do not want to overrate my abilities and end up canceling the game. so these are my main questions, there are others that i will ask later on of course, but these are the main ones right now.

thanks to anybody who will answer this post. toko

Is This A Good Question/Topic? 1
  • +

Replies To: beginner game programming questions

#2 stayscrisp  Icon User is offline

  • フカユ
  • member icon

Reputation: 1040
  • View blog
  • Posts: 4,325
  • Joined: 14-February 08

Re: beginner game programming questions

Posted 03 September 2013 - 10:49 AM

Check out the stickies at the top of the forum or even check out my tutorials linked in my sig.
Was This Post Helpful? 1
  • +
  • -

#3 Ryano121  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1461
  • View blog
  • Posts: 3,289
  • Joined: 30-January 11

Re: beginner game programming questions

Posted 03 September 2013 - 10:53 AM

Do you know any languages at the moment? It is advisable that you first learn the language well before you start diving into a big project like a game with it.
Was This Post Helpful? 1
  • +
  • -

#4 toko.rogava  Icon User is offline

  • New D.I.C Head

Reputation: 4
  • View blog
  • Posts: 14
  • Joined: 03-September 13

Re: beginner game programming questions

Posted 03 September 2013 - 10:58 AM

View PostRyano121, on 03 September 2013 - 10:53 AM, said:

Do you know any languages at the moment? It is advisable that you first learn the language well before you start diving into a big project like a game with it.

like i said, i am a compleete newbie, i am not familiar to any language at the moment, but i dont mind to learn one of the harder, but more usable languages and i do not want to have any laterly( i dont know if thats even a word) useless language to get under my feet.

This post has been edited by no2pencil: 03 September 2013 - 11:40 AM
Reason for edit:: Removed Code Tags

Was This Post Helpful? 0
  • +
  • -

#5 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 117
  • Joined: 10-August 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:05 AM

*
POPULAR

Hey there, welcome to the community. :)
I noticed you added code tags to your post but you don't need to do that, you only need to do that when showing code.
I have basically written a short guide from my experiences on how to start getting into game development as a complete beginner, and this is an edited copy of that post. :)

Note: This is not the only way you can get started. This is what I prefer to recommend as the best way to start if you're an absolute beginner according to me. I could throw all the languages and all the libraries at you, but I won't answer your question. I'd rather give you a specific path to follow and you can easily expand on it. Don't be afraid of learning multiple programming languages. You're saying that you want to use the same language for other things in the future, but once you learn one language, the essentials of all languages are about the same, and you'll see how it's not so scary. So you will just have to become proficient enough.

First of all, one of the best beginner friendly language to start off with is C# (I could recommend others too, but this is what I prefer). It will set the fundamentals for learning OOP (Object Oriented Programming) for you, so if you later wanted you could expand on C++. But as a beginner with no previous experience, I advice you to stay away from C++. Forget about learning a harder language as your first one (you can learn it later, you first need the fundamental knowledge), you will get very frustrated and you might lose the motivation to continue.

To begin learning C#, check this site out.
http://rbwhitaker.wi...sharp-tutorials

You can also go through the C# tutorials on dreamincode too :)
http://www.dreaminco...%23-start-here/

If you want to follow video tutorials, I'd recommend these tutorials if you can get them. I started of with these. :)
http://www.lynda.com...ng/83789-2.html

After learning C#, the recommended framework to begin with is XNA framework, the first thing you should do is follow this tutorial. It will set the fundamentals of 2D game programming for you. :) Try to add features to the game, and to modify it.
http://xbox.create.m...getting_started

Then you should check out all of RB Whitaker's tutorials. He has probably the best tutorials on the internet on XNA, and they are very easy to understand. You can check this out first if you want as it's more general, and then do the Microsoft tutorial.
http://rbwhitaker.wi...m/xna-tutorials

This will be enough for you to achieve the 2D games you want. And then you can expand upon it to learn more advanced programming and maybe even get into 3D programming, stay away from it until you are very comfortable with 2D programming tho.

Quote

i want the language to be usable later in different, more complicated and higher class games

Do not worry about this for now. Game development is no easy task. You will realize this as you're learning and seeing how much there is to actually learn. You can always learn more languages once you learn another, and it will be way easier once you understand how it works. As for C# you can easily expand upon it and use MonoGame, which basically uses the XNA libraries and ports it to almost all platforms possible. Including iOS, Mac, Linux. MonoGame is continued to be updated but Microsoft has stopped updating XNA. But you can still use it to learn and it's probably the best platform to do so. You can also use C# as a scripting language in Unity (most indie devs use this engine).

You should really concentrate on learning things and understanding how game structures and logic work, and when you're comfortable enough and feel that you understand enough, you should worry about other things.

Have fun in your game development adventures!
Was This Post Helpful? 6
  • +
  • -

#6 Witchking  Icon User is offline

  • D.I.C Head

Reputation: 68
  • View blog
  • Posts: 189
  • Joined: 17-February 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:10 AM

I would, admittedly with bias, suggest C#. I feel it's a very good language for beginners to learn a good OOP paradigm, and it's supported by the extensive .NET framework. Also, everything you learn with C# will translate to other programming languages. Having learned one language you don't have to start again from scratch if and when you want to learn another one.
Was This Post Helpful? 3
  • +
  • -

#7 axel1994  Icon User is offline

  • D.I.C Head

Reputation: 86
  • View blog
  • Posts: 169
  • Joined: 27-May 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:17 AM

Alright,
It's nice that you don't immediately want to start with a 3D game.
You can start with any language you want.

It's a lot of personal preference.
Before a flame war starts here between members let me explain:

edit: I was writing a big wall of text but here is a nice article on choosing the programming language.
http://www.gamefroms...-developer.aspx

C++ is a language used in the actual business (AAA). But this doesn't necessarily means you should use it.
It's a pretty difficult question and it will take awhile before you're fluent in this language.

Java is another language. Minecraft was built with it. I've used it for some games.
It's a nice language, not too difficult.

Python can also be used. In my opinion it's a very beginner friendly language. But I find it more difficult for games.

C# can be used. I don't have much to tell about it since I never used it.

There are plenty of other languages
All these languages work on PC. iOS will take C++ and Objective C (apples language).
Android is primarily Java.
Also any language will work for big games. By the time that you need all the speed from C++, you'll be a damn good programmer and probably in the business.

If you pick a language, don't immediately start to program a game.
Game programming add a whole new dimension to programming.

First you should learn the language. Learn to use it, be fluent in it.
Afterwards you can start programming games.
Start small (really small), things like a guessing game. A card game.
Then perhaps pong.
A game like a sidescroller already takes quite some planning.

note: If you would ever like to work in a AAA game company. Then a degree is a must.
Preferably Computer Science. But there are also people in the business with Game school Degrees.
Also read a lot of articles on Game Programming. It's hard work. And nothing like actually playing games.

Another note:
Creating Tic Tac Toe is programming, a bigger game is the same.
You'll be typing code pretty similar in both. (except that code from bigger games will be more complicated)

The route I am taking right know is C++.
But I have some (just some :)/> ) experience in Java and Python.

If you have further questions, just ask :)/>

Game Programming can be a lot of fun (if you like coding :) ).

This post has been edited by axel1994: 03 September 2013 - 11:20 AM

Was This Post Helpful? 2
  • +
  • -

#8 toko.rogava  Icon User is offline

  • New D.I.C Head

Reputation: 4
  • View blog
  • Posts: 14
  • Joined: 03-September 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:18 AM

thank you traxis, this was by far the most helpfull post ive read, all of your advices are more than helpfull. please tell me how to rep+1 cause i dont see a button :bigsmile: thanks for the wlcome of course.

i will start with c#(maybe expand to c++ after a few games since its more OO) and follow all of the guides you gave me. but i still have a question tho(excuse me for my naivnes in this field) what is a framework, what does it do and how does it differ from a language? also what is Unity, ive heard a lot about it but i still dont know what it is.
thank you
Was This Post Helpful? 1
  • +
  • -

#9 macosxnerd101  Icon User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12152
  • View blog
  • Posts: 45,178
  • Joined: 27-December 08

Re: beginner game programming questions

Posted 03 September 2013 - 11:22 AM

If you want to develop on the iOS platform, you will want Objective-C under your belt at some point. Android has a lower barrier to entry. While there are tools to develop for Android using C#, you will really want to bite the bullet and learn Java. Also, Java is easier to learn than Objective-C.

C# is a good language to learn, as well, as is C++.
Was This Post Helpful? 2
  • +
  • -

#10 Mylo  Icon User is offline

  • Knows all, except most.

Reputation: 265
  • View blog
  • Posts: 747
  • Joined: 11-October 11

Re: beginner game programming questions

Posted 03 September 2013 - 11:23 AM

Quote

i do not want to have any laterly( i dont know if thats even a word) useless language to get under my feet


By this statement, I think you should not go with XNA then, since as far as I know, it's being discontinued. That doesn't mean it's useless, but it will over time become less valuable. There are plenty of alternative libraries that can be used in place of it. That said, I wouldn't start with OpenGL/DirectX either, use a library to handle that for you.

I for one actually do believe starting with C++ is a viable option. The 'fundamentals' that you need to should be learn just as easily picked up. It's not like there is a syntax/functionality difference between them. This may not necessarily hold true, but it's not necessarily false either.

This post has been edited by Mylo: 03 September 2013 - 11:25 AM

Was This Post Helpful? 3
  • +
  • -

#11 axel1994  Icon User is offline

  • D.I.C Head

Reputation: 86
  • View blog
  • Posts: 169
  • Joined: 27-May 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:29 AM

As far as learning material.
Nothing beats practice itself.
Coding, coding and coding.

Next on my list would be books. Pick up a book.
For example for C++ I would advice something like "Object Oriented Programming in C++ by robert Lafore". (this is just what I have next to me right know, and I don't really know any other titles on top of my head :)/> ). A book that says "learn in 2 days" or "learn in 24 hours" or something similar is probably not good. Programming just can't be taught in that amount of time (and books like that leave out a lot of info).
If you would pick up a book, read it from cover to cover. Make all the exercises.

Next up are video tutorials and such. They can provide extra info. But generally the info given isn't optimal. (small mistakes and explaining something by speech is more applicable to flaw). But I do use them.
Another flaw of them is that some people following these tutorials casually copy code and that isn't good.

Once you've learned a language, these 2 articles will come in handy:
http://www.gamedev.n...arts-here-r2976
http://lazyfoo.net/a...cle01/index.php

This post has been edited by axel1994: 03 September 2013 - 11:43 AM

Was This Post Helpful? 2
  • +
  • -

#12 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 117
  • Joined: 10-August 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:32 AM

Thanks for the kind words, and you're welcome.
axel1994 is also correct that you can use any language. And almost all the articles explain this. That's why I prefer giving a specific guide, so you can just select and start learning, and not be afraid about what you learn, because as a beginner, all knowledge that is easy to understand is welcome. :)

If you want to work in the Industry, then C++ is for sure a must! This is a no brainer and everyone recommends it. But it's not the language to start with as a beginner. C# and C++ are basically close relatives, only C# is easier, provides high level code and automatic garbage collection (which means you don't have to worry about disposing of memory).

To understand it as a beginner, XNA framework is just a collection of libraries written in C#. (there is a more specific explanation, but you will not understand all the terms) A library is basically a set of code written in a language, that you can use! In this case XNA provides the classes and "framework" for you to easily build your games with. It's not an engine! You do the programming, except there are things provided for you, classes and methods that you can call. But you will understand all these things as you're learning! I don't want to give specific explanations as you haven't learned a programming language yet! As I said, do not worry about it. Just start learning. :)

To everyone, understand my explanations are VERY generalized so he understands what it means in a sense. :)

As for Unity, it's a game engine ready for you to use, and has a level editor or game editor that you can use. Don't worry about it. I just mentioned it so you see that you can use C# with an engine that supports almost all platforms. And Unity is built with C# programming language. :)

Ask away, if you have anything more. But just start learning, trust me. You will understand things better, and you will understand more specific answers. :)

Cheers!
Was This Post Helpful? 4
  • +
  • -

#13 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 117
  • Joined: 10-August 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:39 AM

View PostMylo, on 03 September 2013 - 11:23 AM, said:

Quote

i do not want to have any laterly( i dont know if thats even a word) useless language to get under my feet


By this statement, I think you should not go with XNA then, since as far as I know, it's being discontinued. That doesn't mean it's useless, but it will over time become less valuable. There are plenty of alternative libraries that can be used in place of it. That said, I wouldn't start with OpenGL/DirectX either, use a library to handle that for you.

I for one actually do believe starting with C++ is a viable option. The 'fundamentals' that you need to should be learn just as easily picked up. It's not like there is a syntax/functionality difference between them. This may not necessarily hold true, but it's not necessarily false either.


I would agree, but he doesn't have any experience or any programming knowledge. He really needs to start with the easiest thing possible. Just to understand how things flow. Programming fundamentals are easy to understand. But game development fundamentals are the hard part. This is where he would get stuck with C++, when it comes to the advanced parts and when it comes to making the games. XNA is a platform that is soooo easily understood when you do C# code in it. And he won't loose anything from it. Then he can go wherever he wants. And no language is useless. ESPECIALLY not C#.

:)
Was This Post Helpful? 2
  • +
  • -

#14 Mylo  Icon User is offline

  • Knows all, except most.

Reputation: 265
  • View blog
  • Posts: 747
  • Joined: 11-October 11

Re: beginner game programming questions

Posted 03 September 2013 - 11:53 AM

I can agree on both ways, and would even agree an easier language is better for most. I say is viable because I, in my opinion, think that the basic use of c++ isn't too much harder, in the same way, say, visual basic isn't necessarily better than C# for learning because it's easier (if you think vb is). I also didn't mean to say C# was not useful. I just mean that there exists more or less quality solutions that are still actively developed, over XNA. They all offer the same stuff anyway.

But yes, it is certainly the concepts that matter over the language.

This post has been edited by Mylo: 03 September 2013 - 11:54 AM

Was This Post Helpful? 1
  • +
  • -

#15 axel1994  Icon User is offline

  • D.I.C Head

Reputation: 86
  • View blog
  • Posts: 169
  • Joined: 27-May 13

Re: beginner game programming questions

Posted 03 September 2013 - 11:57 AM

First: learning any language will never be a waste.

Next let me perhaps explain the 2 sides that are forming in this thread.

Eventually with starting game programming you have 2 choices.
Either you start lower level or higher level.

Lower level is C++. This means that when you build a game, you need to do more things yourself.
This means that it will take longer before you will have build a game, but you will have more understanding about how the core of a game works.

Higher level, like C# (and a framework like XNA), there are already prewritten pieces of code, that you can use to create a game. This means that you will created a game faster, but when you do, your understanding won't be as good (meaning you don't yet understand the core of how a game works).

In the end you will end up at the same level. (you'll know how a game works at a core, can develop games.

With game programming as a job you'll probably get a speciality but that's for way later.

So the actual goal is the same with both approaches.
There is only a ongoing discussion.
Some say you'll learn better/faster with starting high level. Others say you'll learn better starting/faster at lower level.

Which is the best? I dunno :P
I'm a beginner myself.

I tried to explain both sides as generalised as possible and as unbiased as possible.

I prefer the C++ road (lower level). But I do know some Java and such (although I only have a year of experience, and with experience I mean learning, not working/job)
Was This Post Helpful? 2
  • +
  • -

  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »