Jump to content

  • Log In with Google      Sign In   
  • Create Account


New To programming, Where to start?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
11 replies to this topic

#1 UKJamieTUK   Members   -  Reputation: 101

Like
0Likes
Like

Posted 26 June 2012 - 03:45 PM

Hey, I'm New to this site, so I'll say Hi quickly.

Anyway, I've recently started Coding Games, but am finding it hard to code by myself, Up till now I have been using tutorials and references to learn a little bit about C++ beforehand.

My question is can anyone help setting me off on the long road to coding games?
How is it best to start?

What kind of game should I try and code to begin with?

I've always wanted to code something like Europa Universalis 3, which is one of my favourite games,However, I haven't a clue about where to start, what libraries would be best suited for a game like that.

If anyone can give me any piece of information, I would be grateful.

Thanks,
Jamie Posted Image

Sponsor:

#2 DrGreen   Members   -  Reputation: 105

Like
0Likes
Like

Posted 26 June 2012 - 06:20 PM

Hi there, I'm currently learning to program as well.

I would keep it basic until you have got your head around the language that your using.

I have started to use Flash and ActionScript 3.0 to code basic games to get to grips with the fundamentals of game design.

Start by coding you own pong, brick breaker, or bubble popper game.

I recommend using Flash and ActionScript to start your development. The language takes a bit of getting used to but you can test your games instantly for errors in your code.

Hope this is some help to you.

#3 DevLiquidKnight   Members   -  Reputation: 834

Like
-1Likes
Like

Posted 26 June 2012 - 06:49 PM

You need to know a computer language before you can produce a game. If your new to C++ I recommend you buy a book on it and read it, tutorials online are usually not that great.

I recommend this:
http://www.amazon.com/Without-Fear-Beginners-Guide-Edition/dp/0132673266

#4 !Null   Members   -  Reputation: 380

Like
0Likes
Like

Posted 26 June 2012 - 08:49 PM

I agree if you're new to programming then c++ is not a good start, especially to use it to jump right into game dev. You need to know about pointers and classes, objects and all the other basics as well as a sound knowledge of the language before starting game dev with c++.

Don't let that put you off learning c++ though , I enjoyed the book c++ an hour a day and its a good read.

If I may suggest. Try learning / using java with the slick 2d lib and lwjgl. There is plenty help on the internet and probably here to get it set up, and its well documented. It's decent for learning to code games and the concepts without having to know lower level resource handling like you have to in c++.

I hope this was some useful info =]

/********************************************************************************\
/**********************He Who Dares, Wins**********************************\
/********************************************************************************\

#5 medevilenemy   Members   -  Reputation: 308

Like
2Likes
Like

Posted 26 June 2012 - 10:13 PM

C++ is as good a language to start with as any other, in my opinion. The key is to take your time and do it right. Learn the fundamentals of the language, and of design, then move on from there. Start with the core functional programming features inherited from C, and when you are comfortable with that move into OOP and such. A lot of people tend to focus too much on the modern concepts like OOP (College educated CS folk, even) at the expense of fundamentals like efficiency, functional design, simplicity, and most of all commenting (At my company seeing more than one or two lines of comments for every 500 is not uncommon).

Java isn't really all that different to learn than C++... they share most of the same concepts, they just accomplish them in different ways. Whatever you choose to start with, there are plenty of us here who can try to help... just take it easy and focus on learning the skills.
There was a saying we had in college: Those who walk into the engineering building are never quite the same when they walk out.

#6 DevLiquidKnight   Members   -  Reputation: 834

Like
0Likes
Like

Posted 26 June 2012 - 10:36 PM

I don't think any language is more conceptually difficult then any other language. They all have their quirks, even assembly is pretty easy if you start with it. Feel free to start with whatever language you want, but you need to master a computer language before you can do much. You will also find knowing one computer language helps you learn others.

#7 DaMonz   Members   -  Reputation: 104

Like
0Likes
Like

Posted 27 June 2012 - 05:44 AM

Hey there!
I'm currently studying software engineering in Montreal, and I've been programming stuff for about 5 years. It's not that much, but I think my advice might be able to help you. ;)

First thing you should do is choose a language (I recommend Java or C# for beginners), and stick to it for a few months/years.

Next step, I think the best way for learning the basics is by trying. Here is what I would do :
1. Learn what an IF statement is, and how to use it
2. Learn what a LOOP is, and how to use it
3. Learn how to create a function, and how to call it

With this, you have the basic tools for writing code that works and does stuff. You should then try programming anything, just to get comfy with the basics (a very simple calculator is a common example). If you have ideas of such small programs which you think might help you understand, just try it. ;)

When you feel comfortable with the language, you should search about the basics of OBJECT ORIENTED PROGRAMMING. It's an extremely important concept that is absolutely essential to any modern programmer. When you do, make sure that you understand the difference between a CLASS and an OBJECT, it's a very important detail before understanding any other concept about object programming.

When you feel more comfortable with the language and with object programming, I suggest making a clone of Minesweeper (you might want to google the term "recursion" and learn about it, you'll probably need that). Start by simply reproducing the game's basic rules. When that is done and works properly, you can try to make the menus for specifying Expert, Beginner or Intermediate. This'll also help you learn about User Interface, like windows, buttons, labels, menus, etc.

You could also try making a basic Tetris game. Again, start with the basics (blocks keep falling one at a time, and a full horizontal line disappears). When it works, you can add a timer, then a score (then a highscore!). You can also try to make the game speed up in time, when everything else works. This game should teach you important stuff, like displaying images, moving them on the screen, using object programming to instantiate the blocks, etc. This might be a bit more challenging, but it's a good challenge for learning.


I think with these few steps, you're good to go for at least a few months. Learnin how to code is a long process, but don't despair when you're having a hard time. It's hard for everyone at first, so it's not just you. ;)

Good luck, an have fun! :D

You can email me if you have any questions.

#8 Fallenrat   Members   -  Reputation: 85

Like
0Likes
Like

Posted 27 June 2012 - 07:18 AM

http://www.gamedev.net/topic/626891-game-engines-for-beginners/

Might help your problem.

#9 SimonForsman   Crossbones+   -  Reputation: 5771

Like
1Likes
Like

Posted 27 June 2012 - 01:18 PM

I don't think any language is more conceptually difficult then any other language. They all have their quirks, even assembly is pretty easy if you start with it. Feel free to start with whatever language you want, but you need to master a computer language before you can do much. You will also find knowing one computer language helps you learn others.


The problem with some languages isn't just the quirks, its their usability.

Assembly is extremely easy to learn, there are almost no rules and a fairly limited set of instructions (Which you don't have to memorize), its an extremely tedious and difficult language to actually make something with though.

It took me roughly 2 hours from installing Unity and mono until i had my first completed C# game (with no prior experience using C#), i still don't know C# (take away my references and autocomplete and i can't get anything done with it), Ask me to do the same with C++ (which i have over 10 years experience with) and not only will making the same game take me atleast two days, maybe even a week, it will most likely be of lower quality, run slower and have more bugs, Those 2 hours spent with unity also taught me quite a bit about engine interface design and allowed me to experiment a bit with gameplay mechanics, skills that will carry over to anything gamerelated i make in the future, regardless of what language i choose for it.

Modern languages let you get away with not actually knowing the language while older languages such as x86 assembly, C, C++, etc not only requires you to have a fairly solid grasp of the language (to avoid fucking everything up) but also requires you to have decent knowledge about the underlying platforms and their quirks, Those all add up to push your focus towards learning things that are very likely to change in the near future(Why does sin(6.29) give a different result on my server than on the clients when they're all 64 bit intel machines running Windows causing my lockstep simulation to desynch in a horrible mess and why should a beginner have to worry about that instead of learning how to actually write a lockstep simulation ?).

(C++ has become alot better recently but the legacy crap is still there(a problem that Java also shares, backwards compatibility is a double-edged sword) and still causes unnecessary headaches for anyone who doesn't allready know the language well)

Edited by SimonForsman, 27 June 2012 - 01:21 PM.

I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#10 Zingam   Members   -  Reputation: 136

Like
1Likes
Like

Posted 28 June 2012 - 05:50 AM

Programming (real programming) is not really about a language or some fancy new framework. Programming is about solving problems through algorithms.

So start by learning algorithms and math. Lots of both. Then learn computer science basic concepts too like: data bases, formal languages, automata, etc. That will help you tremendously.

Converting an algorithm to code in some language, that's the easy part. The difficult and more interesting part is to learn how to design algorithms to solve particular problems.

Also keep in mind that there are many other interesting things to do, not just games. Games these days are more about art and design than programming. I would say that if you are an artist, you have a greater chance to produce a game than if you are just a programmer.

Edited by Zingam, 28 June 2012 - 05:55 AM.


#11 Serapth   Crossbones+   -  Reputation: 5181

Like
0Likes
Like

Posted 28 June 2012 - 06:54 AM

C++ is as good a language to start with as any other, in my opinion.


C++ is a horrible starting language, and here is just one example why.

Consider:
sf::Music * song = new sf::Music();
  if(!song->OpenFromFile(soundName))   <----- EXCEPTION IS HERE
  {
   delete song;
   throw SoundNotFoundExeception(
    soundName + " was not found in call to SoundFileCache::GetSong");
 

Causes:
Unhandled exception at 0x776915de in Program.exe: 0xC000005: Access violation reading location from 0x91fecba1.


If you've been at this for a long time, you've probably run into this.

If you've been at this for a short period of time, you are probably going to start at the naked pointer and assume it is the guilty culprt, and for good reason, although in the end it is a complete red herring.

If you are new to C++ programming, you are completely screwed.



If you didn't click the link, i'm curious to know if you can guess what the problem is.

#12 DevLiquidKnight   Members   -  Reputation: 834

Like
0Likes
Like

Posted 28 June 2012 - 03:24 PM

Assembly is extremely easy to learn, there are almost no rules and a fairly limited set of instructions (Which you don't have to memorize), its an extremely tedious and difficult language to actually make something with though.

I disagree with this, assembly is extremely straight forward if you understand how a machine works, what your finding hard is not understanding how the computer operates, or how your hardware differs. Its litterally as basic in terms of operations as you can get.

It took me roughly 2 hours from installing Unity and mono until i had my first completed C# game (with no prior experience using C#), i still don't know C# (take away my references and autocomplete and i can't get anything done with it), Ask me to do the same with C++ (which i have over 10 years experience with) and not only will making the same game take me atleast two days, maybe even a week, it will most likely be of lower quality, run slower and have more bugs, Those 2 hours spent with unity also taught me quite a bit about engine interface design and allowed me to experiment a bit with gameplay mechanics, skills that will carry over to anything gamerelated i make in the future, regardless of what language i choose for it.

Unity is a game engine not a language your comparing the wrong things. There are plenty of good game engines for C++ that require little to no programming as well.

Modern languages let you get away with not actually knowing the language while older languages such as x86 assembly, C, C++

What do you mean by a modern language? C++ is very modern, this is entirely dependent on what you consider modern. A programming language made more recently does not mean it is better, or more useful then another. Even FORTAN which was made in 1957 still finds uses today, because of is numeric computation and scientific computing advantages.

Besides this however until you know a language your at a serious disadvantage.

Edited by DevLiquidKnight, 28 June 2012 - 03:43 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS