Categories
GameDev

So you wanna get in the games biz?

(Originally written and unpublished on March 24, 2016, updated, revised and finally published in 2018!)

Getting hired in the gaming industry OR Tips and Tricks for the job hunting Indie Game Designer/Developer.

Being the head honcho at a small game studio means I’m occasionally bombarded with e-mails from people looking for a job or an internship at my company. I’ve seen some good and a lot of bad so I figured I might as well share with you folks what goes through my head when I get resumes and applications to help you improve your odds at landing a job in the biz.

Whether you’re a student trying to land an internship or a seasoned vet jumping ship, these are things to keep in mind.

Have an online presence

Whether it’s LinkedIn, Twitter, DeviantArt or your own web site, have some sort of online presence that the folks looking at you can refer to. However, do keep in mind that the material on the web can help you and hinder you at the same time. So if you’ve posted something on Facebook that may make you look like a douche for some reason or other, make sure it’s private.

Most studios like mine don’t have dedicated HR people. Guys like me don’t use whatever fancy black magic tools HR people use. If you’re applying for a position I’m going to Google you. My usual search term I Google up is “<Your full name>+<Artist/Programmer> or <your school/company you work for>. Try Googling yourself, find anything? If you can find something, great, if you find nothing it’s not that bad.

Have a curated portfolio

This is really important for artists and by curated portfolio I don’t mean your DeviantArt page. Yes I did say have one in my previous section, that’s the fallback if I can’t find your portfolio (which should be part of your website. You do have one right?). What do I mean by curated portfolio? It means a showcase of only your *best work*.

This makes sense for artists in all capacities as well as for those looking for a in a non-art position. Showcase some of the best work you’ve done and make sure it’s polished.

Have a demo reel

This seems pretty foreign to those who are not artists. But a demo reel is a great way for potential employers to get a quick 30-60 second preview of some of your best work. The demo reel could be just a slideshow of stills you’ve use or video footage of a game you’ve worked on but the important thing to keep in mind is that these are the things that highlight your skills.

Know what you want to do / Know your specializations

This is more applicable to the students trying to get into the biz. A lot of video game schools cater to the underachieving gamers out there which means most of the time, the skillsets taught are going to be rather wide with little to no specializations. That’s not a bad thing since it usually means students would come out fairly well rounded(if they actually put the effort into it). The downside is that that lack of specialization means that most graduates have no idea what they want to do or focus on other than “just make games”.

“Just because you didn’t specialize in something, doesn’t mean you’re a generalist”

It’s best to have an idea of what you’re interested. The most common ones would be game play programming, engine programming, graphics programming, network programming, tools programming, level design, lighting, character design or character modelling, environment design, audio/sound programming, etc..

Game jams are ok, releasing something is better

Back in 2012 or 2013, I would have told any student trying to get into the video games industry to do as many game jams as they can get. That was then, now that we’re approaching the end of 2018, I would still suggest doing Game Jams but it would be better to focus on getting a small game released somewhere or at least get a couple of publishable prototypes done.

What’s changed you ask? Well for starters, unlike 2012, the market is hugely saturated with people wanting jobs in the field of game development and for the most part, their portfolios tend to be mostly filled with unpolished prototypes. You want to set yourself apart from that.

If you can’t actually release a game, put together a publishable prototype. This was a term I stole from Mark Czerny, the architect behind the PlayStation 4. This is basically a super polished prototype made to showcase what the final game *might* look like and to test out the mechanics. Think of it as an E3 demo for a game you’re working on.

Look into the details of your contract

This is something I warn a lot of students who want to get into the biz. Many companies (large and small) will have IP clauses in them stating that during the entire time of employment with the company, anything and everything you make or come up with is property of the company. That means that as long as you work for that company, any cool games you might have as side projects or even story ideas are property of the company. It’s pretty shitty and you can try to talk them out of it but for the most part, unless you’re super awesome at what you do and they really, really, really, really want you, odds are you’re going to be given a take it or leave it situation.

Maybe one day game companies will learn from the engineering firms and add the following line to their contracts

“for the purposes of <whatever section in reference> and hereof, the terms Conceptions, Inventions and Copyrights shall mean only those Conceptions, Inventions and Copyrights that the employee may make alone or in conjunction with others during the period and arising out of his/her engagement with the company.”

Understand NDA’s

If you’re going to work in the video game field, you really need to know what NDA’s are and what they mean. Unless it’s written in the contract that you can mention something about the project after a set period of time (usually when the game is released), that usually means YOU CANNOT TALK ABOUT THE PROJECT EVEN AFTER IT’S RELEASED.

Artists and Art Style

Quite often I get portfolios from artists who create superb work but they seem to be stuck in one particular art style. While there’s nothing wrong with developing a particular art style, unless you plan on getting a character design job, there’s a high chance you’ll be asked to follow a particular art style prescribed by your art director.

My suggestion is to not only showcase things in your portfolio of your own art style but also in other art styles as well. This is a typically a large reason why I turn down many fantastic artists because the prescribed art style for our projects are typically very anime inspired, largely because we usually get actual artists from the anime biz in Japan to do the designs, and for the most part, a lot of folks here can’t quite hit it.

For those stubborn die-hard folks out there that are adamant about sticking to their art style and looking into the character design job. The reality is that the character design jobs are few and far between, as someone trying to get into the industry, your better off being able to do more than just character design.

Render things in engine

If you’re a 3D artist planning on getting a job in the video game industry, showcase renderings of your work running in engine. It doesn’t matter if it’s Unity, Unreal Engine, CryEngine/Lumberyard or some other 3D game engine. From my own experience and friends of mine from the industry who have to review 3D artist work, seeing a nicely rendered model in a demo reel captured as in-engine footage lands you much bigger points than just putting together a nice sculpt in ZBrush or something.

The reason behind this is that there are several steps required to get a really nice looking sculpt from Zbrush into a game engine without boggling it down. This is primarily because models straight out of Zbrush or similar sculpting tool are completely unusable in engine as the poly count is usually waaaaay too high. If you can demonstrate that you can not only make nice 3D models but also reduce the poly count while keeping it looking good, you’re in a much better situation to be hired.

There is no such thing as the “ideas guy”

Ok maybe there is, but it’s usually tied to another position. The closest would be a pure game designer role but to be honest, unless you can bring lots of $$$$ to the table, no one is going to hire you purely as an ideas guy. Understand that.

Can’t program and can’t do art? Don’t worry

While for the most part, gaming jobs focus on programming or some sort of artistic work, there are also jobs outside of those roles. Some of these roles include, producer, scenario writer, motion capture actor/director/technician, QA Tester(Game Tester) and a whole slew of roles in marketing and PR like community manager or social media manager.

These roles however are harder to find in smaller studios because realistically, those roles tend to be handled by everyone there because there’s no budget for those roles specifically.

Avoid Programmer Art whenever possible

Programmers, the fugly programmer art is *only good* for internal prototypes. If you’re a student in a game development program and your primary goal is to handle the programming in games, work with an artist to get you some polished artwork, buy some or just “borrow” some if you have to. Even though your work is primarily on the programming side, the people who will be looking at your portfolio will most likely be very visual people.

If you can’t get artwork that looks good at least make it less distracting. Stick with blocks or stock assets that come with the engine. Most of the “free” assets in marketplaces tend not to look that good or look out of place in a sparsely put together environment.

You’ll need more than Passion & Talent

Passion and Talent can only get you so far, you need a solid work ethic and a willingness to get the job done even if it’s doing something you don’t like.

In fact, sometimes we hire people who aren’t quite as passionate or talented simply because we know they’re willing to get the job done even though it’s not what they want to do. Nothing is worse than hiring someone who thinks they’re a rock star and half asses stuff because it’s not “their way” or because “their idea” got rejected.

Your ideas and opinions are great but sometimes the project is locked in place. You’re probably going to have to revise and update the same bits of code and artwork over and over and over until you have nightmares, so do yourself a favour and drop the ego at the door.

Making games is rewarding when it’s done but for the majority of the process, it might suck and suck hard because making video games is NOT EASY.

Don’t give up!

This is a big one. The one big reality check most students have when they graduate out of gaming school is that it’s not exactly easy to get a job making games. You could be the best in your class or the best in your school but it doesn’t necessarily mean you’re going to be the top 5% of the industry. In addition to all the other graduates that flood the market every year, many also forget that they’re competing for positions with industry vets that just lost their jobs.

At the time of writing both Capcom and Bandai Namco out in Vancouver shut down their studio (among others). All the people that lost their jobs there are probably looking at the same gameplay programmer or character modelling job you’re looking at.

It’s super discouraging to graduate at the top of your class only to find yourself struggling to find a job, but don’t give up, try another company. Larger companies such as EA, Ubisoft and Square Enix are going to have the toughest competition because everyone wants to work on the next Battlefield, Assassins Creed or Final Fantasy game. If you can’t cut it there (and don’t worry, many won’t), take a look at smaller indie companies or go do some game jams and see if you can start a project with someone there.

Keep developing your skills

Do yourself a favor and keep your skills up to date. Just because they didn’t teach you something in school doesn’t mean you can’t learn it on your own.

If there’s any upcoming technology that might be hot, get on it.

VR, Unity, Unreal, mobile, whatever.

Every once in a while there’s a rush in the industry to hire people who have experience in some new hot tech. It used to be mobile development for iOS and Android, then it was Virtual Reality and Unity. Keeping your skills up to date is especially important if you’re looking for a job. I pretty much got contacted by one or two people each and every week for a few months because everyone was looking to get into VR development and I happened to have some experience screwing around with the original Oculus Rift DK1 back in the day.

 

Categories
GameDev

Demystifying the tech behind Ninja Theory’s Senua

Ever since Ninja Theory showed off their Hellblade Live/Senua demo at GDC 2016 I’ve been thinking, how the f*ck can I pull that off? I mean sure I don’t have Epic Games, Cubic Motion or 3lateral as partners but it doesn’t mean I can’t recreate everything on a budget right? Ninja Theory’s Hellblade team is only 16 people, not 160 so it’s not like they have that many more people than I do, so there must be something they’re doing that I can leverage on.

For those of you who have absolutely no idea what I’m talking about, here’s the GDC presentation:

 

Doing digital real time cinematography has been something I’ve been wanting to do for a while and I’m glad to see that a small company like Ninja Theory managed to pull it all off. Although they didn’t do it alone, so let’s see what part’s of the equation did each company provide

Epic Games : Unreal Engine 4. The version Ninja Theory uses is the same as what you and I can get. So it’s not like the folks at Epic are doing anything special for them specifically.

3lateral : These guys specialize in creating characters and animations. Tameem Antoniades of Ninja Theory mentioned in that GDC video 3lateral having some really nice face scanning and face rigging solutions so it’s likely that’s the part they played in all this.

Cubic Motion : These were the guys Ninja Theory used for the facial solver.

Then there’s Ninja Theory themselves, who were the guys putting it all together.

The GDC video was kinda impressive but during Siggraph 2016, they decided to step things up and leverage Unreal Engine 4’s new sequencer and do some live 3D cinematography and now this is what I’ve been looking forward to. While the demo at GDC was really just them demo’ing the facial animation, the Siggraph demo is live 3D cinematography.

Here’s the video:

So now that question is… who else was involved? In addition to the previously listed partners, they’ve added a couple of other new partners here. Namely, House of Moves, Ikinema, Technoprops and Nvidia.

So let’s see what these companies do:

Nvidia : Yes they make hardware but they also do a lot of software as well through their Gameworks division. What they ended up doing here I’m not too sure. Although I wouldn’t be surprised if all they did was provide the new Pascal Titan X to run everything on. UE4 is really optimized for a single graphics card and to get the fidelity needed to do all this in real time without lag, they’d need a pretty beefy graphics card. As of right now, the biggest baddest GPU on the block at the time this happened would have been the Pascal based Titan X.

Technoprops : These guys do facial capture systems. It definitely looks like the Technoprops headset was being used in the siggraph video.

Ikinema : These guys offer a full body IK solver for more natural motion when applied to animation. It’s likely the Ikinema IK solver was just used to clean up the animations in real time as mocap usually does require some clean up work. Really brilliant use of this tech for that reason if that’s really what they used it for.

House of Moves : These guys are a mocap studio and were probably the ones that owned the mocap stage and setup the virtual camera systems. In the full hour long siggraph video, you’ll see that Tameem is operating a virtual camera with a House of Moves sticker on it.

That’s great but now I gotta figure out what all the hardware is.

We already know that the facial mocap headcam is was provided by Technoprops using the facial solver built by Cubic Motion. Looking at the mocap stage, the cameras don’t look like the Optitrack cameras and the Virtual Cameras don’t look like the Optitrack Insight. So I had to do some digging. After a couple of days of looking for an Optitrack Insight VCS alternative, I decided to look at the House of Moves website and BINGO! It looks like everything is made by Vicon instead of Optitrack, except there was no mention which VCS they were using. So I decided to dig even furth by going to the Vicon website and there it was, the Vicon Camera System.

There was no pricing available and for some strange reason I had never heard of them before. Looking at their resellers and offices, they have no presense in North America because that marketing is dominated by Optitrack.

So now that I have all the puzzle pieces together. How I can put together a cheaper alternative?

Unreal Engine 4 : I got the same build Ninja Theory gets and so can you. If anything they might get a nightly build with more features but by now with 4.13 just being released I’m pretty sure whatever Ninja theory had for the Siggraph demo, I have too.

Animation & Rigging : Yeah we don’t have super experienced animators and riggers, but I’m sure we can get at least half way close. The Abyssian Knights project is an animated project that we’re replicating 2D with, so we don’t need super realistica rigs. In fact we want it to look like it’s got hand drawn physics (read: improper broken artist driven physics to make things look cool).

Motion Capture : There’s no way I can afford a full mocap stage. Even at the cheapest it would still be $10k+ and take up space. We currently use Noitom’s Perception Neuron which doesn’t require a mocap stage and only costs us about 1/10th the price of the cheapest full stage mocap system.

Facial Mocap : This seemed to be a two part solution for Ninja Theory as they used the headcam from Technoprops and the solver from Cubic Motion. Pretty sure Technoprops and Cubic Motion are service companies and wouldn’t want to sell some indie like me their solution and while I probably could write my own ghetto facial solver using OpenCV, It would probably be easier to find someone who’s got a full solution. Enter Faceware! They offer an indie package of their facial mocap solution. It’s not exactly super cheap but still affordable by indies. The best part is they offer both a software and hardware solution. We were originally going to use Faceshift for the Abyssian Knights project and we had a license previously but I’d rather move onto a different solution as it’s not possible to renew the license.

There still is ONE part of the puzzle piece missing though. The virtual camera system? I mean I COULD get Optitracks Insight Mini but the controller alone isn’t enough. I’d still need to get Motive which is $999 and a 6DoF tracker of some sort or spend $2300 for the V120:Duo and a license of Motive Tracker. Thankfully the pluging to stream data to Unreal Engine 4 is free but it still requires Motive so there has to be a better solution. The hunt begins. If anyone has a good solution here, please let me know although I get this feeling I might have to build one of my own.

Update: Nov 17, 2016 – Still trying to sort out the Virtual Camera system. Going to attempt using the motion capture sensors I have and stream it into Unreal. Pretty sure I’ll have to rig the camera onto an actor but this might work!. Will post results when I get something working.

-Budd

Categories
GameDev

UE4 Editor Graphic Settings

It definitely pays to look into things a bit. The crew at DNS and I have been crazy busy cranking things out for the Abyssian Knights Kickstarter. For the longest period of time, the level always looked weird on Tiff’s machine and by weird, I mean the characters looked super pixelated like there was no anti-aliasing at all and the backgrounds lacked any kind of shading making the white walled room look like one big white blur.

After Tiff decided to copy the project file on her home computer to work on some of the animations, I realized that the problem was isolated to her laptop since it looked fine on every other machine including my workstation, my laptop and even my ghetto old desktop at home which is almost 10 years old.

Given that her laptop had some weird issues before like screen tearing when playing back videos. I decided that it would be a good time to reset the settings and update everything. Her BIOS was a bit out of date but that didn’t really change anything. It wasn’t a gamma or color correction issue either so I was really stumped.

Since the same stock UE4 installationn with the default settings were used I thought it might have just been a bad graphics card issue. That’s when I decided to look into the whole Engine Scalability settings thing looking for something to tweak.

Checking my workstation, the quality setting was set to EPIC but for some strange reason my laptop was set on HIGH, even though I used the exact same installer, engine version and literally just copied over the project file(haven’t bothered setting everything up for Perforce just yet). That made me think that these values must be automatically set based on some sort of weird deterministic magic.

Looking at the same settings on Tiff’s machine I saw the problem!!

For some stupid reason, it was set to LOW! This was probably because her graphics settings were set to maximize performance over quality and the engine just set it that way for performance. Setting it on anything other than LOW fixed the problem. The weird thing was, when I clicked on the AUTO button, it set itself to MEDIUM by default (granted this was after I reset everything and put her system back to focus on quality over performance).

So where do you find this setting? Look at the top bar of your UE4 icons and look for Settings->Engine Scalability.

UE4_EngineScalability

Categories
GameDev IT and Tech

Unreal Engine 4 Swarm Farm

UE4_SWARM

Anyone who’s tried to hitting the build button in Unreal Engine 4 in a level that’s got a lot of lighting going on will know that the build process can be pretty tedious. Building the lighting in the Sun Temple demo level that comes with UE4 at production level takes about an hour or so.

Being annoyed that I had to wait so damn long to build lighting, I figured Epic would have provided some way to distribute the computational load across multiple machines and did some research. It turns out that Epic did provide this functionality but all the documentation for it isn’t in the UE4 but rather in the older UDK documentation.

UDK SWARM DOCUMENTATION HERE

While it didn’t change a whole lot there really wasn’t a whole lot on the net that covered using Swarm across multiple machines so I figured I’d share how I managed to get it working for me.

This was tested on my workstation running a tetradeca core Intel E5-2683 v3(14 cores, 28 threads) and my Alienware 17 rocking the quad core Intel i7-4900MQ(4 cores, 8 threads). Engine versions were UE 4.12 on my workstation and UE 4.11 on my laptop (mostly just so I could see if it work!).

My workstation was setup as the primary client that had Unreal Engine 4 running as well as the Swarm Coordinator and the laptop as the secondary client running the SwarmAgent.

The SwarmCoordinator.exe and SwarmAgent.exe executables can be found at:
C:\Program Files (x86)\Epic Games\(engine.version)\Engine\Binaries\DotNET

All the settings are in the pic above, but to explain the different parts:

AgentGroupName -> The name of your group. It *IS* case-sensitive.
AllowedRemoteAgentGroup -> For simplicity, make it the same as AgentGroupName
AllowedRemoteAgentNames -> On the controller, put down the name or IP address of the secondary client. Additional names/IP addresses can be added seperated by a commas. On the secondary client, just put the name/IP address of the primary machine you’ll be sending the job from.
CoordinatorRemotingHost -> On the Primary machine that’s also running the controller, just put the hostname of your primary machine or the IP address(yes 127.0.0.1 works too). On the secondary add the name/IP of the machine that the co-ordinator is running.

I’ll have to revisit this later when I have more than 2 machines with the swarm agent running. Hopefully it’ll help someone else trying to speed up the process of building lighting in UE4. Adding additional machines is really just a matter of adding them to the AllowedRemoteAgentNames list. I’ll have a proper answers once I get my render farm built out.

Categories
GameDev IT and Tech

CryENGINE3 and multiple developers

Ok so every since I started using CryENGINE 3, it works fine when I screw around with the engine on solo projects but is almost always a huge nightmare where I have to add another person onto the project. Why? Because for the longest period of time, sharing .CRY files with team members meant I always had to worry about a file corruption error. Turns out CryTEK accidentally got rid of the old file access permissions error and replaced it with an error that said “files could be corrupt”.

I’ve been working on the Yours Truly Project with Brandon to get it ready for showcasing at th Level Up event at the Design Exchange on April 3rd, 2013 as well as the Toronto Global Game Jam arcade at Bento Miso later in the month. For a while things were ok because I was able to open the cry file he did the terrain and vegetation on and I just worked on a seperate layer. Now during the polishing phase we’re running into file corruption errors yet we know the files aren’t corrupt because the level runs in the launcher just fine.

We tried everything we could and then I was reading on CryDev about something with regards to people who were having corruption issues but the solution was because the login script couldn’t connect to the server properly. That led me to think, “what if I logged in with my credentials on Brandon’s computer?”. So I went over to Brandon’s Alienware (go team alienware!) fired up the editor, logged in with my own CryDEV credentials and proceeded to open the file. Fingers crossed, I clicked on the open button and then…………………… BAM….. FILES LOADED SUCCESSFULLY!!

Who would have thought the Files Could Be Corrupted error was really an access rights thing? Got Brandon to join Team Whisky Tango Foxtrot on CryDev.Net and added him as working on Yours Truly and so far we’ve had no problems.

The take away from the story?

If you’re going to be working with CryENGINE 3 with other people

1. Make sure you’re all on the same team working on the same project. You can assign team members and set them working on a particular project over at CryDev.Net

2. Terrain and Vegetation is stored in the cry file NOT on layers. So whoever is doing your landscape/level design will have to give out their .Cry file. Make sure it is saved to be associated with the project you’re working on or to Global Share if you don’t have a project.

3. Since everything else is on layers, use layers for everything else. If you have an environment artist placing brushes, another person doing cinematics and another person doing flowgraph logic. Have them all use external layers (set as external in the layer properties).

4. Share using source control and import the stuff your team members make. Dropbox works but might mess things up 😐 Given how CryENGINE like the Unreal Dev Kit as well as Maya and 3DS Max like to crash from time to time, you’re better off not taking anything else along with it when it croaks. That and source control like SVN will allow you to roll back to a previous working version that does work.

Just my $0.02 that I hope others will find useful. Althouh CryENGINE3 has it’s quirks it’s by far the best engine I’ve ever worked with (sorry Unity and UDK)

-Budd

Categories
GameDev

Game Design Canvas refinements

So I sent my Game Design Canvas to a few game designers I know and got some feedback on it. So far the feedback has mostly been positive although I did get one person tell me it seemed a little too simple but in mind, simple is good.

Any ways, added some changes to the current revision of the Canvas. Nothing really major though. Made the lines in the excel file easier to work with by merging the blocks in the same area so you can type in them easier. Also added word wrapping to all the boxes. Moved the player segment over to the left hand side swapping it with the technology/frameworks and metrics to better situate the areas. Seeing that the player segment is very much tied to the Minimum Viable Prototype/Product it made sense that it was right next to it. That and since the stuff on the top right of the canvas was more of the technical stuff it made more sense to put the technology/frameworks there.

It’s not a huge overhaul or anything but some nice refinements on a rather simple but effective tool. Keep the feedback coming folks. I do love reading what you all have to say. It just takes me some time to respond as I type wordy responses 😐

Cheers,

Budd

Categories
GameDev

Game Design Canvas

Being a guy with a background in business as an entrepreneur, I’ve written my share of documents and plans. Now that I’m game development, I’ve noticed a lot of similarities between business plans and game design documents. Not only are the documents aiming to do similar things ie. plan things , having to write either one is always a bit of a pain. I’ve been recently challenged to do 10 game prototypes this month which also requires 10 GDDs to made. Somehow that reminded me of having to write a bunch of business plans back in the day and using  Alexander Osterwalder’s Business Model Canvas as a bit of a shorter one page alternative for quick analysis of business models as well as Ash Maury’s Lean Canvas for my start ups.

That led me to think, if business plans and GDDs are so similar, why can’t I use the idea of a canvas for prototyping games? So on March 20th, 2013, I walked into the class at triOS college and drew up a standard business model/lean canvas on the white board before slowly redesigning the canvas for game prototyping. By the end of the day and some input from others, I’ve managed to get 8 revisions of the canvas and began cranking out a few game prototypes of my own. Two days later, I’ve managed to get two more revisions that I finally thought was refined enough to share.

So here it is