Jeu C++ besoin de conseils

RipKentaro
2022-11-20 00:52:12

Voilà un peu comment s'articule ma classe game.
https://image.noelshack.com/fichiers/2022/46/7/1668901859-image.png
J'ai envie de coder le déroulement de la partie (en fonction de la map, quelle wave apparaît etc).
Quelle serait la meilleure approche ?

RipKentaro
2022-11-20 00:59:29

up

wiiuyes
2022-11-20 01:01:28

je sais pas explique nous en plus
c'est du tour par tour?
t'as déjà une gameloop?
t'as des classes? (player?)

RipKentaro
2022-11-20 01:05:17

Le 20 novembre 2022 à 01:01:28 wiiuYes a écrit :
je sais pas explique nous en plus
c'est du tour par tour?
t'as déjà une gameloop?
t'as des classes? (player?)

Je pense pas que ce soit hyper important, mais si tu veux c'est un Tower Defense que je code from scratch en C++.
Je veux simplement implémenter le déroulement d'une partie avec des conditions etc. Et pour ça j'aimerais savoir comment les gens feraient ça en pratique.
Ce que je compte faire c'est de créer une fonction pour chaque map que j'appellerai dans Update Game.

poulpejeu
2022-11-20 01:06:08

Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

RipKentaro
2022-11-20 01:08:03

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

poulpejeu
2022-11-20 01:09:46

Le 20 novembre 2022 à 01:08:03 :

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

Pas le choix donc je croyais tu faisais ça par plaisir :rire2:

RipKentaro
2022-11-20 01:10:26

Le 20 novembre 2022 à 01:09:46 poulpejeu a écrit :

Le 20 novembre 2022 à 01:08:03 :

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

Pas le choix donc je croyais tu faisais ça par plaisir :rire2:

Je fais aussi ça par plaisir. J'aime bien l'informatique :-(

ChatBoudin
2022-11-20 01:13:11

Le 20 novembre 2022 à 01:09:46 :

Le 20 novembre 2022 à 01:08:03 :

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

Pas le choix donc je croyais tu faisais ça par plaisir :rire2:

Je fais ça par plaisir c'est quoi ton souci ? T'es du genre à "pas te prendre la tête" dans ton temps libre c'est ça ?

Sinon pour l'op, aucune idée de comment on fait un moteur from scratch ahi
Mais bonne chance

ChatBoudin
2022-11-20 01:14:58

Le 20 novembre 2022 à 01:13:30 :

Le 20 novembre 2022 à 01:10:26 :

Le 20 novembre 2022 à 01:09:46 poulpejeu a écrit :

Le 20 novembre 2022 à 01:08:03 :

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

Pas le choix donc je croyais tu faisais ça par plaisir :rire2:

Je fais aussi ça par plaisir. J'aime bien l'informatique :-(

Tu passes à côté de ta vie si tu continues dans cette voie :hap:

Arrêté de dire des trucs de low iq sans déconner, t'es un malaise ambulant
Retourne regarder tes matches de foot et boire des bières au café du coin, c'est une vie tellement plus trépidante

RipKentaro
2022-11-20 01:19:20

Le 20 novembre 2022 à 01:13:11 ChatBoudin a écrit :

Le 20 novembre 2022 à 01:09:46 :

Le 20 novembre 2022 à 01:08:03 :

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

Pas le choix donc je croyais tu faisais ça par plaisir :rire2:

Je fais ça par plaisir c'est quoi ton souci ? T'es du genre à "pas te prendre la tête" dans ton temps libre c'est ça ?

Sinon pour l'op, aucune idée de comment on fait un moteur from scratch ahi
Mais bonne chance

J'ai déjà codé le moteur je t'envoie une vidéo

RipKentaro
2022-11-20 01:21:34

Le 20 novembre 2022 à 01:19:20 RipKentaro a écrit :

Le 20 novembre 2022 à 01:13:11 ChatBoudin a écrit :

Le 20 novembre 2022 à 01:09:46 :

Le 20 novembre 2022 à 01:08:03 :

Le 20 novembre 2022 à 01:06:08 poulpejeu a écrit :
Si tu éteignais ton ordinateur et tu sortais prendre l'air ? faire du dev mais :pf:
Resaissis toi khey la vie c'est pas ces merde :hap:

C'est un projet pour l'école. Je fais du dev oui mais aussi de la callisthénie. Et bon prendre l'air à 1h du mat :fou:

Pas le choix donc je croyais tu faisais ça par plaisir :rire2:

Je fais ça par plaisir c'est quoi ton souci ? T'es du genre à "pas te prendre la tête" dans ton temps libre c'est ça ?

Sinon pour l'op, aucune idée de comment on fait un moteur from scratch ahi
Mais bonne chance

J'ai déjà codé le moteur je t'envoie une vidéo

https://image.noelshack.com/fichiers/2022/46/7/1668903683-image.png

https://cdn.discordapp.com/attachments/325602732901662721/1043682286526271498/20221120_011947.mp4

wiiuyes
2022-11-20 01:25:16

T'as une gameloop
Dedans tu update a la fois tes tours qui ont un attribut cooldown pour check s'ils peuvent tirer sur les ennemies

Et tupdate ta liste d'ennemie que tu fais avancer a chaque tick

Utilise une variable deltatime pour que ça soit indépendant des fps

RipKentaro
2022-11-20 01:29:25

Le 20 novembre 2022 à 01:25:16 wiiuYes a écrit :

Parfait c'est ce que je comptais faire

Dedans tu update a la fois tes tours qui ont un attribut cooldown pour check s'ils peuvent tirer sur les ennemies

Ok c'est ce que j'ai fait (exemple en vidéo juste au dessus)

Et tupdate ta liste d'ennemie que tu fais avancer a chaque tick

Pareil

Utilise une variable deltatime pour que ça soit indépendant des fps

Mais du coup c'est mieux de coder le déroulement d'une partie en dehors de la fonction principale UpdateGame ? Ou bien tout écrire dedans ?
Perso je comptais faire une fonction différente en fonction de la map, vu que je compte mettre des ennemis différents dans les autres maps. Il faut aussi mettre les conditions d'arrivée pour certains boss etc.

wiiuyes
2022-11-20 01:34:01

[01:29:25] <RipKentaro>

Le 20 novembre 2022 à 01:25:16 wiiuYes a écrit :

Parfait c'est ce que je comptais faire

Dedans tu update a la fois tes tours qui ont un attribut cooldown pour check s'ils peuvent tirer sur les ennemies

Ok c'est ce que j'ai fait (exemple en vidéo juste au dessus)

Et tupdate ta liste d'ennemie que tu fais avancer a chaque tick

Pareil

Utilise une variable deltatime pour que ça soit indépendant des fps

Mais du coup c'est mieux de coder le déroulement d'une partie en dehors de la fonction principale UpdateGame ? Ou bien tout écrire dedans ?
Perso je comptais faire une fonction différente en fonction de la map, vu que je compte mettre des ennemis différents dans les autres maps. Il faut aussi mettre les conditions d'arrivée pour certains boss etc.

Tu fais une classe gameobject ou une interface iupdatable qui contient une méthode abstraite update(dt)
Tu crées tes entités de jeux updatable en héritant de celles ci dans une classe (Tower, Enemy) et tu codes le comportement de tes objets dans leurs fonctions update

La logique d'une entité reste dans sa classe, le updategame fait l'appel de update() sur toutes entités que t'as instancié et qui sont dans une liste

Ne hardcode pas en fonction de la map

Anorexyl
2022-11-20 01:36:04

Le 20 novembre 2022 à 01:29:25 :

Le 20 novembre 2022 à 01:25:16 wiiuYes a écrit :

Parfait c'est ce que je comptais faire

Dedans tu update a la fois tes tours qui ont un attribut cooldown pour check s'ils peuvent tirer sur les ennemies

Ok c'est ce que j'ai fait (exemple en vidéo juste au dessus)

Et tupdate ta liste d'ennemie que tu fais avancer a chaque tick

Pareil

Utilise une variable deltatime pour que ça soit indépendant des fps

Mais du coup c'est mieux de coder le déroulement d'une partie en dehors de la fonction principale UpdateGame ? Ou bien tout écrire dedans ?
Perso je comptais faire une fonction différente en fonction de la map, vu que je compte mettre des ennemis différents dans les autres maps. Il faut aussi mettre les conditions d'arrivée pour certains boss etc.

Fais un maximum de fonctions, les plus courtes et simples possible.
Donc oui fait une fonction (et même plusieurs) à part pour chaque scenario, puis que tu vas appeler à chaque tour de boucle dans ton UpdateGame() avec tes conditions.

RipKentaro
2022-11-20 01:41:08

Le 20 novembre 2022 à 01:36:04 Anorexyl a écrit :

Le 20 novembre 2022 à 01:29:25 :

Le 20 novembre 2022 à 01:25:16 wiiuYes a écrit :

Parfait c'est ce que je comptais faire

Dedans tu update a la fois tes tours qui ont un attribut cooldown pour check s'ils peuvent tirer sur les ennemies

Ok c'est ce que j'ai fait (exemple en vidéo juste au dessus)

Et tupdate ta liste d'ennemie que tu fais avancer a chaque tick

Pareil

Utilise une variable deltatime pour que ça soit indépendant des fps

Mais du coup c'est mieux de coder le déroulement d'une partie en dehors de la fonction principale UpdateGame ? Ou bien tout écrire dedans ?
Perso je comptais faire une fonction différente en fonction de la map, vu que je compte mettre des ennemis différents dans les autres maps. Il faut aussi mettre les conditions d'arrivée pour certains boss etc.

Fais un maximum de fonctions, les plus courtes et simples possible.
Donc oui fait une fonction (et même plusieurs) à part pour chaque scenario, puis que tu vas appeler à chaque tour de boucle dans ton UpdateGame() avec tes conditions.

Je vais faire comme ça, je pense que c'est ce qu'il y a plus intuitif et peut être remodeler quelques aspects en m'inspirant de ce que vient de poster wiiu au dessus.

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    ⚠️ Les archives de novembre sont désormais disponibles.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.