| Ninja | |
|
+7AristA Dragongaze13 Manderr Choco-sama Relm Zim coco 11 participants |
|
Auteur | Message |
---|
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Ninja Mar 02 Nov 2010, 18:53 | |
| Alors voila, c'est ici que je mettrais l'avancement des petits programmes sur lesquels je travaille. J'ai depuis longtemps envie de trouver un programme de création de jeu qui donne plus de possibilités que RM. Je me suis finalement rendu compte que la programmation est un moyen d'être libre de toutes contraintes sans pour autant être très dure à maitriser. Ca fait moins d'un an que je me suis mis au C (avec d'énormes pauses ). Le site du zéro m'a vraiment bien aidé, que ce soit le tuto principale ou tout les articles pour comprendre la structure de certains aspects de la programmation d'un jeu. Je conseille vraiment ce site à ceux qui veulent se lancer dans l'apprentissage du C. Mes programmes sont réalisés à l'aide de la SDL pour ceux qui connaissent (bibliothèque gérant la 2D ). Après un casse-brique tout pourri au collisions douteuses, je me suis lancé dans la création d'un premier vrai jeu en C : C'est un jeu de plateforme pour l'instant, mais j'ai comme objectif de faire un système de tir de shuriken et d'ajouter des ennemis dans les niveaux. ARCHIVE DU PROJET Si on clique sur "jeu.exe", ça lance le niveau contenu dans le fichier "Level.lvl". On se déplace avec les touches fléchées et on saute avec le controle droit A noter : un éditeur de niveau est compris dans l'archive, cliquez sur "Editeur.exe" pour le lancer, faite votre niveau, sauvegardez avec save et mettez le fichier "Level.lvl" du dossier "Editeur" dans le dossier "jeu C" pour pouvoir jouer sur votre niveau en lançant le jeu Par contre le scrolling vertical n'est pas encore implanté donc vous ne pourrez faire des niveaux qu'en largeur... ____________
Dernière édition par coco le Mar 02 Nov 2010, 20:09, édité 1 fois | |
|
| |
Zim ---Fantôme--- Lv 0
Nombre de messages : 10103 Age : 38
| Sujet: Re: Ninja Mar 02 Nov 2010, 19:16 | |
| J'adore les graphismes. Habituellement dans les jeux de plates-formes, le héros ne saute pas en continu si on maintient la touche Saut appuyée (risques d'erreur sinon). Il saute beaucoup en hauteur, le ninja (sans tenir compte du temps de pression de la touche à ce que j'ai vu), il pourrait aussi dasher en avant en plein saut, ça irait bien avec (surtout si la plupart des niveaux sont à l'horizontal). Euh.. Tiens regarde ce jeu, il devrait te plaire : ninja d'une case de hauteur, sauts, shurikens (et c'est de là que je tire l'idée du dash) : - Spoiler:
En tout cas, ton petit jeu est tout mignon, et la prise en main très agréable.
Dernière édition par Kofi Annan le Mar 02 Nov 2010, 19:16, édité 1 fois | |
|
| |
Relm ---Fantôme--- Lv 0
Nombre de messages : 40942 Age : 33
| Sujet: Re: Ninja Mar 02 Nov 2010, 19:16 | |
| C'est cool. C'est normal que le jeu ferme subitement régulièrement ? Comme quand on meurt... Le saut est pas dosable en hauteur encore, on saut haut quand même. Si on laisse le bouton de saut il saute tout le temps, tu peux éviter ça ? Le scrolling purement horizontal ne dérange pas vraiment. Hâte de voir quand les ennemis seront implanté + les coups... EDIT : corrige la faute dans ton titre et donne au projet un nom stp, même un nom de projet, juste pour pouvoir le nommer. Merci. ____________ - Alex RE a écrit:
- C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
| |
|
| |
Choco-sama Fan traître de harusame lvl 69
Nombre de messages : 13810 Age : 37
| Sujet: Re: Ninja Mar 02 Nov 2010, 19:29 | |
| Excellent! ^^
Je testerai prochainement et te dirais mon avis^^ ____________ - Zim a écrit:
- voire les super-hardcore-poke-nerds genre Choco
"Quand j'ai faim, hop, un voisin!" Derniers Pokemons Chromatiques/ Shiney capturés 2019/2020: Metamorph/ Charbi | |
|
| |
Zim ---Fantôme--- Lv 0
Nombre de messages : 10103 Age : 38
| Sujet: Re: Ninja Mar 02 Nov 2010, 19:38 | |
| | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Mar 02 Nov 2010, 21:11 | |
| J'ai enlevé le saut lorsque la touche était pas appuyée en permanence, mais je vois pas trop comment gérer le temps d'appuis sur la touche proprement (comme dirait arista ) Le crash du programme lorsque l'on quitte l'écran par le haut et le bas est "normal" (j'entends par là que je vais corriger ça prochainement, en même temps que l'ajout du scrolling vertical ). Par contre je viens de remarquer que ça crash sans raison apparente si on fait un certain trajet, je vais essayer de voir pourquoi... Pour la hauteur des sauts, ça irait comme ça si c'était la hauteur maximale (et donc une hauteur moins haute sur une pression brève de la touche) ? J'aime beaucoup l'idée du dash , je vais y réfléchir. Merci beaucoup ____________ | |
|
| |
Relm ---Fantôme--- Lv 0
Nombre de messages : 40942 Age : 33
| Sujet: Re: Ninja Mar 02 Nov 2010, 23:01 | |
| Le temps d'appuis sur la touche ? Pour le dosage du saut tu veux dire ?
Ouais le crash m'arrivait même si j'étais au milieu du screen. ^^
La hauteur du saut actuelle est haute je trouve, même pour un saut max. Peut être un tile de moins en hauteur. Prends exemple sur Mario, Megaman ou un quelconque je de plateforme. Je pense qu'ils sautent en général 3 ou 4 tiles de haut, donc 2 fois leur taille en gros.
Là ton gars on dirait qu'il est dans l'espace... même si c'est un ninja il saute trop haut... enfin pour le moment ça fait bizarre vis à vis de la taille des maps. Et imagine s'il y a un scrolling vertical, il ne faut pas qu'en sautant depuis la terre ferme le sol disparaisse de l'écran.
____________ - Alex RE a écrit:
- C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
| |
|
| |
Zim ---Fantôme--- Lv 0
Nombre de messages : 10103 Age : 38
| Sujet: Re: Ninja Mer 03 Nov 2010, 00:28 | |
| Peut-être un tile de moins, oui (et pouvoir contôler un saut de 1 et 2). Mais bon, à la limite comme ça, ça me choque pas vraiment en fait, dans le sens où le personnage est petit par rapport à la taille de l'écran, il peut donc se permettre de sauter aussi haut pour mieux occuper l'espace (s'il y a autant d'espace, c'est bien pour l'occuper ?).
Quelle importance tu veux accorder aux sauts ?
Dans Super Meat Boy, qui repose entièrement sur les sauts, le personnage saute à une hauteur de 4 cases (et pareil, le perso fait juste un tile de haut dans un grand écran). A la différence de ton ninja, il peut se déplacer de beaucoup de cases à droite et à gauche en sautant (pas particulièrement un exemple à suivre, mais c'est pour te présenter un autre feeling).
http://www.newgrounds.com/portal/view/463241 | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Mer 03 Nov 2010, 10:41 | |
| En schématisant le joueur peut en ce moment sauter ce genre d'obstacle ( J symbolise le joueur) : ## ## ## ## J ######### En réglant un peu les différentes constantes, je peux obtenir ça : ## ## ## J ######### Donc en fait le ninja saute en ce moment de 4 case de haut, c'est bizarre que ça soit vraiment choquant, mais en le passant à 3 cases, en effet je trouve ça mieux Oui je voulais parler du dosage en parlant du temps d'appuis (en fait ma phrase voulait rien dire ) et dire que j'avais enlevé les sauts à la suite si on tient la touche de saut en continu Pour le scrolling vertical justement, je pense faire en sorte qu'il y ait scrolling que si le joueur se rapproche trop des bords de l'écran, pour éviter que la caméra ne saute trop souvent Et pour finir, en fait dans super meat boy, la vitesse de déplacement horizontale est très grande, donc forcément s'ils ont utilisé cette vitesse aussi lors des sauts (comme dans mon jeu ), il va très vite horizontalement en marchant ou en sautant. Par contre je trouve les sauts sur les murs très bien gérés, je me demande si je ne vais pas essayer de faire un système similaire, associé à un tir horizontal, ça doit donner pleins de possibilités ____________ | |
|
| |
Zim ---Fantôme--- Lv 0
Nombre de messages : 10103 Age : 38
| Sujet: Re: Ninja Mer 03 Nov 2010, 14:30 | |
| Dash en l'air + rebond sur les murs + shoot = Mega Man X = un des meilleur jeu qui soit. Donc je suis largment pour, je ne me lasse jamais de ce genre de gameplay. Comme je te l'ai dit, 4 cases de hauteur ne me choquait pas, mais c'est très possible qu'avec 3 ça rende mieux ( 3 est un joli nombre). ^^ | |
|
| |
Manderr Zigouilleur de makeurs Lv 32
Nombre de messages : 2447 Age : 29
| Sujet: Re: Ninja Mer 03 Nov 2010, 21:23 | |
| Coco, tu es mon idole Oui, trois cases de saut seraient mieux et permettraient au joueur de mieux contrôler l'atterrissage des sauts. Tu comptes en faire quelque chose de ce truc ou c'est juste pour t'entraîner au C? Si oui, tu vas conserver cette histoire de Ninja où tu vas en trouver une autre? Et tu nous pondras de beaux pixel arts comme tu en as le secret hein? | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Mer 03 Nov 2010, 21:43 | |
| Je compte au moins faire un niveau complet avec tir, ennemis et rebond sur les murs. Si la structure n'est pas trop lourde (pour l'instant grâce à "l'éditeur" les niveaux sont plutôt simple à réaliser, mais avec l'ajout d'ennemis ça va être une autre histoire ) je ferais peut-être un jeu de 3-5 niveaux avec un dash qu'on acquiert dans l'aventure...
Mais il ne faut pas s'attendre à des merveilles graphiques étant donné que le tileset fait 10*10 cases par niveau et que je n'ai pas envie de passer trop de temps sur les pixel art alors que la programmation est déjà très consommatrice en heures ^^
____________ | |
|
| |
Manderr Zigouilleur de makeurs Lv 32
Nombre de messages : 2447 Age : 29
| Sujet: Re: Ninja Mer 03 Nov 2010, 22:08 | |
| C'est toi qui programme et t'as une contrainte au niveau des ressources graphiques? [/noob_en_programmation_non-événementielle] | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Mer 03 Nov 2010, 22:25 | |
| En fait j'ai du choisir une façon de sauvegarder une map juste avec un fichier texte (ce qui est un énorme casse-tête ). Ma méthode comporte 2 chiffres par case de ma map : le premier l'abscisse de la tile du tileset et le second l'ordonnée de la tile du tileset. Ainsi, par exemple si la case de la map contient 00 elle correspond à la tile en haut à gauche du tileset (la passabilité étant notée à part). Il n'y a pas vraiment de règle sur comment organiser le fichier qui contient la map, et j'ai inventé cette méthode car elle n'est pas très dure à mettre en place, et surtout l'éditeur de niveau devient plutôt simple à réaliser pour le mapping. Je pourrais par contre mettre 4 chiffres par case, ce qui me donnerait un chipset de 100*100 tiles. Mais je n'en ai pas vraiment vu l'utilité étant donné que j'aime pas trop faire de gros PA. En fait les seules contraintes que j'ai sont celles de ma capacité à coder un mécanisme efficace. C'est vrai que je pourrais passer à un tileset de 100*100 cases, mais je préfère rester sur un 10*10 bien rempli que un gros tileset qui me prendrait énormément de temps à réaliser (surtout si je veux faire plusieurs environnements dans le jeu, car chaque niveau a son propre tileset). Le seul point noir de cette méthode est en fait l'insertion des ennemis, qui sera surement géré autrement si je veux qu'ils puissent se déplacer pixel par pixel... ____________ | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Sam 06 Nov 2010, 12:16 | |
| J'ai quelques question de game design : J'ai joué à Mégaman X et j'accroche vraiment pour les sauts pour les murs (par contre je ferais glisser le joueur moins vite, pour pouvoir tirer lorsque l'on glisse sur un mur plus facilement). Mais je ne saisis pas vraiment ce qu'apporte le dash (j'en suis qu'au début du jeu, donc c'est ptêt logique), ça ne sert ni à esquiver, ni à sauter plus loin, donc j'en déduis que c'est pour aller plus vite sur de courtes distances, mais je ne vois pas trop l'intérêt sauf contre certains boss Je voudrais aussi savoir ce que vous pensez de l'autofire dans un jeu où on ne peut pas charger le tir, quel sont les arguments qui font le choix entre autofire et tir au coups par coups ? ____________ | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: Ninja Sam 06 Nov 2010, 14:01 | |
| Humm.. Autofire, s'il tire pas assez vite il suffira de l'utiliser comme un coup par coup. Autant mettre coup par coup direct donc.. | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Sam 06 Nov 2010, 14:25 | |
| Je disais ça car je sais que certains n'aiment pas matraquer leur clavier (ça l'abime beaucoup ). Mais vu que c'est moi qui programme, je peux régler pour que l'autofire tire toutes les frames (le maximum ), ou toutes les 2 frames ou toutes les 3 frames... Et vu que je peux aussi modifier le nombre de frames, si je programme un auto fire il ira de toute façon plus vite qu'un joueur si je le veux Je pense que je vais me tourner vers un autofire, mais en jouant justement à Megaman, je me suis demandé pourquoi dans certains jeux on tire au coups par coups alors que le tir ne charge pas, est-ce pour récompenser les "hardcore gamer" qui tape 30 fois sur une même touche en une seconde pour avoir le meilleur nombre de tir possible ? ____________ | |
|
| |
Zim ---Fantôme--- Lv 0
Nombre de messages : 10103 Age : 38
| Sujet: Re: Ninja Sam 06 Nov 2010, 14:54 | |
| Ces jeux sont des jeux d'arcade portés sur console de salon, ou des héritiers de jeux d'arcade. La vitesse d'appui sur les touches dans les jeux d'arcade ajoutait une difficulté, permettait aux "hard-core gamers" de montrer leur supériorité : deux choses essentielles pour un jeu d'arcade (difficile : on paie plus souvent pour jouer ; se la péter : motivation pour persévérer).
Ce que tu peux faire : un auto-fire moyen mais suffisant, tout en permettant de tirer plus vite si on appuie plusieurs fois sur la touche pour faire plaisir aux ahrd-core gamers. Je n'ai pas d'exemple précis, mais je crois que c'est une solution souvent utilisée dans les shoot'em up.
Le dash dans Mega Man X sert à sauter plus loin : depuis le sol, ou depuis un mur. Dans Mega Man X 2, on peut dasher en l'air : ce qui permet d'avoir une trajectoire de saut différente : au lieu d'une courbe, tu vas tout droit en choisisssant préalablement la hauteur : utile quand il y a des pics mortels au plafond. Enfin, X se penche quand il dashe : il peut ainsi éviter certains tirs à hauteur d'homme. Et puis ça sert à aller plus vite, et ponctuellement à éviter un coup.
EDIT : se pencher pour dasher n'est pas possible par contre dans ton jeu, si le perso fait un tile de hauteur ? | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Sam 06 Nov 2010, 15:26 | |
| Je vais faire un auto-fire normal je pense, trop galère à programmer le système que tu propose (bien qu'étant la meilleure solution ) ^^ Dans mon jeu en fait le perso fait un peu plus d'un tile de hauteur ( sa hitbox fait 22 pixel de hauteur, contre 16 pour un tile, et son sprite fait 1 tile et demi ). Donc je me disais que le dash pourrait par exemple permettre de passer par des passage d'un seul tile de hauteur (vu que le sprite est légèrement plus grand que la hitbox, ça ne choquera pas ). Dans Megaman X 2, une fois le dash finit pendant un saut, on retombe direct ou on continue le saut s'il n'était pas fini ? ____________ | |
|
| |
Relm ---Fantôme--- Lv 0
Nombre de messages : 40942 Age : 33
| Sujet: Re: Ninja Sam 06 Nov 2010, 15:40 | |
| - Citation :
- Mais je ne saisis pas vraiment ce qu'apporte le dash (j'en suis qu'au début du jeu, donc c'est ptêt logique), ça ne sert ni à esquiver, ni à sauter plus loin
Ca sert justement à sauter beaucoup plus loin et rapidement. C'est super utile si tu veux jouer bien. Le jeu sans le dash serait soporifique. Je comprends pas comment tu ne le réalise pas. Pour dasher utilises plutôt "2 fois avant" que le bouton "R", sauf si tu veux sauter immédiatement une très longue distance sans bouger de place => Saut + R ____________ - Alex RE a écrit:
- C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
| |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Sam 06 Nov 2010, 16:03 | |
| J'utilisais pas le dash correctement en fait Mais Zim m'a expliqué comment ça marche En effet le dash est très intéressant vu comme ça : une augmentation de vitesse lors du maintien d'une touche, mais un bonus limité dans le temps, qui permet de faire de sauts beaucoup plus longs. ____________ | |
|
| |
Relm ---Fantôme--- Lv 0
Nombre de messages : 40942 Age : 33
| Sujet: Re: Ninja Sam 06 Nov 2010, 17:46 | |
| J'ai lu brièvement mais sache que pour la hitbox de ton héros l'idéal c'est qu'elle soit relative aux tiles donc 22 pixels c'est bof sur des rapport de 16 pixels.
Il faut que pour le joueur la hitbox soit logique et se comprenne par l'environnement qui l'entour. Donc l’échelle du perso par rapport au décor doit etre cohérente (au niveau gameplay).
Je sais pas si je suis claire, mais voilà un exemple :
Dans les Megaman, Megaman fait en gros 2 tiles de haut. Et Megaman ne peut pas se baisser. Inafune (le créateur) n'a pas voulu que Megaman puisse se pencher pour que le joueur ne trouve pas ambigu la façon dont les projectiles adverses soient esquivés. Ils sont soit trop haut : on ne bouge pas, soit à bonne hauteur : on saute.
Jouer avec des rapports de demi tiles n'est jamais intuitif pour le joueur et n'apporte rien en terme d'intérêt. ____________ - Alex RE a écrit:
- C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
| |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Dim 07 Nov 2010, 14:22 | |
| Donc en gros il faudrait que je fasse un héros soit d'un tile sur un tile, soit de 2 tile en hauteur et 1 tile en largeur ? Ca serait pas vraiment un problème (faut refaire les sprite quand même, mais 5 sprite c'est pas la mort ) vu que la taille du héros est stockée dans des constantes et donc le programme adapte les calculs en fonction de la taille que l'on donne au début. J'ai programmé le tir aussi, mais je me demandais s'il vaut mieux gérer les collisions des projectiles en leur faisant une hit-box de la taille d'une ligne, ou en forme de carré. Car si c'est un carré, en théorie un seul projectile peut détruire 2 objets destructibles collés s'il tape à la jonction entre les deux... Le problème de crash que l'on pouvait rencontrer a été résolu aussi, et je vais maintenant m'attaquer au scrolling vertical avant d'enfin passer aux monstres ____________ | |
|
| |
Relm ---Fantôme--- Lv 0
Nombre de messages : 40942 Age : 33
| Sujet: Re: Ninja Dim 07 Nov 2010, 14:59 | |
| Fais ton perso de 2 tiles de haut en gros (si tu as une différence de 3 pixels c'est pas grave) mais ça hitbox doit être égale à un multiple de tile. Pour ses projectiles je dirai qu'ils n'ont pas besoin de couvrir un tile complet mais juste leur taille réelle. La hitbox des ennemis (souvent un poil plus grande que leur sprite) sera assez grade pour se faire toucher dans plusieurs cas, même si tes projectiles n'ont pas une grosse hitbox (ce qui faut éviter pour ne pas voir des bugs). ____________ - Alex RE a écrit:
- C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
| |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: Ninja Dim 07 Nov 2010, 15:21 | |
| En fait le perso en multiple de tile c'est juste pour la hauteur afin que le joueur puisse savoir s'il doit sauter ou non pour éviter les projectiles ? Donc la largeur n'est pas tellement importante (enfin s'approcher de la largeur d'un tile est toujours bien je pense) ?
Justement pour l'instant la hitbox des projectile fait un quart de tile (8*8) ce qui correspond à peu près à la taille du sprite. Donc je garde ça comme ça pour les projectiles alors.
Autre chose, pour que le jeu ne soit pas frustrant, il faut que la hitbox des monstres soit un poil plus grande que leur sprite et celle du joueur un poil plus petite ?
Une petite démo pour montrer le système en place : ICI (shift droit pour tirer ) ____________ | |
|
| |
Contenu sponsorisé
| Sujet: Re: Ninja | |
| |
|
| |
| Ninja | |
|