Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Survival Horror 3D Oldschool (Resident evil, Alone in the dark)

A topic by lyoy created Jan 03, 2017 Views: 982 Replies: 30
Viewing posts 1 to 31
Submitted

Salut à tous, bienvenu pour cette nouvelle game jam !

Je me lance sur ce projet ambitieux qui est de codé un survival horror old School.

J'ai déjà commencé ce projet il y a quelques mois en essayant de continuer par ci par la...

Mais comme cette game-jam nous incite à réaliser un jeu qu'on a toujours rêvé de faire...

Alors, c'est l'occasion de faire avancer ce projet !

Je ne dis pas que le projet sera terminé à la fin de la gamejam mais le but est de le faire avancer le plus possible et de lui donner plus de visibilité, des retours etc..

Donc qui dis 3D dis... UNITY !

C'est vrai que c'est un sacré usine à gaz quand on le compare à Pico-8 ;)..

Malgré la lourdeur du soft, j'ai quand même plus d'expérience que si je partais de zero avec monogame par exemple (qui à l'air de faire de la 3d aussi). Ce sera l'occasion de faire du c#, c'est pas plus mal ;)

Rassurez vous, je ne pars pas de zéro, j'ai déjà mis en place:

-control de personnage (un tank comme les resident old school)

-des ennemis (comportement basique mais c'est déjà ça)

-systeme de camera typique avec la caméra qui regarde en direction du personnage tout en restant fixe

-systeme d'objets (arme, objet soin, objet clé, etc)

-l'inventaire (on peut ramasser des objects, les combiner dans l'inventaire, combiner les munitions, recharger armes, combiner certains objet)

Naturellement je détaillerais chaque partie car elles sont toutes incomplètes et/ou buguées.

je posterais des gifs pour montrer l'avancement, même si ça ressemble à des cubes pour l'instant, le but n'est pas de produire des assets mais de coder.

Bonne game-jam à tous.

Submitted

Et il faut qu'on communique ! :)

Submitted

Bonne état d'esprit lyoy! J'ai jamais utilisé unity, je l'utiliserais surement lorsque j'en aurais la conviction (j'avais un projet en tête utilisant de la 3d

justement).

En tous cas bonne chance pour ton projet ^^

Submitted

Salut kanatos,

c'est vrai que ça fait un peu too much mais je viens de la à la base (infographie 3d).

tu devrais essayer, il faut bien commencer. on se motivera et on s'aidera en même temps ;)

Submitted

La 3d, pour plus tard ! :)

J'ai déjà fait des essais, mais sans plus. Avec déplacements, hud, etc. Mais je m'étais surtout concentré sur les algos de triage des élements pour ne pas trop surcharger l'affichage.

Submitted

Ok, j'envoie les premiers gifs pour montrer la ou j'en suis.

Ce sera mon point de départ pour cette jam.

Concernant le déplacement :

les contrôles sont classiques, on peut augmenter (speed etc) mais on reste sur un déplacement simplifié, quand on dégaine on peut toujours bouger en rotation et avancer, reculer.

  • déplacement rigide,
  • on tourne sur soi même,
  • on avance et on recule.
  • on peut dégainer (le cube blanc représente le bras arme) et tirer quand on a complètement dégainé (petit flash apparait)

remarque :

on pourrait faire un système plus tps (la caméra bascule derriere le perso quand on dégaine pour viser plus précisément).

concernant la caméra :

  • la caméra reste fixe
  • quand on sort du zone de trigger on change de caméra( la zone de jeu doit être bien délimité)
  • la caméra regarde en direction du joueur

remarques

  • on pourrait avoir le choix avec des camera complètement fixe
  • on pourrait avoir un mouvement d'accompagnement avant de passer à la camera suivante.)

concernant les ennemis:

  • les ennemis sont aussi des cubes, il a plusieurs états par défaut il vous cherche et se dirige vers le joueur (pas de pathfinding pour l'instant)
  • quand on dégaine, on trouve l'ennemi le plus proche, on pointe vers lui, (auto ciblage) et l'ennemi devient jaune
  • quand on tir, on lance un ray pour voir si on touche l'ennemi, si on touche l'ennemi il prend des damages
  • quand l'ennemi meurt (point de vie 0), il devient rouge et immobile (pour l'instant)


remarques :

y'a moyen de faire des ennemie plus complexe avec des attaques spéciales,

concernant les objets :

  • on peut ramasser les objets au sols, la je les ai mis en gros pour qu'il soit bien visible, un interface se superpose pour confirmer


concernant l'inventaire :

  • une fois dans l'inventaire, on peut manipuler les objets, j'ai repris les sprites de résident evil pour les objets de l'inventaire.
  • pour le moment on peut combiner les objet de soins(herbes), les munitions, recharger les armes et combiner certaines clés.
  • on peut aussi équiper dans l'inventaire l'objet (uniquement dans l'inventaire, le joueur a qu'une arme par défaut)


j'ai pas expliqué vraiment comment c'est fait en détail, j'essaierai au fur et à mesure.

Hé ben ! Tu as déjà beaucoup avancé ! Je trouve les mouvements de la caméra super réussi.

Submitted

merci ;) je bosse dessus depuis quelques temps en effet

Submitted

difficile de se décider sur les objectifs de cette jam, il y a tellement à faire...

j'arrive à un stade où je commence à m'enliser au niveau du code que je trouve un peu trop lourd :/

mais il faut bien faire un choix ! :)

mais je pensais à :

-finir l'inventaire :

  • fonction examiner pour chaque objets
  • indicateur de santé
  • la carte
-equiper réellement une arme car pour l'instant c'est juste une arme par défaut.
  • arme à equiper via l'inventaire

- et si j'ai du temps, essayer d'avancer ça..
  • faire quelques salles
  • perso à qui l'on peut parler
  • commentaire quand on clique sur les décors.
  • améliorer l'IA des ennemies, attaque etc
  • essayer de faire un boss.

Super projet lyol, tu commence fort cette jam lol, je ne peux qu'être intéressé par ton projet car j'adore Resident Evil premier du nom. J'ai l'impression que ça va être du lourd cette Jam, y'en a déjà pas mal au taquet, c'est cool car c'est stimulant.
Il faudrait que je me mette à la 3D en jeu un jour, je suis plutôt 2D, j'ai fait de la 3D mais plutôt logicielle sur Cinema 4D.
Courage pour ta brique de jeu ;)

Submitted

merci,

mais je pense que ce sera plus simple pour moi comme avancement alors que la précédente j'avais appris un tout nouveau framework.

Submitted

Bon, ben. T'as pris de l'avance ! :)

Faut que je m'y mette ! :)

Objectif numéro 1 : Sortir mes doi...heuu.. Stopper la procrastination.

Joli ! Beau travail, ca donne envie

Bon courage pour la suite

Submitted

sympa tout ça, bon courage

Alors t'en es où ? :)

Submitted

ça avance doucement, j'ai un peu modifié l'inventaire niveau présentation et je suis sur la fonction examiner ou on peut examiner et bouger les objects 3D...

Submitted

Du nouveau !

C'est toujours plus long à faire qu'on le pense, j'ai modifié l'affichage des stats du joueur,

en essayant de faire un signal de battement cardiaque... mais sans succès pour l'instant.

j'ai essayé le GL ( qui doit correspondre au commande openGL dans unity) sans succès

et avec le line renderer mais le résultat était franchement pas terrible

(la ligne est crénelée car c'est généré avec des polygones donc pas de courbe de bézier bien clean).

J'ai pas dit mon dernier mot, ce sera pour la prochaine fois.

Par contre, j'ai mis en place le système pour examiner les objects dans l'inventaire, on peut tourner l'objet sous tous les angles.

Submitted

Je reviens un peu pour montrer l'essai sur le battement cardiaque.

j'ai essayé d'utiliser le trail renderer d'unity pour avoir avoir une trainé derrière l'objet, l'objet bouge avec des sinus dans l'exemple.

Il faut essayer d'imaginer ça dans l'inventaire à la place de la bar verte... mais la encore je ne suis pas convaincu. Je pense que je vais laisser comme ça

pour le moment.


Concernant la carte, j'ai ajouté une interface qui affiche une texture...

Submitted

un peu de code cette fois :

je vais parler du système des objects.

au début, j'ai essayé de faire un système avec plusieurs objects tel que

La classe item puis les autres object principaux qui hérite de item:

  • ammo
  • key
  • weapon
  • recovery
Ensuite pour l'inventaire je créait une liste d'objets item dans lequel les object de type ammo,key,weapon,etc venait s'intégrer.
Les problèmes sont survenus quand je devais tester les objects entre eux pour les associations (tout les objects était traité comme item alors qu'il fallait prendre en compte leur caractéristique weapon,ammo etc) j'ai préférer changer ça en un seul object

avec des propriétés enum type, weapontype, ammotype etc..

J'essaierais surement plus tard de repartir sur une architecture plus object en essayant de passer la barrière des castings de variable entre elles mais pour le moment ça marche..

Submitted

hello

j'ai fait le système d'équipement d'arme, maintenant on peut équiper des armes différentes.

Voici un petit test.


si j'ai du temps j'essaierai d'entamer ce que je voulais faire :

  • faire quelques salles
  • perso à qui l'on peut parler
  • commentaire quand on clique sur les décors.
  • améliorer l'IA des ennemies, attaque etc
  • essayer de faire un boss.
Submitted

GG tout ça !

Submitted

merci, et toi ça avance bien ?

Submitted

Hé bien ça avance plutot bien ! ^^

bravo, tu avances bien !!

Submitted

c'est pas encore fini ;)

Submitted

Salut, j'ai du nouveau.

J'ai fais un système qui gère les salles et j'ai un peu galèré...

Je me demandais si il fallait faire une grosse scène qui comporte toutes les salles ou plusieurs petites scènes, ou bien une scène qui load et reload constamment dans la même salle des assets graphiques...

Bref, j'ai finalement décidé de faire plusieurs salles,

  • comme ça je peux commencer facilement dans n'importe laquelle dans l'unity editor, tester et continuer l'aventure.
  • et puis je voulais pas utiliser le dontdestroyonload pour éviter les doublons.

J'ai fais une classe statique qui contient les données du joueur, l'inventaire et l'ensemble des objects du jeu, sinon on perd toutes nos données quand on change de salle...

  • les objects du jeu sont crées une seule fois au début et stocker dans la class statique
  • à chaque fois qu'une salle est chargée, on charge les données issus de la class statique
  • à chaque fois qu'une salle est chargée, on crée les objects correspondant à la scène.
  • les objects sont lus par un script Json ça ressemble à ça(une seule fois au début puis stocker dans la classe statique) :

{"DATABASE_ITEMS_DEFAULT":

{"SC001":{

"Weapon":{

"Type":"Mitraillette",

"Name":"MitrailletteM23",

"Quantity":1,

"Power":5,

"Weight":10,

"Bullet":50,

"BulletMax":150,

"Position":{"x":10,"y":15,"z":1}}}}}


il faut imaginer qu'il y a plus de données... je pense que je diviserais en plusieurs fichiers pour par exemple les différents types d'objet, les différentes scènes pour que ce soit moins lourd.


Pour intégrer ça dans unity, c'est assez facile on crée un object correspondant un peu comme ça:

[System.Serializable]
public class testerJson
{
public string name;
public List<string> mots = new List<string> ();
}

unity convertit le fichier json grâce à JsonUtility.

Au passage on peux aussi avoir des commentaire sur certains décors...

Submitted

Je vais profiter pour vous montrer le système de sprite sur Unity que j'ai trouvé vraiment sympa,

c'est pas du code mais j'ai trouvé ça tellement pratique que je voulais le partager ;)

dans mon cas, c'est vraiment pratique puisque c'est des cases de mêmes dimensions qui se suivent.

vous importez une image en la faisant glisser puis cliquez dessus pour voir les propriétés dans l'inspector

voici l'image dans l'onglet projet:

on peut voir les propriétés dans l'inspector

ensuite il faut convertir la texture en sprite (bouton texture type ), puis sprite mode (en multiple).

Cliquez ensuite sur Sprite Editor

Voici la fenêtre du sprite editor

cliquez ensuite sur l'icône slice en haut à gauche pour débloquer la fenêtre, choisissez grid by cell

il faut ensuite entrer les bonne valeurs en largeur et en hauteur pour une cellule (dans mon cas X:113 Y:73)

puis cliquer sur Slice...

et voila, unity crée automatiquement des slices correspondant que l'on peut accéder facilement dans l'onglet projet.


Cool, non ?

T'as sacrément avancé, lol le Chuck Noris, chapeau l'ami :)

Submitted

merci ;)

Submitted

Voila je balance le projet, c'est encore pas mal bugué j'ai vraiment manqué de temps et aurais aimé faire plus. Mais l'essentiel est que j'ai avancé sur les points les plus importants que je m'étaits fixé.

Submitted

dernier jet pour cette jam j'ai profité du délai supplémentaire pour avancer :

  • correction bug inventaire, bug arme
  • rechargement possible quand on vise
  • munition s'auto combine dans l'inventaire quand on ramasse plusieurs à la suite
  • bruitage zombie, rechargement
  • animation de dégat zombie
  • gestion on peut enfin mourrir (super;) ) et se soigner avec les herbes vertes
  • ecran mort avec choix recommencer ou ecran titre
  • ecran démarrage et intro texte animé
ouf, je pense que j'essaierais encore de pousser un peu les fonctionnalités après si j'ai du temps.