Les Faiseurs de Mondes

[3D solo/multi] Z-EM: Survie post-apocalypse

Répondre
Partager Rechercher
J'avais parlé sur le thread WarZ de révéler mon projet en décembre, je pense qu'au vu de l'actualité c'est le bon moment.

Tout d'abord, qui je suis:
Adrien, 27 ans, chef d'entreprise et ancien (dans l'ordre) développeur web/développeur d'applications/formateur/chef de projet/directeur informatique.
Côté jeu, j'ai hébergé un serveur UO francophone (Ethernal-UO) pendant quelques années avec des pointes jusqu'à 50 joueurs en ligne; ajout de spellbooks, nouvelle carte, réécriture de pas mal de skills, changement des gumps..., je joue depuis que j'ai 4 ans, j'ai joué à plus de 40 MMOs dont quelques passages mémorables (notamment sur GW1 pour le MP3 des Flaw, sur Wakfu pour avoir été le premier à abuser du système politique - 4 teh lulz).
Par rapport à DayZ, j'ai développé le DayZ radar, un admin tool (à ne pas confondre avec un cheat du même nom) qui m'a valu un ban forum alors même que plus de 2000 personnes avaient téléchargé le soft.
Il s'agit de mon premier projet de jeu 3D, outre mon expérience UO j'ai déjà fait un sidescroller 2D pour le fun basé sur des pseudos-pokémons avec combat à la final fantasy.
Bref je suis reconnu comme un connard à l'égo surdimensionné et/ou un excellent chef.
Au moins, nous partons sur des bases claires et franches.

Le projet en lui même: Z-em

z-em.jpg

Le nom est issu de "Them" une règle de ne pas nommer les zombies en tant que tel dans le cinéma (on y voit une anecdote dans Shaun of the dead).
Parce que la tendance est de mettre des Z partout, nous avons donc modifié Them en Z-em, et au fil de l'évolution du projet, il a pris un sens.

Description du projet:
Il s'agit d'un jeu de survie post-apocalypse avec un système de compétences, différentes menaces, une possibilité de mener une équipe et de construire sa propre base.

Sources d'inspiration du jeu:
-Stalker: survie post-apo, présence de factions, ambiance
-Metro 2033: survie post-apo, gestion des balles, ambiance
-X-Com: Construction des bases, lead d'équipe, système de "psy" (panique des unités)
-Syndicate: lead d'équipe
-Savage 2: lead d'équipe, vues FPS/TPS/RTS
-Minecraft/Terraria: craft d'objets, construction de base
-Ultima online: système de skills sandbox, construction de maisons

Features principales du jeu / Key features:
-Vue FPS/TPS & RTS en team leader

-Génération procédurale du monde entièrement customizable
Une image sera plus parlante. Il manque plusieurs choses comme la customization des loots, la densité des arbres/lacs/rivières, l'inclinaison et la pente des montagnes.
customize_map1.jpg

Les cartes sont de 1x1km² à 25x25km², chaque km² est composé de 125x125 secteurs de 8m de côté.
Le tout en seamless: lorsqu'on arrive au point 25001;25001 on se retrouve au point 00001;00001 pour éviter le phénomène "map edges".
Chaque secteur contient 16x16x16 blocs, chaque bloc fait donc 50cm de côté.

Les bâtiments ne sont pas générés procéduralement, ils sont choisis aléatoirement parmis des modèles crées par des humains, l'éditeur sera évidemment fourni.

-Destruction possible de chaque bâtiment.
Au départ il était prévu de faire un monde entièrement voxelisé comme Minecraft ou Terraria mais je suis très confiant dans le potentiel de nuisance des joueurs. De plus, cela améliorera les performances globales des utilisateurs et évite le lag en multi car il y aura moins de transferts client/serveur.

-Graphismes: pas beaux mais plus beaux que ceux de minecraft, textures allant de 64x64 à 512x512 px (cela dépend du bloc)

-Ennemis customizables:
Vous pouvez choisir de vous battre contre des zombies, des aliens ou des machines (terminators), sélection des forces et faiblesses détaillée.
Pour les zombies, j'ai fait un condensé d'une 30aine de films de zombies avec les différences entre zombie/infecté et voici les caractéristiques qui en sont ressorties: vitesse, infection de la morsure, pourrissement de la chair, méthode de contagion, mange des animaux, cure, intelligence, faiblesse spécifique, perception, intelligence de groupe.
Il y aura aussi présence de factions de NPC (à la Stalker/Metro 2033): civils, groupes religieux, politiques, militaires...

-Apocalypse live ou post-apocalypse:
Cette option m'a été inspirée par le jeu flash Infectonator et par une question personnelle: comment les gens réagissent lors d'une apocalypse zombie à T0 au moment de l'outbreak?
Du coup, je me suis même dit: Pourquoi ne pas jouer le patient zéro?

-Environnement vivant:
Les saisons changent (avec la durée jour/nuit adéquate), les plantes et arbres poussent, présence de vie animale, la température affecte le comportement des ennemis.

-Combats mélée et à armes:
Les armes à feu seront rare ainsi que les balles.
J'ai pour l'instant configuré le field of view à 200 mètres.
Je suis absolument CONTRE le sniper et il n'y aura pas de sniper dans ce jeu.

-Mode de jeu easy/hardcore:
En mode de jeu easy, il n'y a pas de système de compétence et de statistiques: vous savez tout faire dès le départ.
En mode de jeu hardcore, vos statistiques évoluent en fonction de vos activités, comme dans UO.
Il existe un système de compétence théorie+pratique: Si vous avez lu un bouquin sur un sujet particulier (comment faire un garrot, comment cuisiner, comment dépecer...) qui permet de réduire vos chances d'échec.
Certaines compétences seront plus instinctives que d'autres.
Lorsque vos statistiques changent (gain de masse musculaire) vos besoins nutritionnels évoluent.
Pour rendre l'ambiance encore pire, l'environnement influe sur votre état psychologique.

Socialisation:
Chaque ville possèdera un arbre de recherche et tous les citoyens pourront y contribuer (le but étant de s'armer, se défendre, trouver une cure...).
De même, il sera possible d'aller de ville en ville pour échanger, voler, piller ces technologies.
Les villes devront être défendues et entretenues, les ressources communes joueront un grand rôle.

Réel objectif de fin de jeu:
Contrairement à d'autres jeux où on finit par tuer tout le monde parce qu'on a le stuff high-end et qu'il n'y a plus rien à faire, ici il y aura de réels objectifs pour "finir une partie".

Jouable sur quasi tous les PC:
Avec Irrlicht (le moteur 3D), il y a compatibilité linux.
D'expérience de vieux joueur, je sais qu'on ne recherche pas forcemment les plus beaux graphismes, sauf pour faire des benchmarks.
Le nombre de polys sera réduit/optimisé.
Le jeu ne sera pas beau mais l'ambiance sera présente avec les sons, les effets de panique du perso, les jeux de lumière, une tension omniprésente.
Pensez plus à Amnésia qu'à Doom.

Ca à l'air sympa tout ça, mais concrètement, t'en es où?

L'objectif premier est de sortir une alpha qui tourne afin de lancer un kickstarter. Les fonctionnalités essentielles sont:

-Caméra FPS/TPS: c'est fait.
-Algorithme de génération des villes: c'est fait.
-Algorithme de génération des cartes: c'est en cours d'amélioration mais fonctionnel.
-GUI: le proto est prêt, il faut l'améliorer.
-Physique: la collision se fait en AABB, il faut l'améliorer.
-Performances graphiques: Tout ce qui est du frustum culling, occlusion culling, backface culling, mesh batching a été fait.
-Editeur de bâtiments: alpha
-Combat mélée/tir: reste à faire
-Gestion de l'inventaire: reste à faire (popup info, drag drop, clic droit option...)
-AI des zombies: reste à faire
-Destruction/construction: reste à faire

Pour faire court, une fois qu'on peut générer des cartes, se ballader dedans, poser/ramasser des objets, se battre et détruire/construire, c'est l'alpha, les premiers 90% qui seront suivis des 90 autres:

-Amélioration des mouvements du personnage
-Ajout du mode hardcore: statistiques et compétences
-Psychologie du personnage
-Mode multijoueur
-Communication entre les joueurs (des phrases pré-enregistrées qui évitent de taper "I'm frien-"paf t'es mort.

A ce moment là on parlera de bêta.

-Ajout du mode teamleader / puces RFID
-Villes + recherche
-Saisons
-AI des NPC humains
-Mode T0
-Ajout des machines
-Ajout des aliens

Là on pourra parler de version finale.

C'est en soi un gros projet qui est structuré étape par étape pour éviter de se disperser dans tous les sens et faire de la merde.

Le projet dans le temps

Tout d'abord, l'alpha, qui ne doit pas forcemment être débuggée mais fonctionnelle.

L'étape cruciale est le kickstarter, en fonction de la levée de fonds, il y aura soit constitution d'une équipe soit sous-traitance soit poursuite du travail solo (pour une qualité moindre).
Il FAUT absolument une alpha avant d'envisager le kickstarter. Je connais le succès de dead linger basé sur 2 concept arts mais leurs vidéos in-game ne sont guère plus évoluées que ce que j'ai pondu en solo jusqu'à présent (sic).
Et le fail astronomique de WarZ a rendu les joueurs méfiants par rapport aux jeux du genre.

Plus d'informations?

J'ai crée un devblog où je mets (parfois) des étapes du projet:
http://z-em.blogspot.fr/
Vous y trouverez notamment quelques exemples de villes générées procéduralement.

Et l'intégrale du projet est ici (en anglais) certaines infos ont évolué:
https://docs.google.com/document/d/1...3Tc/edit?pli=1

L'équipe
actuellement composée de:

-Anthony (américain) Développeur AI
"Laule ter kon y fau 1 amérik1 pr kikstarteure"
-Moi même: tout le reste, pas la peine d'un titre à la con.
Il y a aussi un futur community manager/webdesigner/graphiste mais il n'a pas encore son utilité dans le projet. Il évitera que je perde du temps à faire le CM et les PR.

Je recherche:
(mais si je ne trouve pas je le fais moi même)

-Créateur de meshes low-poly de persos + armes. Blender
Il faut quelqu'un qui maitrise le skeletal animation et le démembrement
-Développeur 3D/physique C++/Irrlicht
Et j'parle pas d'intégrer la libraire bulletphysics, je parle de quelqu'un qui comprend les octtrees, meshes, verticles et indexes afin d'améliorer les performances du jeu.
-Développeur(s) C++
Je n'aime pas splitter tout le boulot en 50 mais 1 ou 2 personnes avec de l'expérience ça permet d'avancer plus vite.
Et j'insiste sur l'expérience.

Par la suite:

-Développeur réseau C++
Travail sur la partie multijoueur du jeu une fois l'alpha terminée.

Ca sera payé? - Dépend du kickstarter, pour l'instant non, en principe oui.
Le but n'est pas de faire un "coup" comme WarZ mais de finir un projet à gros potentiel.

Dernière modification par Neirdan ; 29/12/2012 à 20h50.
Citation :
Publié par Anyanka
Le logo Z-EM est incroyablement hideux.
Pourquoi tu montres pas des screenshots ?
lawl monsieur mayche.
Le logo n'est pas fait pour être beau mais représentatif.
Parce que les screens ca n'intéressera pas autant qu'une vidéo gameplay.
Et j'ajoute: Tu veux des screens à la WarZ?

Citation :
Publié par Aidji
ca fait beaucoup de features, tu compte utiliser un moteur genre unity?
Irrlicht, c'est juste un moteur 3D pas un game engine. Plus simple à manier qu'Ogre aussi.

Citation :
Publié par TargueT
Bah bon courage hein, vous allez en avoir besoin vu la quantité de features.
Par curiosité, tu l'évalues à combien la somme minimale pour son développement ?
Le projet est pensé justement pour développer chaque feature l'une après l'autre tout en permettant aux gens de jouer.
En heures homme machine, c'est pas le plus simple à calculer.
Pour l'instant j'ai fait le calcul jusqu'à avoir une alpha solo fonctionnelle. Certaines features comme l'AI des humains ou le mode multijoueur nécessitent énormément de tests.

Dernière modification par Neirdan ; 21/12/2012 à 08h22.
J'ai pris 2/3 jours histoire de finir une alpha du builder.
Le plus chiant a été de coder/vérifier chaque vertex et indice correctement puis de mapper les textures, ça m'a bien pris 4h de taf' et j'ai fait des formes en papier afin de m'aider.

Voilà un lien si vous voulez faire joujou avec le builder (pas garanti sans bug, parfois un mesh fantôme reste)
http://triscales.com/zem_builder.rar

Du coup, je me suis rendu compte qu'il va falloir faire un atlas de textures seamless efficace (pas implémenté dans Irrlicht), rajouter une forme d'escalier, une forme sol/plafond plus plate ou probablement rajouter les rotations sur les axes X et Z (actuellement elles ne se font que sur X) pour récupérer les murs pour faire les escaliers/sols.
Salut,
pourquoi ne pas vouloir utiliser bullet, ou physX ? Même en sachant implémenter un octree basique, se sera toujours à des année lumière de ce qu'une équipe complète, spécialisé dans le domaine, aura pus créer puis optimiser pendant une décennie...
Surtout qu'aujourd'hui les moteurs physique travaillent avec le GPU, à moins d'être également calé en CUDA c'est même pas la peine d'espérer leur arriver à la cheville.
(dans la même logique pourquoi ne pas repartir d'openGL plutôt que d'Irrlicht?)

sinon j'ai regardé un peut l'atlas de texture je connaissais pas, mais si tu fait ça, tu peut plus utiliser le tilling ? t'est obligé de réécrire tout tes shader pour qu'ils prennent en paramètre le rectangle de position de la texture puis d’appliquer le tilling "à la main" ?

Dernière modification par Titan. ; 30/12/2012 à 23h22.
Ah mais je vais utiliser bullet, c'est juste que pour un premier test c'est plus facile/rapide de faire des collisions par AABB.
Y'aurait tout un débat à avoir entre le fait de bien "finir" un bout de projet avant de commencer un autre, perso je préfère poser une base, voir comment ça réagit et améliorer, ça me permet d'éviter les prises de tête sur certains bouts de code, de continuer à avancer rapidement (donc de ne pas perdre la motivation) et de ne pas tomber dans l'erreur du mec qui code un truc et retourne dessus 6 mois après pour le recoder entièrement parce qu'il aura appris un truc nouveau.

Par rapport à ce que je fais, je n'ai pas besoin d'utiliser de tiling de mes textures pour l'instant. Un peu comme minecraft.

Dernière modification par Neirdan ; 30/12/2012 à 10h41.
sinon, j'ai vu sur ton blog que tu merge les poly d'une face lisse,
quand je fait des modèles, je rajoute volontairement des vertex pour pouvoir me permettre un calcul d'éclairage dans le vertex shader au lieu du fragment, notamment pour les bâtiment avec énormément de grande surface plane.

j'en déduis que ton éclairage est pixel perfect pour pouvoir te permettre cette optimisation, je pense que ton face merging (avec ce qu'il implique) te fait perdre des performance même si tu y gagne légèrement en qualité de rendu, a partir du moment ou tu aura de la lumière dynamique.
Pour l'instant pas d'éclairage, a vrai dire je n'y connais pas grand chose en ce qui concerne les textures et la lumière et ce n'est pour l'instant pas ma priorité, le facemerging est juste un test que j'avais fait. C'est mon premier projet 3D comme je l'ai précisé plus haut.
En ce qui concerne les lumières, je pense que je vais faire du batching/merging avec cet algo: http://irrlicht.sourceforge.net/foru...ic.php?t=39598 en appliquant une lumière par texture à la minetest: http://hardisk.me/wp-content/uploads...vuorenlapi.png

Dernière modification par Neirdan ; 30/12/2012 à 13h10.
Aujourd'hui je me suis concentré sur l'inventaire.
Avec les soucis qu'a eu WarZ et devant mon incapacité de retrouver l'auteur original du Zombie Survival Sheel (sites web morts), je suis donc reparti des bases pour faire le paperdoll / feuille d'inventaire.

J'aime beaucoup l'inventaire d'X-com avec les emplacements épaules/jambes/ceinture
Ceux de DayZ, Stalker et WarZ sont mauvais: trop simplistes.
Ceux de Diablo 2 et Dead Linger sont pas mal mais je n'aime pas le côté Tetris.

Un truc qui me déplait particulièrement et qui était bien géré dans Xcom, c'est par rapport aux munitions: comment peut on magiquement prendre un chargeur depuis son sac à dos?

Je compte implémenter un système de raccourci clavier (1 à 4) sur la ceinture/veste tactique avec également jusqu'à 4 emplacements pour chargeurs, comme ce qu'on voit dans Metro2033.

Un autre truc qui m'emmerde: les bottes et les gants. POURQUOI est ce qu'ils viennent toujours par deux? Du coup, je sépare ça.

Je me demande aussi si tous les carrés de l'inventaire doivent avoir la même taille ou non, cela simplifierait le boulot en terme d'implémentation graphique.
Et est-ce que je les met sur le personnage ou à côté (vu qu'il me faudra des indicateurs de plaie et d'os cassé localisés sur le corps)?

En terme d'utilisation d'espace, je penche pour un système de gestion de poids et un nombre d'emplacements fixes (mais pas de Tetris).
Par exemple, on peut bien mettre une 10aine de fusils dans un sac, comme dans la série Walking Dead:
http://images1.wikia.nocookie.net/__...ag_of_guns.jpg

Pour l'instant, j'ai fait un premier test.
dO6fM.jpg

Dernière modification par Neirdan ; 31/12/2012 à 20h40.
Pas mal l'idée de distingué la gauche de la droite pour les gants et les godasses..
Pour l'inventaire je dois avoir un avis formaté mais j'ai pris l'habitude de voir certaines parties plus grosse que d'autres ( torse , pants , armes a 2 mains...).
Et pour le sac je reste fan des foutoirs a la Ultima Online.
Après réflexion, je vais mettre 2 tailles d'objet: petit et grand.
La différence sera faite "est ce que ça rentre dans une poche"?
J'ai eu assez de mal à trouver des discussions ou de la documentation sur comment faire un inventaire efficace sur le net, assez bizarre.

Perso j'aimais bien le bordel d'UO à l'époque (par rapport au Tetris de D2) mais je pense que je vais partir sur différents slots:

Dans le pantalon entre 2 et 4 slots "petits" (deux poches + éventuellement 2 poches de côté).
Au niveau de la ceinture de 0 à 4 slots "petits".
Au niveau de la veste tactique de 0 à 4 slots "petits".
Ces slots là contiendront des équipements à utilisation rapide, que ce soit lampe, boussole, kit médical, chargeur, flinguer+holster, arme de mélée...
Le sac sera de 0 a X (20 environ) "grands" emplacements (avec éventuellement 1 grand = 2 petits ?).
Plus on est chargé, plus on fait de bruit en se déplaçant, plus l'endurance est faible.

Edit:

Il y aura plusieurs onglets sur le paperdoll, un pour la feuille de perso avec l'état de santé (avec os cassés/plaies), l'autre pour l'inventaire.
Peut être 3 tailles d'objets: petit / moyen / grand.

HpvMY.jpg

Dernière modification par Neirdan ; 01/01/2013 à 14h18.
Beau projet , et bon courage vu le nombre de features.
J'avais moi aussi en tête de faire un jeu avec cette thématique ( mais pas en 3D).

Par contre pourquoi mélanger les Z avec des aliens et des machines ?
Cela me rappelle le roguelike "Apocalypse" ou l'auteur s'éparpille trop (à mon avis) en mélangeant zombies, mutants , robots, équipement bionique ...
En fait, ce sera un choix à la création du monde, donc pas forcémment mélangé.
C'est surtout que les 3 IA sont différentes et que le genre zombie est sur-représenté.
Non, du tout, je bosse dessus mais il y a eu quelques contretemps, comme par exemple une lib que je n'arrive pas à compiler avec cmake en utilisant minGW sous c::b.

J'ai aussi eu des merdes avec mon pointeur entre la caméra et les objets au sol pour les récuperer.
J'en ai bientôt fini avec la base de données objets/persos et les sauvegardes/chargements, du coup je pourrai attaquer la partie IA des mobs et réessayer cette lib' histoire d'avoir des bâtiments - en quantité - destructibles et un landscape plus propre.

Sinon, toute la GUI est quasi finie. et la génération de carte est bien améliorée.

Dernière modification par Neirdan ; 03/04/2013 à 20h24.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés
Rechercher
Rechercher:

Recherche avancée