hello friends! new(ish)!

Game programming: Difference between revisions

From InstallGentoo Wiki v2
Jump to navigation Jump to search
>Davis
No edit summary
>Biohazard
(to be added onto, organized, + more links to general programming technique stuff)
Line 1: Line 1:
I will fill in this page later if someone else doesn't.
I will fill in this page later if someone else doesn't.
'''i dont think this page is necessairy, but go right ahead.''' --[[User:Bisasam|Bisasam]] ([[User talk:Bisasam|talk]]) 18:30, 27 January 2014 (EST)
There is merit to this. It's sometimes difficult to find the right libraries or resources required for video games. Though I doubt this will be very useful, it's still necessary. --[[User:Fontain|Fontain]] ([[User talk:Fontain|talk]]) 20:18, 27 January 2014 (EST)
There is merit to this. It's sometimes difficult to find the right libraries or resources required for video games. Though I doubt this will be very useful, it's still necessary. --[[User:Fontain|Fontain]] ([[User talk:Fontain|talk]]) 20:18, 27 January 2014 (EST)


== Basics ==
== Basics ==
Game programming is complicated. It can also be a great way to practice your language. Before you even think about any serious game/multimedia programming, you should know the language that you're going to use to a decent extent.
Aside from the programming itself, a good game needs decent graphics, sound/music, and story. Just having "ideas" for your game isn't good enough, but can be a good start.
Another important point: Making your own "engine". Don't. Or at least, don't in the way that you think you're going to: Don't try to visualize the perfect game and then make an engine around it. An engine, especially for someone that programs unprofessionally, is something that is built on, and added to. The features of an engine should be able to apply to many different aspects - they should be reusable. [Will add some good links about engines in general later]


== APIs/Libraries ==
== APIs/Libraries ==
/g/'s general recommendations:


/g/ general recommendations:
Pleb tier: "Game Engines" such as Unity/UDK/CryEngine. Seriously, don't use these. It is just a waste of your time when you could be learning programming and actual game development.


Pleb tier: Unity/UDK/CryEngine. Seriously, don't use these. It is just a waste of your time when you could be learning programming and actual game development.
Java: JmonkeyEngine. BSD license. There is a myth that Java is too slow for games. This is entirely false. It was true in the early 2000s, but with modern techniques java code is as fast as native code. Don't listen to people who tell you otherwise, or just do a quick google search and see for yourself that java is not slow.<br>
>but muh buttcraft is laggy on my netbook, java must be slow<br>
Notch is a decent programmer, but took some shortcuts in optimization.


Java: JmonkeyEngine. BSD license. There is a myth that java is too slow for games. This is entirely false. It was true in the early 2000's but with modern techniques java code is as fast as native code. Don't listen to people who tell you otherwise, or just do a quick google search and see for yourself that java is not slow.
'''C++ graphics libraries:''' <br>
>but muh buttcraft is laggy on my netbook, java must be slow
'''2D''': [http://www.sfml-dev.org/ SFML] <br>
Notch is a decent programmer, but took some shortcuts in optimization.
'''3D:''' [http://www.ogre3d.org/ Ogre3D], [http://irrlicht.sourceforge.net/ Irrlicht]
 
'''Physics Engines:'''<br>
[http://bulletphysics.org/wordpress/ Bullet Physics Library] <br>
[http://box2d.org/ Box2D]


C++: Ogre3D
OpenGL-based libraries are suggested as it has the capability of being multi-platform, unlike DirectX (ex: Direct3D).


C#: Don't use c# for game development
C#: C++ is generally suggested over C#, but C# is by no means ''bad''. Especially if you're a beginner, C# lets you not have to deal with as much memory management as C++, and C# has helpful frameworks available.
Although C# can be a convenient way to make applications that assist in your overall game, ex: a Mapper


Python: PyGame
Python: PyGame


All of the libraries listed above are licensed under free licenses.  
Note that many scripting languages can be used on top of the base engine, ex: AngelScript
 
All of the libraries listed above are licensed under free licenses.
 


Graphics, Physics, Audio, Networking, etc.
Graphics, Physics, Audio, Networking, etc.

Revision as of 01:55, 29 January 2014

I will fill in this page later if someone else doesn't. There is merit to this. It's sometimes difficult to find the right libraries or resources required for video games. Though I doubt this will be very useful, it's still necessary. --Fontain (talk) 20:18, 27 January 2014 (EST)

Basics

Game programming is complicated. It can also be a great way to practice your language. Before you even think about any serious game/multimedia programming, you should know the language that you're going to use to a decent extent.

Aside from the programming itself, a good game needs decent graphics, sound/music, and story. Just having "ideas" for your game isn't good enough, but can be a good start.

Another important point: Making your own "engine". Don't. Or at least, don't in the way that you think you're going to: Don't try to visualize the perfect game and then make an engine around it. An engine, especially for someone that programs unprofessionally, is something that is built on, and added to. The features of an engine should be able to apply to many different aspects - they should be reusable. [Will add some good links about engines in general later]


APIs/Libraries

/g/'s general recommendations:

Pleb tier: "Game Engines" such as Unity/UDK/CryEngine. Seriously, don't use these. It is just a waste of your time when you could be learning programming and actual game development.

Java: JmonkeyEngine. BSD license. There is a myth that Java is too slow for games. This is entirely false. It was true in the early 2000s, but with modern techniques java code is as fast as native code. Don't listen to people who tell you otherwise, or just do a quick google search and see for yourself that java is not slow.
>but muh buttcraft is laggy on my netbook, java must be slow
Notch is a decent programmer, but took some shortcuts in optimization.

C++ graphics libraries:
2D: SFML
3D: Ogre3D, Irrlicht

Physics Engines:
Bullet Physics Library
Box2D

OpenGL-based libraries are suggested as it has the capability of being multi-platform, unlike DirectX (ex: Direct3D).

C#: C++ is generally suggested over C#, but C# is by no means bad. Especially if you're a beginner, C# lets you not have to deal with as much memory management as C++, and C# has helpful frameworks available. Although C# can be a convenient way to make applications that assist in your overall game, ex: a Mapper

Python: PyGame

Note that many scripting languages can be used on top of the base engine, ex: AngelScript

All of the libraries listed above are licensed under free licenses.


Graphics, Physics, Audio, Networking, etc.

More Resources