![]() |
SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997 |
![]() |
#1 |
Admiral
![]() Join Date: Jun 2005
Posts: 2,014
Downloads: 26
Uploads: 0
|
![]()
Learning to Program.
If you want to be a great game programmer, the first thing you must excel at is math. Not just adding and subtracting. I'm talking about Linear Algebra, Geometric Functions, Physics, etc. If you aren't good at math, you might want to re-think your desire. Or, if you still want to work in the game industry, consider being a designer or graphics artist (right now, the ratio of programmers to artists for most major games is anywhere from 1:5 to 1:30). Knowing math is a good first step, but there's a lot more to it. You will also need to have mastery of: • Computer Languages: Notice I didn't use the singular term. You should master several languages to understand the nuances of each. Sure, you'll probably want to focus on C++ or C#, but should also learn dynamic languages like Python, Lua, or Ruby. • Data structures: Not just knowing how to use STL or System.Collections.Generic, but also what _kind_ of structure to use in a specific situation • Floating Point Numbers: This may seem strange, but most programmers don't _really_ understand floating point numbers (quick: can you describe the difference between "accuracy" and "precision" to your non-technical next-door neighbor?). I recommend reading David Goldberg's "What Every Computer Scientist Should Know About Floating-Point Arithmetic". • Programming Tools: Learn how to master every tool you have. Debuggers, profilers, editors, linkers, etc. These things will save you hours upon hours of heartache. And while you're at it...use the latest stuff. If you're still using Visual Studio 6, stop. Technology moves fast, and you're not doing yourself any favors by using 7-year old tools to write a modern game. If you can't afford high-end versions of Visual Studio, consider using Visual Studio Express, which uses the same optimizing C++ compiler (or CLR) that is in the full version. Also, learn how to use the powerful tools that come for free in the DirectX SDK like PIX. • Computer Architectures: As more and more machines move to dual-core (or more) configurations, you need to be much more aware of the nuances of each type of CPU. Yes, the compiler does a lot of the hard work for you, but you really can't master the craft of writing high-performance games without knowing the CPU. If you're writing managed code, you have the additional task of needing to know the CLR inside and out. Simple huh? |
![]() |
![]() |
|
|