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:
- Intro to Normal Map Modeling for Games: This conceptual course from Jonathan Lampel evolved from things we learned from modeling assets for the FPS.
- The Blender & Substance Texturing Workflow: Another conceptual course from Lampel about using an game-industry-standard application in conjunction with Blender.
- Fundamentals Multiplayer Games: This course from Gonzo teaches fundamentals of multiplayer development with Unity, which is a big part of his work on our FPS.
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
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#)
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).
Thanks, frikkr!
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
Great work team! I am loving following along with your progress. Keep up the great work :)
This is so true. Indeed we will teach about working as teams. Glad to hear there's interest!
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.
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.