I'd seriously consider writing one or more small, simple games yourself before embarking on joining an established team. You'll learn a lot about yourself and the technologies involved in games development, and you'll be putting together your own portfolio as you progress. You may find that you'll be in over your head if you join the mod team directly, especially if you have no experience at all. If the team is modding a particular game like Half Life or Unreal, then I'd use the time to get familiar with those tools - using the assets which are already there will give you a useful jump start.
Your games needn't be complex or graphically rich. Concentrate on ideas and simple execution. It's too easy to get bogged down with detail, especially if you're trying to impress. How about a simple puzzle game? Or tacking on flight simulator style controls to cruise around an FPS level? :)
A portfolio should present what you consider to be your best work in various categories. For a programming portfolio, you don't necessarily need to put exclusively games in it, even if you're looking to join a game development team.
For a portfolio that you want to present to a game development group, my suggestion would be to break down the different aspects of what makes up a game and include completed and polished programs that highlight certain aspects.
Suppose you break down the game development pipeline and come up with the following list which shows the skills you want to highlight:
3D Graphics
Physics
Human Interaction (Gameplay and UI)
Artificial Intelligence
Take a project for each category and make that aspect shine! Make each one interesting for the end user. Having different programs highlighting different skills shows that you are multidimensional - you're not just a one-trick pony.
Now, there's one more thing a portfolio should do, and that's highlight you! The small projects highlight your skills, but usually it's good to include one major project that shows many skills and, more importantly, your personality. This should be something you're proud of making, and something that you're excited and passionate talking about. Passion is contagious! When you show passion about something, people can't help but take interest.
It's been a few years since I interviewed with game companies so some things could have changed, but here are some notes from my experience:
If you are in college, try to get into summer internships with game companies. Microsoft, Blizzard, Epic, etc all have summer programs that will help you build your portfolio. Most of the time, they will have you work on tools for their full time developers to use, but that is how you get your foot in the door.
If you are coming out of college (or, as was my case, have been developing non-game applications for several years) and don't have titles you can put your name on, you'll have an uphill battle. The best way to approach it in this case is to do one of the following:
a) Develop your own custom game engine and make some simple games with it. This will show knowledge of the basic fundamentals the game companies are looking for.
b) Develop a mod of a popular game. A good example of this is DotA (custom scenario for Warcraft III), or various Unreal Tournament mods.
c) Develop some games with an opensource, or somewhat inexpensive game engine (e.g. OGRE, Torque3D, etc.)
Despite having 5+ years of application development (with shrink-wrapped software used directly by customers), I'd get to the 2nd, 3rd, or even 4th interview only to get the response, "You have a very strong background in application development, but you don't have much of a game portfolio. Please work on that and apply again in the future. Thanks."
All of the suggestions made so far are wise, I'll also add this.
Games in the idea stage are pretty dangerous. You'll keep thinking of things you want to add, technologies you want to use, and so on. Get out of that as quickly as possible for every project.
Start by thinking of a core idea for a game, ideally this should be a short, one or two sentence description. Even better would be a two word description: "Asteroids RPG!". Then come up with a bullet point list of the features it should have.
Once you've got that list, absolutely never change it and never stray from it while you are coding. If you have new ideas and you just have to explore them, start a new list for another game.
Hopefully you'll have something you can actually play by the time you've completed one to three of those bullet points; you can make the character move on the screen, or enemies do their thing, something you can interact with. At this stage, although the game isn't very deep, it should already be fun. Just moving your guy around in an interesting way should feel a bit stimulating and make you actually want to play the rest of the game.
If it doesn't, figure out why not and fix it. If you can't figure out why it's not fun by this stage, or you can't figure out what would have to change for it to be fun, drop it immediately. If the core gameplay mechanic, the first thing you needed to make the game a game, isn't fun now, it won't ever be fun.
You need it to be fun if you want to use it in your portfolio. If it's not fun the interviewer won't play it much. You don't want it to be too much fun, of course, you really want the interviewer to be interested in it and then move on to the source code or the next game. You want to show them a variety of ideas you can explore, and a variety of techniques you can use.
Include the best programming examples that you have.
C++ is used in the development of a lot of games so try to use that language. You can use other languages as well through if they show off your programing experience a certain topic.
If you have any well polish projects that involve computer graphics, AI, physics, or multithreading include those since are topics that are used very often in game development.
Another good idea is to go through these projects and provide comments if you haven't already. Include a description of the project and the goals somewhere easy to find in the project.
Overall you should try to use examples that feature the above areas and that show that you know how to structure a large programming project. Game development is alot smoother when you have a good project layout.
To quote an old professor: The first time you program a project you do it the wrong way. The second time you do it in a way that works but is not effective (difficult to modify, not efficent). The third time you program the project it's acceptable.
发布评论
评论(6)
在开始加入一个成熟的团队之前,我会认真考虑自己编写一个或多个小型、简单的游戏。您将学到很多关于您自己以及游戏开发所涉及的技术的知识,并且随着您的进步,您将整理自己的作品集。您可能会发现,如果您直接加入模组团队,您会感到不知所措,尤其是如果您根本没有经验的话。如果团队正在修改《半条命》或《虚幻》等特定游戏,那么我会花时间熟悉这些工具 - 使用现有的资源将为您提供有用的快速启动。
您的游戏不必很复杂或图形丰富。专注于想法和简单的执行。人们很容易陷入细节之中,尤其是当你想给人留下深刻印象时。来一个简单的益智游戏怎么样?或者添加飞行模拟器风格的控制来围绕 FPS 水平巡航? :)
祝你好运!
I'd seriously consider writing one or more small, simple games yourself before embarking on joining an established team. You'll learn a lot about yourself and the technologies involved in games development, and you'll be putting together your own portfolio as you progress. You may find that you'll be in over your head if you join the mod team directly, especially if you have no experience at all. If the team is modding a particular game like Half Life or Unreal, then I'd use the time to get familiar with those tools - using the assets which are already there will give you a useful jump start.
Your games needn't be complex or graphically rich. Concentrate on ideas and simple execution. It's too easy to get bogged down with detail, especially if you're trying to impress. How about a simple puzzle game? Or tacking on flight simulator style controls to cruise around an FPS level? :)
Best of luck!
作品集应展示您认为在各个类别中最好的作品。对于编程作品集,即使您想加入游戏开发团队,您也不一定需要专门放入游戏。
对于您想要向游戏开发团队展示的作品集,我的建议是分解游戏的不同方面,并包括突出某些方面的完成和完善程序。
假设您分解了游戏开发流程,并列出了以下列表,其中显示了您想要强调的技能:
为每个类别制定一个项目,并让该方面大放异彩!让最终用户对每一项都感兴趣。拥有不同的项目来突出不同的技能,这表明你是多维的——你不仅仅是一匹只会一招的小马。
现在,作品集还应该做一件事,那就是突出你!小项目可以突出您的技能,但通常最好包含一个能够显示多种技能,更重要的是您的个性的大型项目。这应该是你为自己所做的事情感到自豪的事情,也是你兴奋和热情谈论的事情。 热情是会传染的!当您对某件事表现出热情时,人们会情不自禁地产生兴趣。
希望这有帮助。
A portfolio should present what you consider to be your best work in various categories. For a programming portfolio, you don't necessarily need to put exclusively games in it, even if you're looking to join a game development team.
For a portfolio that you want to present to a game development group, my suggestion would be to break down the different aspects of what makes up a game and include completed and polished programs that highlight certain aspects.
Suppose you break down the game development pipeline and come up with the following list which shows the skills you want to highlight:
Take a project for each category and make that aspect shine! Make each one interesting for the end user. Having different programs highlighting different skills shows that you are multidimensional - you're not just a one-trick pony.
Now, there's one more thing a portfolio should do, and that's highlight you! The small projects highlight your skills, but usually it's good to include one major project that shows many skills and, more importantly, your personality. This should be something you're proud of making, and something that you're excited and passionate talking about. Passion is contagious! When you show passion about something, people can't help but take interest.
Hope this helps.
规划任何你认为你能做好的事情。投资组合不在于数量,而在于质量。
Program anything you think you could do well. A portfolio is not as much about quantity as it's about quality.
自从我面试游戏公司以来已经有几年了,所以有些事情可能已经改变,但这里有一些我的经验笔记:
如果你在大学,尝试进入游戏公司的暑期实习。微软、暴雪、Epic 等都有暑期项目来帮助你建立你的作品集。大多数时候,他们会让你开发供全职开发人员使用的工具,但这就是你入门的方式。
如果您刚从大学毕业(或者,就像我的情况一样,多年来一直在开发非游戏应用程序)并且没有可以写上自己名字的游戏,那么您将面临一场艰苦的战斗。在这种情况下,解决这个问题的最佳方法是执行以下操作之一:
a) 开发您自己的自定义游戏引擎并用它制作一些简单的游戏。这将显示游戏公司正在寻找的基本知识。
b) 开发流行游戏的模组。 DotA(魔兽争霸 III 的自定义场景)或各种虚幻竞技场 mod 就是一个很好的例子。
c) 使用开源或稍微便宜的游戏引擎(例如 OGRE、Torque3D 等)开发一些游戏。
尽管拥有 5 年以上的应用程序开发经验(使用客户直接使用的收缩包装软件),我还是会进入第二个阶段,第三次,甚至第四次面试却得到的答复是,“你在应用程序开发方面有很强的背景,但你没有太多的游戏作品集。请在这方面努力,以后再申请。谢谢。”
祝你好运!
It's been a few years since I interviewed with game companies so some things could have changed, but here are some notes from my experience:
If you are in college, try to get into summer internships with game companies. Microsoft, Blizzard, Epic, etc all have summer programs that will help you build your portfolio. Most of the time, they will have you work on tools for their full time developers to use, but that is how you get your foot in the door.
If you are coming out of college (or, as was my case, have been developing non-game applications for several years) and don't have titles you can put your name on, you'll have an uphill battle. The best way to approach it in this case is to do one of the following:
a) Develop your own custom game engine and make some simple games with it. This will show knowledge of the basic fundamentals the game companies are looking for.
b) Develop a mod of a popular game. A good example of this is DotA (custom scenario for Warcraft III), or various Unreal Tournament mods.
c) Develop some games with an opensource, or somewhat inexpensive game engine (e.g. OGRE, Torque3D, etc.)
Despite having 5+ years of application development (with shrink-wrapped software used directly by customers), I'd get to the 2nd, 3rd, or even 4th interview only to get the response, "You have a very strong background in application development, but you don't have much of a game portfolio. Please work on that and apply again in the future. Thanks."
Good Luck!
到目前为止提出的所有建议都是明智的,我也会添加这一点。
处于创意阶段的游戏是相当危险的。您将不断思考要添加的内容、要使用的技术等等。每个项目都尽快摆脱这种困境。
首先考虑游戏的核心理念,理想情况下这应该是简短的一两句话描述。更好的是两个词的描述:“小行星角色扮演游戏!”。然后列出它应该具有的功能的要点列表。
一旦你得到了这个列表,绝对不要改变它,并且在编码时不要偏离它。如果您有新的想法并且您只需要探索它们,请为另一款游戏开始一个新的列表。
希望当您完成其中一到三个要点时,您将拥有可以真正玩的东西;你可以让角色在屏幕上移动,或者让敌人做他们的事情,你可以与之互动。在这个阶段,虽然游戏还不是很深入,但应该已经有趣了。以一种有趣的方式让你的家伙四处走动应该会感觉有点刺激,并且让你真正想玩剩下的游戏。
如果没有,找出原因并修复它。如果您在这个阶段无法弄清楚为什么它不有趣,或者您无法弄清楚必须改变什么才能让它变得有趣,请立即放弃。如果核心游戏机制(让游戏成为游戏所需的第一件事)现在不有趣,那么它永远不会有趣。
如果你想在你的作品集中使用它,你需要让它变得有趣。如果不好玩,面试官就不会玩太多。你不希望它太有趣,当然,你真的希望面试官对它感兴趣,然后转向源代码或下一个游戏。您想向他们展示您可以探索的各种想法以及您可以使用的各种技术。
All of the suggestions made so far are wise, I'll also add this.
Games in the idea stage are pretty dangerous. You'll keep thinking of things you want to add, technologies you want to use, and so on. Get out of that as quickly as possible for every project.
Start by thinking of a core idea for a game, ideally this should be a short, one or two sentence description. Even better would be a two word description: "Asteroids RPG!". Then come up with a bullet point list of the features it should have.
Once you've got that list, absolutely never change it and never stray from it while you are coding. If you have new ideas and you just have to explore them, start a new list for another game.
Hopefully you'll have something you can actually play by the time you've completed one to three of those bullet points; you can make the character move on the screen, or enemies do their thing, something you can interact with. At this stage, although the game isn't very deep, it should already be fun. Just moving your guy around in an interesting way should feel a bit stimulating and make you actually want to play the rest of the game.
If it doesn't, figure out why not and fix it. If you can't figure out why it's not fun by this stage, or you can't figure out what would have to change for it to be fun, drop it immediately. If the core gameplay mechanic, the first thing you needed to make the game a game, isn't fun now, it won't ever be fun.
You need it to be fun if you want to use it in your portfolio. If it's not fun the interviewer won't play it much. You don't want it to be too much fun, of course, you really want the interviewer to be interested in it and then move on to the source code or the next game. You want to show them a variety of ideas you can explore, and a variety of techniques you can use.
包括您拥有的最佳编程示例。
许多游戏的开发都使用 C++,因此请尝试使用该语言。
如果其他语言展示了您在某个主题上的编程经验,您也可以使用其他语言。
如果您有任何涉及计算机图形、人工智能、物理或多线程的精心设计的项目,请包括这些在游戏开发中经常使用的主题。
另一个好主意是浏览这些项目并提供评论(如果您还没有这样做)。在项目中容易找到的地方包含项目的描述和目标。
总的来说,您应该尝试使用具有上述领域特征的示例,并表明您知道如何构建大型编程项目。当您拥有良好的项目布局时,游戏开发会更加顺利。
引用一位老教授的话说:第一次编写项目时,你的方法是错误的。第二次你以一种有效但无效的方式来做(很难修改,效率不高)。第三次对项目进行编程时,这是可以接受的。
Include the best programming examples that you have.
C++ is used in the development of a lot of games so try to use that language.
You can use other languages as well through if they show off your programing experience a certain topic.
If you have any well polish projects that involve computer graphics, AI, physics, or multithreading include those since are topics that are used very often in game development.
Another good idea is to go through these projects and provide comments if you haven't already. Include a description of the project and the goals somewhere easy to find in the project.
Overall you should try to use examples that feature the above areas and that show that you know how to structure a large programming project. Game development is alot smoother when you have a good project layout.
To quote an old professor: The first time you program a project you do it the wrong way. The second time you do it in a way that works but is not effective (difficult to modify, not efficent). The third time you program the project it's acceptable.