Notice: The following text is based off my experience. What worked for me may not work for you or anyone else. Please bear that in mind.
If you are just starting out with C++, then completely forget about programming for the PSP for the moment. It will only add an extra layer of complexity that will stop you from learning the language and the main concepts of programming.
Learn the fundamentals first, these include:
- Conditional Statements
- Return values
- Parameter passing
Gamedev have a C++ workshop that has been going for a while now that you still might be able to catch up. 'Thinking like a Computer scientist' is also considered a good free ebook but nothing will substitute a good 'real' book on paper. At this point, you be mostly working with text in a 'console' (ie command prompt).
Targets: simple applications such as a Line based text editor that reads and writes to a file, Tic Tac Toe, a Text Adventure (with a command parser), Hangman, etc.
Thinking like a computer Scientist (C++ version): http://www.andamooka.org/reader.pl?section=thinkcpp
C Plus Plus Site: http://www.cplusplus.com/doc/tutorial/
After this you can move onto more language specific areas such as the macros, pointers, references, const, header/source organisation. Also you can start looking at graphical libraries such as SDL and OpenGL, both of which are cross platform and work on the PSP. This means that you can work on the PC and with some minor changes to the code, recompile and it should work on the PSP as well.
Targets: Graphical games such as Tetris, Breakout, snake, Mario clone, a small FPS level.
Thinking In C++ Vol 1: http://www.mindview.net/Books/TICPP/...ngInCPP2e.html
SDL tutorials: http://lazyfooproductions.com/SDL_tutorials/index.php
OpenGL tutorials: http://nehe.gamedev.net/
Finally, you can jump into Object Orientation programming and the finer areas of the language (although you can do this at any point really). Thinking in C++ Vol 2 is probably the best free ebook in this area.
Targets: Anything you want, think big and go for it.
Working on games? At the bottom line, there is little difference in approach to designing a Word Processor and a Game. They both require careful thought and preparation before starting otherwise you end up with very hacky and messy code base which will hinder your project's progress. At present, some of the Lua projects going on here (no offence to anyone, I know you guys are still learning) are falling in that trap, I myself have done so several times in the past as well. However, there several areas that will help you greatly in designing and building a game. One of them is Finite State Machines (FSM). This has been used for the game's structure, AI, item behaviour etc. The other skill is Abstraction which you will pick up with experience. It is basically taking an object and form it in code, from 'base' componments. Eg:
What is a bullet? It has an position in space (X, Y ,Z value), graphical representation and a velocity.
Some other bits and pieces of information:
Keep up your math skills at a good level, especially areas such as Trigonometry, Algebra and Vector math. They are invaluable in programming especially game programmming. Later on, you will need to have some knowledge of matrix math when dealing with 3D scenes.
Here are some FAQs for the C++ language, Matrix math and vectors although you wont need them for a while yet:
C++ FAQ lite: http://www.parashift.com/c++-faq-lite/
Matrix Math FAQ: http://www.gamedev.net/reference/art...rticle1691.asp
Vector Math FAQ: http://www.j3d.org/matrix_faq/vectfaq_latest.html
Learn the Standard Template Library (STL) or/and Boost. They have a number of template classes that are extremely useful such as vectors, lists and smart pointers. Abuse them.
Here are a list of good books to read although they will be at an advance level so keep the list as future reference:
Game Coding Complete (Fantastic book, MUST READ)
Design Patterns: Elements Of Reusable Object Orientated Software
There is a ton more information that I can pass on but I think this should keep you going for a while and you will pick up the rest as you go along.