As someone who has sorted through a lot of resumes and interviewed a lot of job candidates, I can tell you what catches my eye. And I can tell you that hobby experience is a very good thing.
The whole goal of reading a resume is to decide whether asking you in for an interview would be a waste of time.
Start with a purpose statement that looks directly relevant to the position, but not one that looks like you took it right off the job posting. "Simulation programming in C++" is both too generic (simulation programming is pretty broad) and too specific (is C++ all you'll consider, all you can do?). Take a look at the job posting to see how you can honestly state your employment goal in the context of what the job is looking for, but don't do it in a way that makes me think you're feeding me a load of crap just to get in the door.
Your list of skills should ABSOLUTELY include those skills you got from messing around on your own. Tell me how skilled you are, either in terms of equivalent years of experience or just a stated skill level. Give me an honest feel for what you can do; at this point I don't care how you got those skills.
If a lot of your relevant experience was on hobby/volunteer projects, include a section describing projects you've worked on. Only include those details that tell me you've got skills and experience I care about. I would consider mixing for-pay and not-for-pay projects together, and then make the employment history less detailed.
In the past employment section, highlight any jobs that were directly relevant, but otherwise try not to take up more than a line or two per job. The only reason I care that you worked at a supermarket is so I don't feel like that you're hiding something. I don't care that you bagged groceries, stocked shelves, and cleaned the back room.
Pretend you are the one picking who to interview and read your resume. Would you want to talk to this person? Do you believe it's a good fit?
When I interview someone, I want to know that:
- you have at least the minimum skills needed to get your feet on the ground
- you can learn what you don't know
- you will fit into the team
- you're not going to hate the job
I consider hobby experience a huge plus because it tells me you can learn and you actually enjoy doing this kind of stuff. Don't apologize for learning more than some boss asked you to! Out-of-office learners are more likely to be able to fill gaps in project needs and more likely to make a tangible difference in a project. Highlight your hobbying and your community involvement. Talk about cool projects you've worked on and what skills they taught you. It lets me know you'll do more than just fill an opening.
Also, most interviews are actually several interviews with different people. Use the first interview to get a better feel for the culture of the group and the technologies they use. Ask questions. Use their answers to tailor what you talk about with the next guy.
Not sure I said anything you couldn't find on just about any advice site, but everything I said is based on real experience. Good luck.
And by the way, I make my living writing simulation software in C++...