WIP SHMUP : Apprendre les bases

Pour tout ce qui est fan arts, homebrew, shooters codés à la main, rip de sprites, doujins et toute autre productions artistiques ou logicielles faites maison.
Répondre
Avatar de l’utilisateur
9uile
Insert Coin
Messages : 7
Inscription : 03 mars 2020, 17:04

Bonjour à tous,

J'essaie d'apprendre les bases pour faire un shmup dans UNITY.
Je ne suis pas encore prêt techniquement à faire un jeu complet donc j'apprend petit à petit les mécaniques essentielles propres à ce genre.

Ci-dessous, mes deux premières tentatives :





Dites-moi quelles étapes faire par la suite !!!

Merci !!!
Avatar de l’utilisateur
Alec
King Fossile
Messages : 14780
Inscription : 12 juil. 2004, 17:04
Localisation : nstc-j

des graphismes plus concrets, ça rend les choses plus concrètes et les tests sont plus amusants à faire (enfin je trouve)
All your base.....
Avatar de l’utilisateur
Radigo
Counter Stop
Messages : 6883
Inscription : 22 mai 2003, 16:31
Localisation : Paris
Contact :

Je suis du genre à défendre bec et ongle le concept, le level design et le game design avant tout, mais il faut bien avouer que les meilleurs (là j'ai mal orthographié "shmups" mais promis je ne recommencerai plus) ont aussi un design soigné et une mise en scène qui tabasse (Under Defeat...).

Donc, oui mettre tout ça dans un environnement un peu plus concret ça peut être une étape importante pour rendre le jeu un peu plus sympa.

Sinon, en restant dans l'abstrait, je ne pense pas que chercher à corriger tous les problèmes soit une bonne idée Das l'absolue. Les problèmes qui mènent à des situations favorables au joueur (les missiles qui tournent à l'infini) sont cools, c'est extrêmement gratifiant pour le joueur de trouver des safe-spots, surtout si on sent que ça 'a pas été prévu.
"HYPER GAGE : 500%"
Image
Avatar de l’utilisateur
Alec
King Fossile
Messages : 14780
Inscription : 12 juil. 2004, 17:04
Localisation : nstc-j

Oui Radigo je suis d'accord mais si ça reste abstrait trop longtemps, enfin perso ça me frustrerai à mort que mon vaisseau/insecte/petite fée/sorcière dénudée/alien ne prenne pas vie lors des tests.
Idem pour les spirites de tirs et un peu de décor.... ça veut pas dire faire le jeu au fur et à mesure mais savoir vers quoi on se tourne AU DEPART !

Tout en testant des concepts de gameplay et de level design on peut utiliser quelques bricoles en 2d ou en 3d, c'est plus vivant et plus motivant je trouve....

Enfin avec le recul je suis plus du genre à planter le décor avant le concept et le gameplay...... l'inverse est sûrement possible :D
All your base.....
Avatar de l’utilisateur
9uile
Insert Coin
Messages : 7
Inscription : 03 mars 2020, 17:04

En fait, j'essaie de commencer par les fonctions de bases au niveau du développement.
En ce moment, je suis sur les tirs des ennemis. C'est un peu important dans ce type de jeux :).
Je ne vous cache pas que j'aimerais bosser sur le design et tout et tout mais j'ai quelques trucs à finir avant dont choisir ma résolution d'écran finale pour éviter des problèmes d'échelle au niveau des dimensions des sprites. J'hésite aussi avec l'orientation du jeu Horizontale/Verticale.
J'espère pouvoir publier prochainement la troisième vidéo mais à chaque fois, j'ai des nouvelles idées de tirs et j'aimerai être satisfait sur ce point avant de passer au suivant qui sera les POWER UP !.
Avatar de l’utilisateur
Alec
King Fossile
Messages : 14780
Inscription : 12 juil. 2004, 17:04
Localisation : nstc-j

Ah oui je te comprends vu comme ça ! :)
All your base.....
Avatar de l’utilisateur
M.Knight
El Smarto
Messages : 2615
Inscription : 24 déc. 2010, 11:28

Ah ouais pas mal du tout les missiles homing! Perso j'ai mis des années avant d'enfin bosser sérieusement sur un missile homing décent et le mettre dans l'jeu. :D
A quand des boss Taito-esques avec des lasers à tête chercheuse dans le même style? :mrgreen:

En tout cas, ouais c'est cool de te lancer dans ton projet! Je comprends bien la démarche de vouloir maîtriser les bases avant de partir dans un truc sérieux avec un design précis. Avoir juste des cubes qui se lancent des boules dans la tronche pendant un certain temps c'est loin d'être un problème, tant que ça te permet de créer une base solide. Les assets visuels et artistiques ça peut venir après, quand t'auras déjà un peu mieux maîtrisé Unity et que t'as une idée de game design/scoring/univers/etc.

Perso' j'suis du genre à pas trouver d'intérêt aux powerup dans les shmups mais ça peut être intéressant à coder pour toi. Pourquoi pas essayer de programmer différents types d'armes d'ailleurs? Un tir classique est assez simple et fait des dégâts pour chaque collision, mais quid d'un tir perçant qui ferait donc des dégâts de contact par game loop? (tiens d'ailleurs ça pousse à découpler la game logic de la visual logic et éviter d'avoir des trucs chelou en moniteur 120Hz) Et pourquoi pas un missile explosif qui ferait des dégâts en AoE? Un tir qui se locke sur un ennemi et lui inflige des dégâts en continu? Y a moyen d'expérimenter divers exercices de codage de cette façon j'ai l'impression.

Autre possibilité : tester le scrolling horizontal que t'as dans certains shmups verticaux quand tu t'approches des rebords. Cela arrive dans les jeux où la largeur de la zone de jeu est plus grande que la zone affichée à l'écran. Et du coup ça te pousse aussi à gérer la position des ennemis en fonction. (et empêcher les tirs de ceux qui sont offscreen)
Radigo a écrit :
04 mars 2020, 17:18
Je suis du genre à défendre bec et ongle le concept, le level design et le game design avant tout, mais il faut bien avouer que les meilleurs (là j'ai mal orthographié "shmups" mais promis je ne recommencerai plus) ont aussi un design soigné et une mise en scène qui tabasse (Under Defeat...).
C'est clair que l'univers visuel et la mise en scène sont pas à négliger! Tu peux d'ailleurs avoir des jeux au level design absolument catastrophique comme les Tatsujin qui arrivent quand même à avoir des fans, notamment via leur pixel-art impeccable et les musiques sympathiques. :mrgreen:

Et puis une bonne ambiance et des persos/vaisseaux/décors mémorables ça donne au jeu une identité qui lui permettra de se démarquer bien plus! T'as des shoots qui sont plutôt bons et travaillés genre les Danmaku Unlimited qui seraient sûrement plus joués si leur univers visuel n'était pas aussi froid et dénué de personnalité.
Alec a écrit :
04 mars 2020, 19:13
Oui Radigo je suis d'accord mais si ça reste abstrait trop longtemps, enfin perso ça me frustrerai à mort que mon vaisseau/insecte/petite fée/sorcière dénudée/alien ne prenne pas vie lors des tests.
Idem pour les spirites de tirs et un peu de décor.... ça veut pas dire faire le jeu au fur et à mesure mais savoir vers quoi on se tourne AU DEPART !

Tout en testant des concepts de gameplay et de level design on peut utiliser quelques bricoles en 2d ou en 3d, c'est plus vivant et plus motivant je trouve....

Enfin avec le recul je suis plus du genre à planter le décor avant le concept et le gameplay...... l'inverse est sûrement possible :D
Après avoir vu comment d'autres devs de shmups marchent, j'ai l'impression que les deux possibilités existent. Certains auront besoin de se créer un univers et un concept pour avoir l'inspiration, alors que d'autres vont prototyper avec des assets moches et basiques. Les deux se valent mais si tu pars direct sur une ambiance spécifique, il faudra quand même se laisser une bonne marge de manœuvre dans le cas où les résultats de ton prototypage technique matchent pas forcément ton concept d’histoire/persos/etc.
Avatar de l’utilisateur
9uile
Insert Coin
Messages : 7
Inscription : 03 mars 2020, 17:04

Salut M.Knight,

Merci pour ta réponse, c'est très intéressant d'avoir l'avis d'autres personnes. En fait, je ne cache pas que mon objectif est de ne pas aller trop vite. Sinon, ca à trop souvent abouti pour moi à un fouarage. Une idée sympa, quelques scènes vites faites. Puis au fil du temps, les bugs remontent en surface et s'étant un peu trop éparpillé, le projet avorte faute de temps.
Cette fois ci, je me donne le temps pour des fonctions essentielles et une fois qu'elles sont ok, je passe à autres chose. C'est toujours plus facile de corriger le code quand il est frais dans la tête.
Si une maquette du jeu est cool sans design, c'est déjà un bon départ. :)

J'ai vu ton jeu en développement, c'est sympa. Ca fait combien de temps que tu bosses dessus ? C'est sur UNITY ?
Avatar de l’utilisateur
M.Knight
El Smarto
Messages : 2615
Inscription : 24 déc. 2010, 11:28

Ah oui, les joies du code legacy et des démons virtuels du passé (qu'on a invoqués nous mêmes!) qui rendent la base de code de plus en plus galère à comprendre et utiliser. :mrgreen:
Même pour un shmup qui semble pas trop complexe, il y a bien moyen de s'emmêler les pinceaux. Donc c'est très bien que tu veuilles poser des bases solides et pas aller trop vite. Après tu pourras toujours être amené à devoir réécrire des parties de ton code par la suite, et ça voudra pas forcément dire que tu t'es foiré quelque part. Et des bugs tu risqueras d'en avoir tout le temps, c'est normal. La différence est de savoir si c'est des cas un peu obscurs/spécifiques (genre des events déclenchés à la même game loop/frame que t'avais pas prévu) que tu peux corriger avec quelques ajustements ou s'ils sont révélateurs de fondations branlantes.

En tout cas une architecture solide et qui rend le développement assez simple c'est important je trouve. Là j'imagine que tu te concentres sur la qualité du code et une implémentation propre de tes armes/déplacements/ennemis/etc. Je conseille également de penser ta structure de telle sorte que tu puisses facilement ajouter/retirer des vagues d'ennemis, du décor, etc. Quand le projet sera plus abouti et que tu voudras faire des ajustements sur ton level-design, il faut pas que ta structure de code et de projet te freine dans cette démarche. Pour ma part j'ai passé un peu de temps à cogiter dessus et je sais que ça m'aide bien quand tester un ennemi qui vient d'être scripté ou mettre en place des vagues d'ennemis se fait directement via quelques clics/inputs sur l'interface du moteur de jeu.

Pour éviter de t'éparpiller aussi, ce que je peux recommander c'est de te fixer un scope dès le début : X niveaux (pas plus), X types d'armes (pas plus), pas de trucs méga fancy ou modes bonus. Et t'essaie de t'y tenir. Une fois que tu seras plus à l'aise dans ton projet et que t'auras bien avancé tu pourras revoir si jamais tu te sens chaud pour ajouter des trucs en plus. Ou pareil si t'as une idée de mécanique qui rend le jeu encore meilleur. Mais rajouter des features encore et toujours c'est très tentant et il faut faire gaffe à ce que ça soit vraiment des ajouts nécessaires/importants pour l'expérience de jeu et pas juste des distractions pour toi qui font que retarder ton projet sans avoir une plus-value justifiable.

Effectivement, mon shmup est également sur Unity3D! J'avais commencé en Décembre 2016, soit à peu près un an avant que j'termine une première démo et que j'en parle en public sur le topic. J'connaissais C# mais pas Unity en particulier donc forcément j'ai du apprendre un peu sur le tas. Et j'continue encore à apprendre des trucs, vu que j'suis en solo sur le projet et dois donc tout faire. :D


Ah oui, et j'oubliais un truc : Si t'as pas installé de GIT, il faut absolument que tu le fasses! Le version control en général c'est super important et salvateur pour gérer les évolutions de ta base de code et avoir un backup au cas où.
Avatar de l’utilisateur
suny
As du Slalom
Messages : 182
Inscription : 04 juil. 2014, 18:22
Contact :

Ah oui, et j'oubliais un truc : Si t'as pas installé de GIT, il faut absolument que tu le fasses! Le version control en général c'est super important et salvateur pour gérer les évolutions de ta base de code et avoir un backup au cas où.
X2. J'utilise Fork comme GUI, c'est super facile à utiliser et ça sauve la vie.
S.
Avatar de l’utilisateur
Prickly Angler
Brute du bouton A
Messages : 258
Inscription : 21 févr. 2017, 02:00

Tu peux d'ailleurs avoir des jeux au level design absolument catastrophique comme les Tatsujin qui arrivent quand même à avoir des fans
Cette haine :D :D
When Great Thing was destroyed, the scene of desolation spreading out before their eyes disappeared like the melting away of a vision."What have we witnessed…?"
Only the feeling of fatigue from a battle with themselves remained in their bodies.
Avatar de l’utilisateur
Alec
King Fossile
Messages : 14780
Inscription : 12 juil. 2004, 17:04
Localisation : nstc-j

Tu peux d'ailleurs avoir des jeux au level design absolument catastrophique comme les Tatsujin qui arrivent quand même à avoir des fans
En même temps c'est vrai, je le trouve aussi frustrant que sans saveur....Ce sont bien les graphismes et le son qui peuvent pousser à aller plus loin mais niveau sensations c'est morne plaine je trouve....
All your base.....
Avatar de l’utilisateur
M.Knight
El Smarto
Messages : 2615
Inscription : 24 déc. 2010, 11:28

"C'est plus chiant que Euro Truck Simulator 2" :mrgreen:

Mais ça reste utile pour un designeur de shmup. Même si dans l'absolu on peut surtout s'en servir pour voir exactement ce qu'il ne faut pas faire, il y a une leçon assez importante quand même dans son level design : varier la difficulté et mettre des hauts et des bas dans la courbe de difficulté et les challenges ça peut aussi aider à rendre des passages plus mémorables que d'autres et injecter un certain rythme dans un niveau. Bon par contre ça veut pas dire qu'il faut faire dormir le joueur juste pour le réveiller avec des baffes dans la gueule hein.

suny : Perso', j'utilise SourceTree. Mais y a besoin d'un peu connaître les concepts git (pull/commit/etc.). Si Fork ne requiert pas d'apprendre tout ça et reste tout aussi flexible que des commandes git dans ces possibilités, ça semble nickel pour 9uile!
Avatar de l’utilisateur
suny
As du Slalom
Messages : 182
Inscription : 04 juil. 2014, 18:22
Contact :

Fork, c'est comme sourceTree, mais en plus cool, simple et moderne.
Donc oui, il faut quand même faire des commits, puller et pusher. Mais si moi j'y arrive...
Je regrette juste de ne pas avoir pris 30mn un jour il y a 5 ans pour m'y mettre plus tot.

S.
Avatar de l’utilisateur
9uile
Insert Coin
Messages : 7
Inscription : 03 mars 2020, 17:04

Salut les confinés. Nouvelle avancée !
J'ai bossé sur les tirs ennemis. Cela devrait couvrir un large éventail de situations.
Je me suis bien pris la tête quand même mais si on fait un shmup avec des tirs naze, bah... ça sera un shmup naze... :)

Bonne visualisation !
Ne faites pas attention au calcul du fps en haut à gauche, Il déconne quand je capture la vidéo depuis unity.


Merci de me donner vos avis comme d'hab ! :)

Concernant les backups, pour l'instant je sauvegarde le projet entier à chaque avancée majeure. Faudra que je m'y penche plus sérieusement si ça prend une plus grande ampleur.
Avatar de l’utilisateur
Alec
King Fossile
Messages : 14780
Inscription : 12 juil. 2004, 17:04
Localisation : nstc-j

Super !!! tu aura juste à adapter le tout !!!

Oh tu pourrais essayer de faire un ennemi qui tire un amas de boulettes désorganisé vers le joueur ça rend bien je trouve.... un peu comme les "débris" noirs ou blancs que les ennemis lâchent en mourant dans ikaruga !


Oh et aussi une cible qui essaie de locker le joueur :, quand la cible est verte il se passe rien, si elle reste plus de 2 seconde sur le joueur elle vire au rouge et le vaisseau joueur se fait tirer dessus (pas forcément par des ennemis présents à l'écran), je pense au stage "gigantic fleet" de thunderforce 4.
All your base.....
Avatar de l’utilisateur
9uile
Insert Coin
Messages : 7
Inscription : 03 mars 2020, 17:04

Alec a écrit :
28 mars 2020, 10:24
Oh tu pourrais essayer de faire un ennemi qui tire un amas de boulettes désorganisé vers le joueur ça rend bien je trouve.... un peu comme les "débris" noirs ou blancs que les ennemis lâchent en mourant dans ikaruga !
En fait, je peux déjà le faire. Il faut que je j'active 'suicide bullet', spread', 'aim at the player' et un sprite qui représente un débris au lieu d'une boulette et ça peut faire l'affaire :).

L'idée de la cible est sympa mais ce n'est pas un truc que je souhaite utiliser pour l'instant. Je garde l'idée de côté au cas ou... Peut-être plus pour un boss éventuellement.
Avatar de l’utilisateur
M.Knight
El Smarto
Messages : 2615
Inscription : 24 déc. 2010, 11:28

As tu planché un peu sur les ennemis, leur comportement, ce genre de choses?
Tu peux avoir des ennemis qui vont foncer sur le joueur, d'autres qui vont avoir un mouvement pré-déterminé, des ennemis avec des sous-parties à détruire, des ennemis qui spawnent d'autres ennemis, des ennemis en plusieurs morceaux qui s'assemblent, etc.

Si tu prends un jeu old-school (ou avec ces influences) comme Star Force, Rapid Hero ou Eschatos, tu peux remarquer des comportements et mouvements d'ennemis assez distincts les uns des autres. Comme t'as tes tirs et tes boulettes, ça pourrait être un élément de plus sur lequel travailler maintenant, si jamais t'avais pas déjà bossé dessus avant.
Répondre