Merrinian – bygg moderna textspel [under utveckling]

27 oktober 2009

För några veckor sedan fick jag en ingivelse att börja koda textspel igen. Det är något jag återkommit till då och då under hela mitt programmerarliv. T.ex. var det allra första ”programmet” jag hackade ihop ett textspel som hette ”Bigew” – mest för att jag tyckte om bokstavskombinationen, inte så mycket mening bakom dem ;). ”Program” inom citattecken för jag kom aldrig längre än att skriva ut ”Det här är ett rymdskepp” och rita lite ASCII-art (framgooglat exempel – inte mitt!) på Commodore64:an.

Sedan har jag byggt ett antal hack&slash(klicka Press to Start!)-kloner (BBS-oldtime-goodie för dem som var med när det begav sig på 80-talet), och någon enklare MUD-historia (en spelare i taget fast mot samma värld, Slasher kallade jag spelet som började på miniräknaren TI-80, fortsatte till Windows 3.11 och sedan i sin mest utvecklade form i DOS med sitt svart-vita drama!). Blev också en Telnet-variant kallad Stasher (tack Tor!), baserat på samma koncept en-värld-flera-spelare-men-bara-en-i-taget, fast denna gång över internet alltså.

Sedan blev det ett simplistiskt textspelsspråk kallat kLyWe Text Game, KTG, som genererade två-tre små halvfärdiga textäventyr i grannskapet. Enspelarspel. Dock var språket för begränsat i sig. T.ex. fanns det inget sätt att stoppa spelet, om det blev Game over eller om spelaren klarade sista questen.

Denna gång tänkte jag ”back to basics” – textäventyr. En spelare, inget nätverk, inga megaregler, utan bara texten och problemlösningen. Lite mera Zork-stuket alltså. Genren kallas ”Interactive Fiction” (tack för denna allmänbildning bror!).

Så jag påbörjade projektet som fått namnet Merrinian förra veckan. Det är open source (MIT-license), och hittills finns det bara ett teknikdemo.

Det som jag tror är lite nytt med Merrinian är framförallt att man kan spela mp3/ogg-musik i bakgrunden medans spelaren befinner sig på en plats i spelet. Dessutom renderas allt med en handskriven font, för att få lite mera hemtrevlig känsla. Här är en screenshot.

Projektet befinner sig alltså än så länge på konceptstadiet. Därmed har du chansen att vara med och hjälpa till i dess utveckling! Om du är intresserad av att testa/vara med och utveckla detta (finns för Windows/Ubuntu/ren source code) än så länge, skicka mig ett mejl! (min mailadress står ute till höger under avatarbilden).

Läs mer om Merrinian på dess utvecklings-site: sites.google.com/site/merrinian.

Merrinian

Taggar: , , , , , ,

Annons

Programidé: LinkWatch

10 april 2009

En kollega kläckte en cool idé i veckan.

Den är sprungen ur observationen att man ofta kollar upp ett antal sidor på internet varje dag, om och om igen, för att se om de uppdaterats.

Oftast har de inte det, och man har slösat några sekunder av sin dyrbara tid och, ännu värre, blivit lite mer besviken.

Idén är då att ha ett program, LinkWatch, där man kan klistra in länkarna man är intresserad av. Sedan kollar programmet upp om sidorna ändrats. Här är en skiss på hur det kan se ut:

Skiss: LinkWatch

Skiss: LinkWatch

Fetstil betyder alltså att sidan länken pekar på har uppdaterats (sedan man lade till länken eller klickade på länken sist via programmet).

Så jag tänkte spendera dagen med att försöka implementera detta i C# WinForms, med målplattform .NET2.0/mono1.2.6. Detta betyder att man kan köra programmet i WindowsXP/Vista och Ubuntu, kanske också Mac (någon därute som vet om WinForms.NET2.0 funkar i Mac utan att behöva installera något särskilt extra?).

Givetvis blir det ett Open Source-program, så att andra kan bygga vidare på det eller använda idén i någon helt annan miljö!

Uppdatering: Jag har stött på två problem.

1. Vissa siter går inte att läsa av med .NET’s vanliga Http-anrop (jag får Exception). Det gäller t.ex. om jag läser av ”http://bloggar.se/om/fra”.

2. Många siter ger olika svar varje gång man anropar. T.ex. ”http://opassande.se” och ”https://olofb.wordpress.com”.

Det första problemet har jag ingen aning om hur jag ska tackla; kanske måste man ange vilken ”browser” som används, eller något sådant, för att siten ska acceptera anropet. Om det är någon som har tips, hojta gärna till.

Det andra problemet har jag en strategi för att gå på, och det är att ”filtrera ut” endast synliga tecken ifrån HTML-koden. Det är trots allt dessa tecken som är intressanta att bevaka utifall de ändras. Det blir lite mera jobb än jag hoppats från början, men med lite HTML-parsande/reguljära uttryck borde det inte vara alldeles omöjligt.

Uppdatering 2: Asch då.

Har läst runt lite om error 403 som jag får. Den sannolika anledningen att jag får 403 (som betyder Forbidden i HTTP-protokollet) är att många siter, t.ex. bloggar.se och knuff.se inte vill att ”robotar” ska söka av deras siter automatiskt.

Antagligen är det för att de vill att man ska surfa dit ”på vanligt sätt” för att de är reklamfinansierade.

Detta problem går säkert att komma runt på något trixigt sätt – jag är inte webbutvecklare till vardags så jag vet inte hur man gör på rak arm – men frågan är om inte detta gör hela programidén lite vacklande.

Just nu känns det i alla fall lite mörkt..

Uppdatering 3: Mera bekymmer

Det andra problemet, att vissa sidor ger olika resultat varje gång man laddar ned, är om möjligt ännu besvärligare. Grejen är att sidorna kan ha ”reklamrutor” som ändras när man läser om sidan, eller kanske någon slumpartad länk någonstans.

Möjligen skulle man kunna filtrera ut endast ”vanlig text” (icke-länkar) och saker som ser ut som google-ad-rutor (de ligger säker i något div-block som man kan detektera) men hela programmet blir med ens rejält mycket ”dyrare” att utveckla, och förmodligen med lägre tillförlitlighet.

Det är alltså både teknisk-ekonomiska och politiska argument som talar emot LinkWatch 😦

Det känns därför motigt att fortsätta med projektet idag. Vet inte om jag ska lägga det på ”idéer som aldrig förverkligades”-hyllan och ge mig in på något mer produktivt idag..

Uppdatering 4: En lösning funnen. Jag fick via Erik Josefsson reda på siten ”ChangeDetection.com” dit man kan regga en URL att ”tracka”. Så får man ett mail när siten ändras. Det är dock bara en gång om dagen – inte varannan minut som jag hade hoppats på.

Taggar: , ,


Ny bakgrundsbild

28 februari 2009

Via cooltext lyckas jag skapa en snitsig liten ”logga”. Det blir min nya bakgrundsbild på hemdatorn!

ubuntu

Taggar: , ,


Imponerande open-source spel!

14 januari 2009

Ett resultat av open source-rörelsen – jag sitter och spelar en lemmings-klon kallad Pingus på mitt gratis-OS, Ubuntu, och bara ler 😉

Söta 2d-spelet Pingus på Ubuntu. Allt helt gratis!

Söta 2d-spelet Pingus på Ubuntu. Allt helt gratis!

Taggar: , , , ,


OpenTK – guldgruva för C#-utvecklare med OpenGL-erfarenhet!

04 december 2008

Hallå där!

Om du råkar kunna C# och har erfarenhet av OpenGL-programmering, är OpenTK en riktig guldklimp! Det är ett wrapper-bibliotek inriktat på multimediaapplikationer. Den stora grejen är plattformsoberoende OpenGL-kodning – riktigt skönt att kunna skriva ett hårdvaruaccelererat 3D-program som funkar ”automagiskt” både i Windows och under Linux (med mono-miljön istället för .NET då).

Det är Open Source under MIT-licensen, dvs. det går bra att använda i kommersiella projekt också förutom applikationer med öppen källkod. Jag använder det på jobbet till en 3d-visualisering.

Förutom en GLControl som man kan droppa rakt in i sitt Windows.Forms-projekt (det är en vanlig Control!) finns det stöd för helskärmsläge med hjälp av GameWindow-klassen.

Dessutom finns det vektor- och matristyper inbyggt. Och OpenAL-stöd för ljud, även om det inte är riktigt lika moget som OpenGL-stödet.

Det pågår en OpenTK logo-tävling, här nedan ser du ett av de bättre bidragen enligt mig:

Taggar: , , , ,


%d bloggare gillar detta: