New To programming, Where to start?

Started by
10 comments, last by DevLiquidKnight 11 years, 9 months ago
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 smile.png
Advertisement
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.
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
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**********************************\
/********************************************************************************\
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.
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.
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.
http://www.gamedev.net/topic/626891-game-engines-for-beginners/

Might help your problem.

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)
[size="1"]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!
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.

This topic is closed to new replies.

Advertisement