Maison > Java > javaDidacticiel > le corps du texte

C++ : l'obsession de la vitesse dans l'industrie du jeu vidéo

王林
Libérer: 2024-07-27 18:31:42
original
542 Les gens l'ont consulté

C++ : speed obsession in the game industry

Quand avons-nous vraiment besoin de vitesse

C++ est devenu depuis longtemps un langage standard pour les jeux et les logiciels graphiques. Et il y avait une vraie raison : travailler avec les graphiques en temps réel et la physique nécessite des performances élevées. Traitement de la géométrie, gestion des tampons, calculs matriciels - tout cela prend du temps.
Mais qu’en est-il de la logique de haut niveau ? Mécaniques de jeu, interface utilisateur, gestion du stockage, requêtes réseau ? La stabilité et la sécurité y sont bien plus exigées que la vitesse.

Répartition des responsabilités

Nous pouvons implémenter des fonctions exigeantes en performances dans un langage compilé, tel que C++, et les appeler à partir d'un programme écrit dans un langage dynamique, tel que Python.
Mais, aujourd'hui, nous disposons déjà de bibliothèques bien documentées et faciles à utiliser pour Python (pygame, pyopengl, pyassimp, pybullet, numpy), qui sont implémentées principalement en C/C++ et fournissent des fonctions pour les calculs lourds, ou physique/graphique en particulier. Nous ne serons peut-être jamais confrontés à la nécessité de mettre en œuvre de telles bibliothèques par nous-mêmes.

Le C++ est-il le seul choix ?

Il est généralement admis que les langages de garbage collection, tels que Java ou C#, sont plus lents que C++ et ne répondent pas vraiment aux exigences de calculs lourds. Ce n'est bien sûr pas vrai.
C++ peut surpasser Java ou C# en termes de performances de 20 à 30 % dans certains cas particuliers, mais lorsqu'il s'agit d'abstractions d'exécution, telles que la répartition dynamique de fonctions, l'interaction des langages, les tâches asynchrones, la gestion de collections de textes ou de résumés, Java et C# affichent une efficacité bien supérieure à C++.
Nous pouvons également exécuter nos programmes Python sur le même moteur d'exécution avec Java ou C#, en utilisant Jython ou IronPython. Il apporte de nombreux avantages, tels que la mémoire partagée de récupération de place, le système de types et un accès facile aux bibliothèques C# ou Java dès la sortie de la boîte. Sur Java sont implémentés des langages dynamiques aussi intéressants que Clojure et Groovy, qui ont un accès complet à la bibliothèque de classes Java et partagent les avantages mentionnés précédemment.

Qu’est-ce qui influence réellement la performance ?

Aujourd’hui, les ordinateurs personnels sont beaucoup plus rapides qu’il y a 15 à 20 ans. Mais la plupart des programmes ou jeux de bureau ne fonctionnent pas aussi vite que prévu (bien qu’ils soient encore principalement implémentés en C/C++). Aujourd’hui, nous avons besoin de bons algorithmes et d’approches efficaces bien plus que la simple vitesse du langage. Une fonction avec une complexité constante sur Python est plus préférable qu'une fonction avec une complexité linéaire sur C. Peindre 100 arbres par 15 lignes de code Python est plus préférable que de peindre 500 arbres par 300 lignes de code C++.

Se soucier du jeu, pas de la langue

Ce n'est pas vraiment important, quelle langue vous utilisez, quand vous n'avez créé aucun jeu, n'est-ce pas ?
Créer un jeu en C++ est bien plus exigeant et épuisant que de faire la même chose en Python ou Ruby. Quand vous créeriez 1 jeu avec C++, vous créeriez 10 jeux avec Python. Quand vous feriez 5 jeux avec Python, ce serait 0 jeu avec C++.
Prenons soin des jeux et du plaisir, sinon à quoi ça sert ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!