Making of NES gameinvitro "MULTIDEFENDER"

Donc, fin mars, au nez de la révision 2020, il reste encore un long mois d'auto-isolement, et tout a commencé, comme d'habitude, avec le fait que nous avons décidé d'écrire une autre démo pour NES. Bien sûr, la «démo» est un peu bruyante. Sur la base de nos propres capacités et du temps restant avant la date limite, le cours a été suivi pour créer une simple invitation au Multimatograph (démopartie russe à Vologda), composée d'un scroller avec des informations et d'un simple effet d'égalisation basé sur le logo Multimatograf.



Comment ça marche - nous analyserons en détail chaque partie, du début à la fin.

Défilement et logo


Au début, cette partie était écrite comme la principale. Tous les «kits de corps» ont été inventés et introduits en cours de route, comme cela arrive toujours. Le dégradé et le logo sont réalisés sur le calque d'arrière-plan. Nous sommes passés

option de dégradé 1  option de dégradé 2

par plusieurs options d'apparence: Jusqu'à l'approbation définitive du courant: L'

gradient final

agonie de choix s'explique tout simplement: organisation pas tout à fait simple de l'écran de la console et de ses attributs. L'écran NES se compose de carreaux 32x30 mesurant 8x8 pixels. Et si par exemple sur le ZX Spectrum ou Commodore 64 un attribut bicolore agit sur une familiarité, alors ici l'attribut de la palette quatre couleurs couvre une zone pouvant aller jusqu'à 2x2 familiarité, ou un carré de 16x16 pixels. Seules 4 palettes sont disponibles. Par conséquent, pour dessiner à la fois le dégradé et le logo rouge, nous avons dû utiliser 3 palettes avec des couleurs communes dans chacune d'elles.

Contexte Nesst

Pour obtenir l'effet d'un arrière-plan statique, un dégradé en damier a été sélectionné et le bit le plus bas a été réinitialisé pour chaque nouvelle coordonnée de défilement, de sorte que l'arrière-plan ne se déplace que dans des positions paires, créant l'illusion d'un logo en mouvement avec un arrière-plan apparemment immobile. Oui, les effets font généralement cela: il est impossible de décider du front - la tromperie.

En cours de route, certaines nuances sont devenues claires, comme le fait que le tramage d'échecs sur les téléviseurs CRT sera complètement différent de ce à quoi il ressemble dans l'émulateur, qui a été testé sur un vrai décodeur avec une vraie télévision: en

distorsion de la texture des échecs sur un téléviseur CRT

effet, il n'y a pas grand-chose de bon. Cependant, comme l'arrière-plan était déjà torturé avec de telles difficultés et que le spectacle était censé provenir de l'émulateur, nous avons marqué de telles bagatelles, au final, cela n'a pas l'air si effrayant avec ce moiré.

Sommaire:

  1. — . , .
  2. .
  3. “” , “” + - , .


La rangée avec la roulette de défilement est séparée de l'écran principal par «split». Cette technique a été utilisée dans de nombreux jeux classiques, par exemple, HUD dans Super Mario. Mais, contrairement à Super Mario, les deux parties de notre écran "partagé" ont leur propre défilement autonome. La mise en œuvre du défilement unilatéral sur Dandy est aussi simple que possible, en fait, tous les jeux de plateforme avec un écran de défilement sont créés: chaque nouvelle lettre (ou colonne paysage / labyrinthe) est dessinée dans l'écran voisin tous les +16 pixels, puis la caméra décale de 16 pixels vers la droite, et tout se répète encore.

Pour que le défilement ne paraisse pas complètement ennuyeux, deux effets lui ont été appliqués:

1. La similitude de «gigaskrin» sur NES. Pourquoi pas? Pour ce faire, la police a été dessinée avec une texture en damier: pixels pairs avec un index de palette, pixels impairs avec le second, entre lesquels la transition a été faite selon le tableau: premiers points pairs de la texture, puis impairs. En conséquence, nous avons obtenu une couleur intermédiaire entre les couleurs existantes de la palette NES, et visuellement le changement de couleur semble plus lisse. Effet peu perceptible, si vous ne le savez pas, mais en regardant attentivement le défilement, vous pouvez comprendre de quoi il s'agit:

police de défilement

2. «Sauts» de la ligne de défilement au rythme du rythme. Pour ce faire, le tampon du lecteur et son canal de bruit ont été suivis, et un vertical a été ajouté au défilement horizontal.

Sommaire:

Dandy vous permet de diviser l'écran en au moins deux parties, chacune pouvant être défilée indépendamment. Ces deux parties nous ont suffi à la fois pour le logo et pour le scroller. Pour plus de clarté, nous vous suggérons de regarder la "caméra" du logo:

animation de caméra de logo

Et la "caméra" de la roulette:

animation caméra de défilement

il est maintenant temps de passer aux kits de carrosserie.

Logo NESDEV


En général, c'est déjà notre deuxième travail dans cette composition, donc, pour une telle association, le label «Nesdev team» a été choisi sous le nom de la chaîne Telegram dans laquelle nous discutons de tout ce qui touche aux consoles, à leur programmation et à leur actualité. L'apparence de l'inscription a été choisie par analogie avec le logo Titan dans leur travail de démonstration Overdrive, qui, à son tour, a parodié le style du logo de la marque Sega, et sous l'effet du dégradé, nous avons jalonné une certaine quantité de la cartouche avec des tables pour le fondu. Cela s'est avéré pas mal:

animation de fondu de table

mais, en raison de la quantité limitée d'espace libre sur la cartouche, après quelques révisions, il a été décidé de se débarrasser de certaines de ces tables et de transférer le fondu aux solutions standard de la bibliothèque neslib (sauf pour le texte sous le logo):

neslib fade animation

Dentelle Vologda


Animation de dentelle Vologda

Initialement, nous avions prévu d'afficher ces monogrammes dans un fondu lisse, en utilisant les bonnes vieilles palettes, mais comme l'attribut NES affecte non seulement une familiarité, mais immédiatement 4, nous avons dû abandonner cette méthode, et il a été décidé d'utiliser les sprites comme animation préliminaire avant la tuile d'arrière-plan souhaitée. sera «impressionné» par sa familiarité.

En utilisant la méthode Google, plusieurs références appropriées ont été sélectionnées et il a été décidé de s'attarder sur l'une d'entre elles, légèrement dopée pour notre tâche.

dentelle - référence  dessin de dentelle

Cette image a 387 tuiles uniques. Le problème est que la page graphique NES contient 256 tuiles. Dans ce cas, le même bon vieux écran partagé vient à la rescousse. Si avant le fractionnement, nous avions la première page de graphiques active, puis après le fractionnement, nous pouvons cliquer sur le pot et activer le deuxième jeu de caractères. Cela n'est vrai que par rapport aux mappeurs avec CHR-ROM, mais encore une fois, tous les détails du même article, nous recommandons fortement à ceux qui ne sont pas encore devenus familiers.

Il y avait deux autres boîtes libres avec des graphiques restants, donc l'écran a été divisé verticalement en 2 parties et l'emplacement de fractionnement optimal a été sélectionné, dans lequel la banque graphique a été changée. Ainsi, nous avions deux jeux de caractères séparés de 256 carreaux pour les parties supérieure et inférieure, chacun contenant environ 192 carreaux. C'était assez, et il restait la marge nécessaire pour des tuiles supplémentaires pour animer les parties qui se croisent du motif.

Banque 1:

banque de dentelle 1

Banque 2:

banque de dentelle 2

Il est facile de voir que les pages d'arrière-plan des banques ont différents ensembles de tuiles, et les pages de sprites sont les mêmes: la granularité des banques commutées est de 8 kilo-octets (4 par arrière-plan, 4 par sprite). Le nombre de tuiles différentes pour la couche de sprites s'est avéré être inférieur à 256, par conséquent, pour la commodité de la sortie, tous les sprites sont placés sur une seule page, qui est dupliquée dans les deux banques de 8 kilo-octets.

La palette a 3 couleurs que nous pouvons changer (la quatrième est l'arrière-plan, générale, actuellement noire), ce qui signifie que nous pouvons réellement organiser 4 phases d'animation monochrome pour une familiarité en utilisant une combinaison de sprite et de tuiles d'arrière-plan.

phases d'animation de sprite et d'arrière-plan

Pour ce faire, nous dessinons les trois premières phases de l'animation dans la tuile sprite avec les indices de la palette 1, 2, 3 (dans l'image pour plus de clarté, chaque phase est mise en surbrillance respectivement en rouge, bleu et vert) et la tuile d'arrière-plan comme quatrième tuile d'animation.
En théorie, cela ressemble à ceci:

Phase 1: index de palette 1 = blanc, le reste est la couleur de fond (noir);
Phase 2: index de palette 1 et 2 = blanc, le reste - couleur de fond;
Phase 3: index de palette 1, 2, 3 = blanc.
Phase 4: supprimez l'image-objet et «tapez» la phase finale du caractère d'arrière-plan dans l'arrière-plan.

Nous passons à la prochaine familiarité, etc.

Traditionnellement, pour plus de clarté, vous pouvez voir ce qui se passe sur la couche de sprite séparément:

dentelle - animation de la couche de sprite

En plus du blanc, vous pouvez bien sûr utiliser n'importe quelle autre couleur. La principale limitation de cet effet particulier est que l'animation de l'image-objet est toujours monochrome, tandis que les tuiles d'arrière-plan peuvent déjà avoir plus de couleurs, comme nous l'avons fait. Ainsi, la conclusion était un effet supplémentaire, car la pointe du monogramme affiché n'est animée qu'en blanc et ressemble à un rétro-éclairage.

L'image d'arrière-plan se compose de 3 couleurs: deux nuances de gris et une couleur blanche (palette 0). Tout cela est dupliqué dans la palette 2, à une exception près: l'une des couleurs grises est changée en noir, et initialement l'écran est rempli de cette palette.

Dans le processus d'affichage des monogrammes, nous remplaçons «ligne par ligne» la palette à l'écran, créant l'effet de «séparer» un calque supplémentaire avec des monogrammes détaillés. Dans l'image ci-dessous, cette fente de la palette est marquée en gris foncé, le rouge est la position du sprite zéro et le jaune est le temps d'attente avant de changer le pot (pourquoi exactement - décrit ci-dessous):

dentelle - fente et changer de place

toute l'animation est divisée en 3 phases (la phase 4 est combinée avec la phase 1) de sorte que restez dans le son de la musique d'ouverture.

Chaque phase dure 4 images, et dans chaque image, elle est dessinée séparément:

0 image - tuiles d'arrière-plan de la partie supérieure
1 image - sprites de la partie supérieure
2 image - images d'arrière-plan de la partie inférieure et fleurs (leur apparence est définie par le tableau selon le compteur d'images global)
3 image - sprites inférieurs

Cela a été fait afin de répondre à la vitesse d'exécution du code, qui, je dois le dire, n'est pas écrit de manière très optimale sur des tableaux multidimensionnels, ce qui est fortement déconseillé car la liaison que le compilateur génère en même temps semble monstrueuse.

Un utilitaire de prototypage (javascript + html) a été écrit, plusieurs couches de l'arrière-plan ont été dessinées avec la suppression d'une partie du graphique pour animer les endroits qui se croisent et plusieurs couches du masque, puis il a été cliqué image par image, résultant en des binaires pour les tuiles, un écran et du code C avec des tableaux de données d'animation . De plus, pour compléter l'image, tous les effets et la musique prévus pour cette partie ont été ajoutés afin qu'au stade du prototypage, vous puissiez voir l'image complète. L'utilitaire est ajouté au référentiel, le résultat du travail est stocké dans localStorage, également lorsque la page est actualisée, toutes les données sont cliquées et recalculées et le tableau d'animation s'affiche sous la forme json dans la zone de texte.

utilitaire d'analyse d'animation

La méthode choisie pour analyser l'animation s'est avérée difficile, et à plusieurs reprises, nous avons dû redessiner des parties individuelles des masques, et à la fin il ne restait plus de temps et certains problèmes sont restés avec nous pour toujours. De plus, tout a été écrit à l'origine selon le canon pour les systèmes NTSC, donc il y a des problèmes pour la région PAL, mais nous ne les prendrons probablement en compte que dans notre prochain travail.

Résultats: une combinaison de sprites animés et de rendu en arrière-plan est familière - c'est une bonne vieille tradition, utilisée à la fois dans les jeux et dans certains produits de démonstration (HEOHdemo), mais réalisée avec différentes approches, vous pouvez obtenir différents effets, tout dépend de votre imagination.

Mosaïque «MULTIMATOGRAF»


Tout est simple ici - un logo divisé en «cubes» + tableaux de coordonnées initiales et de décalages. Il convient probablement de mentionner un petit hack utilisé. La limite des sprites NES est de 8 pièces par ligne raster, mais nous n'avons pas réussi à nous débarrasser de la neuvième - «zéro sprite», qui divise l'écran en deux parties, et cela a créé un petit problème: l'un des sprites logo a disparu, traversant la position Y du sprite «zéro» . Je ne voulais pas changer la position du logo, d'autant plus que beaucoup de temps a été passé à le dessiner dans la partie principale de l'intro, et par essais et erreurs, nous avons trouvé un endroit approprié pour le sprite zéro (au début de la ligne précédant la scission), et après la scission elle-même, le sprite a été caché en dehors de l'écran, de plus, un retard dans le programme a été organisé jusqu'à la fin de la ligne, après quoi la banque à chartes était déjà en train de changer.En conséquence, le sprite du logo n'affichait que quelques images et une seule ligne de l'écran, ce qui ne nous faisait pas mal aux yeux et ne cadrait pas avec nos objectifs.

Intra ou jeu?


Pendant ce temps, mr287cc a farouchement fini l'espace libre de la cartouche avec notre idée suivante: nous avons décidé de battre le sujet actuel des «coronavirus», et, en regardant comment la démopathie Vologda était organisée, nous sommes allés de plus en plus loin, en raison de la quarantaine, nous avons décidé par tous les moyens « protéger »multimatographe du coronavirus. Plusieurs chemins splines ont été créés le long desquels les virus étaient censés voler, et au bas de l'écran, il y avait un vaisseau spatial qui était censé tirer sur les virus et les transformer en bière. Mais comme la bière des virus est une entreprise moyenne, l'idée a été légèrement redessinée, et nous venons de recevoir un vaisseau spatial du jeu Galaga, détruisant des chaînes de virus volant sur différentes trajectoires.

l'origine du jeu

De plus - de plus, l'IA pilote sans prétention a été modifiée en une application sans prétention, puis des effets sonores ont été créés pour l'émergence de chaînes de virus, leur destruction et l'animation de l'explosion, un compteur de score et des salutations-invitations ont été mises en œuvre sous la forme d'un tableau de score proche:

invitations-salutations

Et à un moment donné, nous et a décidé qu'il était nécessaire de donner au spectateur la possibilité de contrôler le navire lui-même et de détruire les virus. Ce fut la première étape vers la transformation de l'Intra en un mini-jeu à part entière.

Tout le monde a vraiment aimé cette idée, et après avoir joué assez, quelqu'un a remarqué en plaisantant qu'il n'y avait pas assez de patron et ici nous ne pouvions pas être arrêtés. Bien qu'à cette époque, certaines parties scéniques de démonstration du travail n'étaient pas encore complètement prêtes, nous, à la suite de l'enlèvement qui nous a saisis, avons complètement investi toute notre énergie dans la partie jeu. mr287cc a refait passer le vaisseau de linéaire à inertiel, et TmK a scié la première version du boss:

boss - première version

Inspirée par le boss de Castlevania, cette option a été finalisée, et un boss bon, en forme et à part entière est apparu dans notre jeu vitro.

option finale du patron

Ensuite, nous sommes restés dans le processus et le comportement du patron a été complètement réalisé selon les canons des anciens jeux de dandy des années 90 fermement ancrés dans le cerveau, à une époque sans soucis, où nous ne pouvions toujours pas programmer et des manettes de jeu étroitement serrées dans nos mains, n'épargnant aucun tube à images, nous avons joué dandy toute la nuit . Accélération de la phase d'animation avant de lancer des obus antivirus, trajectoire de vol des projectiles, scintillement lors de la frappe et lorsque les points de vie diminuent en dessous d'un certain niveau, et même explosions après une victoire: tout cela est notre expérience de jeu obtenue à partir du gamedev classique des années 90.

La limite de ROM gratuite, quant à elle, a pris fin, malgré le fait que j'ai transféré certaines données du PRG vers le CHR-ROM, et nous nous sommes réconciliés avec le fait que nous ne serons pas en mesure de peaufiner le jeu. Cependant, presque avant la date limite, lorsque la vidéo à afficher a été rendue, un code non optimal avec des cycles ouverts a été trouvé, après avoir modifié 3 kilo-octets supplémentaires, les données dans CHR-ROM ont été emballées et complétées avec d'autres données de PRG-ROM, grâce auxquelles il a été possible d'obtenir plus environ kilo-octets, mais il n'y avait pas de temps pour la révision.

Au moment de la date limite, tous les plans n'étaient pas réalisés, mais nous n'allions pas abandonner.

Armés de l'idée d'organiser des tournois sur demopati, nous avons continué à développer et ce qui en est ressorti - voir la version finale. Dans le jeu, un vaisseau spatial et des explosions d'ennemis ont été redessinés, dans la version fête, il y avait des sprites empruntés, un nom de joueur a été ajouté, un tableau des meilleurs scores, un tas de corrections mineures et des améliorations cosmétiques ont été apportées, créant ainsi un jeu de compétition simple, mais tout à fait adapté aux tournois avec un gameplay sans prétention: pendant un certain temps, vous devez tirer le plus de coronavirus possible ordures et marquer un maximum de points.

informations sur le jeu

Guide rapide:

  1. Nous attendons la fin de l'effet d'introduction avec la dentelle Vologda, après quoi le mode d'introduction et de démonstration du jeu commencera.
  2. Le bouton «Sélectionner» fait basculer l'affichage du tableau des meilleurs scores, des informations sur le jeu.
  3. Cliquez sur le bouton "Démarrer".
  4. : — 6 .

L'heure est affichée dans le coin supérieur gauche sous forme d'icône de sablier. Environ une minute avant la fin du jeu, l'icône scintille avec une certaine intensité, signalant que le temps est compté.

Les ennemis attaquent par vagues: 3 vagues de virus (des «super virus» peuvent apparaître dans chacune de ces vagues, il n'est pas recommandé de les rater, car des points supplémentaires leur sont attribués). Au bout de 3 vagues, le boss est engendré, puis à nouveau selon le schéma habituel: 3 vagues, boss, jusqu'à ce que le temps imparti soit écoulé.

Le boss a 10 points de vie, car le retrait de chaque joueur reçoit 1 point. Des points supplémentaires sont accordés en battant le boss. À chaque coup sur le navire, le joueur perd 1 point et est temporairement immobilisé, et si une collision se produit pendant la bataille avec le boss, alors dans ce cas, le boss reçoit 1 point de vie.

entrée de surnom à la fin du jeu

Sommaire:

  1. Nous avons exposé à Revision;
  2. Nous vous avons invité au Multimatographe;
  3. Nous avons fait un gamevitro pour une plateforme qui n'était pas bien représentée sur la demoscene;

Un merci spécial à bfox et Quiet pour des conseils et tester le gameplay.

PS de TmK:

En général, ce n'était pas facile, fondamentalement, nous avons écrit en C et seulement certaines choses dépendant du temps dans l'assembleur (par exemple, la sortie de l'analyseur vers le logo). Avant cela, j'avais de l'expérience dans le développement pour NES dans nos travaux précédents (NESPECCY), mais j'ai oublié beaucoup de choses depuis lors (et le code que j'ai écrit dans l'assembleur semblait maintenant peu familier et comment optimiser le code C correctement - dans de nombreux moments, l'optimisation a été réalisée par simple force brute de diverses options pour écrire du code).

Nous vous exhortons à ne pas différer le travail d'écriture sur les démopati au dernier moment, commencez dès aujourd'hui, peut-être même maintenant, d'autant plus que les dates approximatives de tous les événements sont déjà connues.

Quelques mots sur le fond musical de n1k-o / Stardust


Puisque le but de notre travail était d'inviter des sympathisants de la demoscene au parti de Vologda, la toute première pensée a été de prendre comme base la piste bien connue, dans laquelle ils spécifient constamment - "où, où - à Vologda, c'est où." L'idée d'un remix de reprise pour ce titre s'est avérée intenable: il ne correspond pas vraiment au style de l'in vitro, il a donc été décidé de quitter l'introduction de l'original, puis dans le titre, j'ai effectué un court passage vers le motif du chœur. Sur cette partie avec un remix de reprise terminé et le morceau original est allé plus loin. («Original» avec quelques mises en garde: une référence a été choisie qui allait bien avec une séquence vidéo orientée démo: elle avait une ligne de basse distincte, un beat beat funky, une mélodie accrocheuse, en général, tout à écouter et à ne pas éteindre au moins 2-3 cycle.)

Dans les premières approches, le motif principal de la chanson sur Vologda a été repris, en le tordant d'avant en arrière, j'ai esquissé un beat et une ligne de basse, essayant de faire comme suggéré dans la piste "intro".

traqueur de vortex

Décrire toutes ces approches est plus facile pour moi dans Vortex Tracker, malgré le fait que cet éditeur est principalement destiné à écrire de la musique pour ZX Spectrum: il fonctionne beaucoup plus rapidement et plus familier, et c'est la vitesse et la qualité - l'essentiel. Le transfert de notes d'un éditeur à un autre (FamiTracker) n'est pas le plus gros problème: grâce aux efforts d'Ivan Pirog and Co., le tracker Vortex peut copier des données dans le presse-papiers de Famitracker.

Ainsi, j'ai fait sous forme de brouillon la quasi-totalité du croquis principal de la piste NES, si vous le souhaitez, cette piste peut également être ajoutée pour le ZX Spectrum.

La deuxième étape du travail est le transfert de la piste de Vortex tracker vers FamiTracker, la tâche est monotone - copier-coller. Heureusement, j'écris pour certains gars depuis près d'un an, et l'interface de FamiTracker est devenue presque native (mais pas pour des croquis rapides, ici je trébuche toujours sur l'interface). Après avoir copié toutes les parties, j'ai commencé à prescrire chacune d'elles, à sélectionner les instruments et tout ce qui était censé saturer et à donner à la piste un look complet.

FamiTracker

Au début, on m'a promis que je pourrais utiliser toutes les fonctionnalités de l'éditeur, avec toutes ses commandes et capacités, et je n'ai d'ailleurs jamais utilisé l'éditeur avant les restrictions auxquelles j'étais constamment contraint - tout cela est délicat les codeurs prennent le pouvoir et les manœuvres des musiciens ordinaires pour qu’eux, codeurs, aient plus de pouvoir et de marge de manœuvre. Par conséquent, vous devez travailler dans des conditions extrêmement limitées - pour que vous compreniez qu'il est également impossible de modifier le volume des instruments dans la colonne du tracker spécialement prévue à cet effet, c'est ainsi que le format du lecteur Famitone est limité. En général, l'essentiel ici est de se rappeler que rien n'est impossible, sauf que c'est possible, et c'est un peu, donc il est plus facile de se rappeler qu'on ne peut pas se tromper. Par analogie, cela est similaire aux limitations qui étaient dans les tout premiers éditeurs,qui viennent d'apparaître dans les années 90 - autant est disponible.

En général, c'est comme si vous pouviez terminer l'histoire, car il n'y avait rien d'autre, j'ai déplacé la piste, je l'ai rassasié et je l'ai développée un peu plus, et les gars ont périodiquement des idées pour me charger encore du travail - j'ai tout fait pour envier rapidement, même si cela a longtemps oscillé. Il a également fallu compléter la piste finale par des beats en fin de pattern afin d'orienter les «sauts» de scrolling, ou de diluer les parties basses et percussions pour faire une relaxation auditive.

FamiTracker fait partie de la piste

Et au final, il a fallu faire des effets, et c'est essentiellement jouer des événements de jeu avec des instruments, c'est-à-dire nous avons besoin de tirer un plan - cela signifie que nous utilisons les mêmes outils que le tracker pour représenter ce plan, en l'enregistrant comme une piste séparée. Dans le cas du tracker, certains ont probablement vu qu'il peut y avoir plusieurs mélodies dans un module .NSF, les mêmes règles s'appliquent aux effets, mais ils peuvent à leur tour avoir une base de données d'outils séparée.

son fx

En général, à la fin, je veux dire la traditionnelle, écrire des scènes de démonstration, faire des jeux et ne pas s'ennuyer avec tous ces événements de coronavirus reflétés dans notre intra-jeu (c'est-à-dire ne tombez pas malade).

Vous pouvez télécharger le pack avec la fête et la version finale ici .

Référentiel avec le processus de développement des

crédits:

  • Codé, peint: TmK
  • Codil, graphomanil: mr287cc
  • Extraction sonore: n1k-o / Stardust
  • Drew, efficace, a tenu une bougie: Adam Bazaroff

PS: Nous invitons les fans de Demoscene à participer à Demopati Multimatograf . La date estimée est le début du mois de juillet, et tout dépend du succès de la lutte contre le virus dans notre jeu.

All Articles