I have an idea for a first person shooter game and I have plenty of free time to work on it.

I know java and objective-c very well and I also know autodesk inventor (which is similar to 3ds max).

How would I go about starting to develop a small fps? What programming language should I use? What modeling/animation software should I use?

  • 24
    \$\begingroup\$ By taking a really long time. \$\endgroup\$
    – Tetrad
    Commented Aug 10, 2011 at 20:22
  • 4
    \$\begingroup\$ I know it will take a really long time, which is what I have, that didn't answer the question whatsoever \$\endgroup\$
    – GeeGoldz
    Commented Aug 10, 2011 at 20:26
  • 2
    \$\begingroup\$ What you're asking is too broad, and is basically a "how do I begin", which isn't really suited for this site. \$\endgroup\$
    – thedaian
    Commented Aug 10, 2011 at 20:35
  • 4
    \$\begingroup\$ Though not the best question in the world, it's a shame it got closed so fast. There are actually decent answers to this question. For example, create a mod of an existing FPS game. Take a game like Half-Life 2, and modify it to be the kind of FPS you'd like. \$\endgroup\$
    – Tim Holt
    Commented Aug 10, 2011 at 22:17
  • 6
    \$\begingroup\$ sigh Why do people always want to create most market saturated and expensive game types? How about turning your imagination on and producing something original?Well, at least you didn't start with MMOFPS. \$\endgroup\$
    – grega g
    Commented Aug 11, 2011 at 11:35

5 Answers 5


"How to Program Independent Games" is a really good presentation from Jonathan Blow (creator of Braid) about how to take on the development of a game by yourself.

My best advice would be to make the smallest FPS you can (with any language/engine) and then expand on that.

Try Unity. That seems like the fastest way to make an FPS these days. Another way to do it would be to use an engine from another FPS such as, Half-Life, Quake or Unreal and basically make a total-conversion that in no way resembles the game the engine was made for. Counter-Strike was made this way. Heavily modding/totally converting a game is game development too.

  • 1
    \$\begingroup\$ What about UDK? Has anyone had any experience with that? \$\endgroup\$
    – GeeGoldz
    Commented Aug 11, 2011 at 15:03
  • \$\begingroup\$ @GeeGoldz I don't have any experience with UDK but it seems like it's along the same lines as Unity. Unity has the web player and UDK has amazing graphics. \$\endgroup\$
    – Gagege
    Commented Aug 11, 2011 at 16:01

Fundamentally creating a game with a one man team isn't really any different than creating a game with a huge team other than the fact that you don't have as many (or any, really) specialized people or parallelization of tasks. The decisions you would make here are the same decisions you would make if you were running a team who's goal was to get to ship as quickly as possible.

So you have to play to your strengths and design away from your faults. If you aren't very good at high poly art, you either need to pick a style that works with your skill set, or use existing art in the form of mods or buying art off stock websites. If you don't know anything about multiplayer networking, use middleware that solves most of the problems for you.

In particular, getting bogged down by non-critical-to-gameplay technology and features is going to suck away your time and not get you closer to your end goal. I'm personally a big fan of Unity due to it's super quick iteration time, easy art pipeline (just drop in pretty much any format and it'll work), and the ability play the game from within the editor. All of these will help you get up and running quicker than using something more "professional".

What programming language should I use? What modeling/animation software should I use?

Use whatever you're comfortable with. If you're not comfortable with any of them, just pick one of the popular ones. The choice of tool here isn't going to make or break your progress by any significant factor compared to the design decisions you decide to go with.


go look at www.unity3d.com and it's tutorials. Also check out the "Tornado Twins" home page and their free Unity tutorials.


You question, as already mentioned, is quite broad and can easily be interpreted in multiple ways. One important requirement is why you want to create an FPS game. Your objective is important in narrowing down how to can achieve your goal. Are you just testing the water, perhaps to do bigger things, or is this just an interest and not necessarily some kind of career opportunity. Or are you just not sure?

The FPS game genre is quite old and as a result there are multiple ways in which you can create FPS type games depending on what you want to do. Here are just a few game engines that may be of interest to you:

  • Unreal Development Kit (free for non-commercial use)

  • Unity (gaining serious popularity, free version available)

  • CryENGINE 3

For a much more comprehensive list look here.

At the other end of the spectrum are game engines designed for complete novices like these ones:

As for software and modelling tools you will need to try them out for yourself to get the 'feel' for them, but to make you job a little easier I have compiled a page which lists a number of them, I have only focused on listing free programs that can be used in game creation only though.


Did you consider making a mod for an existing game? That way you could safe a lot of time used on solving uninteresting problems like the graphic- and sound engine, user interface, netcode (when it's multiplayer) etc.. You can also reuse assets from the original game.

This allows you to concentrate fully on what matters most: Gameplay.

The drawback, of course, is that your game will be hard to monetize. Your target group are only those who bought the original game, and you can't really take money for your mod, because the publishers of the original usually don't support that. Your best bet is that the creators of the original buy you up, like Valve bought the Counter Strike team.

Regarding the programming language: The vast majority of first person shooters is programmed in C++. Most other programming languages aren't that good for the low level performance optimization which is required for fast 3d engines.


Not the answer you're looking for? Browse other questions tagged .