Kennismaken met Ogmo Editor een geavanceerde en robuuste level-editor

Ogmo Editor, door Matt Thorson, is een universele open source-editor voor alle doeleinden die op Windows draait. Het exporteert niveaudata in XML-formaat, wat betekent dat het met vrijwel elk gamedev-platform kan worden gebruikt. In dit artikel laat ik je zien waarom het mijn favoriete niveau-editor is, hoe je de functies ervan beslaat en hoe je er mee aan de slag kunt.


Vereisten

  • Ogmo Editor 2.1.0 of later: http://www.ogmoeditor.com
  • Projectbestanden: hier beschikbaar. De afbeeldingen zijn een enigszins aangepaste set van SpicyPixel.net.

Wat is Ogmo Editor?

Ogmo Editor is een gratis, open source, op tegels gebaseerde niveaubewerking voor Windows en is mijn persoonlijke favoriet. Het is buitengewoon krachtig, het is gemakkelijk in gebruik en het ontvangt af en toe updates. Ogmo is een absoluut fantastische redacteur en zal u ontelbare uren aan werk besparen.


Maken en configureren van een nieuw project

Het eerste dat u wilt doen wanneer u Ogmo Editor gebruikt, is om een ​​nieuw project te maken. Om dit te doen, gaat u eenvoudig naar Project> Nieuw project, zoals hieronder getoond:

Nadat u de map hebt geselecteerd waarin u uw projectbestanden wilt opslaan (als een Ogmo Editor Project of .oep), ziet u het tabblad Instellingen van uw projectconfiguratiescherm..

instellingen

Er is veel informatie hier, en een beetje voorbereiding moet worden gedaan voordat je kunt beginnen, maar maak je geen zorgen, ik zal het allemaal onderbreken als we doorgaan.

Het project een naam geven

Eerst en vooral, ga je gang en geef je project een naam, waar het op dit moment "Nieuw Project" zegt. In het belang van deze tutorial zal ik mijn project "Voorbeeldproject" noemen.

Er zijn twee redenen waarom de naam van ons project belangrijk is: ten eerste is dit de naam van het .oep-bestand dat op uw computer is opgeslagen; ten tweede houdt Ogmo Editor recente projecten bij en kunnen we projecten snel op naam vinden via de startpagina.

Visuals van de editor configureren

Vervolgens ziet u "Achtergrondkleur" en "Rasterkleur". Ogmo Editor stelt ons in staat om beide waarden te veranderen, en aangezien je van nu af aan veel niveaus in Ogmo gaat maken en bewerken, is het geweldig dat je de beelden kunt veranderen in wat voor jou het beste werkt. Ik gebruik zelf een zeer donkergroene achtergrond en een lichtblauwe rasterkleur, maar je kunt alles gebruiken wat je maar wilt.

U kunt een hexadecimale waarde handmatig invoeren, of op de kleur rechts klikken om een ​​kleurkiezer te openen en vervolgens een kleur selecteren. Let op de knop "Aangepaste kleuren definiëren" aan de onderkant, waardoor een vollediger hulpmiddel voor het selecteren van kleuren wordt geopend.

Angle Export

Onder de achtergrond en rasterkleur ziet u het vervolgkeuzemenu 'Angle Export'. Dit is vrij vanzelfsprekend en verandert eenvoudig hoe Ogmo hoekgerelateerde gegevens exporteert. Stel het in op Graden of Radialen, afhankelijk van waar uw project om vraagt.

Level Maten

Het belangrijkste is dat u de configuratie "Level Size" hebt. Hier stelt u de standaard-, minimum- en maximumniveaus in. Over het algemeen stel je Standaard in op je meest gebruikelijke niveau-grootte, Minimaal op je laagst geaccepteerde niveau-omvang (vaak de afmetingen van je spel, voor enkelvoudige schermniveaus), en Maximaal op de grootste die je accepteert, of een belachelijk grote nummer om te voorkomen dat je een maximum hebt.

Camera instellingen

De camera-instellingen zijn een optionele, geavanceerdere functie, maar nog steeds erg netjes, dus ik zal het snel behandelen. Als je game een soort camera gebruikt, kun je het gedrag ervan binnen Ogmo nabootsen. Hiermee kun je zien hoe visuele gelaagdheidseffecten eruit zullen zien in je spel, zoals Parallax, in de editor.

Om de camera-instelling te gebruiken, vinkt u gewoon het vak "Ingeschakeld" aan en stelt u de afmetingen van uw camera in. Als u uw camera in een game wilt maken op basis van het XML-niveau, vinkt u het vakje 'Camerapositie exporteren' aan en hebt u die gegevens ook om mee te werken. Als u de camera in de editor wilt verplaatsen, houdt u eenvoudig "C" ingedrukt en klikt en sleept u om de camerapositie in te stellen.

Niveauwaarden

Een andere optionele functie, die erg handig is, is niveau waarden. Zie deze als eigenschappen van uw niveaus die direct in de editor kunnen worden ingesteld.

Een praktisch voorbeeld hiervan is de moeilijkheidsgraad. U kunt een 'moeilijkheids'-eigenschap maken als een geheel-getaltype en uw standaard, min en max instellen. Je zou dan elk level waaraan je een moeilijkheidsgraad toekent, kunnen toewijzen, die dan in het spel kan worden gebruikt om moeilijkheidsgraden te sorteren, de moeilijkheidsgraad van een niveau weer te geven, enzovoort. De mogelijkheden zijn hier bijna eindeloos, en met een beetje creativiteit is dit een zeer krachtige functie.

Lagen

Nu we een goed begrip hebben van het tabblad Instellingen, ga ik verder naar het volgende tabblad; ga je gang en klik nu op het tabblad Lagen. Lagen zijn een absoluut essentieel onderdeel van Ogmo Editor en ze worden prachtig verwerkt. Ogmo gebruikt drie soorten lagen: raster, tegels en entiteiten.

rooster

Raster is de meest basale laag in Ogmo. Nieuwe projecten bevatten standaard slechts één laag en die laag is van het rastertype. Rasterlagen zijn eenvoudig: een tegel is gevuld of niet. Vanwege dit simpele karakter, is het meest voorkomende gebruik van een rasterlaag het behandelen van gevulde tegels als aanvarende tegels in je spel, hoewel het gebruik ervan uiteraard niet beperkt is tot dit.

tegels

Tegellijnen zijn iets geavanceerder, maar nog steeds vrij eenvoudig. Over het algemeen worden deze alleen voor visuele doeleinden gebruikt (uitzonderingen zijn er wel, en gebruiken meer geavanceerde XML-parsing, maar we zullen hier niet verder op ingaan).

Mijn projecten bevatten altijd ten minste twee of drie lagen Tiles: één voor de achtergrond, één voor de voorgrond en, afhankelijk van de aard van het project, één voor het middengebied. Het is redelijk om veel lagen met lagen te hebben, en dit geeft u meer nauwkeurigheid en kracht om te bepalen hoe goed de afbeelding van de editor uw gamebeeld weergeeft. Dit komt doordat spaties in tegelslagen, net als in rasterlagen, al dan niet zijn gevuld, wat betekent dat je niet meerdere tegels in dezelfde tegelruimte kunt plaatsen en in plaats daarvan meerdere tegelslagen moet gebruiken.

Een voorbeeld hiervan is hieronder weergegeven, waar ik een bloem voor een boom heb. Met slechts één achtergrondtegelslaag zou dit niet mogelijk zijn; ik heb er echter meer en mijn bloemen en boom staan ​​op afzonderlijke lagen.

entiteiten

Entiteitlagen zijn behoorlijk krachtig, maar toch zeer eenvoudig te gebruiken. Simpel gezegd, een Entity-laag is waar al je game-objecten zijn neergelegd, zoals vijanden, spawnposities, checkpoints, veren, ladders, spikes, deuren, enz; Als het een niet-visueel object is dat je tijdens het ontwerpen van levels zou plaatsen, dan is het hier.

Entiteiten winnen hun kracht en originaliteit aan hun vermogen om eigenschappen te beheersen. Deze eigenschappen kunnen een groot bereik van datatypes variëren (Boolean en Integers zijn slechts twee voorbeelden), en kunnen waarden worden toegewezen, zoals standaard, minimum, maximum en soms meer.

Een eenvoudig voorbeeld van hoe dit nuttig zou kunnen zijn kan worden waargenomen met een vijandelijk spawnpoint. Als je de richting wilt bepalen waarin een vijand loopt zodra hij is voortgebracht, moet je binnen een leveleditor die geen eigenschappen ondersteunt, twee objecten maken voor de editor - een waar de vijand naar links beweegt en een andere waar hij naar toe beweegt. Met Ogmo's ondersteuning voor eigenschappen op entiteiten, kun je de Enemy-entiteit eenvoudig een "direction" -eigenschap van het type Integer geven en deze aan -1 of 1 toewijzen in de editor. Hiermee kun je één object voor de vijand hebben, maar bepaal je specifiek gedrag voor elke vijand die je op je niveau hebt gezet. U kunt dan de richtingseigenschap van de XML lezen en de logica in uw spelcode afhandelen.

Dit is slechts een voorbeeld van hoe eigenschappen de editorervaring vereenvoudigen, maar er zijn veel andere toepassingen.

tilesets

Je weet nu een beetje over Tiles-lagen, maar zonder een beetje configuratie, zal Ogmo het gebruik ervan niet toestaan. Klik nu op het tabblad Tilesets en ik zal bespreken hoe u een Tiles-laag kunt gebruiken.

Standaard zijn er geen Tilesets toegewezen aan Ogmo, en je hebt er een nodig om een ​​laag van het type Tiles te maken. Om er een te maken, drukt u eenvoudig op de knop Maken links onderaan; Merk ook op dat je lagen kunt verwijderen en hun volgorde kunt herschikken met de andere knoppen die je hier vindt.

Zodra een nieuwe Tileset is gemaakt, moet u deze een naam geven, Ogmo laten weten hoe groot elke tegel op het vel is en de afstand tussen de tegels definiëren, indien van toepassing. Als u meer dan één tileset heeft, herhaalt u eenvoudig de bovenstaande stappen voor elk.

In de werkomgeving kunt u alle beschikbare tilesets zien terwijl een Tiles-laag is geselecteerd en kunt u tussen sets wisselen met behulp van een eenvoudig vervolgkeuzemenu. Tijdens het werken met tilesets kunt u een tegel selecteren om mee te werken, of een groep tegels in één keer. Hiermee kunt u hele groepen tegels beschilderen, die kunnen worden gebruikt om snel achtergronden te plaatsen of om grotere objecten met meerdere tegels uit te leggen met een enkele klik.

entiteiten

Het laatste tabblad is het tabblad Entiteiten. Hier configureert u alle entiteiten die op een lagenlaag kunnen worden gebruikt. Entiteiten zijn een beetje ingewikkelder dan waar we tot nu toe mee gewerkt hebben, maar ze zijn zeer flexibel en toch gemakkelijk te gebruiken.

Net zoals je deed met Layers en Tilesets, ga je gang en druk je op Create om een ​​nieuw Entity-type te maken. Zoals alles in Ogmo, geef je de entiteit een naam en vul je de hoogte en breedte in. Merk op dat terwijl je hoofdraster één grootte kan hebben, entiteiten en andere objecten in Ogmo groter kunnen zijn. Dat gezegd hebbende, stel ik voor om alles deelbaar te houden door een enkele tegel, om de dingen opgeruimd te houden.

Zoals hierboven vermeld, eigenschappen zijn waar entiteiten, en Ogmo Editor zelf, echt schijnen. Veel editors hebben deze functie niet, maar vanuit mijn perspectief is het absoluut noodzakelijk. U maakt eenvoudig een nieuwe eigenschap en kent deze een naam en een van de volgende typen toe: Integer, Boolean, Float, String, Enum en Color.

Nadat u de eigenschap een naam en een type heeft gegeven, kunt u de standaardwaarde en (indien van toepassing) de minimum- en maximumwaarden instellen. Er is ook een selectievakje Show Slider, waarmee u de waarden kunt aanpassen met een schuifregelaar in plaats van de waarde in te voeren bij het bewerken van objecten in het ontwikkelingsgebied.


Het ontwikkelingsgebied

navigeren

Navigeren door het ontwikkelingsgebied is eenvoudig. Om te bewegen, houdt u gewoon de spatiebalk ingedrukt en klikt en sleept om te pannen. Bovendien kunt u met het scrollwiel in- en uitzoomen naar de locatie van uw muis. Deze twee gecombineerde methoden zorgen voor een zeer snelle en pijnloze workflow bij het werken op grotere niveaus.

Maatwerk

Een andere geweldige functie van Ogmo, en een van mijn favorieten, is de mogelijkheid om elk deelvenster buiten het programma te slepen. Lagen, Entiteiten, Tegelpalet, Selectie en Tools kunnen allemaal worden gesleept waar je maar wilt op je monitor (s), en passen op het formaat van je keuze - een ongelooflijk handige functie voor mensen met een opstelling met meerdere monitors of groter tilesets.

Merk op dat deze re-dimensionering bijna essentieel is voor het Tegelpalet, omdat elke tegel veel te klein zal zijn tenzij het venster vergroot is.

Leer de hulpmiddelen

Ogmo Editor heeft een aantal hulpmiddelen die u kunt gebruiken terwijl u aan uw project werkt. Sommige gereedschappen verschijnen in alle laagtypen (raster, tegels, entiteiten), terwijl andere specifiek zijn voor het laagtype. Hieronder is een uitsplitsing van elke tool.

Grid Tools

  • Potlood: Wordt gebruikt voor het vullen van basisvullingen. Met de linkermuisknop wordt een tegel geplaatst, met de rechtermuisknop verwijderd.
  • Vlakvulling: Uw basis vulgereedschap. Vult alle lege ruimte in een ingesloten gebied met een linkerklik en verwijdert een gevuld gebied door met de rechtermuisknop te klikken.
  • Rechthoek: Lijkt veel op het gereedschap Vlakvulling, maar vult eenvoudig een geselecteerd rechthoekig gebied in. Klik met de linkermuisknop om te plaatsen, klik met de rechtermuisknop om te verwijderen.
  • Lijn: Heel erg zoals de potloodhulp, maar wordt gebruikt om een ​​lijnsegment van vulling van punt A tot punt B te creëren. Klik met de linkermuisknop om te plaatsen, klik met de rechtermuisknop om te verwijderen.
  • Selecteer: Gebruikt om objecten te selecteren, die vervolgens kunnen worden verplaatst met WASD of het gereedschap Verplaatsen.
  • Selectie verplaatsen: Hiermee kunt u geselecteerde objecten met de muis verplaatsen.

Tegels gereedschappen

De meeste gereedschappen worden ook gebruikt in rasterlagen, behalve:

  • Pipet: Hiermee wordt de momenteel geselecteerde tegel gewijzigd in de tegel die is geselecteerd wanneer de pipet wordt gebruikt.

Hulpprogramma's voor entiteiten

Sommige hulpmiddelen worden ook gebruikt in rasterlagen, met uitzondering van:

  • Resize: Indien van toepassing, kunt u de x- en y-schaal van een entiteit wijzigen door te klikken en slepen.
  • Node toevoegen: Voegt een knoop toe voor de geselecteerde entiteit. (Zie paragraaf Nodes voor meer informatie).
  • Insert Node: Staat de plaatsing toe van knooppunten tussen reeds geplaatste knooppunten. (Zie paragraaf Nodes voor meer informatie).

Entiteiten en knooppunten

Knooppunten zijn een andere geavanceerde functie van Ogmo Editor. Denk aan knooppunten als tussenpunten die bij een specifiek entiteitsobject horen. Nadat een entiteit is geselecteerd, kunt u vervolgens knooppunten toevoegen met het hulpmiddel Knooppunt toevoegen. Deze knooppunten worden opgeslagen in de XML onder het entiteitobject en kunnen naar wens worden gebruikt.

Knopen kunnen worden gebruikt voor het verplaatsen van platforms, bewegingen van vijandelijke patronen en posities van vijandelijke vuurplanken. Zoals altijd zijn de mogelijkheden eindeloos, dus wees fantasierijk en gebruik deze uitstekende functie.


Niet-conventioneel gebruik

Ogmo Editor is ideaal voor elke tegel-gebaseerde game, of het nu gaat om een ​​top-down Zelda-achtig spel of een side-scrolling platformgame. Dat gezegd hebbende, met een beetje out-of-the-box denken, kan het op veel niet-conventionele manieren worden gebruikt, om bijna alles in je games te doen.

Stel je bijvoorbeeld een eenvoudige verticale of horizontale shooter voor. Gedurende het spel vliegen vijanden naar je in vooraf gemaakte patronen. Deze patronen zijn meestal vrij eenvoudig en kunnen strikt via code worden gemaakt, maar waarom zou u geen visuele editor gebruiken om het proces te versnellen? Met Ogmo kun je gewoon de startpositie van elke vijand op een laag Entiteiten weergeven en het 'niveau' een eigenschap geven die ofwel een moeilijkheidsgraad is voor de golf of een naam, zodat je spel je vooraf gemaakte volgorde verder kan sorteren golven.

Wat een behoorlijke hoeveelheid tijd kost om te doen in pure code, is nu aanzienlijk eenvoudiger en aangenamer dankzij een ietwat obscuur gebruik van een op tegels gebaseerde editor.


Open source

Matt Thorson heeft Ogmo Editor open source gemaakt, wat betekent dat de community vrij is om de editor toe te voegen en aan te passen op elke manier die zij geschikt achten. Als u geïnteresseerd bent in het aanpassen van Ogmo, ga dan naar de bron en deel uw bijdragen met de community!


Conclusie

Zoals je ziet, is Ogmo Editor een extreem robuuste en complexe editor. Het is een geweldige toevoeging aan het arsenaal aan tools van een game-ontwikkelaar en kan u ontelbare uren besparen.

Of je nu op zoek bent naar de absolute basics in een editor, of iets geavanceerder, zoals het camerasysteem of de eigenschappen van een entiteit, Ogmo helpt je graag verder. Ik hoop dat je je nu comfortabel genoeg voelt om Ogmo Editor te gebruiken in je volgende project. Veel succes met je toekomstige bewerkingsactiviteiten op het hoogste niveau!