Building an FPS #4: Catching a Second Wind

Large

It's been 3 months since we last posted about our first person shooter game, The Range (working title). As I sit down to write this, I realize that while a lot has happened in that time, the project also suffered a bit of a lull. But we've caught a second wind in recent weeks and the project is gaining ground.

A Word about Lulls

In my career, lulls and uninspired seasons of production are extremely threatening to a project. Whether it's a feature film with millions of dollars behind it or a passion project with friends, I've seen distracted, unproductive stretches absolutely kill projects. Maybe it doesn't bother some people as much as it bothers me. Perhaps some see it as a natural way of weeding out "unworthy" projects from the "worthy" ones. For me it's pretty upsetting when a creative idea, birthed by such excitement and passion, dies. They inevitably live on in my head as milestones of missed opportunity. (Sheesh, my work music today must be particularly emotional or something...)

My point is to nurture the passion that inspires your projects. Beware of the lulls that will come and do what you can to maintain momentum. "How," you ask? That's the trick to figure out; there isn't a formula. In my experience it's been a combination of a few things:

  • Small victories during production; stuff to mark off the list that definitively proves progress.
  • Collectively reminiscing and expressing as a team about what was and is exciting about the project.
  • Brute-force discipline. Passion projects are always a daunting amount of work. Work that every team member needs to DO, plain and simple. Be inspired and challenged by this profanity-laced advice from Beeple: An artistic juggernaut that has done more digital art by himself than most digital artists combined.

So what has happened with the FPS project?

First Courses Recorded

Being CG Cookie, our passion projects are two-fold: 1) To create something awesome and 2) to share great education about that awesome thing we created. The latter extends the project's production timeline and can cause lulls, so we've learned. But that's what we've been doing the past few months and some excellent courses have come and are coming from the project!

Courses directly inspired by the project:

Courses directly teaching aspects of the project:

  • Designing a Robot Character: Tim's course about his workflow for concepting the robotic protagonist of our FPS. It's recorded and almost ready for release!
  • Modeling a Robot Game Character: My course about modeling the robot Tim designed is complete and releasing this week! It evolved into a comprehensive 37 lessons and covers one of my most intricate modeling workflows to date. Check out the trailer:

Game Asset Progress

Lampel has continued his work with the game's weapons and they're turning out really well! He's finished PBR-based textures and shaders that he painted with Substance - So you can expect some more Blender + Substance education coming down the pike.

In addition to building the weapons, Lampel has rigged and begun first-person animation. Like most of this project, first-person design is a first for us and we're learning really cool things about it. All of which will be shared with you in time.

Gameplay Development

Most of Gonzo's dev effort lately has been focused on the third-person character controller. Despite this game primarily being a first-person game, third person animation is necessary as the player will see other players running around. So we decided to start here with hopes of working out the kinks of a Blender-to-Unity pipeline so that we could approach the first-person animation (arguably more important) with a refined workflow. Accomplishing a high-quality third-person controller has proved trickier than anticipated. Having no game dev experience myself, everyday I'm realizing the crazy problems dev have to solve behind the curtain. Devs are magicians!

It has been quite tough to nail down the proper feel [of the third person controller]. Currently we have what feels like a smooth controller while on the ground, but airborne states are still a work in progress. Getting animations to sync properly with the controller or vice versa can be quite challenging but we're learning a ton along the way and we know it will only benefit our members when we teach what we've learned.   -Gonzo

We embedded a WebGL version of our 3rd-person testing stage. It's simple, just the ability to walk/run the character around and jump. It's not perfect yet, especially jumping and falling big distances, but please poke around and comment with feedback if you have any! Also let us know in the comments if the build runs smoothly or choppy on your computer. Keyboard controls: Mouse to look AWSD keys to move and SPACE to jump.

If buttons do nothing, click in the window. ESC key to exit (make mouse cursor re-appear). 

Project Management

Another thing the team has realized is the importance of organized project management. Until last week, we had primarily been sharing files via Dropbox and posting updates/communicating about the project via Slack. We had zero granular asset tracking and no Unity project versioning systems in place. We know now that this cannot fly. We instituted Unity's built-in "Collaborate" feature for syncing Unity project files among team members - which is separate from file storage on Dropbox.

We also found a site called "HacknPlan"that's designed specifically for game development task management, and it has a free basic membership. Both are still new to us but they've been hugely helpful so far. Admittedly, project management wasn't something we expected to learn and eventually teach, but it's a pretty clear necessity at this point, even for small teams.

That's all for now. Till Next time!



See previous Dev Logs for more info about our FPS project: Building an FPS #1 / Building an FPS #2 / Building an FPS #3


  • m
    Geoff Gerber

    I've always thought that a good tutorial series would be about how to work with others. Source control, project management, bug/feature tracking, etc. Once a project goes from one person to more than one person, SOOO many little things change. You can't do business like before, especially if you're working on a deadline. I'd love to see a CG Cookie take on something like this.

  • Large
    Jonathan Gonzalez

    It's definitely something we plan on teaching. Possible a separate course where we each discuss how we work as a team and common pitfalls we've come across. It definitely helps to have a good system in place for keeping track of things and being able to effectively communicate. We're a remote team so this is even more important and I'm sure plenty of people would benefit from what we have to share.

  • Large
    Kent Trammell

    ...Once a project goes from one person to more than one person, SOOO many little things change

    This is so true. Indeed we will teach about working as teams. Glad to hear there's interest!

  • Large
    Matthew Fricker

    Great work team! I am loving following along with your progress. Keep up the great work :)

  • Large
    Mark Smith

    SIX and beyond is sounding more and more awesome all the time...
    patiently waiting for all this goodness to come our way...
    keep up the excellent work that got Cookie this far...
    :D

  • Large
    Kent Trammell

    Thanks, frikkr!

  • d
    diaoheyhey

    I love CG Cookie, there are so many good tutorials about different areas of CG and game dev. I'm a game dev beginner, and hope to see tutorials about game FX and RPG game development in the future. (I'm a fan of Dota and StarCraft, just wonder the FX making and attack mechanisms behind the games).

  • a
    Aunnop Kattiyanet

    Looking back when I worked as a team on a game project, it's incredibly hard to manage plans an share works as a team. Even we were a team of 3. But it ended up we lost 1 team member and work on the project in the last 2 day without slept. That's really good experience, too. Since I worked on many aspects of game pipeline including art and programming (Java at that time, which is OOP just like C#)

  • Large
    Kent Trammell

    Thanks, me1958424!

  • Large
    Kent Trammell

    Thanks for the love, diaoheyhey! We aspire to make future games for all popular genres. As an FPS, you can bet on some game FX education to come from this project.

  • Large
    Kent Trammell

    Seriously, working as a team is an art form in itself.

  • Large
    Jonathan Fisher

    I like the project management brief mention in the article. It makes me think of the workflow at the CPA firm--everything is run like a factory conveyor belt, and every time someone touches a folder, we cause a trigger event in the software. At any given time, we know exactly were a folder is located, the status, current time, and budgeted on each step.

    Those of us in the prep stage have to stress until the finished product is out the door and billed; the dashboards (main status screen) get huge a couple months prior to federal due dates--ha; and if a folder goes missing, it is very embarrassing for the preparer since partners will make a point to interrupt the whole office to find it, stopping production, then everyone in the office is running around--needless to say projects are monitored as if they are infants.

  • Large
    Kent Trammell

    Wowzaas. That's one well-oiled CPA firm! No guarantees that our humble team of 3 will be that refined, but we absolutely will get better at project monitoring, and we will share what we figure out. We'll shoot for monitoring like it's a toddler :D

  • Large
    resin213

    I think that would be a great tutorial to have. Perhaps, paths and thoughts on developing a team to start with as well.

  • Large
    resin213

    Kind of a side note, but is embedding WebGL a way to share games we are working on in the gallery or forum sections of CGCookie? I've been wondering what the best way to share games is and what kind of size limits or other concerns one would need to be aware of.

  • Large
    Kent Trammell

    Hmm..that's a good question. In theory, yes I suppose you could. You could maybe upload an image and add the embed code in the description - see if that works?

  • m
    mrudhuhas

    Hey after modeling the robot game character can i use it in my game ?

  • Large
    Jose Miguel Hernandez

    jgonzalez i liked the presentation of firewatch, they discussed their workflow to work on the game. Not sure how sensible it is in general since i have nothing to compare it to. but interesting anyway. https://www.youtube.com/watch?v=hTqmk1Zs_1I

Your was successfully !