Idea nového jazyka vznikla u mě, jelikož jsem si chtěl zkusit implementovat nějaký jednodušší jazyk "správně", za použití znalostí nabytých při studiu VŠ. Nápad se ale zamlouval, a proto jsem se rozhodl jazyk za připomínek a návrhů ostatních vést dál, aby se z něj stal plnohodnotný nástroj pro skriptování, a měl tak potenciál urychlit vývoj blizzlike záležitostí, minimalizovat nutnost hrabat se v desítkách tabulek a pamatovat si tuny věcí.
Proč to píšu veřejně: v budoucnu, až bude jazyk ve stavu, kdy bude možné v něm něco plnohodnotně vyvíjet, bude uvolněna specifikace mezi vás, hráče. Jazyk má jednoduchou syntaxi, chápatelné konstrukce, a pokud máte alespoň minimální znalost nějakého programovacího/skriptovacího jazyka, pak bude používání poměrně snadné.
Pro představu: jednoduchý skript, který po spuštění rozpohybuje NPC, nechá ho zahlásit pár hlášek, a tak.. může vypadat třeba takto (znakem # začíná komentář, který lexer vypouští z jazykové analýzy):
Code: Select all
# NPC odejde na zadané souřadnice
walk 125.8474 526.11245 1211.887
# počká se, až skončí pohyb (NPC dojde na místo)
waitfor movement
# pronese hlášku a přehraje emote
say "Let me tell you a story"
emote talk
# počká zadaný čas (2 sekundy = 2000 milisekund)
wait 2000
say "Once upon a time..."
wait 2000
say "...wait a minute..."
wait 3000
yell "IS THAT DEATHWING?!"
emote exclamation
wait 2000
# nastaví rychlost na trojnásobek
speed run 3.0
yell "Run for your life!!!"
run 100.48748 563.5547 1200.4854
Momentálně pracujeme na zdokonalení jazyka, aby šel použít v kombinaci s quest systémem, šlo díky němu ovládat něco pokročilejšího, jako třeba nějaký event v dungeonu, nějaká scénka, šlo dělat pokročilejší věci typu "práce se skupinou NPC", a tak dále.
Předpokládám, že k dokončení implementace dojde během září, a během října bude možné testovat a případně zveřejnit plnou specifikaci, abyste i vy, hráči, mohli zkusit něco vytvořit.