Had an interesting chat with a friend over lunch. We were talking about programming and stuff like that since we're finishing up with finals, and she had mentioned that she had wanted to make a game before. She had gone through the trouble of getting ideas and details about the game, but when it came time to actually code anything the project seemed too massive and she had given up already because of the staggering nature of it. I wound up explaining to her some stuff and here's the closest I can remember to what I had explained: When you're making a game often you'll feel like you want to create something super massive full of content and goodies and whatnot, and thats fine. You should definetly write these sort of ideas down to have them for later, but when you finish put the document into a box and put the box away. Don't touch it. The problem is, if you set out to make a game and you have that huge project looming overhead you might get more pressure and anexiety on making it and wind up quitting because it seems impossible for one person to do alone. Really though, instead of taking on a project head on like that it's sort of best to think about game design as an RPG: Start out small with very minimal code, and eventually build up. Sort of like, you start out coding something simple like a program that displays a view to a user based on tile data. Next, you add the ability to control a camera that looks at parts of that map based on your input. After that, you add the ability to control said camera by more conventional input like arrowkeys and the like. Once you've achieved a successfully working camera and such, why not add a player to walk around? And maybe even attach the camera to the player so you can follow it? Eventually, you start adding little things like collision detection and terrain effects. Before you know it, you have an overworld engine. Now, simply save what you've got, and start on something new. Why not look at creating an actual unit, and giving it attributes such as gender, hitpoints, etc. Add some functions to the unit, like unit.equip() or such. Keep adding little things that each unit might be able to do, and eventually you wind up with a "living" character who actually can do things based on input you give it, and has numbers that it needs. It might seem like a lot of work, but if you just do small things and "what-ifs" then you can build stuff over time. And the way coding like this relates to an RPG is that you gain experience over time from coding small stuff, and eventually challenge yourself to write better and more complex code. You learn how to handle small issues that arise, and better yourself against anything you might run into in the future. Simply put, coding is like an RPG in the sense that: You are the player, who levels up by casting spells (code) to create stuff to eventually make it past the gate guardians (syntax compiler) into the dungeon to hunt monsters (programming bugs). Eventually, you defeat the dungeon and move onto another dungeon, repeating the steps of getting past the gate guardians and fighting monsters, while the entire time you are gaining experience and becoming a better programmer. The stuff you've conjured from your spells is materials to make equipment. But what equipment? The equipment is those ideas you've got stored in the boxes that you now have working engines and code to apply to, and the experience to fight any bugs that arise in the process of turning the ideas into a reality. So yeah, if you start with small stuff and slowly build on existing structures you wind up with some really awesome engines that you can apply to your ideas. Assuming you've made your code modular (as in able to be broken down into pieces) you can simply pick and choose what parts are required for any of your past, present or future ideas. Suddenly when you have the tools that you made yourself, you have the experience, know-how, and stuff to make your ideas a reality. Video game development isn't super-duper hard so long as you don't try to climb mountains with one leap - take that in steps and you'll do alright.