Anyone have one tip for a beginner programmer?

Started by
7 comments, last by 3Ddreamer 11 years, 3 months ago

Hi all,

I just started learning C++, got myself the C++ for dummies book that has 7 "minibooks" which go thru the basics of C++ programming.
i do have a couple questions if anyone would care to answer them.
First of all I want to make a 2D RPG/SideScrolling game, what API do you suggest?
Also i want to make a audioEditing and music creation software, what API would be suggested for that?

Advertisement

SFML would be a good choice for C++ based game development: http://www.sfml-dev.org/

Although you should focus on learning the basics of C++ first. Also keep in mind that there are many higher level alternatives (Game Maker, Unity, ect) for game creation.

In terms of audio editing/music creation, there is the Qt framework: http://qt-project.org/

Here is a forum thread on real time audio processing: http://qt-project.org/forums/viewthread/7679

Although Qt is really good for the GUI development and not necessarily the whole sound/audio buffer editing side of things. It might be better to integrate something like STK: https://ccrma.stanford.edu/software/stk/index.html

or CLAM: http://clam-project.org/ with QT.

There are many other choices, but these are the ones that I have experience with.

Good luck.

I second both of shadowisahedgehog's suggestions. SFML is great for 2D games, and Qt is great for non-game applications.

[quote name='Ghostly' timestamp='1357091079' post='5016532']
C++ for dummies book
[/quote]

Those dummy books typically dont cover everything, I am not sure if there is even a up to date version for C++, im not saying they are bad, they imo are excellent basic books and have a really decent way of explaining to beginners but you might want to consider a more advance book after reading it and practicing a lot before you consider making a game / audio editor.

[quote name='Ghostly' timestamp='1357091079' post='5016532']
First of all I want to make a 2D RPG/SideScrolling game, what API do you suggest?
[/quote]

This section is flooded with questions much like this, you will likely get different answers for different reasons, most of the reasons have been mentioned in other threads and theres usually about 3 "what shall I pick?" threads or similar created a day.

directx, opengl, sdl, sfml, ogre, panda3d etc. They all have their pros and cons, theres obviously other options, some that require minimum or no programming.

Im a DirectX fan but I think its overkill for what you require

[quote name='Ghostly' timestamp='1357091079' post='5016532']
Also i want to make a audioEditing and music creation software, what API would be suggested for that?
[/quote]

This could be achieved with Fmod however im not certain, I havent done much work with audio programming but if I were I would probably look to see what fmod can offer

As for making apps, while this may not be the best option based on your language choice, I would recommend WPF, never used Qt but I guess thats good too.

If you want some help with the game or need to bounce some ideas , you can ask me- or add me on skype.

I am currently refreshing on Java to make a browser mmo, so we are in the same position. :P

FL studio is a decent audio editor. Ive never used it for making custom game sounds though.

add me on skype, i need some new associates for coding.

skype: daniel.lamonds

c++, Visual basic, fortran, html/5, css, php,java script, sql, others......

Just remember though that Qt doesn't use standard C++ (it requires preprocessing by an external tool like qmake) which is a little tacky and may lead to maintainance issues in years to come. For this reason I suggest wxWidgets (or gtk(mm) if you only intend to target UNIX.)

Since the C++ language is pretty standardised and stable, the dummy books will probably still help but I highly recommend "The C++ Programming Language" by Bjarne Stroustrup. (The dummy series of books might be better for "mid-code reference" however).

As for sound... dunno, I like OpenAL and libogg for playing sounds but it seems like you are planning to do more advanced things than that :)
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

learncpp.com is the best tutorial I've found for C++ on the internet and cppreference is great for a language reference site, both of which helped me massively when learning the language

One beginners tip? Comment your code as you're going along.

Coming back to a project a year later and trying to figure out what the heck you were doing back then when you wrote it is never fun (and wastes time). If you take a moment to add method comments describing what the method is for, what algorithm it's using and maybe a link to any websites you've been learning from then it'll be a good habit to get into. A line or two is often all it needs.

This might not seem important now but there are a several reasons why this habit will help in the long term:

- Memories are bad, so anything you can add to speed up work on old projects will help (or when reusing work from old projects).

- You'll get better. A year later and you'll probably be a completely different programmer. What made sense when you wrote it often looks simple, silly or confusing compared to what you're capable of now.

- People coming to work on your projects will have an easier time getting up to speed.

- Employers like to see evidence of good commenting in your code portfolio (at least they do where I work).

This is true regardless of which language you decide to work in :)

Tim Cooper - software developer, project manager and occasional iOS app developer.

Creative Shadows Ltd - My hobby company website

Think in terms of compartments where each is a kind of module which could in the future be removed as a section of code and replaced with better or different in the future. Keep an index of work done in the game source code with reference numbers to the code lines, which can be more detailed than commenting but use brief commenting as well in your coding. You should be able to copy such modules for future games or replace them in the same game to transform it. If done well, these changes should take hours, minutes, or even seconds. Plan early to use interfaces as a habit of enabling your own plug-ins or third party plugins, even if very simple in the first few games. You have no idea yet how much this will accelerate your capabilities.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

This topic is closed to new replies.

Advertisement