Introduction
Bien avant de savoir si vous souhaitez un jeu ce jouant en solo ou multijoueur, sur le Web, une console de jeux ou sur Windows, une question cruciale se pose pour les futurs développeurs de jeux : Dans quel langage de programmation doit-on programmer un jeu ? Malheureusement, il n'y a pas de solution universelle !
Affichage
Pour commencer, l'affichage, est une étape cruciale du jeux, car la première impression du joueur réside souvent dans son apparence. L'affichage est très régulièrement un tracas, car si vos besoins deviennent trop complexe, vous devrez vous rapprocher du matériel, et donc, par le fait même, vos jeux deviendront de moins en moins portable. On peut considérer, que dépendamment de votre cible, vous aurez à faire les choix suivants :
- Jeux pour le Web : Le langage de prédilection est soit ActionScript avec son Flash ou JavaScript.
- Jeux pour Windows : Vous devrez probablement le développer en langage de programmation C (Visual C++) avec DirectX ou OpenGL. Ensuite vous devrez vous poser la question, souhaitez-vous améliorer les effets spéciaux encore plus à l'aide du CUDA de NVidia, le PhysX de Ageia ou l'AMD (ATI) avec OpenCL.
- Jeux pour Linux : La solution la plus sûre demeure encore SDL, mais l'OpenGL offre plus de possibilité.
- Jeux multiplateformes : Le langage de programmation Python peut s'avérer un choix intéressant avec son PyCuda (CUDA pour Python) et PyOpenCL (OpenCL pour Python).
- Jeux PS3 : Il existe uniquement deux possibilités soit le Cell SDK ou Sony SDK.
- Jeux PS4 : Il faut soit utiliser la solution Sony ou la solution open Source PS4 SDK (PlayStation 4 SDK).
- Jeux XBox : Les solutions de Microsoft avec son Microsoft XNA demeure la voie la plus intéressante.
- Nintendo DS : Le langage de programmation Pascal avec le «FPC 4 NDS» (Free Pascal pour la Nintendo DS) demeure la solution la plus facile.
Bibliothèques mathématique
L'affichage et les effets spéciaux, c'est une chose, mais la logique du jeux nécessite très souvent des bibliothèques mathématiques de gros calibre. Il faudra probablement choisir parmi les bibliothèques mathématiques suivantes :
- cuFFT : La bibliothèque de transformation rapide de Fourier.
- cuBLAS : La bibliothèque complète BLAS.
- cuSPARSE : La bibliothèque de matrice Sparse.
- cuRAND : La bibliothèque RNG (abréviation Random Number Generation).
- NPP : Performance primitives pour les images et processeur vidéo
- Thrust : Algorithme de gabarits parallèle et structures de données
- math.h : La bibliothèque de base du langage de programmation C.