Van makkelijk naar moeilijker (Eindprodukten zijn content waar we uiteindelijk naar streven, dat wat het spel gebruikt, de rest zijn maar tussenstadia):
Een vijand ontwerp is in de eerste plaats een goed idee hebben. Een vijand heeft een doel en een afkomst nodig, m.a.w. als er al vijftig vijanden zijn die naar de Singus vliegen en zichzelf ontploffen, dan gaat nog zo'n vijand (zelfs als is hij 3D gerenderd of weet ik veel) weinig indruk maken.Ook zal een vis-achtige vijand weinig op zijn plaats zijn zwevend in een oerwoud-level, zoiets hoort meer thuis in een onderwaterwereld, of eventueel in deep space. (Op het moment is de enige vijand die ontworpen is de Scout, zoals te zien in de demo.)
Een vijand moet dus passen in zijn level (ik neem aan dat 80% van de vijanden level-specifiek worden, de overige kom je overal tegen om het idee van "eenzelfde vijandige armade" op te wekken zoals de Scout in de demo), en een bepaald origineel karakter dat zich uit in zijn beweging en aanval. Dat karakter hoeft niet spectaculair te zijn, elke shoot'em-up heeft wel een vijandje dat gewoon van boven naar benenden vliegt zonder iets te doen, maar moet zich wel distingeren zodat de speler "kennis" kan opdoen over de wereld waarin hij speelt.
Een vijand heeft liefst ook een zwakheid voor een bepaald wapen (denk Megaman), hoewel ik dat nog moet implementeren.
Ik heb een aparte scripting-taal ontwikkeld voor vijandjes (foes). Jullie hoeven je niet bezig te houden met die scripting-taal tenzij je dat graag doet, als je een uitgewerkt idee hebt voor hoe die vijand zou bewegen en schieten, dan ben ik al blij en zal ik dat wel uitschrijven in dat taaltje. Ddesalniettemin is hier wat technische info als je die wil kennen
Het taaltje is nog in ontwikkeling, maar ik heb geprobeerd om de scripten zelf zo duidelijk mogelijk te maken. Download de laatste demo en kijk in de data directory naar sprites.txt voor het bestand dat de animaties vastlegt, weapons.txt voor het bestand dat de wapens vastlegt, en scout.txt voor een foe-scriptje.
Elke foe heeft zijn eigen script bv. de vijand scout heeft een script "scout.txt". Daarin staan een aantal toestanden beschreven, voorgesteld door een sectie die begint met een naam tussen vierkante haakjes ([state]), waarin een vijand zich kan bevinden. De meeste hebben genoeg aan ongeveer 2 toestanden. Er is een speciale toestand init die beginwaarden inleest zoals hitpoints en wapens. Daarna wordt overgegaan naar een gespecifieerde toestand of default als er niks gegeven is. Er is ook een toestand dead die bereikt wordt als de foe sterft. Elke state behalve init en dead, herhaalt onafgebroken totdat de foe vernietigt wordt of expliciet naar een andere toestand wordt overgegaan.
Animaties worden gegeven door een naam identifier, die moet worden teruggevonden in sprite.txt. Hetzelfde geldt voor wapens in weapons.txt. Een animatie is gewoon een naam en dan een lijst van gebruikte bitmaps in volgorde.
Je kan met behulp van deze taal het gedrag van je vijandjes vastleggen, met bewegingsvectoren, pauzes, schieten in een bepaalde richting, schieten op de speler, wisselen van animaties, wisselen van toestanden
Ik moet ook nog een hoop bazen ontwerpen, zowel grafisch als hun gedrag, als
welk wapen ze dragen. Ik heb er al twee:
de MDW Jehud voor de Space Colony, een grote mobiele walker robot. Deze heeft
het Twin Streamer wapen.
Daarnaast is de baas van Jauth Skriora, die de Speed Booster bezit.
Daarnaast minder uitgewerkt:
Voor Ancient Asteroid wil ik iets geest-achtigs met het Phantom Gun,
en op Ruchsiak wil ik een groot plantaardig wezen (waar ik maar niets fatsoenlijks
voor getekend krijg) met het Fang wapen.
De eindbaas is één groot vraagteken...