HOOP HOOP HOOP

Un nouveau blog sur Wefrag le blog de skacky.

Quake: Qonquer Map Jam

Vendredi 10 avril 2015 à 17:27

English version below.

Ça faisait un bail que j’avais pas écrit de billet sur le level design. L’occasion se présente maintenant avec la release imminente de ma nouvelle map pour Quake faite pour la cinquième session de Jam organisée par func_msgboard. Le but de cette session était de créer une map pour le mod Qonquer, qui consiste à survivre à des vagues de plus en plus difficiles et comportant de plus en plus de monstres. Au départ réticent à entrer, j’ai fini par céder et j’ai concocté une petite map en une semaine, grosso modo.

Je venais récemment de relancer de_halla de Philip Klevestav, une map pour Counter-Strike 1.6 utilisant un thème de moyen-orient du meilleur goût. Les textures étant distribuées gratuitement sur son site, je me suis empressé de les convertir pour Quake avec TexMex. Je voulais également pousser le thème de ma map pour la session 2 plus loin (voir billet précédent), avec un thème plus proche de Prince of Persia. J’ai toujours été fasciné par l’architecture Perse et orientale. Je me suis mis en quête de textures venant de Sands of Time (mon préféré) et j’en ai sélectionné une petite trentaine que j’ai ajoutées à celles de Philip Klevestav. Un autre point qui m’a poussé à faire cette map était la sortie d’un nouveau compilateur expérimental pour la lumière, qui simule l’occlusion ambiante et qui donne un lighting vraiment excellent avec de très belles ombres. Ce compilateur est une révolution car la lumière a toujours été assez difficile dans Quake et on obtient désormais un éclairage pas dégueu très rapidement, sans avoir à mettre des lights de faible intensité partout pour virer les ombres les plus sombres qui sont au mauvais endroit. Je me suis inspiré de quelques concept arts venant de divers jeux de la license Prince of Persia et de mes vagues souvenirs du premier Aladdin. J’ai donc lancé TrenchBroom et commencé la map.

Les débuts dans TrenchBroom: fenêtres sculptées et falaises en tris / Start in TrenchBroom: sculpted windows and cliffs made out of tris.


Ce qui est intéressant avec ces textures c’est qu’il est très facile de sculpter des brushes suivant leurs contours et de faire des arches, piliers, supports, etc. J’ai également importé quelques prefabs de ma map pour la seconde session, que j’ai retexturés, afin de les réutiliser et d’avoir des bâtiments assez rapidement. Je voulais que la map ait une allure élégante et verticale, avec beaucoup de fenêtres, de balcons et de tours. Je voulais vraiment qu’on se sente dans un endroit gigantesque et bien plus grand que la petite zone de jeu. Au niveau de l’architecture intérieure je me suis énormément inspiré des diamants de MFX (le nouveau Grand Ancien de Quake) que j’ai placés sur les plafonds pour leur donner un beau relief et sachant que j’adore sculpter les plafonds en général, je me suis énormément amusé. Un test rapide avec l’ambient occlusion m’a lancé sur la voie et j’ai ensuite rajouté des bâtiments, des ponts, sculptés des falaises avec des tris… Le format .map utilisé par les éditeurs pour Quake est assez approximatif lorsque les polygones s’écartent un peu des classiques cubes et pavés, du coup je me suis retrouvé avec des vertices qui se baladaient et ça a été un joyeux bordel que de les remettre correctement.

Une vue de l’éditeur sur les thermes (bâtiment central) / Editor shot of the baths (central building).


Le mod Qonquer est intéressant car il demande aux designers de créer des arènes, souvent similaires à ce qu’on pourrait rencontrer dans les maps Deathmatch. Il est également possible de créer plusieurs arènes à la Rocket Arena, qui peuvent être sélectionnées comme on sélectionne la difficulté dans le jeu de base. Au début, je voulais 5 arènes : l’enceinte de la ville, la cour du palais, les jardins, les thermes et enfin le palais en lui-même. Vu le peu de temps qu’il me restait, j’ai finalement opté pour une unique arène qui change de configuration selon les vagues atteintes, avec des morceaux de la map qui deviennent accessibles au fur et à mesure de la progression. J’ai décidé de fusionner la ville, les jardins et la cour en un seul endroit, et j’ai construit les thermes et le palais autour.

La cour centrale depuis les thermes / Central courtyard from the baths.

Le bâtiment des thermes a été le plus difficile à construire car il possède quatre tourelles que je voulais rendre visitables (c’est Français ça ?). C’est un grand bâtiment vide qui a nécessité pas mal de boulot pour le rendre présentable, et encore plus pour l’éclairer convenablement (et encore, je n’en suis pas 100% satisfait). Les thermes sont le point névralgique de la map : c’est ici que se trouvent le plus de munitions et également ici que se trouve l’unique armure de la map (une armure verte à 100). C’est également à cet endroit que spawnent certains des monstres les plus dangereux (Ogres, Shamblers et des Tarbabies qui peuvent facilement tuer le joueur et qui apparaissent à partir de la vague 14). Les thermes sont donc un endroit que le joueur va visiter très souvent et il est logiquement plus ou moins au centre de la map. Il fallait également que, de par sa position de point central, il soit très ouvert. C’est pour cette raison qu’il y a beaucoup d’arches donnant à l’intérieur et que j’y ai ajouté deux ponts (l’un d’eux donne sur un terrain naturel qui le relie aux thermes) et un ascenseur. Le dernier endroit à créer était le palais. Je voulais au début que ce soit une espèce de salle du trône avec un balcon en demi-cercle et des fenêtres assez spéciales. Voyant que le temps me manquait affreusement j’ai été plus ou moins contraint à revoir mes exigences à la baisse et j’ai finalement juste créé un couloir avec un balcon. Le balcon a été créé avec l’éditeur Jackhammer, une espèce d’hybride entre Hammer et Radiant qui est ma foi fort sympathique. Je l’ai utilisé uniquement pour son outil de création d’arches qui permet de créer facilement des… arches. Je les ai ensuite adaptées pour en faire des bordures que j’ai remplies puis texturées, et enfin importées dans TrenchBroom sans difficulté. Les vraies arches, quant à elles, ont demandé pas mal de planification et j’ai passé bien deux bonnes heures rien que sur ça, à les faire rentrer convenablement et leur donner des bonnes dimensions pour que ce ne soit pas trop gros.


Une vue du palais et de son balcon en demi-cercle / A shot of the palace and its semi-circular balcony.


Le palais contient un Thunderbolt avec quelques munitions et surtout un Quad Damage qui permet de faire un carnage. Les items réapparaissent périodiquement dans Qonquer donc il est important de bien timer son utilisation sous peine de se faire démolir très vite. Les portes massives du palais s’ouvrent à partir de la vague 7 et c’est à ce moment que commencent à apparaître les Shamblers. La dernière demi-heure a été dédiée à la mise en place des entités relatives à Qonquer qui ont été très faciles à intégrer. Elles permettent beaucoup de customisation et de déclenchements d’événements. Il est également possible de rendre certains spawns actifs à partir de certaines vagues donc il y a de quoi s’amuser avec des combos de monstres. J’utilise beaucoup de Scrags, d’Ogres et de Fiends par exemple.

Bref, 13 351 brushes (dont 10 400 func_detail) plus tard, je suis on ne peut plus satisfait de cette map. Malgré certains problèmes relatifs à l’IA, le gameplay est plutôt correct et je pense avoir vraiment fait quelque chose d’assez sympathique. Vous pouvez télécharger le pack sur Quaddicted. Je ferme cet article avec quelques screenshots de la version finale.

English Version

I haven’t written about level design in quite a while. The imminent release of func_msgboard’s Map Jam 5 for Quake is the perfect opportunity to write something. The goal of this session was to create a map for Qonquer, which is a mod that pits players against waves of enemies that get increasingly more devastating and have more and more monsters. I did not really want to enter at first, but I finally caved in and made a map in about a week.

I recently launched Philip Klevestav’s de_halla again, a Counter-Strike 1.6 map set in the middle-east with very nice textures, and since these were publicly available I decided to convert them for Quake with TexMex.  I wanted to go deeper with the theme I used in my map for Map Jam 2, with something closer to Prince of Persia. I’ve always been fascinated by Persian and oriental architecture. I searched for textures from Sands of Time (my favorite game in the series) and I added roughly 30 to the file I had with Philip Klevestav’s textures. Another thing that urged me to create a map was the release of an experimental light compiler that includes ambient occlusion, making lighting effortless and much better than regular Quake with beautiful and smooth shadows. That compiler is revolutionary and gives a pretty good result from the get go. No more fiddling around with faint lights to reduce deep shadows. I got inspiration from various artworks for the Prince of Persia games and my foggy memories of the first Aladdin. I finally launched TrenchBroom and started the map proper.

What’s pretty cool with these textures is that you can easily sculpt brushes around them, following their shape and make arches, pillars, supports, etc. I also imported a bunch of prefabs from my Jam 2 map that I retextured so I could have buildings pretty quickly. I wanted the map to have an elegant and tall aesthetic, with lots of windows, balconies and towers. I wanted the arena to feel like it was part of a much bigger place. As far as indoor architecture goes I was heavily inspired by MFX’s diamonds (MFX is the new Great Old One of Quake) that I placed on the ceilings to create cool shapes, and since I love sculpting ceilings I had a lot of fun. A quick test with the ambient occlusion told me I was on right track and I then added buildings, bridges, cliffs with tris… The .map format the editors for Quake use is rather approximative when it comes to polygons that aren’t cubes, so I found quite a bit of vertices that decided to wander off. It was quite hellish to fix that mess.

Qonquer is an interesting mod because it asks designers to create arenas, rather similar to ones you’d find in Deathmatch maps. It’s also possible to create multiple arenas à la Rocket Arena, that can be selected just like you’d select difficulty in the base game. I wanted 5 arenas at the start: city walls, palace courtyard, gardens, baths and finally the palace itself. I was running out of time so I rolled with a single arena that opens up as the waves progress. I combined the city, the gardens and the courtyard in a single place, and then built the baths and the palace around it.

The hardest place to build was the bathhouse since it has 4 turrets and I wanted them to be accessible. It’s a large, empty building that required quite a bit of work to make it look decent, and even more work to light it properly (and I’m not 100% satisfied with it). The baths are the crossroads: this is where the largest amount of ammo can be found and where the only armor pickup lies (a green armor). This is also where some of the strongest monsters spawn (Ogres, Shamblers, and Tarbabies on wave 14 that can easily kill players). The baths are an area players will visit a lot and it’s logical it more or less lies at the center of the level. It also needed to be quite open, so this is why there are many arches leading inside and why there are two bridges (one of them leads to a natural rock formation that links it to the baths), and finally a lift. The last place I needed to make was the palace. I wanted it to be some sort of throne room with a semi-circular balcony and rather specific windows. Seeing as time ran very short, I scrapped that idea and just kept the semi-circular balcony, adding only a corridor with it. The balcony was made with Jackhammer, a really cool sort of crossover between Hammer and Radiant. I used it solely for its arch tool, that creates… arches. I made these into trims, filled them, textured them and imported them in TrenchBroom without any issues. The real arches needed quite a bit of work and planning, and I spent at least two hours on them alove, giving them just the right dimensions and fitting them correctly.

The palace has a Thunderbolt with some ammo, but it mostly contains the Quad Damage that allows player to massacre everything. Items periodically respawn with Qonquer so it’s important to time its use right, otherwise you’ll have nasty surprises. The palace’s massive gate opens at wave 7 and this is when Shamblers start to spawn. The last half-hour was dedicated to placing Qonquer entities. This was a piece of cake. They allow quite a lot of customization and event triggers. It’s also possible to activate previously inactive spawn points when a certain wave is reached, so you can see how easy it is to have fun with monster combos. I use Scrags, Ogres and Fiends quite extensively for instance.

13,351 brushes (10,400 func_detail) later, I’m pretty satisfied with that map. Despite a few AI-related issues, gameplay is decent and I believe I made something rather cool. You can download the pack on Quaddicted.

Quake: IKBlue/IKWhite Map Jam

Vendredi 18 juillet 2014 à 17:02

De retour avec un autre article sur le level design sur Quake. La seconde session de jam organisée sur func_msgboard a débuté le 7 juillet et se termine le 27. Sachant que je préfère travailler sur de courtes durées pour être complètement concentré sur le truc et éviter de m’éparpiller, j’ai donc terminé ma map le 16 juillet, soit exactement 9 jours après le lancement de la session. La map a donc été faite en moins de temps que la précédente, même si étant en vacances j’ai sûrement travaillé dessus plus longtemps. Le thème de cette session était IKBlue/IKWhite, qui sont des thèmes Perses et Indiens. IKBlue est un set de textures qui a été créé en 1997 par Iikka Keränen, célèbre level designer ayant travaillé sur une multitude de jeux (Anachronox, Thief 2: The Metal Age, American McGee’s Alice, Half-Life 2, Team Fortress 2 pour ne citer qu’eux) et utilisé dans son mini-épisode IKSPQ dont vous avez la seconde map dans le lien et qui montre clairement le style à la fois reconnaissable mais étrange des textures. IKWhite est quant à lui un dérivé du thème précédent, et comme vous vous en doutez il s’agit d’une version blanche des textures IKBlue. IKWhite a été utilisé dans seulement deux maps à ma connaissance, Avanipaala Praasaada de Killjoy et Dorghael Arhlannen de Sidhe. Le principal défaut de ces textures, qui toutefois peut se montrer être une qualité pour peu que vous soyez bon, c’est qu’elles sont monochromes et manquent par conséquent un peu de variété. Il faut donc ruser en utilisant l’architecture pour s’adapter aux textures et utiliser la lumière pour  faire en sorte que ces textures trouvent un certain volume.

Un vieux screenshot de Palace of the Outer Gods, une de mes maps toujours en développement utilisant le set IKWhite.

Ce qui est plutôt cool c’est que j’ai moi-même commencé, il y a un petit bail déjà, une map utilisant le set de textures IKWhite pour l’excellent mod Quoth (image ci-dessus) que je n’ai d’ailleurs toujours pas terminée, donc j’ai pu expérimenter un petit peu et trouver des éléments d’architecture sympathiques ainsi que des réglages de lumière qui font plutôt bien ressortir les textures. IKWhite possède aussi plus de variété dans ses textures qu’IKBlue et il est possible de faire des éclairages plus subtils. Je me suis beaucoup inspiré de l’architecture Indienne et en particulier, évidemment, du Taj Mahal pour les sections extérieures. Sock m’a demandé de lui fournir le .wad IKWhite que j’utilisais (avec quelques textures supplémentaires dont les runes sur le screenshot ci-dessus) ainsi que quelques prefabs venant de ma map afin que tous les participants aient une base sur laquelle construire et expérimenter. J’avais une idée assez précise du thème de la map : je voulais que ce soit un semi-floater avec une cour très verticale donnant sur le vide, et pas mal de balcons éparpillés de part et d’autre dessus. Le joueur devait commencer tout en bas et petit à petit gravir les étages. Je voulais aussi donner à cette map une allure de cité assez alien tout en utilisant une architecture terrestre, ce qui n’est pas évident à faire. Palace of the Outer Gods est sensé être un palais gigantesque construit sur une montagne enneigée avec des cavernes et des catacombes, et je voulais au contraire que cette map ait une allure plus urbaine, plus propre et plus compacte.

Une vue de la cour centrale dans Trenchbroom.

J’ai réutilisé pas mal d’éléments d’architecture de Palace of the Outer Gods pour les incorporer dans ma map et j’ai construit au feeling. Pour être tout à fait franc je ne savais pas trop où ces balcons allaient me mener, et ce qui était au préalable la porte d’argent (ouverte avec la clé d’argent) dans la première grosse salle est devenue la porte finale (ce qui fait qu’il est possible de finir le niveau en moins de 2 minutes avec quelques tricks). J’évite généralement de partir avec un layout pré-construit dans ma tête, je m’adapte toujours en façon des pièces que je construis et des modules que je place, je trouve ça plus excitant comme procédé, même si j’ai évidemment une petite idée des setups différents et des arènes en tête. Un problème que j’ai rencontré avec cette map c’est que tous mes modules (arches, fenêtres, colonnes, domes) bouffent énormément de brushes et que même s’il n’existe pas de limite de brushes réelle, il existe tout de même des limites (marksurfaces, faces, etc). Pour que vous ayez une petite idée, cette map contient le nombre vertigineux de 16 275 brushes ! Pour information, un moteur comme le Source Engine ne compile plus les maps si elles dépassent les 8 192 brushes (ce qui était bien embêtant sur E.Y.E., avec des maps comme Monolith ou Enceladus que j’ai dû ampûter de certaines parties pour qu’elles compilent). Pour ce qui est des limites de marksurfaces et de faces, cette map les explose allègrement du coup il est impensable d’y jouer avec des vieux moteurs comme GLQuake. Le reste de la création est allée assez vite et sans encombre (à part deux brushes qui sont soudainement devenus invalides pour une raison que j’ignore, et que j’ai dû trouver et refaire).

S’en est suivie la phase de beta-test et il s’est assez vite avéré que la map était bien trop difficile. Avec ses 110 monstres en Normal et ses 115 en Hard, il n’y avait que très peu de différences entre les deux, et en tant que joueur très expérimenté certaines choses que je crois faciles le sont beaucoup moins pour d’autres joueurs. Un exemple assez criant était un de mes testeurs qui a tout simplement épuisé tout son stock de munitions en Normal avant le combat final, et sachant que je n’en donne plus à partir de ce point il a dû finir la map en trichant. Un autre exemple était l’arène de la clé d’or qui était un poil trop difficile en Normal.  J’ai donc décidé avec les différents conseils de mes testeurs de rajouter des munitions à certains points clés et de virer 10 monstres au mode Normal, baissant ainsi leur nombre à 100. Cette nouvelle incarnation de la map, qui est celle que j’ai donné à Sock, est bien plus équilibrée et ce dans tous les modes de difficultés. Je suis globalement assez fier de cette map qui est plutôt fun avec des combats assez intéressants et un layout assez interconnecté où le joueur revisite certaines parties de la map de différents points de vue. Rendez-vous le 27 juillet pour pouvoir y jouer avec les autres entrées prometteuses, et d’ici là je vous laisse avec des screenshots de la version finale.

La cour centrale.

La salle de la porte d’argent.

Un jardin au bord du vide.

Quake: Honey Map Jam

Lundi 7 juillet 2014 à 16:27

Certains d’entre vous me connaissent, j’ai travaillé en temps que level designer sur E.Y.E.: Divine Cybermancy. J’ai plus de 11 ans d’expérience dans les pattes mais bizarrement je ne suis pas spécialement attiré par les trucs brillants du genre Unreal Engine 4, Unity ou CryEngine.  Passer mon temps à placer du model et compagnie ça m’exaspère très vite, surtout que je trouve la plupart des jeux qui sortent maintenant assez insipides. Non, moi ce qui m’intéresse c’est le bon vieux BSP, le pixel, le rapide et le rétro, avec des jeux comme Thief et Quake. Ça tombe bien (transition de malade), j’ai récemment participé à un événement sur le forum func_msgboard qui regroupe des vétérans du level design ou des amateurs, tous amoureux de Quake, et nous avons travaillé chacun sur nos maps pendant deux semaines ou moins, et un pack de 12 maps a été sorti hier. Vous pouvez d’ailleurs le télécharger sur Quaddicted. Lisez bien le readme !

Cette scéance de “Jam” consistait à créer une map sur le thème de Honey par CZG (qui a récemment travaillé sur le nouveau Wolfenstein). Nous avions deux semaines pour la créer et ensuite la rendre à l’organisateur, et le résultat a été au dessus des espérances avec 12 maps au total, dont bien 7 particulièrement excellentes tant au niveau visuel qu’au niveau du gameplay. L’idée de base partait du postulat de départ qu’il est parfois difficile de commencer une map, et on se retrouve souvent ensuite à se dire “que vais-je faire ?”. Le thème de Honey a été choisi pour aider tous les participants à bien commencer leurs maps, en partie grâce au fait que les sources de Honey sont disponibles et qu’on a pu se servir de certaines ressources, ce qui a rendu la construction plus rapide.

Une vue de la zone de départ dans Trenchbroom. Seul le pont incurvé à été créé avec Hammer 3.5.


J’ai opté pour l’éditeur récent Trenchbroom et son unique vue 3D qui facilite énormément la construction. Manipuler les brushs avec cet éditeur est d’une facilité déconcertante et c’est vraiment comme faire du Lego. Une fois la première pièce terminée avec mes modules j’ai attaqué le reste. Avant de commencer ma map je voulais qu’elle soit rapide et fun, avec des setups de monstres assez fous et inhabituels. Je voulais aussi qu’elle ait une progression linéaire mais toutefois ouverte avec des passages annexes et d’autres chemins pour surprendre les monstres. J’ai opté pour pas mal d’Ogres sur des ascenseurs qui débarquent à l’improviste et d’autres Ogres sur des jump-pads qui bouclent, ce qui fait qu’ils sont toujours en l’air et bombardent le joueur sans relâche. Ajoutées à ça des embuscades de Knights/Hell Knights/Fiends et je tenais un concept marrant. Je voulais aussi utiliser quelques monsterjumps pour faire sauter des monstres d’un point à un autre, en particulier des chiens au début. Je me suis assez vite heurté à un problème avec ces monstres rebondissants : c’est que même si les entités pour les faire sauter étaient paramétrées au poil de fion il se pouvait qu’ils finissent dans le vide, c’était particulièrement le cas pour l’arène finale et ses 7 piédestaux. J’ai donc dû opter pour des vagues d’Ogres et de Vores statiques pour cette zone, mais mes autres setups marchent de manière impeccable, donc c’est toujours ça de pris. Au niveau visuel j’ai opté pour un croisement entre deux des maps de Honey : saint.bsp (Sheer Hellish Miasma) et ses larges salles sur du vide avec des arches et piliers et un côté un peu cathédrale satanique, et honey.bsp (Constantly No Respect) avec ses grands canaux et ses zones un peu crades et confinées.

J’ai ensuite opté pour un brouillard de couleur légèrement orangée/marron clair et très dense pour camoufler les Ogres tapis dans l’obscurité ou en hauteur. Evidemment un fog assez épais rend bien dans des espaces intérieurs très très verticaux et assez larges, et donne une dimension assez cauchemardesque au truc. Les maps de Honey utilisent des entités pour changer la couleur et la densité du brouillard selon la position du joueur pour donner à chaque zone une ambiance propre. Malheureusement ce n’est pas possible de le faire dans Quake vanilla donc j’ai dû faire en sorte que le brouillard corresponde même aux zones confinées et étroites qui longent les immenses salles. Au final je pense que je ne m’en suis pas trop mal sorti. Ce qui est intéressant de noter c’est que chaque map du pack a un brouillard propre : marron foncé, orangé, bleu, turquoise, noir, etc.

Une vue de la map finale.


Au niveau du gameplay le dirais que la map est assez équilibrée. Easy a été rendu très facile tandis que Normal et Hard sont naturellement plus corsés. Nightmare est assez fou avec les Ogres partout et les monstres qui attaquent plus vite. Avec ses 10 787 brushes, ses 146 monstres en Normal et ses 8 secrets la map dure bien 20-30 minutes lors d’un premier playthrough, et j’en suis très satisfait. Globalement je suis content de cette map que j’ai fait très vite (12 jours environ). Une nouvelle session qui dure jusqu’au 27 juillet a par ailleurs été ouverte, avec pour thème IKBlue et IKWhite, qui sont des packs de textures d’inspirations Perses et Indiennes.

Pour ordre de comparaison voici d’autres images de maps dans le pack :

Scampie


Ionous & MFX


FifthElephant


Digs


Sock