Tale (12): meer focus op IF, release op Pypi

Sunday 13 May 2012, 23:26:00 | mud / i.f.

Wat is er deze keer toegevoegd?

(!) De naam van het project is nu officieel Tale. Er zijn setup scripts toegevoegd en het project is geregistreed op Pypi. Er is nog geen website voor en documentatie ontbreekt ook nog.

Voorlopig ligt de nadruk van de ontwikkeling met name op features die te maken hebben met het Interactive Fiction aspect van Tale. Het lijkt me namelijk voor de komende tijd leuker om een stabiel platform te hebben om een leuk IF verhaal mee te realiseren, dan een MUD. Het aardige is natuurlijk wel dat veel features die erbij komen voor IF, ook automatisch beschikbaar zullen zijn voor de MUD variant. Maar die laatste heeft nog veel werk nodig aan de netwerk-communicatie en multi-user kant en daar heb ik voorlopig even geen zin in. ;-)

Er zijn een stapel nieuwe commands toegevoegd: 'brief' commando om korte locatiebeschrijvingen aan en uit te zetten. activate, deactivate, turn [on,off], switch [on,off]: activeer/deactiveer een object, activate()/deactivate() methods. move, shove, swivel, shift, manipulate, turn, rotate, press, poke, push --> manipuleer een object (manipulate() method).

Algemene code verbeteringen: een reeks bugfixes waaronder een crash als je een exit noemde bij een soul emote zoals: push south. Onnodige room_exits parameter verwijderd uit parse methods. inventory en inventory_size zijn nu properties ipv methods. Extra unit tests.

Server tick synchroon met invoer van de speler:

Verder een vrij belangrijke aanpassing is dat het nu mogelijk is om met een setting in globals, de server 'tick' en gametime te synchroniseren met de invoer van de speler in plaats van dat ze asynchroon doorlopen. Dit betekent dat zolang de speler niets typt, er niks gebeurt in het spel. Pas bij invoer zal er een server 'tick' plaatsvinden en gebeuren er dingen. Als er meer 'realtime' gebeurtenissen nodig zijn dan is het handiger om de oude asynchrone server loop te gebruiken (waarbij de invoer van de speler in een aparte thread wordt afgehandeld).

Tale library versie toegevoegd, en REQUIRES_TALE_VERSION, zodat er alvast een check aanwezig is om de juiste versie te gebruiken voor een bepaald 'spel' dat voor/met Tale ontwikkeld is.

Voor de volgende keer: wellicht de mogelijkheid om daadwerkelijk het verhaal 'uit te spelen' en misschien ook om verschillende verhalen te kunnen starten (in plaats van dat zoals nu nog de wereld in de library zelf zit meegebakken).