Post news RSS Development Update 4/18/10

Development blog update for 4/18/10. I talk about why planning is so important, and explain a method I used to create cave environments quickly.

Posted by on

“Failing to plan is planning to fail.” This could not be more true when it comes to producing a game. So the topic of this update’s helpful little tip is PLANNING. I know it probably seems fairly obvious that you should have some sort of rough plan before you want to do anything remotely productive, I thought that as well. I was surprised though when I began to see just how many people will dive into a project with either a very vague idea of what the process will be, or even no plan at all. At times I would get started on projects myself, only to realize that I had no idea what steps I was going to take. Its bad enough for this to happen when working alone, but its even worse when working with a group. I’m sure I could fill a at least a page or two with all the things that could go wrong when a group doesn’t have some sort of plan for whatever it is they are producing. I’ve experienced some of these problems myself, and it can be extremely hard to go back and fix them.

So how do you go about planning for your project? I realize this is a very broad question, and it really depends on what type of project it is, how many people are involved, and so on, so I will just focus on how we went about planning for our project. The first step you should take is to really get to know everyone you will be working with. Try to learn their strengths and weaknesses, as well as what kind of worker they are. All of us here are pretty close friends, so this step was practically already completed for us, but for other groups, you may be working with people that you have never met before. Once you have a good understanding of who you will be working with, you want to write out some sort of mission statement. The mission statement is just a short overview of what exactly it is that you want to accomplish by the end of the project. Try to support it with reasons for why you are doing it in the first place. Having a mission statement written out will help focus the team and hopefully keep everyone inspired throughout the process.

Learning the strengths and weaknesses of others is one of what I consider the two most important aspects of planning for a project. This allows you to assign roles to whoever is most qualified for the job, and make sure no one gets a task that they are totally unqualified to handle. For instance, I am not a fan of doing character work, but I love working on environments. Jeremy is sort of my opposite in that aspect. He loves doing character work, and while he is competent at creating environments as well, he would just rather be doing characters. As a result of that information, Jeremy was tasked with creating the character while I work on the environment. Everyone is happy. Again, I know this step seems rather simple and obvious. You are most likely thinking “Of course you assign people the jobs they are good at” and again I will say how many times I have seen a group project where that is not the case. Some groups will just divide up the jobs and assign them at random, which is a good way to make sure something goes wrong.

The other most important aspect in my opinion is setting deadlines. Not just setting deadlines for the hell of it, but actually enforcing them. Now, there are a couple sub-rules that go into setting deadlines. First, make sure your deadlines are reasonable. Evaluate skill levels and use that to determine roughly how long individual tasks will take. Also, if possible, try to schedule in some extra time to allow to make up for any problems that may occur. Enforcing deadlines will help make sure everything stays on track. Some tasks may not be able to be completed until others are completed first. For instance, our character cannot be modeled until the model sheet is created first. If the deadline is not enforced on the model sheet, then it could create a domino effect and throw off everything else in the project.

There are several methods for planning out projects, but for most methods, you will end up using a lot of charts and spreadsheets. The main type of chart we use is called a Gantt Chart. It’s an efficient and easy way to visually plan out tasks and how long they will take. Basically the tasks are listed along one axis, and time on the other. Each task is assigned a predicted start and finished time. I won’t go into any more detail then that, I’m sure if you google Gantt Charts, you will find a much better explanation than I can offer. So we currently have the our process for creating our teaser trailer completely planned out. We assigned roles to everyone and make sure we enforce the dealines. That way everyone knows what to be working on for the next three months without any confusion.

Example of a Gantt Chart

So! Now for the updates on the actual production. We are steadily working on generating the base assets for the trailer. Max is finishing up the model sheet for Eli, which is then passed off to Jeremy for the character to be sculpted in ZBrush. Once the model for Eli is finalized, Max will begin designing the weapon that Eli will be carrying with him. Before the actual model sheet is done, he will be doing a page of silhouettes. This is both to find a design that we personally enjoy, and a design that is interesting.

Mitch has been tasked with working on all the effects that will be seen in the trailer. This includes effects that will be seen at the beginning of the video and the whole “Coming Soon” deal that is seen in all trailers. Originally, we had planned on doing these effects using a mixture of Adobe Photoshop and Premiere, mainly because we are all familiar with these programs. We then decided that even though none of us have used it before, we could get much better results by using Adobe After Effects. So for the past week Mitch has been learning how to use After Effects so we can use it for our final product. Most of what he is learning can be found here, Video Co-pilot, a great site with free tutorials.

This week I spent my time working on the environment that will be used in the trailer. First I had to decide how I wanted to go about creating it. Originally I had wanted to do the cave in modular pieces, but then decided against it. Because this environment is for a cinematic trailer, it will be created differently than the in-game environments, to compensate for different camera shots and angles you won’t see in the actual game. I would still like to use modular wall and floor pieces for the actual game environments, but decided it would be best to create all unique meshes for the cinematic environment. So I opened up 3DS Max and after thinking for a few minutes, I came up with a fast and effective way to create a pretty nice cave environment. I’ll write out a short tutorial for it.

1. Block Out Environment

Using basic boxes and extrusions, I blocked out the environment, using a concept as reference. Use this stage to make sure your proportions and sizes are correct. Because this will be imported into the Unreal Engine, I made sure the to size everything correctly by following the rule that 16 units in 3DS Max =1 foot in Unreal.

2. Subdivide

I then went through and using “Connect”, added in edge loops to create more vertices to work with. I kept all my quads fairly even in size because you will be able to see most of the environment, so I wanted the same amount of detail everywhere. If there is an area you will never be able to see, you don’t have to add as much detail there, as it will just be a waste of tris.

3. Noise Modifier

Add a “Noise” modifier to the top of the stack. Play with the strength of the X, Y, and Z axis, and then the Seed and Scale to get the desired effect. Feel free to go a little overboard, we will control that in the next step.

4. Relax

Add a “Relax” modifier to the stack and turn up the Amount and Iterations. This will smooth out your the noise affect and give it a more natural look.

5. Smooth

I then through on a “Smooth” modifier to correct the faceted look that you will end up with. For mine I set everything to one smoothing group.

6. Fine Tune

At this point, just go back and tweak settings until you get the affect you want. If you go back to your Noise modifier and turn on “Show End Result” you will be able to see your changes in real time with the relax modifier applied. I also went in with the paint deformation tool and sculpted in some details I couldn’t get through this little trick.

7. Optimize (Optional)

Depending on how much you subdivided, you may end up wanting to optimize your model. You can do that with the “Optimize” modifiers that come with 3DS Max, or you could export your model to an external program such as Mesh Lab. Since our environment is fairly small, I wasn’t too worried about the tri-count that I ended up with, so I did not optimize the model.

I wrote this up kind of fast, so if you have any questions or would like to see images of the steps, just let me know.

I then went on to do a quick texture test using a tileable diffuse texture, which was also used to generate a normal map by using CrazyBump.

I will write up more on that later. It is currently 3:30 AM and I need some sleep. So as always, thanks for the support and check back often! We now have links to our Twitter and Facebook, so check those out if you haven’t yet.


This is one of the few projects I've seen on ModDB that takes project management & planning seriously. I wish you all the best of success!

Reply Good karma Bad karma+1 vote

Thanks a lot. Hopefully we can stick to this and pump out something really great.

Reply Good karma Bad karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.