Question programmation de (moteur de) jeu : C ou C++ ?

OP
BA

baelxx

il y a 8 mois

Salut j'espere que mon topic va passer à travers la politique actuelle,

Je me pose un dilemme en ce moment, c'est de choisir entre le C et le C++ pour un moteur. En gros j'ai travaillé à mes heures perdues sur le moteur de jeu PyGame en python et je compte faire passer toute mon avancée sur du C.
Si je veux passer sur du C, c'est parce que le but de ce projet c'est pas vraiment d'obtenir un jeu mais juste de me faire plaisir à programmer ce que je veux dans le domaine, de l'isométrie, de la gestion de tour par tour etc. Et du C parce que j'en ai un peu fait à l'école, j'ai bien aimé, tandis que le C++ je ne connais pas du tout.

Je viens de télécharger SDL comme base de moteur pour reprendre PyGame, et je me demande encore si pour du Game Dev il vaut pas mieux que je passe sur du C++ ? Réflexion très simple, mais la POO c'est quand même très cool pour les JVs et les Structures du C ne permettent pas vraiment d'en faire j'ai l'impression.

Un avis ?

SG

StoneGiant

il y a 8 mois

Je suis pas compétent dans ce domaine, mais je te UP.

C3

Covid30

il y a 8 mois

Si c'est la partie Algo/rendering qui t'interesse osef du c++.

Tu vas perdre plus de temps a apprendre proprement le c++ qu'a dev ton projet.

OP
BA

baelxx

il y a 8 mois


Si c'est la partie Algo/rendering qui t'interesse osef du c++.

Tu vas perdre plus de temps a apprendre proprement le c++ qu'a dev ton projet.

Super c'est exactement de ce type de reponse dont j'avais besoin khey merci beaucoup.
C'est bien pour ça que j'aime le C en plus donc tu me rassures dans mon choix, j'ai juste eu une periode de doute..

50

50volt

il y a 8 mois

En prout

DB

DariusBeyblade3

il y a 8 mois

Go Godot

PM

PoemeMaudit

il y a 8 mois

C++ SDL2, pour faire de l'orienté objet, primordial pour faire son moteur de jeu.

A2

aigre20

il y a 8 mois

C++ largement, t'apprendras pas mal de choses avancées ; métaprogrammation, POO, ECS, rvalue/lvalue/xvalue etc. regarde des conférences Back To Basics C++23 / C++20 https://image.noelshack.com/fichiers/2024/28/1/1720475705-guette.png

C3

Covid30

il y a 8 mois

"Super c'est exactement de ce type de reponse dont j'avais besoin khey merci beaucoup.
C'est bien pour ça que j'aime le C en plus donc tu me rassures dans mon choix, j'ai juste eu une periode de doute.."

De rien khey.
Ne jamais oublier que les langages de prog ne sont que des outils.

OP
BA

baelxx

il y a 8 mois


C++ SDL2, pour faire de l'orienté objet, primordial pour faire son moteur de jeu.

Ça vaut le coup d'apprendre le langage en amont ? Sachant que je suis déjà qu'amateur du C

PM

PoemeMaudit

il y a 8 mois


Si c'est la partie Algo/rendering qui t'interesse osef du c++.

Tu vas perdre plus de temps a apprendre proprement le c++ qu'a dev ton projet.

Mais bien sûr que non, si tu veux faire du Game Dev, ne pas utiliser la POO c'est stupide

Rien que pouvoir faire des classes héritées pour faire des hierarchies de personnages c'est idéal

KL

Kakoo_Le_Kawaii

il y a 8 mois

C++23 je valide

DO

Douzeur

il y a 8 mois

C++ il y à sûrement beaucoup plus de documentations pour les moteurs de jeu, vu que c'est le standard

PM

PoemeMaudit

il y a 8 mois

Ça vaut le coup d'apprendre le langage en amont ? Sachant que je suis déjà qu'amateur du C

Faut vraiment te mettre dans le paradigme orienté objet

Exemple tu fais une classe entité qui possèfe une SDL_Texture*, elle represente tous les objets du jeu et tu mets une methode void afficher(int x, int y) qui affiche

Ensuite tous les elements du jeu sont des entités particuliere : tu fais une classe Personnage qui hérite de Entité. Une classe Joueur qui hérite de personnage. Etc.

OP
BA

baelxx

il y a 8 mois


C++ largement, t'apprendras pas mal de choses avancées ; métaprogrammation, POO, ECS, rvalue/lvalue/xvalue etc. regarde des conférences Back To Basics C++23 / C++20 https://image.noelshack.com/fichiers/2024/28/1/1720475705-guette.png

Ce sont des sujets que l'on rencontre forcement en utilisant le langage ? (Je connais la Poo et le Ecs)

A2

Ass2Trefle

il y a 8 mois

Mais bien sûr que non, si tu veux faire du Game Dev, ne pas utiliser la POO c'est stupide

Rien que pouvoir faire des classes héritées pour faire des hierarchies de personnages c'est idéal

Les structures existent en C non ?

PM

PoemeMaudit

il y a 8 mois

Les structures existent en C non ?

Oui mais c'est largement mieux de gérer l'héritage, les méthodes, les private/public, etc

FI

fiondegerminal

il y a 8 mois

c

NA

Nalooooooh

il y a 8 mois

C++

FI

fiondegerminal

il y a 8 mois

Faut vraiment te mettre dans le paradigme orienté objet

Exemple tu fais une classe entité qui possèfe une SDL_Texture*, elle represente tous les objets du jeu et tu mets une methode void afficher(int x, int y) qui affiche

Ensuite tous les elements du jeu sont des entités particuliere : tu fais une classe Personnage qui hérite de Entité. Une classe Joueur qui hérite de personnage. Etc.

n'écoute pas cet hurluberlu échappé de 2009

MA

macaronbeige

il y a 8 mois

Rust.

PM

PoemeMaudit

il y a 8 mois

n'écoute pas cet hurluberlu échappé de 2009

tu viens de lui proposer de programmer en C, sois digne

Toute maniere ton commentaire est con car stricto sensu, programmer un moteur de jeu en C/C++ c'est déjà " être coincé en 2009 "

EJ

Ejaculandro

il y a 8 mois

C++ obligatoirement un Moteur c'est un projet enorme, faut des classes des POO https://image.noelshack.com/fichiers/2018/26/7/1530476579-reupjesus.png

OP
BA

baelxx

il y a 8 mois

Faut vraiment te mettre dans le paradigme orienté objet

Exemple tu fais une classe entité qui possèfe une SDL_Texture*, elle represente tous les objets du jeu et tu mets une methode void afficher(int x, int y) qui affiche

Ensuite tous les elements du jeu sont des entités particuliere : tu fais une classe Personnage qui hérite de Entité. Une classe Joueur qui hérite de personnage. Etc.

Est-ce qu'il y a quand meme une facilité à prendre en main le C++ à partir de connaissance du C ?

AL

Alvearth

il y a 8 mois

n'écoute pas cet hurluberlu échappé de 2009

T'es dur il a resorti le tuto que j'avais suivi pour dev mon tout premier jeu en javafx il y a 5 ans https://image.noelshack.com/fichiers/2018/13/4/1522325846-jesusopti.png

EJ

Ejaculandro

il y a 8 mois

sinon a part si tu veux faire un moteur ultra puissant révolutionnaire comme CryEngine, programmer en C++ sera difficile y'a des alternatives moins compliquées, mais aussi moins puissantes https://image.noelshack.com/fichiers/2018/26/7/1530476579-reupjesus.png

PM

PoemeMaudit

il y a 8 mois

Est-ce qu'il y a quand meme une facilité à prendre en main le C++ à partir de connaissance du C ?

Oui les langages se ressemblent beaucoup, c'est au niveau de la philosophie de langage que ça diffère

EJ

Ejaculandro

il y a 8 mois

le taré qui a programmé le jeu RollerCoaster Tycoon a complètement tout fait en assembleur https://image.noelshack.com/fichiers/2018/26/7/1530476579-reupjesus.png

EJ

Ejaculandro

il y a 8 mois

sinon perso je te déconseille de commencer avec un moteur, c'est super complexe et demandera des tonnes de math, des quaternions, des matrices..... commence avec un jeu sur Unity en C#, c'est plus fun de faire un jeu https://image.noelshack.com/fichiers/2018/26/7/1530476579-reupjesus.png

PE

PigeonElite

il y a 8 mois

C'est à peu près la même en terme d'apprentissage, pour faire simple le C++ c'est le C avec + de choses, c'est moins primitif.
Mais le C pur n'a plus trop d'intérêt pour faire des jeux (et n'a globalement plus d'intérêt pour grand chose, sauf si fait des conneries comme de l'embarqué)
SDL c'est du C, mais mais la majorités des moteurs/libs de rendus sont fait en C++

PE

PigeonElite

il y a 8 mois


sinon perso je te déconseille de commencer avec un moteur, c'est super complexe et demandera des tonnes de math, des quaternions, des matrices..... commence avec un jeu sur Unity en C#, c'est plus fun de faire un jeu https://image.noelshack.com/fichiers/2018/26/7/1530476579-reupjesus.png

Ou Unreal si l'OP veut faire du C++ (mais oui si le but c'est vraiment de faire un jeu faut oublier les libs bas niveau)

N1

Nyquist1

il y a 8 mois

Le faire en C c'est se faire du mal selon moi, ce sera déjà beaucoup plus simple avec la POO en C++

Ceci dit le C++ moderne c'est très vaste, pas besoin de tout, apprend déjà juste la POO pour rester proche du C ! Passe aux autre concepts C++ petit à petit

Sinon je ne sais pas quelle est ton expérience en programmation, ton niveau d'étude, etc... Mais comme l'a dit plusieurs kheys la programmation d'un moteur de jeu est une tâche difficile Surtout si tu veux le faire from scratch

OP
BA

baelxx

il y a 8 mois


sinon a part si tu veux faire un moteur ultra puissant révolutionnaire comme CryEngine, programmer en C++ sera difficile y'a des alternatives moins compliquées, mais aussi moins puissantes https://image.noelshack.com/fichiers/2018/26/7/1530476579-reupjesus.png

c'est justement pas du tout ce que je vise si tu avais bien lu mon premier post

X-

Xiaomied_--

il y a 8 mois


Si c'est la partie Algo/rendering qui t'interesse osef du c++.

Tu vas perdre plus de temps a apprendre proprement le c++ qu'a dev ton projet.

OP
BA

baelxx

il y a 8 mois


Le faire en C c'est se faire du mal selon moi, ce sera déjà beaucoup plus simple avec la POO en C++

Ceci dit le C++ moderne c'est très vaste, pas besoin de tout, apprend déjà juste la POO pour rester proche du C ! Passe aux autre concepts C++ petit à petit

Sinon je ne sais pas quelle est ton expérience en programmation, ton niveau d'étude, etc... Mais comme l'a dit plusieurs kheys la programmation d'un moteur de jeu est une tâche difficile Surtout si tu veux le faire from scratch

Nan pas du tout vous n'avez pas vraiment lu

Je pars de SDL je ne fais rien from scratch à proprement parler, en fait étant donné que j'ai expliqué que j'avais commencé le projet en Python intialement, je partais du principe que vous comprendriez que je sais déjà ce qu'est la POO, j'en ai également fait en Java. C'est pas la POO qui me fait peur, ce que je veux savoir c'est si plutôt que de faire du C, autant faire « d'une pierre deux coups » et faire du C++ si les langages se ressemblent, mais ça j'en sais rien, c'est le but de ce topic