Game programming

I would like to learn game programming. To give you experience, I am a programmer and I understand the concepts of programming and am very object oriented. I worked with languages ​​like php, javascript, flash, java and a bit of C ++. Now from my understanding, most of the game programming is done either in python or C ++. Now I have a few questions regarding where to get started in a real game, because I know this is a broad question.

  • I would like to be able to program cross-platform for games, so should I use opengl instead of directx or is there another alternative? Is using opengl instead of directx (or other attributes).

  • I would also like to know how to make graphics for these games. I saw applications there like Maya and 3ds max. Should I use one of these applications or are there other alternatives. In addition, which one is better suited for cross-platform and has a lighter learning curve for beginners.

  • Is there a good site to develop these games? I would like to do 3D development, I know that it is best to start with 2d, but I like to do what I want to do :). I have had on gamedev.net, but there the site can be a little confusing for navigation sometimes.

  • Any good books that could recommend to anyone, or any other resources, would be great. I would like to have a good place to start playing with 3D games before I delve into a more advanced development.

Thanks for any answers.

+4
source share
8 answers

OK! Four questions :)

1) OpenGL and DirectX are both good. OpenGL is properly cross-platform and runs on phones. DirectX offers some advanced features, but you can also get the job done.

2) Maya and 3ds are both 3D tools. You can use them, but you can also go a long way with 2D materials, especially in games with phones.

3) The very first place to search is here . Quick introduction, showing animation of 2D shapes. Gives you all the very basics that will apply whether you are developing 2d or 3d. Obviously, starting with 3d is difficult because you need to know a lot more triggers.

4) A free game engine for 3D games is the Quake engine ( here ), which is simple enough to handle it, but also includes many additional features.

+6
source

1) OpenGL if you want to use a cross platform. It is also associated with other cross-platform languages, such as Java, if you ever want to step back from C ++ for a given project.

EDIT: I also mentioned that often for a new designer / developers you will think that cross-platform is the holy grail. Is not. Your most important goal is to make the game SELL, period, on the platform (as defined in your marketing research). And if it really is for sale, do not worry, you can (or can find) the time and financial support for its port. Do not burn in your first project due to minor issues. If you remain very interested in cross-platform, consider C # .NET / Mono / Unity as possible options.

2) WARNING: Do not be blissful in creating assets for games on your own. I have always been a pretty artistic person, but I am a game developer and a developer in the first place. It is NOT easy to produce assets of any reasonable level of quality, completely eliminating all the technical problems associated with this. I heard from other very talented indie developers (coding and art critic) who were unable to implement projects because they spent too much time on artwork. They had to learn tools and techniques. This is a completely different profession, do not underestimate it. I highly recommend that you focus on development and find a partner for the art / asset side. If you want to do the concept yourself, that's fine.

3) Gamedev.net has been working for many, many years and is probably your best resource. I would adhere to this until you begin to understand things - HARD game programming, and Rome was not built in one day. There are various others such as forums.indiegamer.com if you are indie (or even if not). EDIT: GPWiki is another great resource.

4) There are thousands of good books. It very often depends on your language. The Black Art books for game programming are great, like all Programming Gems (Gems, GPU Graphics, you name it).

+4
source

For question number 2. These are excellent programs for 3D-modeling, but very expensive. A blender is a good free alternative.

+3
source

If you make 3D games, C ++ is the way to go. C ++ will run faster and will probably be most familiar to you in your object-oriented and Java experience. Almost all modern computer games are written in C ++ (I think, Half-Life 2, BioShock, etc.).

DirectX is good if you want to program for Windows or Xbox, but since you said you want to program cross-platform, OpenGL is the way to go. It is less supported by video cards, but it will work on PC, Linux, Mac, as well as on phones, etc.

Regarding 3D tools, I agree with schwiz. Before investing a few thousand dollars in a program like Maya or 3DS max, check out Blender . It is also surprisingly powerful.

I think a great place to play games is to modify an existing game so that you can understand how the game engines work, as well as get some 3D modeling, etc. under your belt. I can’t think of a better game engine to modify besides the Valve Source Engine (HL2, TF2, Portal and Left 4 Dead, all this works, and I think that the SDK is available for free, although even if you hadn’t just needed it buy Half-Life 2). In addition, Source has a very active modding community that could help,

+1
source

Also check out the GameDev wiki .

+1
source

Maya and 3ds Max are Autodesk’s expensive 3D modeling tools. If you are looking for a free alternative to help you get started, you can try Blender, which is a cross platform.

The free 3d graphics engine is often used by Ogre3d . His native language is c / C ++, but has shells for other available languages. Being a graphics engine, Ogre3D does not process anything you need to play, for example, sound, network, physics (collision) or ai. Information on third-party libraries to handle most of this (working well with Ogre3D) can be found on their forums.

+1
source

Dark GDK is also a good start.

0
source

Think about which platform you want to configure before starting. C ++ is quite universal, but a developer kit is required to develop a console in C ++ (for example, for PS3 and Xbox). Sony kit is easy to get, but not cheap. The Microsoft suite is REALLY not cheap, and they will not sell it to you unless you have an established presence in the gaming industry. (read: at least one published title). It's kind of a chicken egg problem, but that's life. It seems that the goal is to prevent the inevitable flow of queries from fans who cannot distinguish the matrix from the tensor.

If you are interested in developing Windows / Xbox / WinPhone7, consider Microsoft XNA . It is an efficiently managed wrapper around DirectX. Officially, you need to develop in C #, but you could include managed C ++ in your project, which allowed you to create a more platform-agnostic code base that could be reused for other environments.

If you plan on targeting desktop computers and want everything compatible with Linux and Windows, OpenGL is the way that is supported in both environments.

0
source

All Articles