"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > C++ : l'obsession de la vitesse dans l'industrie du jeu vidéo

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

Publié le 2024-08-01
Parcourir:986

C   : speed obsession in the game industry

Quand avons-nous vraiment besoin de vitesse

C est devenu il y a 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 beaucoup plus demandé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.

Est-ce que C est le seul choix ?

Il est généralement admis que les langages de garbage collection, tels que Java ou C#, sont plus lents que le C et ne répondent pas vraiment aux exigences de calculs lourds. Ceci n'est bien sûr pas vrai.
Le 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 à celle de 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, des langages dynamiques aussi intéressants que Clojure et Groovy sont implémentés, 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 (même s'ils sont encore principalement implémentés sur 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 complexité constante sur Python est plus préférable qu'une fonction avec 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 du code C.

Se soucier du jeu, pas de la langue

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

Déclaration de sortie Cet article est reproduit sur : https://dev.to/taqmuraz/speed-obsession-in-the-game-industry-1p4i?1 En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3