Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-07-2018 22:54:37

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

KingsAndShips : Un tower defense isométrique fait maison.

Hello !

Depuis quelques mois, je me suis mis au C++, cela me permet de découvrir la programmation objet.
Afin de pratiquer, j'ai commencé à créer un jeu de Tower Defense.
J'avais déjà acquis un peu d'expérience avec librairie SDL2, grâce à mon petit jeu de Sokoban écrit en C : https://github.com/kaochen/SokoRobot

J'ai donc ouvert un nouveau dépôt chez GitHub pour héberger mon nouveau projet https://github.com/kaochen/KingsAndShips
En suivant les instructions du README on doit pouvoir obtenir quelque chose commence ça:
KingsAndShips.jpg
C'est une ébauche, quelques bases sont là  mais il manque encore beaucoup, beaucoup de chose. Mais comme c'est un boulot sans fin, je ne voulais pas attendre la fin avant de lancer un sujet ici...
Et puis je n'ai pas toutes les idées, ce sera l'occasion d'en discuter ici je l’espère.

Donc, le synopsis que je souhaite mettre en place est plutôt simple:
Le Roi (le lion) rentre d'une campagne en mer, mais vous (le renard) vous avez profitez de son absence pour vous installer à sa place.
Vous êtes bien dans vos nouveaux quartiers et vous n'avez pas envie de rendre le trône au Roi. Vous organisez donc la défense afin de conserver votre nouveau chez vous.

Le jeu n'est pas encore équilibré mais voici quelques raccourcis

  • N pour lancer une nouvelle vague (C'est une des parties sur lesquelles le joueur n'est pas censé avoir la main)

  • L pour passer au niveau suivant (que deux pour le moment smile )

  • R pour reseter le niveau.

  • Q to quit


Ensuite il faut cliquer glisser les tours aux bons endroits.

Pour le fond :

  • Je code tout en C++. Je n'utilise pas de moteur, ce serait pourtant plus pratique facile mais ce n'est pas mon but, je veux manger du C++.

  • J'utilise toujours la lib SDL2, (toujours pratique)

  • C'est un jeu isométrique. Plus compliqué que la 2D, la conversion des coordonnées 2D vers le monde ISO et inversement m'a donné quelques sueurs.

  • J'utilise Tiled pour générer et éditer les niveaux (Version 1.1 minimun). (du coup libxml++ pour importer les fichiers)

  • J'utilise le pathfinding A* pour la découverte des trajectoires en automatique. Je peux générer de nouvelles trajectoires très rapidement, c'est plutôt sympa.

  • L'ensemble des images est généré à l'aide de Blender. (Il n'y a que des images 2D, Blender me permet de générer les vues sur les différents angles facilement).

  • J'utilise meson pour la automatiser le compilation, je trouve bien plus simple que automake.



Bref, si vous avez le temps de le tester et de me faire des retours cela serait très appréciables. On pourra en discuter ici.
J'ouvrirai peut être un sujet spécifique pour le graphisme ailleurs sur le forum, j'ai la double casquettes wink

Kao

Hors ligne

#2 13-07-2018 23:18:08

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Tiens je me faisais justement la réflexion récemment que je connaissais pas de tower defense libre o/
J'ai passé des centaines heures sur ces machins é_è

datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#3 13-07-2018 23:36:00

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

otyugh a écrit :

Tiens je me faisais justement la réflexion récemment que je connaissais pas de tower defense libre o/
J'ai passé des centaines heures sur ces machins é_è


Les Towers Defense en Isométrique, il y en a pas beaucoup non plus. On doit être encore moi sur le créneau Tower Defense Libre en Iso wink
En pas libre j'étais tombé sur "Ancien Planet" avec un gameplay plutôt sympa : https://www.youtube.com/watch?v=_yv12LvyBTk

Hors ligne

#4 14-07-2018 00:04:43

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Si je suit ton README

meson build


Error during basic setup:

[Errno 2] No such file or directory: '/home/implijer/Bureau/tmp/KingsAndShips/build'


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#5 14-07-2018 08:47:37

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Normalement il a pas de piège:

git clone https://github.com/kaochen/KingsAndShips
cd KingsAndShips
meson build/
ninja -C build
./build/kingsandships



Tu peux me liste le contenu de ton dossier KingsAndShips ?

Hors ligne

#6 14-07-2018 11:09:28

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

$ git pull
Already up-to-date.

$ ls
data  LICENSE  meson.build  README.md  src



Pas de dossier build/ en vue cap'tain


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#7 14-07-2018 11:59:38

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Oui c'est normal, la commande meson est censé l'ajouter. Tu peux essayé en le créant toi même.

mkdir build



J'ai fait le test avec Debian Stable et Debian Testing.
Meson 0.37 doit marcher.

apt-cache policy meson



meson:
  Installé : 0.45.1-2~bpo9+3
  Candidat : 0.45.1-2~bpo9+3
 Table de version :
     0.47.0-1 100
        100 http://ftp.fr.debian.org/debian testing/main i386 Packages
 *** 0.45.1-2~bpo9+3 900
        900 http://ftp.fr.debian.org/debian stretch-backports/main i386 Packages
        100 /var/lib/dpkg/status
     0.37.1-1 500
        500 http://ftp.fr.debian.org/debian stretch/main i386 Packages

Hors ligne

#8 14-07-2018 16:42:43

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

kao a écrit :

Oui c'est normal, la commande meson est censé l'ajouter. Tu peux essayé en le créant toi même.


Ouais c'est ce que j'ai essayé de suite, mais autre erreur.

The Meson build system
Version: 0.21.0
Source dir: /home/implijer/Bureau/tmp/KingsAndShips
Build dir: /home/implijer/Bureau/tmp/KingsAndShips/build
Build type: native build

Meson encountered an error in file meson.build, line 1, column 0:
Project() does not take keyword arguments.



De debian jessie, du coup. Le problème semble évidement venir de la version. Ptéte que tu devrai spécifier une version minimale de meson pour l'élégance x)

Dernière modification par otyugh (14-07-2018 16:44:17)


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#9 14-07-2018 17:26:26

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

J'ai ajouté cette mention au README

It has been testing with Debian Stretch and Buster for now.
Meson 0.37 is needed at the minimun.



Meson 0.21 ne doit pas comprendre certaines formulation dans le fichier meson.build

Il semble y avoir un mécanisme pour vérifier la retro-compatibilité dans meson avec la version 0.47.
http://mesonbuild.com/Release-notes-for-0-47-0.html
Je vais regarder pour voir si je peux faire quelque chose pour Jessie.

Hors ligne

#10 16-07-2018 17:06:52

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Pour Jessie, il faudrait que je monte une VM pour voir les possibilités. Si cela ne touche pas trop la syntaxe du fichier meson.build, cela pourrait se faire.
Mais comme Jessie arrive en fin de vie, et que sa version de Meson a subit beaucoup de changement depuis, je ne sais pas si cela vaut l'investissement.
Dans les prochains jours je n'aurai pas le temps de regarder, mais je me le note dans un coin de la tête.

Ce Weekend j'ai eu le temps de faire quelques patchs pour améliorer certaines fonctions internes et nettoyer quelques fichiers de code. J'ai aussi ajouté un tileset pour les bateaux morts, afin de pouvoir les afficher dans la direction dans laquelle ils ont été tué :
t_boat_dead_01.png
J'ai fait une sorte d'écume blanche autours. Mais celle ci est bien trop grande elle a tendance à déborder sur les tuiles de terrain. Je t'attacherai de la réduire bientôt.

Et pour chaque objet j'ai huit orientations, afin de pouvoir couvrir les déplacements à 45° et pas seulement  à 90°.
Si en plus j'ajoute huit images d'animation par orientation, j'obtiens un tileset de 64 images par objet exemple :
https://github.com/kaochen/KingsAndShip … oat_01.png
Blender me facilite beaucoup la tâche puisque je dessine un objet et j'ai juste à jouer sur l'axe de la caméra pour générer autant de vue que je souhaite.

Hors ligne

#11 16-07-2018 19:22:10

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Buster/Sid/Rc-Buggy
Noyau : Linux (≥ 4.12)
(G)UI : i3-wm (≥ 4.13)
Inscription : 07-07-2008
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Yay, chouette projet kao smile
Compilé et lancé chez moi, no souçay. Je ne connaissais pas tiled. Pratique !
Ça donne envie de coder… tongue

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#12 16-07-2018 21:15:52

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

captnfab a écrit :

Yay, chouette projet kao smile
Compilé et lancé chez moi, no souçay. Je ne connaissais pas tiled. Pratique !
Ça donne envie de coder… tongue


Héhé, les coups de main sont les bienvenues big_smile.
Je fais du C++ facile pour le moment, je suis loin d'avoir explorer toutes ses possibilités.

Tiled me facilite beaucoup le travail, il me sert d'éditeur de niveau.
Je m'en sers aussi pour placer les vagues de bateau. On peut même gérer les vitesses d'animations même si je ne m'en sers pas encore pour le moment.
Je suis bien content de l'avoir trouvé en tout cas.

Et merci pour les encouragements smile

Hors ligne

#13 27-07-2018 06:12:19

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Petit point et quelques explications :
Ces derniers temps, je n'ai pas fait de changement esthétique ou de gameplay, je travaille plus sur le fond du programme. Afin de pouvoir aller plus loin, j'ai besoin d'améliorer mon code, dans son organisation, sa lisibilité, et dans son fonctionnement.
En effet comme c'est mon premier projet en C++ et seulement mon deuxième en tant que codeur certains réflexes ne sont pas encore là.

Ces derniers temps je passe donc du temps à réorganisé mon code, notamment :

  • en plaçant une classe par fichier, tout du moins les plus importantes.

  • en réduisant la taille des grosses fonctions. Je l'ai éclate en plus petites fonctions, pour améliorer la lisibilité. Le but est de ne pas avoir à scroller pour lire une fonction.

  • je renomme des fonctions, des classes ou des variables afin de mieux correspondre à leurs utilisations réelles. Ce n'est pas toujours facile de trouver le bon nom, surtout quand leurs rôles évoluent au fil du temps.

  • j'ai aussi améliorer la verbosité des messages en CLI pour faciliter la lecture et le débogage. Il faudra que je me penche sur les exceptions et les assertions.

  • j'essaye aussi de faire évoluer certaines fonctions ou données afin qu'il y ait le moins de calcul possible pendant le jeu. Par exemple actuellement à chaque fois que j'affiche un objet, il doit consulter la liste  des textures pour retrouver la ou les siennes. L'objet consulte donc 30 fois pas seconde la liste. Même si cela est rapide, il peut être intéressant de stocker cette information directement dans l'objet lors de sa création.

  • Je fais aussi évoluer la nomenclature de mes fichiers graphiques et des noms de textures. Je pense à faire quelques choses comme ceci Objet_rang_status_orientation_numéro : Boat_01_Alive_NorthWest_5 ou bien Tower_02_Dead_SW_01



J'essaye aussi d'utiliser de plus en plus le système de branche de git, afin d'avoir une branche "master" stable, et de pas polluer la branche "develop" avec du code non terminé.

Il faudra aussi que je consacre du temps pour les graphismes, mais ça c'est un autre sujet. big_smile

Je vous tiens au courant, si vous avez des questions ou des suggestions n'hésitez surtout pas je suis preneur.

Hors ligne

#14 27-07-2018 10:04:21

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Buster/Sid/Rc-Buggy
Noyau : Linux (≥ 4.12)
(G)UI : i3-wm (≥ 4.13)
Inscription : 07-07-2008
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Oui, c'est toujours bien d'essayer de se forcer à suivre les « bonnes pratiques ».
Dans cette veine, il y a aussi le « coding style ».
Choix entre tabulations ou espaces, uniformisation des noms de classes, de méthodes, d'attributs, de fonctions, de variables, de paramètres, de constantes…
Contraintes au niveau de l'écriture des blocs conditionnels, interdiction éventuelle de certaines syntaxes ( x=a?b:c; if (bla) y;…)
Uniformisation de la documentation (systématique) des fonctions/méthodes/classes…

En C++, il y a aussi des optimisations à faire en utilisant les pointeurs ou le passage par référence.
La gestion de la « sécurité » (de l'encapsulation), en marquant les méthodes, comme privée/protected/public assez finement, et les arguments ou les retours de fonctions comme const…

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#15 27-07-2018 13:00:39

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Merci pour le retour.

Pour la mise en forme, j'aime bien quand c'est aéré même si je n'ai pas trouvé l'indentation parfaite:
Exemple avec l'écriture de l'heure dans la console (horodatage) :

void C_Message::timestamp(){
        Sint32 current = SDL_GetTicks();
        int size = 4;
        string time[size] = {""};
        time[0] = to_string(current%1000); //milli
        time[1] = to_string(current/1000); //sec
        time[2] = to_string(current/(1000*60));//min
        time[3] = to_string(current/(1000*60*60));//hour

        //0:1:2:3 -> 00:01:02:03
        for(int i = 0; i < size; i++){
            if(time[i].length()==1){
                        time[i] = "0" + time[i];
            }
        }
        //00:01:02:03 -> 00:01:02:003
        if(time[0].length()==2){
                time[0] = "0" + time[0];
        }
        cout << time[3] << ":" <<  time[2] << ":" << time[1] << ":" <<  time[0] << " ";
    }



J'ai trouvé que mettre un "C_" devant les noms de class et un "m_" devant les attributs membre aide beaucoup à si retrouver. (C_NomDeLaClass et m_NomDeLattribut)

Pour la documentation, je ne sais pas trop comment faire. Je me doute qu'il faudrait une petite explications pour comprendre comment sont stockées les informations et dans quel ordres elles sont traitées.
Mais je ne sais pas sous quelle forme la mettre, en dehors de mettre quelques commentaires éclairées par ci par là smile


Pour l'optimisation je pratique beaucoup les pointeurs et peu les références, principalement parce-que la SDL communique par pointeur et que cela m'évite de faire des "conversions".
Pour la sécurisation, j'ai retravaillé mes encapsulations il y a quelques temps, j'ai plus de chose en "protected" maintenant. Par contre je ne suis pas très assidus sur les "const".
Références et constantes sont un peu à la traîne dans mon code, il faudrait que je me repenche sur mon cours pour que leur utilisation deviennent plus facile et systématique.

Dernière modification par kao (27-07-2018 14:10:22)

Hors ligne

#16 27-07-2018 17:48:30

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Buster/Sid/Rc-Buggy
Noyau : Linux (≥ 4.12)
(G)UI : i3-wm (≥ 4.13)
Inscription : 07-07-2008
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Exemple de documentation de classes avec doxygen : https://www.stack.nl/~dimitri/doxygen/m … ocexamples / http://blog.hostilefork.com/low-commitm … arkup-cpp/

Pour les codings standards, avant d'inventer le sien, il y en a déjà à foison…

Celui de Stallman : http://www.sourceformat.com/pdf/cpp-cod … rd-gnu.pdf
Celui de stroustrup, créateur de C++, http://www.sourceformat.com/coding-stan … g-standard

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#17 27-07-2018 18:01:59

leonlemouton
Adhérent(e)
Distrib. : Stretch
Noyau : Linux 4.9.0-8-amd64
(G)UI : Mate ∨ LXQt
Inscription : 14-08-2012

Re : KingsAndShips : Un tower defense isométrique fait maison.

Je suis de tout cœur avec toi @kao !
Je n'ai pas le niveau pour aider pour le développement mais j'adore les towers defense !
Les maps warcraft...
Et plus modernement realm defense sous Android.
Je vais compiler tout ça ; i'll be back !

Leonlemouton
°(")°

Hors ligne

#18 28-07-2018 07:12:26

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Merci Captnfab en C++ on aime bien la lecture wink
https://linuxfr.org/news/faut-il-contin … endre-le-c

Je vais regarder doxygen. Si j'ai bien compris on peut générer automatiquement des pages HTML à partir des commentaires et des balises judicieusement mis en place...
Je vais vois si je peux faire ça ou pas et si cela vaut le coût en temps...

@leonlemouton merci, tout retour est le bienvenu

Hors ligne

#19 29-07-2018 09:58:38

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Plein de chose intéressante dans les indications de Stroustrup.

Sinon, j'ai poussé mes dernières modifications dans la branche master.
Il y a rien de nouveau dans l'usage, juste du clean et de la réorganisation de fichier, de fonction  etc... Factorisation et clarification du code donc.

Quand j'ai commencé le projet, j'ai copié collé une partie de mon code en provenance de mon précédant jeux écrit en C.
Celui-ci était fonctionnel et a pu être transféré facilement dans le monde C++. J'ai donc pu faire tourner une boucle SDL et afficher quelques choses rapidement.
J'avais mis beaucoup de temps à trouver des solutions pour mon précédent programme, c'était plutôt sympa de pouvoir repartir sur ces bases.

Seulement, le C++ pense différemment la programmation, grâce aux classes,et aux conteneurs notamment. Du coup même si le code fonctionne, il n'utilise pas les pleines possibilités du C++.
J'essaye donc maintenant de réfléchir plus en C++, qu'en C.

Le nettoyage continue donc smile

Hors ligne

#20 12-08-2018 23:10:05

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

Dans la branch develop, j'ai poussé plusieurs modifications qui m'ont donné du fil à retordre.

Je voulais me débarrasser du fait que j’utilisai un tableau statique multidimensionnel  pour stocker mes données et les retrouver facilement, notamment à proximité d'un joueur ?

C_Joueur tableau[TAILLE][TAILLE];
tableau[x][y].activer();
tableaux[x+1][y+1].yatil1Mur()



Le fait que le tableau soit statique empêche la modification de sa taille en cours de route. Même s'il est possible de tricher et de contourner cette limite, c'est compliqué et dangereux.
Dans mon précédent jeu en C, je n'utilisai que des tableaux statiques, cela fonctionnait mais le C++ facilite les choses avec les Vectors.
On peut accéder aux informations de la même façon mais il faut savoir comme le déclarer et comment l'initialiser.

std::vector < std::vector <C_Joueur> > tableau;
tableau[x][y].activer()


Comme j'ai transpiré pour le mettre en place, j'ai écris un pense bête ici https://kaocode.frama.site/blog/c-vecto … mensionnel

A  noter que dans le jeu, je me sers de l'objet placé dans le tableau comme d'un axe Z. Dans l'axe Z on trouve les différentes couches que je vais pouvoir superposer: le sol, les morts, les vivants, les nuages etc.. . C'est une astuce que j'ai trouvé pour mon précédent jeux, mais je serais curieux de savoir comment font les autres jeux 2D pour stocker leurs infos.

Sinon, chaque bateau possède aussi sa propre grille multidimensionnelle afin de stocker ces propres calculs de trajectoires. J'ai donc aussi migré cette grille vers un vector.
C'est cette partie qui m'a fait le plus transpirer mais à la fin j'ai pu faire la transition et optimiser mon interprétation du pathfinding A*. Je ne calcule plus la totalité des nœuds, juste ceux qu'il faut.
Sur le sujet, je vous conseille cette vidéo pour ceux que cela intéresse : https://www.youtube.com/watch?v=-L-WgKMFuhE

Voilà pour le moment, je pousserais sûrement dans quelques jours les modifs dans la branche master.
Bien à vous,
Kao

Hors ligne

#21 22-08-2018 20:48:22

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

J'ai poussé toutes les dernières modif dans la branch master, il y a plein de travaux en cours mais ce n'est pas grave.

Depuis la dernière fois, il y a eu beaucoup de modif et dans les visibles j'ai noté:

  • la possibilité d'ajouter une barge en feu sur l'eau pour ralentir les bateaux. Le design de la barge et du bouton sont simplistes,  mais ça fonctionne. Les bateaux vont contourner l'obstacle ou lui tirer dessus pour le couler et pour pouvoir passer. Appuyer une fois sur D pour le mode debug puis plusieurs fois sur n pour lancer des vagues de bateau, ainsi vous verrez les trajectoires évoluer en fonction des obstacles

  • J'ai commencé à travailler sur la notion de coût de construction. Ça implique pas mal de chose dans le code, mais ça permettra de rendre le jeu plus intéressant puisqu'il faudra gérer ses ressources.

  • Comme le suggérait Captnfab, j'ai mis en place une doc à l'aide de Doxygen. Il faut aller dans doc/html/index.html pour y accéder. C'est assez facile à mettre en place, j'essaierai de commenter mes classes au fur et à mesure que je les retravaillerai. Le travail de documentation est intéressant parce qu'il force à réfléchir au rôle réel d'une fonction ou d'un attribut et parfois cela implique de les renommer.


Si vous avez des suggestions ou des idées à partager, n'hésitez surtout pas.
Cordialement,
Kao

Hors ligne

#22 30-08-2018 12:50:50

leonlemouton
Adhérent(e)
Distrib. : Stretch
Noyau : Linux 4.9.0-8-amd64
(G)UI : Mate ∨ LXQt
Inscription : 14-08-2012

Re : KingsAndShips : Un tower defense isométrique fait maison.

Bonjour Kao !

J'ai testé ; ça fonctionne nickel et c'est déjà très jouable ! Du travail de pro !!

Voilà quelques idées en vrac ! tongue
- Page d'accueil du Game !
- Affichage des ressources
- Boutons (menu, passer au niveau supérieur...) et menus (commencer, paramètres, quitter le jeu...)
- Bulles d'aides au survol des éléments avec explications...

Et puis plein d'autres niveaux et compétences (canons, harpons, magie...) pour les tours et féroces assaillants !! cool

C'est vraiment très propre ; BRAVO !

smile

Leonlemouton
°(")°

Hors ligne

#23 04-09-2018 10:51:44

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

@leonlemouton merci pour les encouragements !

leonlemouton a écrit :


- Page d'accueil du Game ! //Probablement dans un deuxieme temps quand j'aurai une meilleur idée de comment j'organise le jeu.
- Affichage des ressources //J'ai commencé à y travailler, j'ai créé une sorte de portefeuille pour gérer les ressources. Une tour coûte tant, couler un bateau me rapporte tant etc...
- Boutons (menu, passer au niveau supérieur...) et menus (commencer, paramètres, quitter le jeu...) // Je ne pense pas que ce soit compliqué à mettre en oeuvre mais il me manque surtout les icônes. Je code plus vite que ce que je dessine smile
- Bulles d'aides au survol des éléments avec explications... // Je pensais mettre des icônes pour pouvoir monter le niveau  d'une tour par exemple. C'est assez classique dans ce type de jeu mais là aussi cela demande beaucoup de graphisme, parce qu'il faut que je fasse la déclinaison de la tour pour chaque "niveau"



Il faudrait que je fasse une grosse session graphisme pour disposer des éléments à afficher, même si cela n'est pas parfait. Cela me permettrait ensuite de disposer des éléments et de les mettre en place rapidement. Il faudrait que j'ouvre un topic sur le sujet dans la partie graphismes pour en parler et peut-être trouver de l'aide.

Hors ligne

#24 10-09-2018 10:30:32

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : KingsAndShips : Un tower defense isométrique fait maison.

@leonlemouton
J'ai intégré plein de modif:  les tours ont un coût qui s'affiche, les boutons se désactivent s'il n'y a plus assez de sous. J'ai ajouté un texte aux barres de progression pour connaître ses ressources.
J'ai commencé un proto menu : un bouton hamburger qui ouvre un panneau. Je pense y mettre des onglets. Je vais réfléchir à y intégrer une sorte de timeline pour passer d'un niveau à un autre.

Il faudra que je me penche aussi sur le fait de pouvoir mettre en pause le jeu... et pour l'instant ça reste flou pour moi, comme j'ai des animations un peu partout il va falloir que je me creuse les méninges pour savoir comment l'implémenter.

J'ai ouvert une sujet sur le Game Design et le graphisme ici : https://debian-facile.org/viewtopic.php?pid=276303 pour séparer certaines questions de la programmation.

Cordialement,
Kao

Hors ligne

#25 10-09-2018 18:22:33

Debian Alain
Adhérent(e)
Lieu : zone 51
Distrib. : W$10 / stable / ubuntu / F29 / testing
Noyau : Linux 4.19.0-4 amd 64 debian
(G)UI : Gnome wayland / Gdm3
Inscription : 11-03-2017

Re : KingsAndShips : Un tower defense isométrique fait maison.

j'ai essayé d'installer ta première ligne de dépendances , Kao .

voilà ce que j'ai obtenu :

Récupération des rapports de bogue… Fait
Analyse des informations Trouvé/Corrigé… Fait
bogues de gravité serious sur libsigc++-2.0-dev (→ 2.10.0-2) <Résolus dans une version donnée>
 b1 - #897895 - rsbackup: ftbfs with GCC-8 (Corrigé : libsigc++-2.0/2.10.0-2.1)
Résumé :
 libsigc++-2.0-dev(1 bogue)
Êtes-vous certain(e) de vouloir installer/mettre à jour les paquets ci-dessus ? [Y/n/?/...]



tu me conseilles d'installer quand même ? oui / non ? pourquoi ?


1498812139.jpg Celtic dueling violins
RYZEN7 1700X - PRIME X370 PRO - 16 Go DDR4 - RADEON PULSE RX 550 4GB DDR5 OC UEFI - CORSAIR RM750X - SSD crucial MX500 500GB

Hors ligne

Pied de page des forums