Io, Io, Io!

Join the Atwenture

2015-06-26 21:08:27

Long time no see. Well. As usual.
I've got few spare hours, so I've put together Atwenture, a (serverless) textual adventure that you can change tweeting. For real!
Why don't you give it a try? You can play the game and find instructions here (Link). Code is on GitHub already, this time. (Link)
Happy building!

The Last Of At

2014-01-28 21:19:21

The brain is a fascinating blender of unrelated things.

I had a crush for roguelikes when Lucio, an old good friend and dungeon master of mine, introduced me to Angband (Link) ages ago.
I wasn't the RPG type and the meaningful but raw ASCII graphics weren't appealing for an arcade-lover Playstation kiddo like me but its procedural dungeon generator, variety and complexity managed to leave a scar in my heart.

In the following years I periodically tried playing different roguelike and mainstream RPGs, essentially failing every time.
I started to mature some kind of "RPG acceptance" only many years later.

When I started loosing my hair.

So years passed and, during the last winter, I decided to choose and buy a quite large selection of games from The Humble Bundle Store (Link) as Christmas self-present, which included "Hack, Slash, Loot" (Link), a neat roguelike with simplified gameplay and nice but still schematic pixelated graphics.
This time I ended to lose some serious hour playing it and started to understand the value behind these games - as more mature gamer and programmer.

These sneaky roguelike sessions, mostly placed early in the morning, while Bianca was sleeping in order to avoid her my not-so-interesting-to-see dungeon crawling, were in the days we played The Last Of Us (Link), the latest masterpiece by Naughty Dog and, in our opinion, the game which raised the bar of story driven games in terms of integration with gameplay and themes.

When everything blended with my "subconscious substrate of persistent addiction" to everything retro.

From the obscure cracktros (Link) of the Commodore 64 scene to the outstanding .kkrieger (Link), I'm still thirsty of the fine and dirty products of the demo scenes.
Over the years I've managed to figure out my personal reason for this addiction: I think creativity is something you can drive to a specific task but it moves unpredictably when facing real or fake limits. And seeing where it goes is an outstanding show.

In videogames nothing describes this concept better than a demake: the attempt to port as much as possible of a game built on a machine to another one less powerful.
While it looks a quite whacky hobby today, every porting on home computer or game console between 80s and 90s is actually a demake - the time spent playing them covers most of my youth.

I started to try some code golfing in JS instead of playing games during early evenings few days ago and ended writing a little chunk of code implementing a tiny Sokoban-like puzzle game. Not the shorter solution possible but I had a lot of fun putting it together.

This tiny piece of code worked as seed and, together with all the random thought and events I listed, it became "The Last Of At" (Link) without any control - a humble tribute to everything that is important for me about gaming.

The 1024 bytes limit immediately resulted a rule for different reasons: to give a challenge on programming, to limit the size of the project, to stimulate on feature selection and, most important, to be printable on a T-shirt or a small poster.
Honestly I don't know if I'll ever print it somewhere but I thought that having a working roguelike or a TLOU minigame printed on a T-shirt could be nerdly funny - Bianca just thought that's way too nerd.
JS Crushers allow to pack more features in 1Kb but sadly the resulting code contained not-printable characters so I decided to try to avoid it.

Permadeath, turn based gameplay, ASCII graphics, complex random generated mazes, inventory, strategic battles and raycasted sight are very distinctive traits of classic roguelikes so I started implementing tiny but recognizable versions of each feature. I never wanted to make the definitive roguelike (nor doing it in 1Kb) but I tried to make it the less boring possible - if not quite enjoyable.

Different kind of zombies, a friend that will help and put you in danger, weapon selection, in-game narration, a turn of events, a human plot and the sense of hunt and being hunted are distinctive of The Last Of Us and, some of them, of good modern story-driven games - sadly the zombies presence too.
Zombies can justify the not perfect "AI" I managed to fit in the game and I added some of them that will just run randomly in order to give a bit of variety and mock Runner zombies.
I also tried to put the knife, a key weapon of TLOU, allowing the player to choose which zombie to attack and in which way, making the game a little deeper. The real challenge was to put the narrative part, which was byte expansive and risked to be not so clear with ASCII graphics, but I wanted it way too much and I hope you'll recognize and enjoy it - don't worry, it is not taken from the original game :)

What was clear from the beginning was that probably everything would have felt like a cheap DOS porting of a fanfictional game so why not to work on it too? So I gave mocked names to the character, invented a storyline that resembled the original and added some ASCII art to the sources - they will be stripped by the minifier, giving the "I need to read the manual in order to understand the cheap plot" typical of old age games.

I commented everything to help myself on keeping track of variables and features (and entertain who will be interested enough to read the sources) and wrote everything in minified form natively, in order to better compare code shortenings on the fly.
I used uglifyjs (Link) as "computer opponent", which was helpful most of the times in the first phases of the development.

I had to skip a lot of features, like hearing zombies a-la Joel, guns, procedural weapons, simplified crafting, knife-opened doors and the ability to pick up your partner but I'm satisfied with the results: "The Last Of At" (Play it here (Link) Sources here (Link)) is my humble and spontaneous tribute to roguelikes, old school games, modern games with deeper stories and a diary of my life as gamer and programmer that fits in a pocket.

I hope you'll find it strange, funny and formative as much as it was for me making it.

About me

I'm Francesco and I should be 38 years old now.
Should be because this age is calculated by three lines of code and I could be dead now and this
code can run forever. Never mind. I love computers and computer programming. I
play videogames since the first day of the Atari age in Italy and I love
them when are made by people. And this happens quite often, since
there isn't - when I'm writing these lines - a machine which programs itself at this
level of complexity - however should be interesting. How can be a self-programmed videogame?
Something like Nethack? I love drawing manga,
opensource and
everything else is indie and made with love. Oh, I also love alive things. Bianca.
But, seriously, we are in a world where machines sings that are Still Alive, so we can love everything.
I also love friends. I've just a few of these little things and most of them are just chat contatcts.
Who cares? Computers are made by people, used by people and transfer data made by people (eventually formatted to justified text by
machines) so I'm (we're - as human) everywhere. And I love writing fuzzy things about technology, friends and me, if is alive.
And I just love things? No. I hate the half of the things I've not listed here. If this was a classic personal blog of some frustrated
teenager I should put you in the bad half. Cheese. You probably are in the good one - according my site stats.