Where It all begins

Started by
6 comments, last by Brain 9 years, 4 months ago

Hi,

I'm a Software Development student at the University Of South Australia *Waves*.

Its currently the Christmas break and I would like to dabble in some game development. I am competent in Java, Python and C++.

Where should I start, a good textbook perhaps? I would like to use C++ because of the memory management advantages, unless someone has a better idea language wise?

Thanks,

Ben.

Advertisement

I would like to use C++ because of the memory management advantages, unless someone has a better idea language wise?

Thanks,

Ben.

This is such a bizarre thing to say. It's like saying "I'd like to drive a Corvette because of the transmission". Without context, it's pointless. Using something for a feature you may or many not need is also a bizarre criteria. You are committing one of the greatest, and most common, sins of game programming... premature optimization. Also throwing around terms like "better" when discussing programming languages is almost always a mistake, at least without a qualifier ( aka better at ______ ).

/anyways

To your actual question at hand, think of your end goal and work back from there. So instead think of things like:

  • platform you want to target
  • platform you want to write your code on
  • 2D or 3D?
  • game type/features/genre
  • where are you getting your art assets? What's the pipeline like?

Then using that information it becomes easy to pick a library, which in turn dictates the language to you. Which then makes it easy for us to make recommendation, for both learning resources and languages/SDKs if you are stuck.

To help you get better at programming - make the same game in all 3 languages !

Different tools are used for different purposes, and figuring out what "works best" in each situation is a great thing to know.

<example>

Using Python for 3D graphics rendering is not a good idea.

Using C++ for a typical 2D game is a huge waste of time.

Using Java to write simple game scripts is not a good use of resources.

</example>

I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.

~ Ralph Waldo Emerson

Start with the FAQ:

http://www.gamedev.net/page/reference/faq.php/_/for-beginners-r1

Since you're open to the suggestion of a new language, I'll recommend C# with Unity. But if you want to stick with C++, I recommend SFML. Find some tutorials you're happy with, and start tinkering around.

Once you decide on a language/engine, give this article a read. It explains which games you should make first and why.

http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

Keep to simple projects at first. If you jump right in trying to make your dream game, you'll quickly get overwhelmed. Your poorly designed code will become a nightmarish labyrinth that will shatter your sanity.

- Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

Great thank you all for your input and I will take it on-board smile.png

I have had a look through the FAQ's I will go with a language instead of a development tool. As I want this to be an experience in honing my C++ skills whilst working on game development.

You raise a good point Serapth, I guess rookies are going to make rookie mistakes its how we learn.

I have decided to start a new C++ text book (as I wasn't very pleased with the one the Uni used) and go from there.

Thanks Shippou do you have a reference to comparisons so I can make an educated choice?

Sage words indeed Eck thanks.

Ben

I'm a Software Development student at the University Of South Australia *Waves*.

Whoa.. a local on gamedev? *Waves back*

If you are competent in 3 languages, its time to pick one of those and start a small game project. A lot of people on these forums recommend pong or something similarly simple, and though it sounds patronising, pong introduces you to most of the core concepts you'll encounter in any game. Eg: taking input from the player, drawing to the screen and the all important game loop.

Robert Nystrom's recent book "Game Programming Patterns" has some great stuff in it if you're transitioning from traditional software development to games. There's a free version hosted on his site at: http://gameprogrammingpatterns.com/contents.html but it is also available in various eBook formats as well as print.

[size="2"]Currently working on an open world survival RPG - For info check out my Development blog:[size="2"] ByteWrangler

If you go the C++ way, check out SFML and the tutorials on their webpage. If you know your way around general programming, you can build a very decent game in relatively short time.

Still, you shouldn't entirely discard the idea of working with a game engine. If you use Unity, you still have to do some programming in C#, but mostly for game logic, whereas in a project made from scratch you'd had to deal with all kinds of technical issues.

Starting out in game programming? Me too! Check out my blog, written by a newbie, for the newbies. http://myowngamejourney.blogspot.mx/

Also, if you don't mind a 5 seconds ad, here's a great free ebook for beginners on the subject of pygame: http://bit.ly/19Bem2q

I would avoid C++ for any project close to starting out.

This is because using C++ for modern gamedev can be akin to cracking a walnut with an excavator. It increases the time taken to write the program, and the complexity and potential gotchas of the program significantly, in much the same way writing a program in assembler caused similar problems for developers some 20-30 years ago.

If you must use C++ make sure you select a good framework to build off that does some of the work for you, and avoid "naked" pointers unless you are absolutely sure about your ability to manage memory!

i agree with the posters recommending C#, it really is a nice language. I only truly appreciate C#'s nuances now i've gone back to C++ myself...

Good luck!

This topic is closed to new replies.

Advertisement