Skip to content

Planning and Preparation

Planning and preparation is the research phase of the project and you will not necessary be part of It, but It is a good idea to keep looking regularly at design documents in order to foresee the kind of effects you will have to make during pre-production.

Often, a small team is assembled to create a proof of concept prototype, and if the game is not based on VFX (Which is most of the time not the case), it is very unlikely you will take part of It. Nevertheless, you will often be asked for placeholders if the project starts from scratch, so be prepared to create ugly, functional effects that will be used for feedback in the prototype.

Preparing your Hardware

Pen & Paper (Notebook)

Most of the time we don’t need them until we actually need them. So let’s save them ready for making figures, solve equations or draw anything that needs to pop out our crazy minds. This is the best tool, better than any other computer application or website.

Chronometer

We will find ourselves sometimes wondering about durations and rhythm, and having a chronometer, if it is not absolutely necessary, can come handy in a lot of cases. If you have a smartphone or tablet that does not suffer from too much latency and are comfortable with touch input, you can find chronometer applications around your favorite application provider. Otherwise, simple chronographs are available for cheap at your local sports shop.

Graph Calculator

Graphic calculator will be useful for everyday use in order to perform simple to medium complexity tasks, from simplearithmetic, to curve previewing. If you cannot afford them, you can also use graphing calculators online such as Desmos or Mathway. Also, a demotool named ARCalc is a really efficient utility to preview curves.

Video-Capable Camera & Practical Apparatus

Having a video camera is often valuable as you can set up your own experiments if you do not have too dangerous effects to capture. It can be a good idea to have some instruments ready such as a camera stand, portable lights, black key and green key backgrounds.

Workstation Computer

Our workstation is be our most faithful companion during all your project(s) and we will have to take a really good care of It: Finding a correct setup to work with most comfort and stability. Most of the time, your company will provide to you a medium-to-high-end computer corresponding to the standards of the company, according to the project.

If possible and undecided, we will ask for a solid workstation that is absolutely not a laptop. We will have to require a good processor and a good GPU. Most of the time they will be running for a long time and we do not have any risks to take about overheating and stability issues. This being said, if we have choice on our hardware, we will prefer stability over performance so it is a good idea to read reviews a bit to find a suitable and stable hardware.

Also having the top hardware is not mandatory: I have often experienced that the more the user’s hardware is far from your game’s target performance, the more people have trouble optimizing. So I would say : prefer a reasonable hardware where you will be comfortable working with, but not necessary the top. You will find easier feeling when your effects are becoming heavy. If your company can afford It, having an over-the-top workstation for simulations and offline rendering, and a standard PC for all your real-time needs, is the perfect fit.

Here are the key points you could assess in order to request specific hardware.

CPU : One of the major key points of your computer if you intend to use CG-Grade solutions (Houdini, Maya,…) to generate flipbooks or to use CG baked simulations. Here, the CPU frequency is not as important as the number of concurrent threads. Since 2012, most of the VFX solutions offer decent multi-threading simulation & rendering engines so it is a good idea to focus on a multithreaded CPU. Some solutions also offer GPU simulation and rendering (using OpenCL or DirectCompute), so in this case, you will prefer a fast, high-end GPU with preferably a great number of cores.

Memory : Often underestimated by companies, VFX simulations require a lot of memory if you intend to keep most of the simulation in cache, so if you intend to simulate and avoid caching to disk, prefer asking for maximizing RAM. In other cases, you can stick to standard guidelines for your game and stick to the artist’s amount of RAM.

GPU : Here is a troublemaker : you can ask for a high-end fast GPU if your offline pipeline is based on GPU Computing or you are manipulating really heavy geometry. But in most of cases, your real-time needs will not require you a GPU that’s really faster than your target hardware is. You could expect working fine with a GPU twice as powerful as your target’s.

For instance, if your target is PlayStation 4, a similar equivalent to PC would be a NVidia GeForce 750 or a AMD HD 7850, so you can aim a bit higher : your development environment is not as optimized as a final build of the game, and since your game is on console It also has optimizations that your PC do not have. You could aim for only a GeForce 760 for comfortable use.

Limiting yourself to a not-over-the-top GPU can also sometimes be a hassle, and depends on how your team behaves with the engine : Since you will be working in levels, mostly in lit condition, with post-processes, you will be (alongside with the character artists, level builders and lighters) exposed to the performance of your game, more than anyone. Having the team keep the levels free of performance drawbacks (broken lighting, overload of Post Processes, absence of LODs, etc.) will help you a lot, and you should find yourself asking often the team for cleanup job in order to work comfortably, rather than asking for better hardware.

Hard Drives : The best setup is in general, one fast drive for the programs and one large drive for the data. Do not underestimate the size of your files, and do not make a problem of It : size does not matter (relatively speaking), If one your simulation cache has to take hundred of gigs to render at its best, so be It.

Keyboard & Mouse : Nothing particular here, prefer comfortable as flashy.

Game controller: We will have to test your effects in situation, quite often so let’s have a game pad plugged in at all times if your game requires it.

Pen & Tablet : Not mandatory, but really useful. Even a A6 format can be helpful at times. If you we yourself making a lot of hand drawn VFX, prefer a larger one.

Network Hardware : For accessing the network, prefer the fastest trend of speed in networking that’s affordable to you. (Prefer Gigabyte Ethernet, absolutely forbid WiFi and 10Mbps) You will be copying a lot of data through the network and these jobs can slow down your computer while processing. So : quickly done is best.

img

DevKit / TestKit : You will be running the game on its final platform more than anyone else ( besides QA ), so request an access to a DevKit or TestKit. Most of the time, these units are shared through the team, and you will have to share them with others, so be prepared to use more than one of them. You will require software, and proper setup for them to work, so take time to talk to your CTO or Engine developers.

DevKit will often belong to a platform or graphics engineer but they can be handy in order to do some GPU Capture and replay to perform deep timing analysis or debug graphic artifacts. Most of the time you will need these kits in order to replay a GPU capture made on a TestKit. For more information about GPU Capturing see the section in the performance chapter.****

Software

Operating System :

This will be decided by your company. So try to stick with It, running a mac or linux while the rest of the team is on windows can be really problematic when using some file formats (especially text with the line endings varying from one OS to another).

Graphic Pipeline :

This will be also decided by the company. Often, jobs tend to stick to the same graphic package in order to stay compatible. However, you will have to ask for VFX specific software in complement to standard graphic so It is a good idea to use pre production to evaluate software if you are unsure at first, or you want to change your pipeline.

Utilities and tools :

There are a ton of utilities that will come handy to make your workstation a better beast of efficiency.

Most of the time you will have to install:

  • an efficient File compressor (WinRAR (non free) or 7-Zip are common)
  • a good text editor with syntax highlighting : notepad++ is widespread with a lot of options, but some people use simpler editors such as notepad2 or buy Sublime Text. It’s up to you, but do not neglect the benefits of a good syntax highlighting.
  • Thumbnails: for windows, the lack of thumbnail previews can be solved by using a free utility named SageThumbs,
  • An image file previewer : XNView, IrfanView, Adobe Bridge, ACDSee, Nomacs…

Version control :

Version control (or versioning) is a process where we can store all our data on a server that track history of our files so you can go back to previous versions.

This software solution will often be chosen by your company. It’s something that will rule and decide your process with more or less constraint. As you will be working mainly with binary data, you should know that few of the version control allows decent handling of conflicts when using binary data. This is often the case of two artists trying to push to the server their modifications on the same asset (texture, mesh, …). Some solutions have more constraint than others, and will allow you to grab the exclusivity to work on some file. These solutions, such as perforce are quite fit and popular on video game companies because you have to make sure to reserve your file before editing It and submitting changes to the server. This is proven useful to protect users against modifying files currently in-edit. However, many people feel tempted to perform local changes to files, leading to some data loss when updating files.

Other solutions (SVN, Mercurial, Git) will require you to be more careful about what you are working on, and assume your files can be merged when pushed to the server. For the case of custom binary files, this is often a case of resolving conflicts by discarding one version or the other, which means when there is a conflict, one of the two have to lose its work.

These are the main reasons that artists prefer solutions with file locking such as perforce, as they are proven to be more secure, even if they induce latency and exclusivity over files.

Communication Tools (Capture & Presentation) :

Most of the time, we have to communicate to the team, stuff under prototyping, variations or much more.

Learn Scripting Languages

During all your production you will find yourself in cases where you will have to process a lot of data, in quite a small time, so It is always a good time to learn scripting, and find the right tools to process stuff. There are a lot of scripting languages out there and some of them are easier to learn than others.

Operating System Scripts :

If you can, learn the scripting language inherent to your operating system (DOS or PowerShell for Windows, AppleScript or shell scripting for MacOS). This will be useful for common file operations such as renaming, copying, moving, deleting or creating zips of your files, or performing system operations such as mounting network drives, getting versions, etc.

Other Scripting Engines :

Sometimes you will find yourself having more complex tasks to perform, for instance, ensuring all your texture files have correct format, or making a batch export of many objects for your engine. In this case, you often have access to scripting engine directly within your software. Scripting langages can vary from one software to another so it is best to know a minimum of each ones. You can also ask for another tech artist to assist you in learning or tutoring you. Here is a list of common software and their scripting langages :

Software Scripting Engine(s) :
Photoshop Photoshop Actions : Not a scripting language but more a recorder of naive actions that can be replayed on other files. This helps most of the time but cannot perform conditional operations.JavaScript : More powerful than the actions, you will be able to perform actions depending on the properties of the image, check a lot more on your files and proceed accordingly to your rules.
3D Studio Max MaxScript : a specific language to 3DSMax well covered by documentation but that suffers from its age and its multiple syntax. Other people’s can be hard to understand if you learn with one syntax and they are written in another one.Python : Python Scripts can be called from MaxScript and can call MaxScript. Although this language is not exclusive to 3DSMax, it embeds a lot of functionality in It. Python scripts can also be run from the outside and be run from a generic python environment.
Maya MEL : The specific language to Maya, similar to MaxScript but with a more fixed syntax. Easy to learn, read, understand and really powerful.Python : Can be run alongside mel, and can also be run from the outside and be run from a generic python environment
Houdini Hscript : Similar to Windows CMD, helps performing high level tasks to run the Houdini runtime, renderer, or administrative commands.Python : as for other 3D Solutions, python integrates more deeply though, but as for the others, enables communication within and outside the Houdini environment.VEX : a multi-threaded low-level scripting language that compiles in super-fast execution programs. Useful to process lots of data.

Most of the time, Python and JavaScript stands out, and it is a good idea to keep in mind the basics of these two languages, as you will find them through a lot of most of the solutions.

IMHO, Python will serve you well, my liege. As it comes loaded with a good lot of standard libraries such as string manipulation, XML, date and time, file system operations, structures & CODECS, file compression, database access, cryptography, multi-threading, networking, internet protocols, multimedia support, GUI, and more !

On top of that, you can easily add third-party libraries to the python path to extend functionality, hundreds of packages exist, among them : image manipulation, game frameworks, geometry processing, GPU Computing, Computer Vision, …