Salut
Aujourd'hui, je vais vous parler d'un autre dĂ©veloppement de maison fanatique, de la mesure dans laquelle l'intĂ©rĂȘt et la persĂ©vĂ©rance peuvent apporter et de ce qu'ils dĂ©composent. En gĂ©nĂ©ral, tout est assez standard pour de telles histoires.
Sous la coupe, vous verrez: un historique détaillé de la création de RTS de vos propres mains (concept, code, interface, balance, carte, modÚles) et une expérience sur la liaison d'un tracker informatique comme outil de saisie.

Eh bien, commençons.
Dans la cour 2014.
Je suis étudiante au Département de Design d'Information de Polytech (aujourd'hui «Engineering Graphics and Design»).
Avec mon diplĂŽme de bachelier, jâai dĂ©veloppĂ© un jeu pour un kinekt sur un duel de deux pujas, oĂč vous deviez esquiver les attaques ennemies et y lancer votre crochet (GET OVER ICI !!!).
Dans le travail du maĂźtre, j'ai dĂ©cidĂ© d'aller plus loin. A cette Ă©poque, une nouveautĂ© technique est apparue dans le laboratoire du dĂ©partement - un tracker informatique. Le choix est immĂ©diatement tombĂ© sur lui. Il ne fait aucun doute que l'Ćuvre sera un jeu; il ne reste plus qu'Ă choisir le sujet. AprĂšs rĂ©flexion, j'ai rĂ©alisĂ© que je voulais faire honneur Ă la stratĂ©gie avec laquelle j'ai grandi et qui m'a ouvert le monde merveilleux de la programmation - Warcraft3.
Cependant, la thÚse de maßtrise n'est pas seulement le développement d'un produit. Dans une plus large mesure, cela devrait représenter une sorte de recherche. La question de savoir comment intégrer le suivi informatique dans une stratégie a révélé la boßte de Pandore.
Ici, de nombreuses années d'expérience de jeu sont entrées en jeu. La plupart des jeux essaient d'effacer l'écran des commandes, donnant ainsi la place principale au contenu. Dans les stratégies, l'interface occupe un espace énorme. Pour comprendre ce qu'est une unité particuliÚre, vous devez la trouver sur l'écran, la sélectionner, regarder la «barre d'état» et y trouver le paramÚtre nécessaire. Lorsqu'un besoin similaire survient lors de la bataille de grandes armées, une telle séquence d'actions crée souvent des difficultés.

La question s'est posée: puisque nous trouvons déjà l'unité sur le terrain, alors pourquoi devons-nous la sélectionner plus tard pour lire les informations? Pourquoi ne pas l'obtenir juste en le regardant? AprÚs la démonstration, la question a été transformée en le sage nom «Fonctionnalité du domaine opératoire de la vision humaine dans l'interaction homme-machine», ce qui, en substance, signifiait comparer l'efficacité de la souris et des yeux pour résoudre le problÚme de trouver un objet à partir d'une multitude et de lire des informations.
Summa technologiae
Il y a un sujet. Il y a un concept. C'était au choix de la technologie. AprÚs une revue de marché, le choix s'est porté sur Unity, UnrealSDK, libGDX, parmi lesquels Unity + C # a été choisi. Ayant maßtrisé l'interface, le cycle de vie des objets sur scÚne et les possibilités d'interaction avec eux, j'ai commencé à développer.

Grùce au plus grand miracle de notre époque - Internet - j'ai trouvé une étonnante série de tutoriels qui ont permis de construire la base du moteur pour le futur jeu. AprÚs avoir traversé toute une série de tuteurs pendant quelques nuits blanches, j'avais une stratégie entre les mains. Il avait des travailleurs capables de construire des bùtiments; des moissonneurs capables d'extraire des ressources et des bùtiments capables de produire des unités.
Cette base Ă©tait suffisante pour l'expĂ©rience. Certes, il manquait un composant important: la connexion des fonctionnalitĂ©s du tracker informatique au jeu lui-mĂȘme.

Le systĂšme de suivi informatique est un ensemble de deux ordinateurs, dont l'un affiche les incitations destinĂ©es Ă l'utilisateur (appelons-le DĂ©monstrateur), et le second recueille et analyse les informations provenant du traqueur informatique (appelons-le Registrar). Un logiciel Ă©tait sorti de la boĂźte avec le tracker informatique, qui permettait de synchroniser deux machines, de calibrer l'enregistrement du regard du candidat (tous ont leurs propres paramĂštres oculaires et le regard lui-mĂȘme), puis d'exĂ©cuter une sĂ©rie de stimuli statiques pour le visualiser. Dans ma tĂąche, l'enregistrement de la vue devait ĂȘtre intĂ©grĂ© dans un programme Ă©tranger.
Pour ce faire, j'ai dû étudier le protocole d'interaction entre le démonstrateur et le registraire. La transmission des données a été effectuée via le réseau local à l'aide de paquets UDP avec des commandes, ce qui signifie que j'avais besoin d'écrire mon propre client d'étalonnage émulant le fonctionnement de l'application par défaut.
Il m'a fallu quelques jours pour creuser pour Ă©crire Ă un client. D'abord en tant qu'application tierce. Cela vous a permis de passer par l'Ă©talonnage, puis de contrĂŽler le rectangle Ă l'Ă©cran d'un coup d'Ćil. Plus prĂ©cisĂ©ment, le rectangle a Ă©tĂ© tracĂ© au point de fixation du regard. Il semblerait que ce n'est pas sorcier, mais la capacitĂ© d'utiliser l'Ćil non pas comme un moyen d'obtenir des informations, mais comme un outil de sortie, une influence sur le monde extĂ©rieur, des dĂ©lices et des chocs.
Quand tout Ă©tait prĂȘt, il Ă©tait temps d'expĂ©rimenter.

Il y a une scÚne limitée à un écran. Sur celui-ci, aprÚs le lancement, des unités (tanks, lol) sont générées et commencent à se déplacer de maniÚre aléatoire.

Chaque unité a un certain nombre de points de vie. Toutes les unités ont un maximum de points de vie, sauf une qui a la moitié du niveau de HP. Lorsqu'une unité est mise en surbrillance, nous voyons un cadre autour d'elle avec un indicateur de santé. Qui a la pleine santé - l'indicateur est vert et plein. Dans l'unité blessée, il est rouge et à moitié plein. Le but est de trouver un char blessé parmi les autres et de le garder isolé une seconde. Le principal paramÚtre mesuré est le temps requis pour effectuer cette tùche. L'expérience se composait de 5 niveaux, différant par le nombre d'unités sur la scÚne - 5, 10, 15, 20, 25. L'hypothÚse était que résoudre ce problÚme à l'aide d'un tracker informatique nécessiterait moins de temps.
Une expérience a été menée, les données recueillies. Le moment est venu de traiter les statistiques. J'ai utilisé les outils habituels - PHP et JavaScript, calculé le critÚre Fisher et constaté que la différence entre l'utilisation d'un curseur et l'utilisation d'un itracker est statistiquement significative. Bien sûr, la vitesse d'exécution des tùches a été utilisée comme variable dépendante. Ensuite, j'ai visualisé le résultat en utilisant D3.js.
En général, pour résoudre de tels problÚmes, le langage R ou le programme SPSS sont généralement impliqués. Mais par nature, j'aime économiser l'énergie et les ressources mentales. J'ai considéré que perdre du temps à apprendre ces outils supplémentaires était un investissement inefficace.

L'image résultante a dépassé mes attentes. Il s'est avéré que les sujets utilisant le tracker informatique ont résolu le problÚme deux fois et jusqu'à 15 objets trois fois plus vite que les sujets avec la souris.
La recherche et le superviseur ont officialisé l'
article et il a été publié dans la revue Perception.
Ouah! SuccÚs, renommée, etc.
Ici, je voudrais mentionner séparément mon superviseur. Grùce à lui, j'ai rédigé mes deux diplÎmes, et dans l'ensemble j'ai évolué vers la programmation et l'interaction homme-machine. Pavel Orlov (
1 et
2 ), maintenant il enseigne à l'Imperial College de Londres, mais en général, il étudie les gens à l'aide d'un tracker informatique et crée toutes sortes de blagues sympas.
En principe, on pourrait sâarrĂȘter Ă ce stade, mais lâĂąme de lâartiste a criĂ© quâen tant quâobtention du diplĂŽme de maĂźtrise, on pouvait montrer quelque chose de plus quâun simple projet collĂ© dans un tutoriel.
Apprendre Ă marcher
Pour qu'un jeu soit un jeu, il doit avoir un concept, une idĂ©e, une intrigue, une logique. Les Ă©vĂ©nements ne devraient pas se produire sur un plan herbeux sans fin, mais sur une carte spĂ©cifique, sur laquelle, en plus des bĂątiments et des ressources, des Ă©lĂ©ments de relief et une sorte de vĂ©gĂ©tation devraient ĂȘtre prĂ©sents ... Les unitĂ©s devraient Ă©videmment ĂȘtre en mesure non seulement de se dĂ©placer, mais l'interaction du joueur avec le monde devrait se faire via une interface rĂ©flĂ©chie.

AveuglĂ© par les opportunitĂ©s et les perspectives, j'ai commencĂ© Ă Ă©crire du code. Tout d'abord, j'ai donnĂ© aux unitĂ©s la possibilitĂ© d'attaquer. Eh bien, puisqu'ils attaquent, bien sĂ»r, ils auront besoin de protection, donc mes unitĂ©s ont envahi l'armure. Les bĂątiments Ă©taient en danger de destruction, les unitĂ©s ont donc dĂ» apprendre Ă les rĂ©parer. Et pourquoi ne pas ajouter en mĂȘme temps la possibilitĂ© de vendre ces mĂȘmes immeubles? Et si vous regardez un peu plus prometteur, est-il possible d'armer les bĂątiments eux-mĂȘmes afin qu'ils puissent riposter contre les ennemis?
Cette idĂ©e est devenue la pierre angulaire qui a dĂ©terminĂ© le dĂ©veloppement futur et la refonte complĂšte de mon projet. Ă ce stade, j'avais une classe WorldObject dont Unit et Building hĂ©ritaient, chacun ayant la fonctionnalitĂ© correspondante. Les unitĂ©s pouvaient se dĂ©placer, attaquer, obtenir des ressources, construire des bĂątiments. Les bĂątiments pouvaient se tenir debout et produire des unitĂ©s, mais ils ne pouvaient ni se dĂ©placer ni attaquer. Il y avait un dĂ©sir de faire un bĂątiment de sĂ©curitĂ© - une tour ou une tourelle. La tourelle devrait ĂȘtre intrinsĂšquement un bĂątiment, mais possĂ©der la capacitĂ© d'attaque inhĂ©rente aux unitĂ©s. Cela a brisĂ© tous mes plans. Il fallait en quelque sorte supprimer la fonctionnalitĂ© d'attaque de la classe Unit ...
Mais il est possible de regarder le problÚme plus largement. Existe-t-il d'autres liens intermédiaires entre les dos et les unités? Existe-t-il d'autres situations d'utilisation des capacités d'une classe à une autre?
Pour analyser les vols, j'ai dĂ©cidĂ© d'Ă©tudier: quelles autres incohĂ©rences de ce type sont prĂ©sentes dans le jeu pris pour rĂ©fĂ©rence - Warcraft3. Et tu sais quoi? Cela les a transformĂ©s en une galaxie entiĂšre. Il y a des bĂątiments qui peuvent attaquer, comme la tour de garde ou le terrier orque. Il y a ceux qui peuvent aussi se dĂ©placer, par exemple, Ancient of War. Il y a des unitĂ©s qui ne peuvent pas attaquer, comme Brindille ou toutes sortes de moutons et de porcs neutres qui se prĂ©cipitent autour de la carte (bestioles). Des rĂ©flexions ont continuĂ© dans ma tĂȘte sur la nature de la diffĂ©rence entre les bĂątiments et les unitĂ©s, et j'ai rĂ©alisĂ© qu'il n'y avait pas de telles diffĂ©rences. Ce ne sont que les significations imposĂ©es au programme par les joueurs pour leur propre convenance. Il n'y a que des unitĂ©s et leurs capacitĂ©s - pour se dĂ©placer, attaquer, produire des unitĂ©s, construire des bĂątiments, obtenir des ressources, etc.

La solution évidente à la situation a été la création d'interfaces que les unités peuvent implémenter. Les éléments suivants ont été créés: MoveAbility, RotateAbility, AttackAbility, DefenseAbility, HpRegenAbility, DefenceAbility, ProduceAbility, BuildAbility, RepairAbility, SellSelfAbility. L'unité n'est restée essentiellement qu'un conteneur avec un nom, une image et un modÚle. Toutes les autres capacités y sont attachées en haut.
Un nouveau monde courageux
C'est maintenant au concept.
Permettez-moi de vous rappeler que l'affaire a eu lieu en 2014. Puis il y a eu une sorte de stagnation dans le genre stratĂ©gie, ce qui a influencĂ© le choix du genre du jeu lui-mĂȘme. Toujours au cours de ces annĂ©es, il y a eu une nette augmentation de la popularitĂ© du dĂ©cor steampunk. J'Ă©tais un grand fan des mondes, habillĂ© de cuivre et de laiton, enveloppĂ© de vapeur, se prĂ©cipitant dans leur avenir mĂ©canique. Mais il me semblait ennuyeux de faire le jeu uniquement avec un hit en steampunk et je cherchais le dĂ©veloppement d'une idĂ©e. Je voulais ajouter une confrontation au jeu. Et que peut-on opposer au maximum Ă une civilisation industrielle technogĂ©nique? Bien sĂ»r, la magie et l'unitĂ© avec la nature! Oui, bien sĂ»r, vous dites Arcanum, mais bon sang, avec le temps, la beautĂ© d'un tel dĂ©cor n'est pas perdue. De plus, vous verrez que le projet n'est pas devenu un clone, dormi par un Ă©lĂšve Ă genoux, mais quelque chose de complĂštement diffĂ©rent. Peut-ĂȘtre dans l'opposĂ© idĂ©ologique complet d'Arcanum.
Qui habitera ce monde? Ă mon avis, les jeux de fantasy modernes (et c'est finalement de la fantasy) se heurtent maintenant Ă une crise d'archĂ©types. Ăvidemment, cela est dĂ» au dĂ©ni universel, tout devient plus accessible, et pour cela plus comprĂ©hensible. Mais cela ne rend pas moins ennuyeux de voir partout des «gens» ennuyeux ordinaires, Ă©tourdissant avec dĂ©couragement les muscles des «orcs», aigris de la grĂące des «elfes» et d'autres si incomprĂ©hensibles et dĂ©tachĂ©s que l'Ćil est flou, «protoss».
Je voulais m'Ă©loigner le plus possible de tout cela, m'abstraire. Et quoi de plus abstrait qu'une balle? Je suis passĂ© de cette forme gĂ©omĂ©trique parfaite. Ajout d'une partie du biomorphisme «zerg» (oui, il a pĂ©chĂ© contre lui-mĂȘme). J'ai pensĂ©: pourquoi les crĂ©atures abstraites n'auraient-elles pas la capacitĂ© de façonner leur corps et tous les tissus tĂ©gumentaires?

Les orbes sont donc nés.
Ils sont vivants. Ils n'ont pas de membres. Ils ont des capacités télékinésiques pour interagir avec le monde et la capacité de chanter (comme les dauphins) pour communiquer entre eux. Ils ont peuplé la planÚte de façon assez dense, mais deux centres de pouvoir se sont formés.

L'un est traditionnel, conservateur, oĂč ils croient qu'ils sont des enfants de la nature et devraient y ĂȘtre intĂ©grĂ©s au maximum et contribuer Ă son dĂ©veloppement.

Le second - ceux qui se considĂ©raient comme le summum de l'algorithme Ă©volutif de la nature, ce qui signifie les dirigeants qui ont le droit de brĂ»ler les forĂȘts sous les usines et d'Ă©clipser le ciel avec de la fumĂ©e et de la vapeur. Et, hĂ©las, selon la norme (gĂąteau, il a quittĂ© les orcs, mais il n'a pas quittĂ© le renard), le deuxiĂšme dĂ©sir de conquĂ©rir le monde les a forcĂ©s Ă chercher l'expansion de leur base matĂ©rielle et a conduit leurs navires de guerre vers des terres remplies de forĂȘts et scintillantes de lumiĂšre cristalline ...
DerriÚre ce lien, il y avait une allusion à des événements complÚtement historiques. N'est-ce pas que par un jour pas trÚs beau les Indiens ont vu le mùt des navires conquistador à l'horizon? Dans le monde des orbes, l'histoire s'est répétée, ce n'est qu'aux Indiens locaux que nous avons donné de la vraie sorcellerie, et les conquérants ne sont pas venus d'Espagne du XVe siÚcle, mais, disons, de Bismarck en Allemagne.
Ainsi a commencĂ© une guerre qui a dĂ©truit les deux civilisations. Notre jeu devait commencer sur les fragments du monde passĂ©, oĂč une jeune tribu commence Ă se chercher dans ces vicissitudes de magie et de technologie.
Entre un tambourin et un engrenage
Mais quel est le développement?
Il n'y a qu'une seule race dans le jeu, mais au cours de l'intrigue, elle peut se modifier. L'expérience acquise en tuant et en explorant le monde vous permet de commencer le développement sur les branches de la magie et de la technologie.

Pour commencer, nous nous sommes installés sur deux branches - Création et Destruction. Dans chacun d'eux plusieurs galeries de tir. La réception de chacun d'eux affecte toutes les unités et toutes les structures de la race. La création est responsable de toutes les caractéristiques constructives - développement du monde, production, extraction des ressources, etc. La destruction, à son tour, est responsable de la destruction de leur propre espÚce et de tout ce qui bouge.
AprĂšs avoir pompĂ© dans une branche dans une direction, vous bloquez immĂ©diatement la possibilitĂ© de continuer dans l'autre. En fin de compte, pour rĂ©pondre Ă la question, combien de courses dans le jeu peuvent ĂȘtre diffĂ©rentes - c'est une, mais avec un potentiel de dĂ©veloppement de 4 complĂštement diffĂ©rent.
Et ici, nous avons un concept. Il est donc temps de décider qui sera dans notre jeu! Quelles unités et quels bùtiments, comment ils vont changer. AprÚs de nombreuses discussions, nous avons décidé de nous concentrer sur l'ensemble de stratégies de base - un travailleur (construit des bùtiments, extrait des ressources), une unité légÚre (rapide, faible), une unité lourde (lente forte), une catapulte (trÚs lent, trÚs mince, combat à longue portée). Des bùtiments - la base (produit des travailleurs), le nid (donne une augmentation de la nourriture), la caserne (produit une unité légÚre et lourde), l'atelier (produit des catapultes), les sanctuaires / usines (permet le pompage).
Oui, j'ai complÚtement oublié de parler des ressources du jeu. Nous avons décidé de rester sur une paire classique - cristaux + limite de nourriture, ainsi qu'une ressource supplémentaire pour progresser le long de l'arbre de développement. Les cristaux sont extraits des dépÎts épars sur la carte (bonjour starcraft), la limite de nourriture est augmentée par la construction de bùtiments spéciaux - des nids. Une ressource supplémentaire est gagnée en construisant l'un des deux types de bùtiments sur des geysers toxiques - des sanctuaires ou des usines. De plus, le jeu possÚde une expérience qui est donnée pour la destruction des armées ennemies et des créatures neutres. Si un joueur gagne un nouveau niveau et possÚde un sanctuaire ou une usine, il peut pomper un avantage sur l'arbre de développement.
Mais revenons aux unités et au nivellement.
En réfléchissant longtemps, nous avons réfléchi à la façon dont les branches de mise à niveau modifieront les unités. Entré à ce qui suit:
- Steampunk + Destruction augmentera les dégùts et la portée des unités.
- Steampunk + Creation renforce la puissance de production, met tout le monde en armure et augmente également la rentabilité de la marche de chaque employé.
- Magic + Destruction, à son tour, rend les unités plus rapides en attaque et réduit leur coût, transforme les catapultes en canons suspendus.
- Magic + Creation augmente le stock de santé et augmente également considérablement la vitesse de déplacement.
Rappelez-vous, j'ai dit ci-dessus que le jeu s'est avĂ©rĂ© ĂȘtre l'opposĂ© idĂ©ologique d'Arcanum? Dans le monde que nous avons créé, la technologie et la magie ne s'excluent pas mutuellement. La fantaisie nous glissait de temps en temps des visions de sorciers marchant sur des jambes mĂ©caniques et des chars mis en mouvement par un cristal magique au lieu d'une centrale Ă vapeur ou diesel.
Trouver le point d'équilibre
Tout cela semble assez simple, mais lorsque nous avons essayĂ© de transfĂ©rer ce rĂ©cit dans l'espace des nombres, des valeurs exactes et de leurs croissances, tout s'est avĂ©rĂ© TRĂS confus. Il est facile de lancer des deltas de valeurs pour les capacitĂ©s, par exemple, cette unitĂ© subit +20 dĂ©gĂąts, et ce +15 Ă la vitesse de dĂ©placement. Mais alors, il est trĂšs difficile de rĂ©duire cet Ă©norme Ă©ventail de paramĂštres Ă Ă©quilibrer.

Dans un immense tableau Google, nous avons enregistré toutes les modifications souhaitées pour chaque unité, en nous concentrant sur un sentiment de beauté. Le sens de la beauté fonctionnait en tandem avec l'empiriste intérieur, de sorte que chaque changement dans les valeurs était immédiatement vérifié sur la scÚne de la bataille test.

à un moment donné, quelque part au milieu de la nuit suivante, la compréhension est venue que se sentir beau est bien, mais seule la logique et l'appareil mathématique peuvent conduire au succÚs d'une tùche.
Il est devenu clair que toutes les valeurs devaient ĂȘtre rĂ©duites pour chaque unitĂ© Ă un ou plusieurs coefficients, que nous pouvions dĂ©jĂ comparer. Il s'est avĂ©rĂ© que toute l'Ă©cole et toute l'universitĂ© ne vous prĂ©parent pas Ă calculer l'efficacitĂ© du constructeur. Ce n'est pas si Ă©vident qui apportera le plus au trĂ©sor - celui qui charge plus dans le sac Ă dos ou celui qui se dĂ©place plus vite.
, â .
: ? â . , 2 9, - . â , --, ?!
- .


RTSeditor ( ) , IAbility . .
JSON, ( , ).
, , ââ .
. â , . , , , ââ . â (
Avega ) - . (
Avatar4eg ) , . .
IAbility, . AI. , .
. , , . , .
WC3. , , , .
Eh bien, j'ai essayé de créer quelque chose de similaire, mais le mien (hé, avec ces mots, vous pouvez écrire l'ensemble du développement dans son ensemble).
Au début, la carte a été dessinée et conçue sur papier.Ensuite, il est décrit dans Photoshop sur une carte de hauteur en noir et blanc. Initialement strict, il a ensuite acquis la douceur, la douceur et le bruit. Un point important ici était de maintenir la différence entre les faces infranchissables des surfaces et les descentes et ascensions.AprÚs cela, cette structure a été extrudée du plan déjà dans Unity. Il s'est avéré un bon soulagement, trÚs similaire à une carte de jeu.Mais quelque chose n'allait pas avec lui. Il était complÚtement blanc et a crié à haute voix - AJOUTEZ-MOI DES TEXTURES.Ce que j'ai fait.
(, , ), WorldOfWarcraft, .



Unity , , . , . , â , , - . , .
. , . , . , , . .
, , . (?) Unity â A*. . , , , .
â ?
, , .
, . , , 4 . , .
Rencontrez les orbes!

Ce sont des travailleurs de base. Le premier est propulsĂ© en pleine magie, le second en pleine technologie. L'un, Ă l'aide d'un fragment de cristal qu'il a fait pousser sur lui-mĂȘme, peut faire glisser les cristaux des dĂ©pĂŽts vers d'autres pierres et les livrer Ă une fourmiliĂšre pour une utilisation ultĂ©rieure. Le second met sur les outils technologiques et d'Ă©normes conteneurs pour le transport.

Mais les nids dans lesquels vivent les orbes. Au centre, le varinat de base. Ă gauche, le dĂ©veloppement en magie, Ă droite, en technologie. De plus, il y a lĂ -bas et il y a du dĂ©veloppement le long de la branche de la destruction et de la crĂ©ation, donc ils semblent si intĂ©graux. Mais, comme vous le savez, c'est loin d'ĂȘtre toujours le cas.

Et voici les nids hybrides. Supports en acier et cristaux magiques d'en haut? Pourquoi pas. Au contraire, je prĂ©fĂšre l'unitĂ© avec la nature, mais en mĂȘme temps, je veux avoir un systĂšme de chauffage? Je vous en prie.

Au total, 6 objets (3 unités et 3 bùtiments) + 4 modifications (2 magiques, 2 techniques) ont été modélisés pour le jeu. Hélas, il n'y avait pas assez de temps pour l'unité d'éclairage et les totems.
Toutes les modifications ont été conçues de telle maniÚre qu'une partie d'entre elles a changé au cours du développement de la branche de destruction et une partie de la branche de création.
Ainsi, le jeu est devenu visuellement diversifié. Vous attendez le pompage du prochain champ de tir pendant le jeu, comme un jour férié, car aprÚs cela, toutes vos unités seront transformées et refléteront davantage leurs caractéristiques et votre style de jeu.
Dans Unity, cela a été ajouté comme suit - les unités ont des éléments de base, par exemple, un corps, plus chaque galerie de prise de vue (en considérant celle de base) a un lien vers les éléments graphiques correspondants. Lorsqu'une unité apparaßt sur la scÚne, sa partie de base est créée, puis tous les kits de corps nécessaires sont ajoutés à la structure WorldObject à partir des actifs.
FenĂȘtre sur le monde
Et maintenant, le jeu ressemble déjà à un jeu. Mais encore, quelque chose n'a pas été finalisé en elle. Il y a un monde, des créatures s'y déplacent, des bùtiments se construisent, des ressources sont extraites. Les batailles ont lieu, l'expérience est acquise et les races choisissent leur chemin de développement.
Pourquoi alors le joueur souffre-t-il? Le fait est qu'une interface adéquate n'est pas développée, HUD, comme on l'appelle communément dans les jeux.
Pour résoudre la tùche de construction de l'interface, j'ai d'abord collecté des analogues, anciens et nouveaux - Command & Conquer, Cosaques, Warcraft 3, Starcraft 2, Warhammer, Dota, LoL - et j'ai commencé à analyser les éléments constitutifs.
L'interface du jeu (comme de toute autre maniÚre) doit refléter l'emplacement et l'état actuels du protagoniste, ainsi que suggérer des moyens de changer cet état. De maniÚre générale, il s'agit de la disponibilité des ressources, des informations sur l'unité sélectionnée (comme son emplacement, sa santé, ses actions possibles et ses explications), l'emplacement de toutes les unités sur la minicarte, la possibilité de faire une pause et de quitter le jeu.

AprÚs avoir vu comment les grands exécutent ces tùches, j'ai essayé d'assembler ma propre structure, correspondant aux modÚles utilisateur habituels, mais en occupant le minimum d'espace d'écran.
Dans ces temps anciens, les outils Unity natifs pour crĂ©er des HUD Ă©taient un petit ensemble d'Ă©lĂ©ments qui devaient ĂȘtre créés et placĂ©s Ă l'Ă©cran directement via le code.
AprÚs avoir écrit une belle interface adaptative fluide sur html + css, il semble bien sûr un fanatisme absolu, mais que pouvez-vous faire. J'ai dû m'adapter, calculer les différents retraits, en considérant constamment la largeur et la hauteur de l'écran.

Visser la beautĂ© Ă une telle interface est une tĂąche extrĂȘmement morne, donc pour commencer, il a Ă©tĂ© dĂ©cidĂ© de l'exĂ©cuter dans des couleurs neutres sous une forme plate.
DÚs que la base a été lancée, la question s'est posée de créer un grand nombre d'icÎnes pour les événements principaux et autres éléments d'interface.
Il est devenu clair que tout dessiner était une tùche complÚtement désespérée avec un délai serré, et j'ai commencé à chercher des alternatives. J'ai trouvé un merveilleux projet - GameIcons, créant des icÎnes simples et gratuites pour les jeux indépendants. Tous les composants nécessaires y ont été trouvés et l'interface a été assemblée.
Au cours du développement, la nécessité de créer une mini-carte est apparue. Ayant un peu de cerveau sur les capacités d'Unity, j'ai ajouté à chaque unité sur le dessus un rectangle de la taille correspondante, qui n'est visible qu'à travers une caméra spéciale installée au-dessus du champ entier.
DĂšs que la mini-carte Ă©tait prĂȘte, il y avait une envie de cliquer dessus pour envoyer des unitĂ©s sur de longs trajets, ce que j'ai vite rĂ©alisĂ©.

Il convient de mentionner qu'une partie de l'interface est l'affichage mĂȘme d'informations sur la santĂ© d'une unitĂ©, Ă partir de laquelle tout a commencĂ©. Lors de la mise en Ă©vidence, il y a maintenant un cercle autour de l'unitĂ©, dont la couleur reflĂšte la relation de cette unitĂ© avec vous: vert - amical, jaune - neutre, rouge - hostile. Au-dessus de l'unitĂ© elle-mĂȘme, une barre de santĂ© est Ă©galement affichĂ©e, qui change Ă©galement de couleur en fonction de sa quantitĂ©.
Afin d'économiser de l'espace sur l'écran, il a été décidé de faire les barres de santé de toutes les unités d'une certaine longueur (afin que lors du pompage et des buffs, la barre de santé de 10000 ch ne soit pas du bord de l'écran au bord).

L'interaction avec le monde ne s'arrĂȘte pas lĂ . Le curseur est un Ă©lĂ©ment important pour comprendre l'Ă©tat du monde et les possibilitĂ©s de changement. Sur le Web, il se transforme le plus souvent en pied pour afficher un Ă©lĂ©ment sur lequel on peut cliquer, et en chariot pour le texte qui peut ĂȘtre sĂ©lectionnĂ©.
Dans le jeu, tout comme nous devons comprendre qui a levé la main et quoi en faire. Ainsi, lors de la mise en évidence, nous devons comprendre de quelle unité il s'agit, et lorsque nous passons à l'état d'une certaine action (attaque, mouvement, production), montrer la possibilité d'interaction.
DÚs que toutes les actions de base sont apparues, ils ont voulu les exécuter à partir du clavier pour plus de vitesse. Pour ce faire, nous avons ajouté des jeux de saisie au clavier qui dépendent de l'état du lecteur.
Et, bien sûr, l'expérience et la mise à niveau de l'arbre.

Nous obtenons le niveau - un bouton spécial pour le pompage s'allume, un arbre s'ouvre. Il montre en vert ce que nous avons déjà appris, en noir - ce que nous pouvons faire et en rouge - ce que nous ne pouvons pas.

AprÚs avoir ouvert un certain champ de tir, nous voyons tous les changements qu'il apporte au jeu, puis nous décidons si nous voulons le pomper.
Oui, ça a l'air plutÎt maladroit, mais ce n'était que le début!
Et maintenant, tout est prĂȘt pour le premier lancement! Vive, loin derriĂšre, devant un espace infini d'options de dĂ©veloppement.

Il ne reste plus qu'à ajouter l'écran de démarrage - et allez-y, explorez les superbes étendues d'Evenedium. Oh oui, je n'ai pas dit qu'aprÚs le brainstorming renforcé nous avions choisi le nom?
EVENEDIUM.
C'est parti!
Et quelques captures d'écran pour ceux qui ne veulent pas regarder la vidéo ci-dessus.



Finita?
La version de base du jeu Ă©tait prĂȘte.
Oui, c'est trÚs simple, mais cela nous a seulement donné une raison de créer un excellent pool de tùches pour un développement ultérieur - vous trouverez ici de nouvelles unités, et le brouillard de la guerre, et des capacités avec un générateur d'accompagnement, et de nouvelles branches de pompage, et plus de variabilité, et la campagne, et multijoueur et monétisation ...
Oui, au fait: je me suis parfaitement bien dĂ©fendu, mais cela ne m'a pas surpris. J'Ă©tais plus enthousiasmĂ© par l'avenir du jeu, pour la mise en Ćuvre duquel je me suis immĂ©diatement mis au travail.
Les claviers étaient en ébullition, pendant encore un mois, nous écrivions activement quelque chose, et tout à coup, tout à coup, j'ai trouvé qu'une année de développement s'était déjà écoulée! Pendant toute une année, je me suis penchée sur la création de cette idée originale, envahie par des associés, et maintenant nous sommes une équipe, nous avons un produit et un avenir radieux. Nous avons décidé de célébrer.
Le dernier engagement a commencé à rencontrer tout le monde avec un tel poste.

Et oui. Le dernier. Aussi Ă©trange que cela puisse paraĂźtre, mais c'est Ă ce moment-lĂ que les gars, qui Ă la fin ont sĂ©rieusement aidĂ© Ă la crĂ©ation, ont dĂ©cidĂ© de quitter le projet. Il avait besoin de temps et d'efforts, pour lesquels ils n'Ă©taient pas prĂȘts. Ils ne voyaient en lui ni perspectives ni sens.
Pour moi, c'était une surprise. Offensif, frappé assez fort.
Il n'y aura pas de longue conclusion, pourquoi? Tout est décrit ci-dessus.
En gĂ©nĂ©ral, je suis fier d'avoir poursuivi mon rĂȘve de crĂ©er un monde et de l'avoir amenĂ© Ă un tel Ă©tat.