In the follow-up to the first part of our recent Inside Crytek Interview, Programmer on Crysis 3, Filipe Amin, answers your questions about his day-to-day work.
You mentioned that there will be lots of new weapons and a modified bow. How about special abilities, or new kinds of aliens?
I cannot go into much detail here but yes, you can expect some improvements on aliens and suit abilities.
Will you be able to customize your weapons during multiplayer in Crysis 3?
Among other awesome features our fellow team members in Nottingham have been working on, weapon customization during gameplay will be one of the improvements for Crysis 3 MP.
Can we expect vehicles in the game?
Yes, my colleagues are working hard on that front! Stay tuned for more information though.
Will there be any exclusive content in the Stalker Packs and Predator Packs, such as exclusive add-ons? Or will we be able to unlock this earlier in the game?
All the details regarding those special packs were already announced. You can have a look at these two websites:
Where do you get inspiration for new weapons?
It is a team effort, not a one-man effort. At the beginning of the project we had some brainstorming meetings where people just threw in ideas and we wrote them down and adapted them. Later, we voted for the ideas that should be prototyped. That was the fun part, since some of those prototypes were functional and had to be coded, and I implemented most of them. Then we trimmed down the selection into the weapons that will work best for the game. The Composite Bow and the Typhoon came out of the process. For that matter, you cannot pinpoint where the inspiration comes from, since different people have different experiences and inspiration sources. My own inspiration usually comes from Sci-Fi games.
What was the first programming language you learned, what languages did you have to master to be able to start working on videogames, and what language do you recommend for beginning programmers?
I started on graphic calculators! I had a Texas Instruments TI-80 (not the TI-83 unfortunately) and that was how I learned what programming actually was. Later on I switched to Turbo Pascal on the PC and also tried out Delphi and was already trying to program some games. My first game only came out after I taught myself C++ and openGL.
There is no silver bullet regarding what to learn and what not, but if you want to be a professional game programmer, you should learn C++ at some point, since that is the industry standard (which will not change soon). In my opinion, the sooner you learn C++ the better, but if you think it’s too complicated at the beginning, start with C# with XNA. Using CryENGINE Free SDK can also be a great starting point.
However, learning the programming language is only a tiny part of what you actually should learn. Regardless of what programming language you pick, you will need to learn about memory management, basics on computer architecture, data structures, algorithms, execution, memory and cyclomatic complexities, software engineering, refactoring, etc., that is what makes you a good professional.
As a programmer, is it important to have a certain degree or qualification for getting into the videogame industry, or is experience more important?
Experience is always very important to break into the games industry and having a degree is the easiest way to get that experience. I personally do not have a degree and I know a lot of professionals who don’t have one either, so it is possible but requires a lot of commitment.
Do you use any Debuggers like Olly Debugger?
I have never used a disassembler before. In the game team, we only use the debuggers provided by Sony and Microsoft.
That doesn’t mean that we don’t debug assembly however – in fact, it’s not uncommon to have the PS3 debugger looking like OllyDbg. When we have to debug profile or release versions of our software, which typically happens when we get crash dumps, the compiled version of the code can look quite different from the C++ code, and looking at the assembler may be the only way to know what’s going on. Modern compilers do a wonderful job at reinterpreting our code and restructure it for optimal performance at the expense of readability.
Most of the time, however, we debug C++ directly on software compiled in debug mode without the magical optimizations applied by the compiles. The game can run quite slowly in this mode, but it is by far the most productive and easiest way to debug our software.