游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1910|回复: 5

Codemasters关于如何进入游戏行业的文章(programmer)

[复制链接]

9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2004-7-20 19:19:00 | 显示全部楼层 |阅读模式
Getting a Programmer job, in the Games Industry

This is a guide on how you can best position yourself for getting a job programming video games, assuming that this is what you want to do for a living.

It assumes that you are still at school or college level, and maybe deciding what courses to take, and what qualifications and other skills you will need. Note that some of this information is specifically relevant to Codemasters, and may not be relevant for other companies. It's also fairly UK-centric, as I cannot speak for working in other countries.
  


Programmer




So how do I start then?

If you want to be a programmer in the Video Game industry it’s essential to have a love of programming & a love of video games ? this is a difficult business to work in, and you will be expected to put a huge amount of effort in. Without a passion for video games, you won’t cut the mustard! This, more than anything else, is what will make a difference - a love of games and programming, and a determination to succeed. If you have these things, then you’re more than half way there.

To start with, I’ll state the obvious and say “Learn to program” ? it doesn’t matter which programming language you choose, but it’s important to learn the concepts. Programming concepts are generic across various programming languages. If you have never programmed at all before, try starting with BASIC. This is a simple beginners language, and will give you a grounding in many of the concepts involved in programming. PASCAL is also an easy beginners language, which is still commonly taught in many computer science courses. Once you have some experience, then Java, C, and C++ are also good languages to learn.

Learn about computer hardware - this will help you a lot. Knowing the fundamentals of how a CPU or graphics card works, will help you immensely. Again, computer hardware differs from PC to PC, and console to console, but many of the same fundamental concepts apply. Memory, registers, DMA, stacks, buffers, you'll find them on every computing platform. There are many internet sites and books which can give you a grounding in how computer hardware works.

The internet is a brilliant resource for learning about games programming, and there are many web-sites dedicated to the specifics of programming games. Use these as resources for learning about the many aspects of programming games.  


What kind of programming languages should I learn?

C & C++ are the most popular languages in the games industry. Why? Because they are fast, powerful, and low level enough for you to do most anything you need to do, but also high level enough to not have to write a massive amount of code to do it. Unlike some languages, C/C++ is available on almost every operating system and is quite easy to port between them. This means that you could program something in C, and your 'source code' can be compiled to produce different .exes which run on PC, PlayStation, XBox, and so on. In other words, you don't worry about the hardware specifics of the platforms you run on, the compiler takes the source code, and compiles to the CPU format of the machine you are running on.
  


Programmer




There is one more language that is good to know in the games industry and that is Assembly (ASM). Assembly language is the language of the machines microprocessor, or CPU. For PCs, this is generally Intel assembly language (known as x86). However, consoles tend to use different varieties of CPU (e.g. PS2 has a MIPS CPU, Nintendo GameCube has a PowerPC CPU, and XBox, has a Pentium III CPU).

Assembly language is the lowest level you can program at, and gives you maximum control of the CPU, allowing you to write the fastest possible code. Nowadays, most of the code (99%) in games is written in C or C++, but very occasionally in very speed critical sections, assembly code is used, and so this is a useful skill to have. It’s a different style of programming to high level languages, and it is more difficult, but once you have learnt one CPU assembly language, the skills are easily transferable to other CPU assembly languages.

It can also be helpful to learn scripting languages such as Perl or Python. Scripting is useful because they are very high level languages, which often enable you to write tools quickly & easily. (e.g. Writing data converters is often simpler using a high-level language).

One last thing - although it can't harm to learn other languages, Java is not generally used in games programming, as it is too slow. Focus on C & C++.

9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
 楼主| 发表于 2004-7-20 19:19:00 | 显示全部楼层

Re:Codemasters关于如何进入游戏行业的文章(programmer)

So what hardware & software do I need to get started?

Buy yourself a decent PC, with a decent graphics card & sound card, and a good size hard-drive. It doesn’t have to be top of the range, but you don’t want an old dinosaur either! A second hand PC is ideal, you can have yourself a decent machine for a few hundred pounds. I would strongly recommend getting online, as the internet is a massively useful resource, and will rapidly accelerate your learning.

You should use a Windows operating system, for development, as most companies are based on Microsoft's OS. If you want to experiment with other systems (e.g. Mac, Linux), then that’s fine, but it won’t make a difference on your CV. (For the majority of companies, I should add - some developers are Mac or Linux based, but these are in the minority).

You should also get the DirectX Software Development Kit (or SDK for short). This is Microsoft’s game programming API (Application Programming Interface). See www.microsoft.com/directx for the latest version. You can download this for free. DirectX comes with the all libraries and documentation you will need to start programming games on your PC. There are also lots of excellent tutorials. The tutorials are a very useful starting point, for writing your own code.

OpenGL is another 3D API, which is also commonly used in games development. (For example, id software of Doom & Quake fame, use OpenGL). This is also available for free (www.opengl.org), and is another useful weapon in your canon of programming skills! OpenGL and DirectX have a similar purpose in life. i.e. To enable programmers to use the 3D Graphics hardware in their PCs, whilst not having to worry about which specific graphics card is plugged in. Learning either of these APIs will look very good on your CV, and even better if you learn both!

9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
 楼主| 发表于 2004-7-20 19:20:00 | 显示全部楼层

Re:Codemasters关于如何进入游戏行业的文章(programmer)

Academic skills
If you do not have any previous experience in the videogames industry, then most UK employers will require you to have a degree in a subject which contains some aspect of Computer Science. Codemasters only employs graduates who have a 2:1 degree, or a 1st. (Or an equivalent qualification if you live outside the UK). If you are serious about programming videogames for a living, then you really do need a degree, with a good deal of computer science background. Other courses are also becoming more in demand, such as Maths & Physics, because these are useful skills which can be applied when writing video games.

Other skills
Maths skills are very useful in programming, as this will be required when doing 3D programming. A very good knowledge of vectors and matrices are essential, because they are necessary for 3D. Even if you don't end up doing the 3D stuff, it's useful stuff to know.



I’ve never written a video game in my life! How do I start?
If you’ve never written a game before, you should start simple. Pick a simple, but favourite 2D game of yours (like Space Invaders, PacMan, Tetris, etc), and try to write your own version, using either OpenGL or DirectX. Although you will eventually want to develop your own ideas, you should accept that by imitating another game, you will be able to get your game programming skills off the ground. (Much like people generally to learn to play music by playing other composer's music, before they started composing their own!).

Try and complete the game, and add in all of the elements you would expect to see in a professional version of such a game. e.g. Sound effects, Music, Hi-Score tables, multi-player modes, no bugs in it (harder than you may think!) and so on. This will show you that there are many aspects to creating a polished product, and it will give you an insight into the huge amount of work which goes into making fully fledged professional products. The amount of effort which goes into the non-core aspects of the game, is often as much as the game itself.

Once you have made a couple of games in this way, you can start to flex your creative muscles, and start developing your own game ideas. However, you should try to get a few 2D games under your belt before you start to deal with 3D.

Even better, if you do manage to finish your own game to a high standard, this is an ideal showcase to show to potential future employers ? any finished game is a big feather in your cap, and will impress an interviewer.


9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
 楼主| 发表于 2004-7-20 19:20:00 | 显示全部楼层

Re:Codemasters关于如何进入游戏行业的文章(programmer)

What does an employer look for?
When you send a potential employer your CV, they will look at your technical abilities ? your strength and experience in the relevant programming languages, relevant development software, API experience (preferably DirectX and/or OpenGL), the various techniques you know. Codemasters applicants are expected to have a 2:1 degree in a computer science related degree (or equivalent qualification if you're not British), if they have not had a proven track record in games development already.

If this is all good, you will be invited for an interview. The interviewer will firstly check to see if you are technically aware, as you claim on your CV. However, if you have been invited for an interview, it’s pretty much taken for granted that you have the right technical skills. The interview is about finding more about you as a person, and to find if you have the other skills and qualities that employers are looking for.

Employers look for people who are good team players, and good at communicating. A bad programmer will work alone, without integrating into the rest of the team (and that includes everyone ? designers, artists, testers, the management, and so on). Such a programmer will not remain at a company for long. Communication skills are massively under-rated by applicants when it comes to interviews, and interviewees who are confident, communicate clearly, and can demonstrate that they work well within a team, always stand out. Games programming is such a huge field, that people need to be constantly asking questions, and finding out the right information to be able to do the best job they can.

An employer will also determine your passion for games. Many times, I have interviewed excellent people in many respects, but simply rejected them after having interview them, simply because they don’t really care about games ? not the right attitude!

Other skills employers will look for are time management skills, and your ability to handle pressure. Deadlines are often tight, and frequent, and if you can demonstrate an ability to produce quality work, on time, this will be a big plus in your favour.

Another skill particularly relevant to programmers, is your ability to write good clean code. If it’s messy don’t bother showing it, even though it may contain a technically brilliant, super-optimised bit of code! Remember that since you are working in a team, other people will be reading your code, in order to understand what it does, and will often have to change it. Don’t fool yourself that you will be the only person working with your code. If you are serious about learning such skills, a very good book to read is “Code Complete” by Steve McConnell, from Microsoft Press. (It’s available from Amazon ? Buy it now!).

I am always impressed by enthusiasm ? if people come across as genuinely yearning to make the best games in the world, and show the enthusiasm to put in lots of hard work, and learning, this always impresses me highly. Sound excited and interested to work in the game industry and especially at the company you are applying for. Don’t let them know that you have been bouncing your resume all over the place. They want to know that you want to work there. Do some research on the company you are interviewing at. This means playing their games, learning about their history and possibly talking to someone who works there about their experience working for the company. If you go the extra mile to find information about the company it shows that you are selective in whom you work for.

As you can see, technical ability is only half the battle ? you need other more ‘human’ qualities, if you are to be successful as a professional VideoGame programmer.

9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
 楼主| 发表于 2004-7-20 19:21:00 | 显示全部楼层

Re:Codemasters关于如何进入游戏行业的文章(programmer)

原文可以在www.codemasters.co.uk网站上找到

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-7-21 02:49:00 | 显示全部楼层

Re:Codemasters关于如何进入游戏行业的文章(programmer)

好长,有空再看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-3 22:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表