Obviously, a programmer who has worked on a similar project might begin aggressively, but if this is really your first big project it might be best to begin at the very primitive level. Personally, I like to do things in painstakingly simple increments. I begin without any graphics whatever, testing on a command line. A very basic set of input commands can be tested by having each tested action printing a brief message. Press the 'K' button, and a kick () method is called, etc. It's tedious to work in such small steps, but by testing your code after each significant change, your code will be reliable. Next, very simple sprite graphics can be created -- blocky little things like the old Commodore 64 games used. That might keep you from losing your mind and ditching the project in frustration. Collision detection need not be tested graphically at first. Keep in mind that these calculations involve basic mathematics, so they can also be tested from the command line. Soon after, test them using simple circles on a 2D screen. Artificial intelligence can be developed after the basic game engine (minus graphics) is working. Before beginning the AI, have friends play your game against one another. They'll hate the blocky graphics, but tough! I would most likely try to expand the basic game at that point -- more detailed moves, and matches that can actually be won and lost. (As I mentioned, I work in painstaking madness.) Last I would work on either the AI or graphics. I am not particularly skilled in graphic art, but there are many fine artists who could benefit from the experience of working on such a project. I expect it would look good on a resume, also. The great ulterior motive here is to have someone else do a lot of work on the game. I should point out that I have never created a fighting game myself, so a lot of what I have said may be questionable advice. Gamedev is a great place to meet experienced and professional programmers, so you should be able to find the help you need. You might also check out www.gamasutra.com and other sites. I think this is a VERY ambitious first project, and will likely be far more involved than you imagine. Just remember that the most important virtue of a good programmer, aside from solid code, is perseverence. Feel free to take a break and work on other projects, but don't abandon this one. Stick with it, and you can (eventually) make a fine game.