Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method JModuleHelper::renderModule() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/cache/handler/callback.php on line 99

Deprecated: Non-static method JFactory::getConfig() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 384

Deprecated: Non-static method JRegistryFormat::getInstance() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/registry/registry.php on line 373

Deprecated: Non-static method JFilterInput::clean() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/registry/format.php on line 45

Strict Standards: Non-static method JFactory::getLanguage() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/module/helper.php on line 168

Deprecated: Non-static method JRegistryFormat::getInstance() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/registry/registry.php on line 373

Deprecated: Non-static method JFilterInput::clean() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/registry/format.php on line 45

Strict Standards: Non-static method JRequest::getBool() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/module/helper.php on line 199

Strict Standards: Non-static method JRequest::getVar() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/environment/request.php on line 217

Strict Standards: Non-static method JRequest::_cleanVar() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/environment/request.php on line 151

Strict Standards: Non-static method JFilterInput::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/environment/request.php on line 577

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method JModuleHelper::renderModule() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/cache/handler/callback.php on line 99

Deprecated: Non-static method JFactory::getConfig() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 384

Deprecated: Non-static method JRegistryFormat::getInstance() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/registry/registry.php on line 373

Deprecated: Non-static method JFilterInput::clean() should not be called statically, assuming $this from incompatible context in /homepages/24/d319339456/htdocs/site/libraries/joomla/registry/format.php on line 45

Strict Standards: Non-static method JFactory::getLanguage() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/module/helper.php on line 168

Strict Standards: Non-static method JRequest::getBool() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/module/helper.php on line 199

Strict Standards: Non-static method JRequest::getVar() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/environment/request.php on line 217

Strict Standards: Non-static method JRequest::_cleanVar() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/environment/request.php on line 151

Strict Standards: Non-static method JFilterInput::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/environment/request.php on line 577
Cosmicrew

Strict Standards: Non-static method JModuleHelper::getLayoutPath() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/mod_mainmenu.php on line 42

Strict Standards: Non-static method modMainMenuHelper::render() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 82

Strict Standards: Non-static method modMainMenuHelper::getXML() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/helper.php on line 156

Strict Standards: Non-static method JFactory::getXMLParser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/helper.php on line 83

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/helper.php on line 87

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFactory::getUser() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 11

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JFactory::getSession() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/factory.php on line 163

Strict Standards: Non-static method JSite::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/tmpl/default.php on line 12

Strict Standards: Non-static method JApplication::getMenu() should not be called statically in /homepages/24/d319339456/htdocs/site/includes/application.php on line 345

Strict Standards: Non-static method JLoader::import() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/loader.php on line 186

Strict Standards: Non-static method JMenu::getInstance() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 701

Strict Standards: Non-static method JError::isError() should not be called statically in /homepages/24/d319339456/htdocs/site/libraries/joomla/application/application.php on line 702

Strict Standards: Non-static method JFilterOutput::ampReplace() should not be called statically in /homepages/24/d319339456/htdocs/site/modules/mod_mainmenu/helper.php on line 164



Cosmicrew PDF Imprimer Envoyer
Écrit par Sinclair   
Samedi, 28 Août 2010 00:00

Je vais maintenant aborder mon travail de level designer sur Cosmicrew, sans rentrer dans le détail.
Celui-ci peut se découper en deux phases :

D'abord du level design "graphique" sous photoshop.
Il existe alors plusieurs écoles, soit vous dessinez votre niveau en fonction du gameplay, soit vous composez votre gameplay en fonction de votre niveau, soit vous faites quelque chose à mi-chemin entre les deux.

L’image PNG obtenue est alors importée dans le moteur de jeu de Little Wolds, qui va générer une carte de hauteurs à partir des niveaux de gris. Ainsi le noir est transformé en roche, et le blanc en espace. Les roches sont texturées automatiquement.

Carte en Niveau de gris flèche rougeRésultat final après incorporation dans le moteur

Ensuite l'utilisation du moteur de jeu pour le level design "gameplay".  Mon objectif est de placer tous les assets (ou éléments de gameplay), tels que les monstres, les Kosmos (monnaie du jeu), les trésors, les passages secrets, le temps supplémentaires, les trous noirs (qui aspireront les vaisseaux vers le début), le carburant (pour les vaisseaux), les bonbonnes d'oxygène (pour les cosmonautes), les clefs à molettes (pour réparer les vaisseaux) et bien entendu les points de départ et d'arrivée.

Voici une présentation des principaux éléments de gameplay :

Le point de départ et point d’arrivée.

Les chrono. qui ajoutent du temps supplémentaires.

Les jerricans de carburant.

 

Les caisses de munitions

Les clefs à molette de réparation des vaisseaux

Les monstres

Le temps global d’une exploration.

Les Kosmos (monnaie du jeu) et les trésors

Les lumières

Les mines, trous noirs et astéroïdes

Les téléporteurs

Les checkpoints (points de passages) et booster (accélérateur) des courses

Les passages secrets

 

Contraintes :

Le level designer doit savoir adapter son gameplay à un certain nombre de contraintes et limitations techniques, telles que :

  • Le nombre total d'un même objet (ou asset) disponible.
    Le nombre de ces objets étant défini par région de jeu dans le Game Design Document.
    Par exemple :
    -Dans la région 3, vous aurez droit à 50 Kosmos, 8 monstres, 4 trésors ...
    -Dans la région 4, vous aurez droit à 60 Kosmos, 12 monstres, 5 trésors ...
  • La taille optimale des images. Une image de 2048x2048 mettant beaucoup plus longtemps de temps à se charger qu’une carte de 512x512.  Les cartes carrées passant généralement mieux.
  • Le nombre de lumières (lights) total, qui doit être le plus bas possible. Le rayon d’action des lumières étant plutôt faible.
  • Le temps de jeu doit être maitrisé, l’idéal étant moins de 10 minutes de jeux par niveau, sous peine de lasser le joueur.

 

Scripting :

Le scripting des astéroïdes consiste à régler minutieusement la position et le comportement des astéroïdes à un instant donné. Dans le jeu, cela se traduira par le mouvement des astéroïdes, sans devoir passer par une quelconque Intelligence Artificielle.

Au temps t=0 seconde :

Capture de la timeline au temps t=0 seconde

Au temps t=1 seconde :

Capture de la timeline au temps t=1 seconde


Lightning :

Personnellement, je termine toujours mes cartes en posant les lumières (ou lighting). L’éclairage fait préalablement l’objet d’une longue réflexion.
La puissance de l'éclairage permet de mettre en évidence des objets clefs à ramasser, comme un trésor. Ou bien au contraire, d'assombrir des zones, pour surprendre le joueur avec un rocher, une mine flottant au beau milieu de nulle part ou encore un monstre surgissant d'une sinistre paroi.
La couleur de l'éclairage agit directement sur les parois des roches.

capture d'écran de l'éclairage

Sans éclairage :

capture d'écran d'une zone éclairée

Avec éclairage :

capture d'écran d'une zone éclairée 2


Playtest :

Enfin le design d'une carte se conclut toujours par une phase de playtest (généralement en équipe). Chaque playtest est l'occasion de remplir un protocole de playtest.
Voici un exemple de protocole de playtest :

testplan


Enfin, une tierce personne teste votre carte afin de définir le temps idéal de votre exploration.

Rapide Analyse d'une exploration :

Pour l'instant, seulement deux modes de jeu sont disponibles sur cosmicrew, le premier mode étant l'exploration de mines spatiales.
Voici un exemple de level design pour une carte de ce type :

level design 1

On remarquera la nature aléatoire du level design, ici j'ai essayé de mettre pleinement l'accent sur le côté "exploration", tout en reprenant des passages populaires et amusants.

level design 2

La plus part du temps, j’ai placé les Kosmos (monnaie du jeu à récolter) dans les extrémités ou cavités, certaines n’étant accessibles qu’en éjectant son cosmonaute.
La zone la plus à l’Ouest est un labyrinthe de mine, attention à ne pas toucher les murs.  La cavité circulaire vers le centre est remplie de monstre, qui surgiront tous en même temps. Les jerricans de carburants, les caisses de munitions et clefs à molettes sont répartis équitablement au fil du niveau.
Le début du niveau commence par un sas traversé par trois astéroïdes. Le passage linéaire à l’Est, est truffé de mine qu’il faudra détruire à l’aide de vos canons.

 

Rapide Analyse d'une course :

Le deuxième mode de jeu est le mode course, qui voit se disputer deux équipages pour la première place.

Une partie importante du travail repose sur l'adaptation du gameplay à l'intelligence artificielle du vaisseau adverse.
Exit donc, les virages entre les checkpoints, ou les checkpoints englobant deux chemins.
En effet, le bot (l'intelligence artificielle) n'y comprendrait rien. Concrètement, si vous placez un checkpoint entre deux chemins, le vaisseau étant programmé pour aller au milieu des checkpoints, vous aboutirez au cas de figure suivant.

intelligence artificielle

Dans la course suivante, j’ai voulu développer le concept de ‘’rencontre’’.
Les trois intersections sont les lieux de confrontations, où peuvent se percuter violemment les vaisseaux, allant même jusqu'à éjecter des joueurs de leurs cockpits.

level design 3

Il faut toujours veiller, à garder à l'esprit qu'il faut appréhender le plus possible le comportement du joueur. Tout en se souciant de lui offrir le plus de divertissement possible.

level design 4

Les accélérateurs en bout de pistes permettent d’orienter le joueur, dans le choix du chemin à emprunter, un peu comme il est logique de ne pas prendre une autoroute en sens inverse. Des monstres, mines et trous noirs jalonnent la piste.
Enfin, comme d’habitude, les caisses de munitions, jerricans de carburants et clefs de réparations sont habillement placés.

J’ai aussi eu la possibilité de participer à l’écriture de documents de références, comme des playtests, listings et publicités sur des sites, etc.

suivi map

Mise à jour le Jeudi, 05 Mai 2011 17:57
 

Ajouter un Commentaire

Aucune insulte ne sera toléré.


Code de sécurité
Rafraîchir