Développement de jeux en C uniquement. C'est possible? [fermé]


18

Je suis un étudiant de première année en Inde et je veux faire un petit jeu dans le cadre de ce projet de semestre.

Je suis assez bon en C et je l'apprends rapidement mais je voulais demander si le développement d'un jeu entièrement en C (pas de C ++ ou C #) j'adorerais les utiliser mais pour les projets collégiaux, nous avons des exigences strictes d'utiliser uniquement C.

Ce que je recherche, c'est un simple jeu de conduite en vue de dessus. Il n'aura rien d'extraordinaire et même les choses visuelles seront alimentées par de simples personnages. Par exemple, une voiture contrôlée par l'utilisateur peut être représentée par des ▓ et des bords de route par des séries de |. Qu'est-ce que tu penses?



8
SDL est écrit en C. OpenGL est C. De quoi avez-vous besoin de plus?
The Communist Duck

2
De plus, Quake est tout fait en C.
The Communist Duck

Faites-vous plaisir
'.

1
RollerCoaster Tycoon a été fait presque en assemblage pur, alors pourquoi pas?
Ramon Zarazua B.16

Réponses:


23

L'écriture de jeux en C est possible. Par exemple, Quake II est écrit uniquement en C, donc l'écriture d'autres jeux en C ne devrait pas poser de problème. Cela peut être le meilleur choix si vous êtes plus compétent et plus à l'aise en C qu'en C ++.


2
@Ishan Sharma: En fait, beaucoup de développement de jeu (moteur) est toujours en C, ou du moins très C: ish C ++. Rien ne dit que votre jeu C ++ sera meilleur (ou même mieux écrit) simplement parce que c'est C ++.
annulé le

6
@void: Cela n'est vrai que si le programmeur en question n'a aucune idée de la façon d'utiliser efficacement C ++. Les programmes C ++ écrits là où l'auteur a une compréhension de base de l'orientation des objets sont beaucoup plus sûrs et fiables que les programmes C équivalents.
DeadMG

8
@DeadMG [citation nécessaire]
Bob Somers

6
@Bob Somers: Facile. Comparez std::stringavec char*. std::stringnettoie toujours sa propre mémoire dans n'importe quelle situation, alloue la bonne quantité à chaque fois. char*, vous pourriez oublier de libérer, de doubler ou de ne pas allouer suffisamment de mémoire. Oups. La logique de base dit que les programmes C ++ sont meilleurs et plus sécurisés que les programmes C.
DeadMG

12
@DeadMG Un bon programmeur peut écrire du bon code sécurisé dans n'importe quelle langue. Inversement, un mauvais programmeur peut écrire du code affreux et non sécurisé dans n'importe quelle langue. Un pauvre charpentier blâme ses outils.
Bob Somers

11

Je travaille sur une base de code MMORPG AAA qui est du pur C, alors oui.


5
Je suppose que cela vous met à Cryptic. Utilisez-vous un langage de script quelconque?
Dan Olson

3
Nous avons un langage d'expression interne utilisé par les concepteurs pour pratiquement tout, et nous utilisons un mélange de Python et de Lua pour certaines choses (traitement hors ligne, réduction de la carte sur le jeu DBS pour les statistiques), mais pas de vrai langage de script dans le jeu lui-même.
coderanger

6

Oui, c'est parfaitement possible. De nombreuses API au niveau du système d'exploitation comme POSIX et Windows, DirectX et OpenGL ont toutes des interfaces compatibles C.


6

Fabien Sanglard a écrit un article sur son moteur 3D en C. Sur reddit, cet article a suscité un débat intéressant.

Les langues ne sont que des outils ... Alors utilisez-les judicieusement. Pour créer un bon jeu, il peut être plus facile d'utiliser XNA ou Unity3D. Maîtriser le C est une bonne première étape, mais il faut apprendre le C ++, D, python, lua ... Le C ++ est un langage très difficile. Alors, utilisez-le soigneusement.


3

C est idéal pour le développement de jeux.

Je travaille sur un jeu de plateforme 3D, et je n'ai jamais eu de problème avec le langage. Les seuls problèmes sont la détection de collision et l'ombrage, je n'en sais rien, ils se produiraient toujours dans une autre langue.

En fait, je trouve cela beaucoup plus facile que des langages comme C # et Java. J'itère toujours sur les entités en utilisant des pointeurs ( un exemple de mon code ), et j'aifread gagné beaucoup de temps à faire le chargeur de carte.

Si vous souhaitez une orientation et une modularité des objets, vous pouvez créer des structures de pointeurs de fonction.


1

Sans aucun doute. De nombreuses bibliothèques utiles au développement de jeux (telles que SDL, PhysFS, etc ...) ont des API C, ce qui aide beaucoup.

Vous pouvez envisager d'intégrer un langage de script tel que lua si vous souhaitez effectuer une programmation extensible de haut niveau. Beaucoup de gens commencent à voir l'intérêt de la programmation d'un framework C qui utilise lua pour des choses comme l'IA, les événements, etc.

Bonne chance.


1

La réponse simple à cette question est: vous pouvez faire un jeu basé sur du texte simple comme celui-ci dans tous les langages de programmation. Même assembleur pascal, basique ou x86:]

(et n'ont besoin de rien d'autre)


0

Oui, c'est possible, mais ce n'est peut-être pas la solution la plus souhaitable. Un certain nombre de personnes reconnaissent de nos jours que le C et le C ++ ne sont pas tous les deux idéaux pour un certain nombre de tâches, et la logique de jeu de haut niveau tombe souvent dans cette catégorie.

Si vous insistez sur C au lieu de C ++ (ce qui n'a aucun sens pour moi, mais pour chacun d'eux), il est préférable d'utiliser Lua en conjonction avec C.

Pour vos projets collégiaux qui nécessitent C, ce ne sera pas une option, mais pour les projets de temps libre, ce serait un bon moyen d'apprendre.


Lua est bon au moment du développement, mais avant la sortie, tout devrait être porté dans une langue native pour de meilleures performances.
Triang3l

@ Triang3l Je ne suis pas du tout d'accord. Ce que vous décrivez est une optimisation prématurée. L'utilisation d'une langue maternelle ne garantit PAS que votre code est plus rapide. La bonne façon de procéder consiste à profiler votre code, à trouver des goulots d'étranglement et à améliorer ce code. Il existe de nombreux exemples où les développeurs ont essayé d'écrire leur propre code C pour remplacer le code Java et le code C est devenu beaucoup plus lent, ou où les développeurs ont essayé de remplacer le code C par du code d'assemblage beaucoup plus lent. Ne sous-estimez pas les développeurs d'un langage de haut niveau et l'environnement d'exécution de celui-ci.
user1657170

0

Bien sûr vous pouvez. De nombreux jeux ont été programmés en C (DOOM me vient à l'esprit). SDL est une bibliothèque de programmation de jeux écrite en C.

Bien sûr, cela peut être un peu plus difficile que d'utiliser C ++ pour un gros projet, mais c'est possible.


0

Je pense qu'il est possible de faire un jeu c complet. J'ai créé un jeu (qui est similaire à «l'impact spatial» du nokia 1110 mobile) dans mon projet du 2ème semestre en utilisant le compilateur turbo c. Je pense que vous pouvez essayer de cette façon (en tant qu'étudiant de première année) sans en connaître d'autres.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.