Embarking on 6-8 weeks of game development

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Embarking on 6-8 weeks of game development

      It's summer, and for university students like me, that means a near 5 month summer holiday. To keep myself interested and productive I've decided to undertake a number of large projects. The first two are now complete (making a chainmaille vest, which took somewhere between 50 and 100 hours, and making enough jewellery stock to last the tourist season), so it seems like a good time to start the third: a game engine and accompanying game. I'm giving myself about two months to get something done, working roughly from 9 until 6, with a couple of big breaks in between. The problem is I'm not really sure how much I can get done in that time, and hence what to aim for.

      C++ is new to me (I've only used Java and C# in the way of OOP up until now), but I'm an extremely quick learner so that shouldn't be too much of a problem. I got myself a bunch of books, including of course the excellent GCC4, and have read through them, so I have some idea about the systems I'm going to be implementing. The question is how much can I reasonably get done in two months? Aside from just doing this for fun and experience, I'm going to be having interviews next year as my degree program features a year working (I'm doing CS, so not necessarily the games industry); it would be nice to have something to show.

      The game I'd like to do would play a little like Alien Swarm, with a fixed top down third person camera, but the primary gameplay mechanic would be light. The game engine would therefore have to be capable of doing all kinds of light based things including reflection and refraction, which sounds like it could possibly quite hard to write efficiently. The light is for gameplay, not looks, so it wouldn't have to look amazing. Anyway, does this sound like something that I'd be able to make a working demo out of in a 6 weeks, or am I aiming too high?
    • I would say that wouldn't be alot of time for myself, but you can never aim too high. If you are going to use a pre-made game engine, than it is completely doable.
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz
    • RE: Embarking on 6-8 weeks of game development

      6 weeks is a very aggressive schedule, especially if you're only working for 8 hours a day. You will almost certainly have to use an existing engine, like Unity. If you really want to build the engine as a part of this, you should consider choosing a MUCH simpler game.

    • I've done things using other engines before, so I'd really like to have a crack at making my own this time. As both of you have said it doesn't sound like a lot of time, I'll go for something simpler. How does an arena featuring a few AI tanks and a player tank driving around and shooting each other - very much like Teapot wars - sound?
    • That sounds much more doable, although it still depends on how ambitious you are with the engine. What is your goal with this engine?

    • Nothing fancy, just a learning tool which also produces some kind of end result. I'll want to be using most of the things talked about in GCC4, though probably in somewhere close to their simplest form. I have no idea how long this will take, so I could still be being wildly over-ambitious here:

      Application Layer
      Game loop
      File system
      Resource cache
      Memory manager
      Networking (if there's any time at the end)
      Reading input
      Thread synchronisation (may not include multithreading if it'd take too long)

      Game Logic Layer

      Game state
      Data structures
      Command interpreter

      Game View Layer
      Graphics display
      User interface presentation

      AI agents
      Stimulus interpreter
      Decision system

      Layer Agnostic
      Process manager
    • It sounds like you're trying to do a bit of everything. It's hard to really know how long something will take. I've been in this industry as an engineer for seven years and I can tell you that my estimates still aren't accurate.

      The features you listed are more or less what GCC 4 is capable of. It took Mike and I about 6 months to write GCC 4 and we were using GCC 3 as a base. I would say at least 3/4 of that was just writing code. The chapter writing was MUCH faster. So, a very conservative estimate would be that the GCC 4 engine is the result of two very experienced programmers working for about 4 months. We also have full-time jobs so we weren't dedicating 40 hours a week every week, but there were definitely some weeks in there where we were and a few weeks where we were easily pulling more than 40. I would stay up until 7am or later pretty frequently, especially in December and January.

      By contrast, you are a single beginner programmer just starting out. You've read about a lot of these systems, but you've never written them (to my knowledge). There's a huge difference. The Actor system in GCC 4 is the fourth one I've written in my career. The Teapot AI system is something I've done several other times as well (it's very similar to what I did on Drawn to Life, for example). The Lua integration was my third one, and my second one to use LuaPlus. I'm sure Mike has similar numbers.

      If you're starting from scratch and have never done this before, you will spend a huge amount of time on things that seem incredibly trivial. Six weeks will go by very quickly. I'm not saying you shouldn't go for it, you definitely should! I'm just trying to get you to set more realistic goals. If you try to do all of this at once, you will not have anything at the end of six weeks except a pile of code that might compile.

      My suggestion is to work towards the game itself. You should either use an engine you are familiar with (like GCC), or you should only build the features of your engine that are absolutely required to finish the tank game. The rest can come later. This gives you something to show for your six weeks that can be part of your portfolio. Once you get it working, finish the game. Add UI, controls, a main menu, etc. You need to be able to prove that you can finish what you start, and that you're willing to do the tedious polish work required to make something look good. Ask anyone on this forum who has taken my game dev challenges. I make them create full menus and actually create a final product, and it really shows in the end.

    • Thank you for the comprehensive answer. I think I'll take up the suggestion on working with GCC4 - it'll still help a lot in gaining a more practical understanding of game engines. Getting stuck on trivial matters is something I've encountered before, and as someone who's new both to the language I'll be using and the systems I'll be implementing, that'd be double the trouble. It sounds like it would end up taking me something like 2 years full time work getting to the point of GCC4 which is definitely too long! Perhaps when I'm a bit (or a lot) more experienced that'll be a more viable road to go down.

      I'd assume that in an interview situation, having a finished demo game with menu systems, options, a decent HUD, etc, would be far better than having written two or three times the amount of code with not much in the way of actual results to show for it, so I can definitely see where you're coming from.

      Once again, thanks for the answers. :D