- This topic has 6 replies, 3 voices, and was last updated 12 years, 5 months ago by Anonymous.
August 3, 2008 at 5:28 pm #6868AnonymousInactive
August 3, 2008 at 8:50 pm #41927AnonymousInactive
I was just wondering what of programming examples should I be making for a Portfolio. If anyone could give any advise I’d be grateful.[/quote:f7ba2d1061]
What sort of programming job do you want in games (presumably)?
This questions been asked abit lately, probably because its coming towards no grads and jobs to be found. So i’m going to give a pretty in depth description. Warning ahead of time. :)
Depending on what you want it will vary. IMO for the following jobs these would be good places to start.
Graphics Programmer = Something cool which portrays you know the hard stuff. So forget about a demo which has a rotatng cube or a multi-textured box. They’ve seen it all before, frankily their pants and 90% of the population could probably do them. My advice would be to make a scene which has 2-3 GFX shaders (either in cg or hlsl). Something like displacement mapping, soft shadowing, motion blur, depth of field etc. Although dont rip off the Directx sample kit which has all these in it. Believe me if you do, its obivous as hell. Try to create a scene which might show off them together. One example might be a beach scene where you have displacement mapping or bump mapping for the sand and the dunes. A shader for the water. Perhaps a few boat modelled (with dof applied to the scene so perhaps one or two in focus and the rest not).
Post effects are where graphics work is going nowadays, so if you want a graphics job be prepared to have this in your portfolio. IMO this is the area of graphics which has really made a drastic improvement in the visual quality and production quality of this years games. Looks assassins creed, cod4, mgs, these games have loads of post effects and as a result the games look like hollywood 200 million dollar blockbusters!!
If you dont know anything about these areas read up alot of the Shader X series books, nvidia\ATI whitepapers on website or else see next job.
AI Programmer = For this role you need to again portray you know the hard stuff. You’ll need to demonstrate you know how pathfinding\steering behaviour works and how to manipulate characters with it. Also Goal Orient planning is a big one these days. So if you could have a scene with a few agents (doesnt have to be graphically pretty, although if your ai can operate animated characters it definately signals this guy is really good) which navigate an environment, interact with it intelligently and achieve some goals. If you dont know what im on about here chances are your not going to be an ai guy, or read up ai wisdoms 1-4. Key areas to touch as an ai programmer these days is character animation coupled with ai! Every company doing character based games needs these guys (just look at their websites).
Network Programmer = You need some sort of multiplayer game (fps or RTS each will pose separate problems\solutions). Demonstrate you know how to send\receive info, present the game so minimal\or no cheating is allowed. Demonstrate you know how to use API’s (raknet,torque networking etc). Game doesnt have to be flashy, focus is on your networking low level skills.
Physic Programmer = Probably hardest one to do. I personally dont think banging something together in havok or ode will get you a job at this. You really need to develop your own engine and demonstrate you know how to do kinematics, inverse kinematics, rigid bodies, linear mechanics, ragdolls etc, which is definately time consuming. Again a simple scene which shows them off might be a bunch of characters being hit by a car (simple stereotypical scene, copied numerous times but if you’ve coded the lot by hand it will say alot). If you do decide a demo with an open source engine be prepared to do something awesome to get as much recognition. After all Havok have done 10 years work for you already :)
Game Programmer= This one you need to either have a demo which combines all the above jobs(except network guy) but cut down. You can either write your own engine or use something like unreal,source, torque whatever to create a level. If you do use another engine chance are your going to target the demo at demonstrating your good at character interaction\animation states\ai, these are the big jobs for game programmers these days. On racing games you will also do steering behaviour\race lines etc. If your write your own engine from the ground up you show alot of stuff, your good at lots of jobs! These guys are the handy guys to have. Often refered to as generalist programmers, every team needs these guys. They also double up as core technology\tool programmers. Also demonstrating knowledge of a scripting language such as lua or ruby might be handy. Lots of games use them for behaviour (i.e. GTA).
Game programmer is a jack of all trades and an expert in none (or possibly 1 or 2, depending on calibre and experience).
Front End UI Programmer = This ones hard to gauge also. But typically this guy can demonstrate in a demo good 2/3d graphics programming\maths skills. Ability to tie assets and code together in a way that their not very coupled (no easy task believe me). Ability to make reusable widgets, screens etc. Often XML\scripting skills can aid with this task.
Scaleform is the big wig these days for ui. To get a job at ui these days it definately helps if you can demonstrate c++ and actionscript integration, which is essentialy what scaleform GFX does. There is a few open source flash interpreters out there which bind to c++. If you can show you know this stuff, your definately a guy they wanna hire. These guys are very rare. I could name numerous studios at the moment who cant get these guys. Key skill though is your a strong C++ programmer first with appreciation for flash\actionscript after that, not the other way round, because most of the integration and hard work is done in c++.
Tools Programmer = To become a tools programmer your demo should demonstrate you know how to write applications and tools using C++\C#, win forms, MFC whatever. Good tools programmers demonstrate attention to detail on menu items\screens, ability to allow your tool to be completey\or as much as posible, customisable via scripts or files outside (handy for designers\artists non programmers). Your job is to make life easier for everyone in the studio, as everyone uses your tools to get data into the game. C# is the big dawy these days for tool programmers so knowing this is a must. Also tools programmers spend a majority of their time working on exports\plugins for max\maya etc, a bit of knowledge of this is always worth alot. Perhaps your demo might just be an exporter from maya\max into a made up model format you use in a simple scene viewer your wrote. This scene viewer would tie in C++ to integrate with directx (although could use c#, but C++ is preferable). C# for menus with the viewer, toggle wire frame etc. C# for exporter along with max\maya script. Anything goes for a tool demo. Alot of grads start in tools as its the closest job IMO to normal applicaton programming, they really have alot of contact with specific games, usually site in the core technology group.
Alot of info there, but the key points for a demo are.
1: Be original, dont rip off work, if you do "borrow ideas\code" credit the people, as this will essential say this isnt part of my demo but allows me to do the cool bit i did. i.e. Havok for a racing car demo, but you are showing off your racing ai skills and havok is just facilitating you with info about environment\terrain, car mechanics etc.
2: Keep the scope of the demo small. But try to cramp in cool things. Like the graphics scene i mentioned early. Its simple but theres a shit load going on under the surface. Graphics programmers hiring will appreciate this. Same goes for all disciplines.
3: Most important.
MAKE SURE IT COMPILES,LINKS AND ALL LIBS ASSETS ETC ARE PRESENT!!!!!!!!!!!
Also dont submit a debug build, make sure it runs in release. Nobody wants to see a game run at 10-15 fps where its unplayable. If you submit this your not getting the call back guaranteed!
4: Make something cool and unique!After all its the games industry, we wanna see something cool, we’re used to it! :) If we didnt we’d be working for a bank or an accountancy firm programming database applications.
August 3, 2008 at 10:07 pm #41930AnonymousInactive
August 3, 2008 at 10:08 pm #41931AnonymousInactive
August 3, 2008 at 11:13 pm #41933AnonymousInactive
Also, I wanted to brush up on my programming skills before heading back to college. So does anyone know any books worth checking out?[/quote:1ecc06017c]
Too many to mention. Ones i mentioned earlier are pretty good. Also check out the books section and reviews on http://www.gamedev.net
August 3, 2008 at 11:20 pm #41934AnonymousInactive
August 4, 2008 at 11:44 am #41939AnonymousInactive
Great posts Peter!
- The forum ‘Programming’ is closed to new topics and replies.