Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre expérimenté
    pre-release de battle-rage un jeu de combat a la street fighter.
    Salut les SDL,

    je vous annonce de part ce présent message la pre-release de ma dernière création:

    battle-rage: un jeu de combat en 2D a la street fighter écrit en C++ avec la bibliothèque sdl2, sdl2_image, sdl2_ttf et sdl2_mixer.

    1. Choisissez le mode de jeu:

    + Player vs Computer.

    + Player vs Player.

    + Computer vs Computer.

    2. Puis choisissez votre combattant parmi les 16 combattants disponibles ainsi que votre adversaire ou laisser l'ordinateur tirer au hasard.

    3. Combattez dans plusieurs rounds: chacun un combat a mort (plus de points de vie). Maximum 3 rounds.

    NOTE: Une manette PC est requise pour jouer a battle-rage !

    ---

    Chaque combattant est dotée de propriétés:

    + Rapidité.

    + Agressivité.

    + Force.

    + Résistance.

    ---

    J'ai pris les images des 16 combattants (personnages) d'un jeu de combat analogue pour XBox 360: NeoGeo Battle Coliseum sur un site de sprites.

    Vous pouvez retrouver les personnages dans l'index de mon site.

    ---

    TECHNIQUE:

    J'ai stocker des séquences d'images dans une liste chaînée simple: std::forward_list<SDL_Texture*>

    puis j'ai stocker cette structure de données dans une table de hachage: std::unordered_map<int8_t, std::forward_list<SDL_Texture*>> afin de pouvoir look-up les coups des combattants.

    Je me suis demander tout au long du développement est-ce que il est mieux de d'utiliser un type int8_t (char) ou un type uint8_t (unsigned char) ???

    J'ai penser que le type signé est plus naturelle pour un ordinateur malgré que il faut une opération supplémentaire a chaque fois: le contrôle du signe.

    Mais par contre avec un type signé l'on peut utiliser l'option d'optimisation: -fno-signed-zeros ???

    ---

    J'ai fait un véritable effort sur le packaging:

    +) Version Windows 64 bits: fichier *.exe auto-extractible.

    +) Version Linux: *.deb et *.rpm

    +) Version tarball: un tarball avec les autotools.

    ---

    Une manette PC est requise pour jouer a battle-rage !

    D'ailleurs j'ai pas mal galérer la dessus car je me suis basé sur le Input_Handler de Shaun Mitchell auteur du livre: SDL Game Development. Que j'ai amélioré !

    ---

    Je suis ouvert a toute forme de critiques, remarques, conseils, etc...

    Merci pour vos réponses.

    PS: Ca y est: j'ai vendus mon âme a C++ car l'exécutable fait plus de 5 Mo (non-stripped) alors que en C cela ferai que quelques centaines de Kilos.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  2. #2
    Expert éminent
    Je me suis demander tout au long du développement est-ce que il est mieux de d'utiliser un type int8_t (char) ou un type uint8_t (unsigned char) ???

    J'ai penser que le type signé est plus naturelle pour un ordinateur malgré que il faut une opération supplémentaire a chaque fois: le contrôle du signe.

    Mais par contre avec un type signé l'on peut utiliser l'option d'optimisation: -fno-signed-zeros ???
    Je me demande ou tu tiens cet info.

    Les nombres signed ou unsigned d'un point de vue binaire sont pareil parce que on utilise le complément a 2 , la seule différence ça sera pendant les instruction de comparaison (d'un point de vue assembleur), mais sinon ça requiert aucune instruction en plus.

    Pour le projet je suis un grand fan de SNK ,c'est dommage que y'a pas de screen ou vidéo en plus dans ta présentation , sinon je devrais essayer de tester ça a l'occasion

  3. #3
    Membre expérimenté
    Salut kannagi,


    Je me demande ou tu tiens cet info.
    En faîtes pour l'option d'optimisation, je me suis tromper car l'on m'a rappeler a l'ordre dans un autre forum et l'option d'optimisation: -fno-signed-zeros

    cela concernerait les flottants ?

    Je n'ai pas encore lu le livre sur gcc (GNU Compiler Collection) et donc je pensais que cette option enlevai les zéros inutiles dans les valeurs et donc je ne pouvais pas savoir.


    Les nombres signed ou unsigned d'un point de vue binaire sont pareil parce que on utilise le complément a 2 , la seule différence ça sera pendant les instruction de comparaison (d'un point de vue assembleur), mais sinon ça requiert aucune instruction en plus.
    D'accord, complément a 2 donc:

    1. Complément a 1: inverser les bits.

    2. Additionner 1 aux résultat.

    Donc il n'y a pas de vérification du signe.

    Pour cela c'est toi qui m'a rappeler a l'ordre.

    ---

    Mais il doit bien y a voir une différence entre un nombre entier signé et non-signé en bas (aux niveau assembleur).

    Concernant le bit du signe, d'ailleurs le compilateur émet un avertissement quand tu compare un nombre signé et un nombre non-signé ?

    Mais il faut dire que je n'ai pratiquer l'assembleur que pendant 1 mois...

    ---

    Dit moi kannagi, il y a une différence entre l'assembleur SNES et l'assembleur PC (32|64 bits) ?

    En faîte le bit du signe dans un entier est une aberration de ma part. Je vous pris de m'en excuser.

    ---

    Merci pour ton intervention et si tu veut voir le jeu:

    1. Il va te falloir une manette PC (dont je ne garantie pas la compatibilité avec mon jeu).

    2. Installer le jeu le mieux étant le tarball car il enlève tout ce qui a été installer quand tu fait un: sudo make uninstall

    Par contre détrompe toi il faut bien installer le jeu afin qu'il marche (il ne suffit pas de le compiler).

    Comme l'on me l'a déjà reprocher. Mais comment veut tu comment je fasse si le programme a des dépendances comme des images, etc...

    Car il faut bien que l'exécutable puisse trouver ses dépendances.

    Donc un:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ./configure
    make
    sudo make install


    est requis pour essayer le jeu.

    ---

    Mais par la suite un:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    sudo make uninstall


    Enlèvera tout ce qui a été installer.

    Bon vent a toi et merci pour ton intervention.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  4. #4
    Membre expérimenté
    Bonjours,

    M'ayant pris la tête sur un autre site: j'en suis arriver a la suspicion suivante:

    Peut-être que pour un unsigned, il n'y pas besoin de complément a 2 puisque dans ce cas l'ordinateur n'a que besoin de lire la séquence de bits dans le bon ordre pour déterminer la valeur !

    Qu'en pensez vous ?

    Malgré que une suspicion ne suffit pas il faut encore l'avoir vérifier !
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  5. #5
    Expert éminent
    Le complément a 2 , ce n'est pas une technique hardware dans le sens ou l'ordinateur n'a pas d'instruction spécifique pour le complément a 2 et c'est normal parce que le complément a 2 n'est qu'une technique de lecture pour nous humain.
    par exemple sur 8 bit écrire -1 et 255 c'est la même chose cela fait en binaire 1111 1111, mais dans l es 2 cas on utilisera les mèmes instructions d’addition/soustraction/division/multiplication ect.
    C'est comme si tu me disais que utiliser un nombre a virgule fixe ralentis le programme , alors que un nombre a virgule fixe est juste une autre façon de lire le binaire.

    Enfin je dirai si tu avais codait plus longtemps en assembleur tu aurait pu remarquer cela

    Dit moi kannagi, il y a une différence entre l'assembleur SNES et l'assembleur PC (32|64 bits) ?
    Ben oui , le PC c'est du x86 et la SNES c'est du 65816 (bref un 6502 8/16 bits).
    L'architecture n'a aussi rien n'a voir.

    Une instruction de valeur immédiate donne ceci en x86 :
    mov ax,10
    en 6502/65816 :
    lda #10

    Après le 6502 est beaucoup plus simple a apprendre vu que il possède peu d'instruction comparé au x86 ou il faudrait des mois pour apprendre le x86 en entier.
    La difficulté entre les deux se trouve que sur SNES l'architecture est certe un peu complexe mais le processeur c'est pas une flèche donc faut vraiment optimiser pour espérer faire un jeu décent.
    Sur PC nul besoin d'optimiser de nos jours les machines sont assez puissant , mais l'architecture d'un PC reste assez complexe.

  6. #6
    Responsable 2D/3D/Jeux

    Bonjour,

    Le compilateur affiche un avertissement sur la comparaison de nombres signés avec non signés car cela est une erreur courante en programmation. En soit, elle n'a aucun impacte sur le binaire derrière (ou au pire, pour appliquer quelques optimisations supplémentaires, mais je doute). Le seul impacte n'est que dans la logique du programme. Voici un exemple, qui peut, malheureusement arriver :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    unsigned int i = 0;
    for ( ; i >= 0 ; i-- ) { /* Faire quelquechose */ }

    Aussi débile que cela soit, c'est une boucle infinie.

    Un autre exemple (car le premier ne montre pas de comparaison signés/non signés ) :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int get(int idx)
    {
    // size est unsigned
    if (idx < size)
        return tab[idx];
    }

    Je peux passer -1, et -1 est soit plus petit que size, soit plus grand, si c'est un unsigned. Qu'est ce que voulait vraiment le programmeur -> doute du compilateur, donc warning;

    Après, mon exemple n'est pas le meilleur .

    Sinon, il faut que je test le jeu
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre expérimenté
    J'ai eu le même problème avec les uint8_t et les images...

    mais opencv gère ça très bien avec leur satured_cast<>().

    ---

    En parlant de satured_cast:

    Je voulais faire un peu de prono pour mon site de sprites favoris qui m'a mis dehors en 2 postes:


    Car il y avait un doute sur la légalité des ressources.

    Brefs concernant les personnages, car mon doute était la-dessus:

    Car je me suis inscrit sur https://www.spriters-resource.com qui s'appelle en faîtes www.vg-resource.com héberger par ovh.ca dans les forums pour en discuter…

    ---

    1. J'ai demander sur la légalité de leurs ressources et ils m'ont dit que je ne pouvait pas en faire usage a but commerciale nie sur aucune platformes

    (je me demande si github ne va pas me virer ?).

    Je me demande encore si l'on peut en faire un usage personnel ?

    ---

    2. Puis je leurs ai poster ça:


    Sensitization campaign: Do It Intelligently (Licesing, README,...)

    Hi to all the community:

    I want to make everybody aware of the fact of uploading content

    and provide a How-To upload with severals advices:

    Important Rule 1: Add a README.

    Important Rule 2: Add a license.

    1. If you provide a sprite (an images contains more than one figure).

    1. Add a README with the suppose coordinates for every figure.

    Because if the sprite isn't regular ( I mean if the sprite doesn't use regular intervals. )

    The programmer which will use your sprite will be in big troubles with the coordinates.

    The best is to do regular sprites, even if you lose some place.

    * And you can keep a rectangle for adding your signature.

    2. IMPORTANT: add a free license for your work.

    Because if someone use your sprite and release his work with your sprite inside

    it's better that he can show a license,

    else he can go into jail for usage of illegal content.

    2. If you provide some images in an archive:

    * Think at right numbering the images if they follow in a sequence.

    3. If you do some ripping work on a game.

    * Be aware of the fact to not do this with propretary content.

    Else you can be pursued in justice.


    Let the propretary people swim in their propretary $h|t.


    If you have the right to do the work, add a LICENSE and a README like explain in

    the points 1 and 2 from the section above.


    If the work you are ripping provides a license think at read it to sea if you can

    change modify the license or if you must provide the same.


    You can use the concept of copyleft to add a license.

    :note: I don't really know the world of sprites or imahge ripping.

    :footer: Some free licenses link.
    Avec les liens qui vont avec et quelques corrections

    et suite a ça

    quand je me dit que j'allais parler au seule administrateur qui m'a répondus:

    Je me suis donc connecter au site et surprise:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    Your forum account is currently banned. Ban Reason: Spam
    Ban will be lifted: Never


    ???
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  8. #8
    Expert éminent
    Le ban pour le spam oui c'est exagérer.
    Apres inutile d'envoyer des MP , tu n'as pas le droit t'utiliser les sprites de SNK donc inutile de discuter ou autes
    Après c'est largement tolérer et personne va t’embêter pour ton jeu qui restera inconnu au plus grand nombre

  9. #9
    Membre expérimenté

    Le ban pour le spam oui c'est exagérer.
    Non kannagi, la non compréhension du sous-entendus je le met sur le compte de ton jeune age, je traduit:

    "We are stinking illegal mafia assholes, leaves us alone with your Licenses bullshit !!!" (Désolé pour les écart de langages).

    Ca voulais dire quelque chose comme ça et j'ai été abuser et inciter au crime par ce site, donc je les enverrai en enfer... YOU LOSE !!!

    Regarde ce site la et dis moi la différence: http://opengameart.org

    Les licenses sont:

    License(s)
    CC-BY 3.0
    CC-BY-SA 3.0
    GPL 3.0
    GPL 2.0
    OGA-BY 3.0
    CC0
    LGPL 3.0
    LGPL 2.1
    Quitte a abandonner mon jeu, je les enverrai en enfer, pour m'avoir pris pour un idiot comme cela !


    Apres inutile d'envoyer des MP , tu n'as pas le droit t'utiliser les sprites de SNK donc inutile de discuter ou autes
    Ca veut dire quoi SNK ca revient a chaque fois: vous ne pouvez pas mettre le sens des abréviations ?


    Après c'est largement tolérer et personne va t’embêter pour ton jeu qui restera inconnu au plus grand nombre
    C'est vrai mais je ne tiens nullement a violer qui que ça soit

    et

    si j'entrai dans les dépôts d'une distribution Linux, comment je ferai pour placer mon jeu, je ne le pourrai pas.

    Et entre nous je pense que tu manque d'ambition, pourtant tu est plus jeunes que moi: par exemple pour ton packaging jetable, c'est dommage.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  10. #10
    Expert éminent
    Ca veut dire quoi SNK ca revient a chaque fois: vous ne pouvez pas mettre le sens des abréviations ?
    Je pensais que tu savais au moins d’où vienne les rip des sprites , il vienne de neo geo battle coliseum certes mais le nom de la boite qui l'a développé c'est SNK
    Enfin Neo Goe battle colliseum c'est un cross over des différent jeux de SNK , c'est un peu l'équivalent de super smach bros melee de Nintendo.
    Bref si tu voulais utilisé leur sprite c'est a SNK que tu devrait demandé.

  11. #11
    Responsable 2D/3D/Jeux

    Le site vg-ressources, c'est un site de rip (dans le sens, copie et extraction de ressources de jeu vidéo commercialisés). Du coup, ils savent pertinemment qu'ils sont hors de la légalité en mettant à disposition ses ressources.
    Le second site (que j'utilise) est rempli par des gens qui offrent leurs ressources (sous licence) et est donc plus clairs sur la légalité de la chose.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  12. #12
    Membre expérimenté
    Merci pour votre soutiens a vous deux.

    Kannagi ta boite de messages privée est pleine depuis des lustres que j'essaie de t'envoyer un message privée, mais a chaque fois il me dit que c'est plein !

    LittleWhite a parfaitement raison et si Mr. Stallmann mène un combat acharnée et organisée pour le free-software ce n'est pas pour rien.

    Et donc il devrai y avoir des ressources de qualités libre aussi, enfin...

    Ce détail m'embête vraiment, car uniquement les personnages de mon jeu battle-rage proviennent de ce site de malfrat informatique (si cela se trouve ça va bien plus loin par le biais du dark-net, cette mise a disposition de ressources illégales...).

    C'est rebutant que je me soit fait avoir, je parie que ces porcs ne savent pas ce qu'est écrire un programme et de la déception de se retrouver avec du contenus illégale.

    Je pense qu'il est possible de prendre des captures d'images de jeux (malgré que je pense que le ripping ne se fasse pas ainsi.) de manière légale ou du moins de manière intelligente et légale.

    Vous savez bien que je suis un GNU/Linux geek et que je défends le libre mais il faut le faire de manière intelligente:

    La Free-Software Foundation dispose de pas mal d'avocats, de juristes, de traducteurs, etc... de tous pays afin de mener leur combat de manière intelligente.

    Mais voler autrui (dans ce cas Microsoft ou SNK comme dit kannagi) je ne peut le tolérer même si je n'aime pas la politique de Microsoft.

    Kannagi: pourrai tu me trouver le moyen de contacter SNK (car je n'ai toujours pas le définition de l'abréviation) car tu a dit que:

    Bref si tu voulais utilisé leur sprite c'est a SNK que tu devrait demandé.
    Et pense que tu que SNK m'accorderai le droit d'utiliser leurs images.
    Car ces images, c'est un infographiste qui les a faîtes sans nul doutes et est leur propriété vue que cet infographiste a bosser pour eux.
    Je suis même prêt a payer si cela est abordable.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  13. #13
    Responsable 2D/3D/Jeux

    Même en contactant l'artiste, je doute que vous ayez les mêmes images. Notamment car les images n'appartiennent surement plus à l'artiste, mais que tous les droits appartiennes à l'entreprise (donc SNK). Ensuite, je doute qu'ils vous en donne une copie utilisable, car ces images représente leur oeuvre. Si je prends au hasard un de leur personnage et que je l'affiche en public, beaucoup de joueur penseront directement au nom du personnage, au nom du jeu et à SNK. Si ce personnage était utilisé dans une autre oeuvre, ils vont perdre leur identité (qu'ils ont construit au fil du temps).

    Avec un
    !w SNK
    -> https://fr.wikipedia.org/wiki/Snk

    Ce détail m'embête vraiment, car uniquement les personnages de mon jeu battle-rage proviennent de ce site de malfrat informatique (si cela se trouve ça va bien plus loin par le biais du dark-net, cette mise a disposition de ressources illégales...).
    Et vous avez écrit leur nom avec lien, deux ou trois fois, faisant augmenter leur référencement Google . (Même la mauvaise pub est de la pub ).

    Et donc il devrai y avoir des ressources de qualités libre aussi, enfin...
    Les libristes, chez les artistes, c'est plutôt rare. En partie à cause de l'éducation universitaire, mais aussi à cause du marché du travail qui ne leur permet pas vraiment une telle chose. Mais ça, c'est un autre débat et en parlant de discussion, il faudrait peut être se recentrer sur votre jeu .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #14
    Expert éminent
    Pour les MP c'est parce que LittleWhite spam ma boite mp :X

    Pour SNK comme le dit LittleWhite aucune chance qu'il te le file , enfin moi je rajouterai que la licence de SNK c'est plusieurs millions de dollars tu ne connaît pas leur jeu peut être mais un KOF (King of Fighter) ça peut se vendre comme des petits pains.
    C'est une licence très connu (surtout en Asie) , c'est un peu le final fantasy du jeu de baston