How did I deal with…
Establishing Guidelines for Real Time 3D Production Pipeline
The goal of this project is to develop a general gameplay program in C++, testing it on one prototype level and enabling it to escalate into a whole video game.
This is what this project looks like at the block out stage:
- All functionalities are working
- I solved all communication issues between nodes – including UI – using an Interface and some Delegates
- The project's execution lacks refined models, rendering, animation, and VFX.
These are the guidelines steps that I'm taking:
- Planning Contents
- Buying Hardware
- Pre-producing Interaction
- Pre-producing Art
- Producing Interaction, Part 1
- Producing Art, Part 1
- Producing Interaction, Part 2
- Producing Art, Part 2
- Post-producing Project
1. Planning contents
I'm developing the General Idea by:
- Choosing a genre (3rd person, adventure, story rich, sci‑fi)
- Deciding to program for PC first, and leaving other platform deployments for post‑production
- Writing a design document including a basic plot, describing the gameplay, core storytelling for tone, mood, and features, for instance:
- What the player has to do to fulfill a mission and progress to the next level.
Writing a Team Plan consisting of:
- Developing Details, like defining goals, audience, graphic design and pre‑production (concept art, storyboards, etc.), setting deadlines, defining mechanics, telling a story, UI contents, where do the assets come from, etc.
- One Game Design Document, including game world, game mechanics, character, story, UI functions, audio, prototype, documentation, etc.
One Page Design
This is the One Page Design for this project:
This document can be revisited by any stake holder and contains all the general logic of the project, including the conclusion.
I'm Programming this project using Unreal Engine Blueprints, and their C++ API:
- Prototyping one level using placeholders and refining the programming until it matches the benchmarks I'm setting for the production phase
- Leaving scalable and reproducible programming to C++, and
- On the opposite, leaving the local and level‑exclusive changes to Blueprints, so that we don't have to bother a programmer every time I have to, say, update text chunks in the UI.
I'm creating all Assets from scratch, except for the animations, borrowing MoCap from Unreal's market place and Mixamo.
That means that I'm executing the whole pre and production DCC pipeline (ZBrush, 3DS Max, Maya, Substance, V-Ray, etc.) plus programming, interaction and UI in Unreal Engine.
2. Hardware
- I'm working with SSD Hard drives, an NVidia GPU and 2 Monitors
- Using Cintiq for all 2D, sculpting in ZBrush, weight painting, etc.
- DINA3 Scanner for all the pre‑production material, and
- English keyboard for efficient programming.
3. Pre‑producing interaction
I'm drawing a storyboard to have an overview of the interaction before defining the tasks and the UI. Click on the arrows to progress through the vignettes.
Once I have this overview, I can plan the details of the interaction.
As you can see, I am going to need:
- A list of collectibles
- Input actions to collect them
- A list of messages
- A counter to lock/unlock the exit doors when all collectibles are collected, and
- Scalability in case we want to add a combat mode in the future.
4. Pre‑producing art
These are the steps I'm following to pre‑produce the art in this project:
- Doing Research, in this case about player character and what she should look like. I'm also basing the look and feel of the prototype's level on the ancient Persian architecture.
- Sketching out level, VFX and characters. Here you can see a floor plan of the level for blocking out before modeling:
- Developing Characters, including questionnaires, construction, poses, expressions, and clothes sheets, turnaround, etc. This is the turnaround of my player character:
- Developing Environments, floor plans and elevations are the main part of this process, but also includes modularity and, planning ahead, texturing:
Additionally: Props, Concept Art, User Interface and Storyboards & Animatics. If you want to see more about art pre‑production, visit these case studies:
5. Producing interaction. Part 1
The main part of the production at this stage is to make a prototype in Blueprints (BP), test it, and rewrite it until it works.
Once the prototype is functional, we can proceed to program the basic interaction in C++. I'm using:
- An Actor Component on my player character driving the Interaction through:
- An Input Action
- Overlapping the collectible BPs, and
- Sending messages to UI using Event Dispatchers
This is the counter node, calling an update through the interface:
This function just checks out whether the pickups have the interface implemented:
Here, I'm sending a message via Event Dispatcher to the UI, to tell the player they have only one item left before unlocking the exit gates:
And here is the last function, checking out whether we have collected TotalItems and can go to the next level:
With these functionalities working (and some more for the gates, counter, game mode and pickups), we are in the position to draw some schematics for the C++ programming:
These case studies show the later implementation from BP into C++ for this gameplay:
6. Producing Art. Part 1
At this stage of the project, we need some objects to apply our programming to. I'm blocking out environment and characters to ensure that my programming is acting on the definitive sizes, animations and weights.
This is what my blocking out and provisional models for the environment look like:
And this is what my character looks like at this block out stage, including a provisional rigging to reuse the animations from the 3rd person character template in Unreal Engine (UE):
7. Producing interaction. Part 2
With a working BP prototype, I'm translating the functionalities to C++, including:
- Player Character
- Pickups
- Gates and doors
- Interface (I'm using only one in this case), and
- Delegates.
The player character is the actor with the most functions, including:
- The most delegates
- An additional Input Action, including calls to the interface and interaction with pickups
- An additional capsule to interact only with the pickups, plus overlap events, and
- The most variables, including items count, whether the mission is finished, whether the actor is allowed to pick up, etc.
If you want to take a closer look to the C++ programming in this project, visit the following case studies:
8. Producing art. Part 2
I'm sharing this information with you as part of a learning process. Until now, I have:
- A functional level
- All the programming is ready, and
- A developed character is waiting to get refined animations.
This is my plan for the 2nd art pass in this game project:
Player Character
- Sculpting and retopologizing a definitive version of Player Character
- Rigging the final version using the nomenclature of a collection of motion captures
- Skinning a set of blendShapes and muscles simulations
- Importing them in the level and updating animations, linking them to events in runtime and cinematics.
Environment
- Opening UVW in all models
- Creating Textures using Substance Designer and applying them to modular pieces
- Replacing placeholder models in the level
- Adding furniture and props using USD
- Updating LODs.
Artificial Intelligence (AI)
- Modeling NPC characters, including clothes, using a modular approach
- Rigging them according to motion capture for 3 or 4 actions
- Building up behavior trees and testing in the level at runtime
- Efficient LODs.
Visual Effects (VFX)
- Adding terrain, including grass, flowers and trees
- Filling ponds, fountains and drain system with running water
- Simulating particles in the air and at the cinematic picking shot
- Simulating partial hair and cloths on my player character.
Audio
- Ambient sounds
- Signal sound when picking up collectibles
- Some dialog from AI in the background
- Music (?)
Rendering
- Better lighting, using HDRI
- Cinematic cameras
- Modular textures, checking out texture complexity
- Previewing buffers and optimizing
- Making a 2D minimap
These case studies show more information about management for 3D production pipelines: