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?
Anyone have one tip for a beginner programmer?
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.
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 :)
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 :)
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.