Category Archives: Uncategorized

Getting started with coding new games in JavaScript


Hello everyone, and welcome to a new blog post… I know I haven’t written in a very, very long time.

This post is for aspiring developers, as well as curious people who have been wondering just how that awesome cyclepath game was done, or why the hell Oriol updated beatstar to run on this weird thing called Electron and why it now runs on mac.

The answer is quite simple: Javascript.

When my friend Guillem first told me about audiogames written in Javascript, and showed me a weird prototype of something called dark Defender (yes, that game where you have a bunch of enemy space ships, motherships, falling screaming humanoids and other miscellaneous aerial parafernalia, I felt overwelmed because, even though I wanted to make cross platform games, Dark Defender’s code was complicated, I had 0 Javascript knowledge, and there was no standard way to do things as everyone was still experimenting.
Besides, isn’t JS a language for the web? How can you guys even think of coding audiogames like that?
However, I was pleasantly surprised to see that JS is not only a valid option, but a very interesting one at that. Not only is JS very fast, but it also has packages for anything you can think of (by the use of node and NPM).
There are many things you will need to learn that are quite different to BGT, and for this I suggest you to look at other audiogames written in JS such as Cyclepath, or the new upcoming version of Danger on the Wheel.
I suggest not to learn from JS from the new Beatstar, as much of the code uses unorthodox functions to access the filesystem which are typically not available in Javascript unless you use Electron (more on that later), but the coding style is a bit bgt-ish. The 2 main reasons for this are the following:
Firstly, I wanted to write Beatstar in JS as quickly as possible, so I took a bit of the bgt code and turned it around with the fewest code changes possible. Secondly, it was my first experiment in JS and thus I consciously ignored most of the advice I received from more experienced JS developers such as my friends Talon and Guillem.

With this in mind, Let’s move on to what really matters. The new audiogame coding template I am about to release for you all to start building games from.

A brief explanation about the development process

To download the game building template, you will have to get it via git clone by issuing the following command from the command line.
You will need to have git installed for this to work:
git clone

There are two main ways to develop Javascript audiogames: My preferred option is to use Electron, a Chromium based browser which runs the game locally on my machine.
This is going to be your preferred way if you are planning to release your game as an Electron app rather than a web browser link. This is good for sound-intensive games like Beatstar which load a bunch of music, etc because loading from the hard drive is usually faster than downloading from the internet, unless the sounds have stayed in your cache. Either way, playing from the internet obviously requires an internet connection and thus, if your game doesn’t need one, an Electron app is just fine.
Developing via Electron is good if you don’t want to bother opening your web browser just to test a game. I know other people who prefer using the http server bundled with express, which creates a server pointing to port 3000 (usually) which you can then point to via your web browser by going to http://localhost:3000
Express is not installed via my template, so if you want to use it, you will have to install it via npm (npm install express) and read the documentation to get started.


NPM is a package manager for Javascript. It can be used to install, update, and remove unneeded JS modules that can be useful for your game. It contains everything you could think of, from sound libraries to maze generators, card decks, physics engines and much more.

when you first download the template from git, the NPM modules are not included to save some space. Before running the game you will need to install these modules by running the following command:
npm install

This command installs all the necessary modules needed to run the template.
You can add new modules by typing npm install modulename –save
The –save switch puts that module in the package.json, which is the container for all your dependencies. This means that, the next time someone downloads your cool new game from a git repository or you use it on another computer, that new module you are installing will also be taken into account.

About Parcel-bundler

Parcel-bundler is a handy tool which compiles your game, modules and all your imports so they are optimized and harder to read by people who want to look at your code with electron archive extractors. In always include it in my games because it lets me use imports in an eficient manner. For this reason, if you use my template you will have to run the following command before starting the game:
npm run watch
npm run watch tells parcel that hey, start looking for changes in the code, whenever a file is modified rebuild my game.

Once this is done, you can type npm run start to tell electron to open index.html, which you will not need to modify until you know the name for your new game. The name for your new game is in the html’s title tag.

Once Electron runs, you can check that the template is working by hitting control shift i (control option i on a mac). This will display the developer options. Click on console, and the console window should pop up saying: Setup success!

A note about sound libraries

Hey, I see some confusing files here! sonoSource.js, soundSource.js, soundObject.js… Why!

There are two main libraries for sound playback in Javascript: Howler and Sono.
The conclusion I came up with is that Howler is best for games which do not require HRTF, as it is much more lightweight. However, Sono has a bunch of effects, and both me and Talon have used it for games like Cyclepath and Danger on the wheel.


If you have done all these steps and it works, congratulations! You are ready to start experimenting with your new Javascript audiogame environment.
Please take a look at the explanations found in the file game.js, inside the client folder, and the sound playback example as well as the game timer.

If this post is well received, I will write more posts like this one explaining other things.

I hope this helps someone in their pursuit of audiogame development!

Beatstar pro: My latest audiogame project

As some of you may know, one of hobbies, when I’m not working or doing things for university is programming.
I have coded several audiogames (games without graphics) which are mainly geared towards blind people like myself.
In the last few months, I have been working on a very big update to my most successful game, Beatstar. Beatstar is a musical game where the basic objective is to follow instructions to complete sets of music beats, letting the player buy more soundpacks as he/she progresses.

Now, Beatstar pro has arrived, and it is no longer just a musical game. I have included three minigames: A boxing game, a slots game and a football game.
Programming this project has been lots of fun, especially recording the various unlockable achievements. I am sure that many of you will enjoy it as much, if not more than I have enjoyed producing them.

Beatstar pro encourages you to donate 10 euros as a contribution, but since many of you cannot or do not want to donate, the free version has 0 restrictions. It has exactly the same features as the full version and the code and sounds are 0% different if you donate.

To get the game, please visit my games site here and look for the download link or the donation button.

Thank you!

Quicktap for Android development blog part 1: Introduction, basic events

Hello everyone!
I’m glad to announce that I have started developing quickTap for Android.
Now I know many of you will ask, why start with quicktap? Why not make roadsplat for Android or something?

Well, there are various reasons wh I have decided to start with quicktap, the most important one being that it is an easy game to create. I could make an easier one like guess the number or something of the sort, but now that would be too simple wouldn’t it?

So quicktap. Yesterday I installed the Corona sdk available for free from Corona Labs
, and starting around with it.

The first thing I did was look at some of the example applications that come with the corona package. This way I learned about events, basic audio library usage, and some other useful things.
Since Lua is the language used in mushclient (the mud client that mush-z uses) I am already familiar with it, so I only need to learn corona specific concepts which seem to be quite easy to understand for now.

Corona has a number of issues though, one of them being that it does not produce content accessible to talkback. But since we are creating audio games, we do not need talkback support because I will be using audio files. I can already imagine a number of issues that will come up, but I will solve them as the game grows.

So after installing corona sdk I decided to think about how I was going to make a main menu. I looked around the network and found a corona file called swipeDirection, which basically lets me know when the user swipesup, down, left or right and this is what I will be using for the menu. Then I implemented network support and an event for stopping the introduction prematurely. Next step will be to implement a main menu with swiping and tapping, coding the game, and whatever else I can think of. An issue that nags at me rght now is how I’m going to get the phone to speak the numbers (corona sdk lacks tts support) but I’m going to try and write a number speaker class like that of bgt and use the numbers sounds I use for my windows games.

Looking forward to your comments!

Three months later

Three months after coming back I am in Barcelona again, continuing my Translating and Interpreting studies.
When comparing my life from before the Erasmus to what it is now, I’m going to take the risk and say that it changed a lot, and for good. I see myself more confident and independant and positive. At a personal level, I have learned a lot about life, friendships and personal relationships, self-confidence, personal administration and responsibility…

At an academic level, I have improved my German, I’ve learned a lot about German culture and I finally started interpreting, as well as many other things.

Now I am ready to get on with my life. I’d like to publish this blog as an electronic book on Amazon Kindle or Ibooks. If you are reading this on your Ebook or tablet, it means I achieved it.
Take a big hug from me and I hope that you recommend this blog to anyone you know who wants to visit Germany or another country.

Greetings, and remember: the force will be with you, always.

Erasmus in Saarbrücken, Germany: A road completed

I’ve been trying for days to find the best words to describe my experience in Germany as a blind Erasmus STudent, and the truth is that I can’t find them. I can’t find them due to the simple fact that I have lived so many experiences here, so many experiences that have “opened my eyes”, so many things I’ve lived through that have made me realize how important it is to be independant, continue with my studies…
I came here alone, and I’m leaving with many new friends, people that have become important for me and others that have accompanied me and were there through my best and worst moments. At christmas I made a list of people that were important for me, but I feel it now unnecessary. Firstly because there would be way too many people to list, and secondly because you know who you are.
In part I just want to go to Spain, go to Salou again, go to the Universitat Autònoma in Barcelona, spend time with my family… But on the other hand I just want to stay here. I guess it’s inevitable, otherwise it would mean I didn’t have a good time.
As a conclusion to this blog I’d like to give a shout out to everyone who is thinking of doing an Erasmus or an exchange, be it in Saarbrücken or any other city in any other country. Exchange helps a lot when you want to become more independant, organize yourself as a person and, most importantly, when learning a language.
I came here with a low to normal German level and I think I’ve learned a lot since then in the 10 months I’ve been here.
As you might have noticed when I began writing the blog, my first weeks here were tough until you get used to the people and the culture. The Germans are not like the Spanyars and the other Erasmus Students from other countries are not Spanyards, either. You can’t make the mistake of “teaming up” with the students from your country because then you don’t really learn the language.
And now, I’m going back to VIla Universitaria! Yesterday I got the confirmation that I have an apartment there, and I hope to have a good year, a more independant year thanks to my Erasmus in Saarbrücken, germany, a road to independence.

Germany World cup champions

Well, Germany won the World Cup. I think they really deserved it, given how well they played as a team, always going for the opposite goal whenever they could. When they won 7 to 1 against Brazil… That was incredible. I think it was just about time for a good team to teach the brazilian government a lesson, it was obvious that the WC was held there because they thoguht brazil would win.

But going back to the topic of my Erasmus, I only have 3 weeks left. and I’m starting to feel it. This last week I already had to say goodbye to a couple of my friends here that i doubt I will see in a long while. Sometimes I feel like I want to go back to Spain and other days I just want to stay here in Germany. I just hope to keep in contact with all the important people i have met here.
I still need to do some Exams. I’ve done well until now and I hope to go back to Spain with good grades.
These days life is pretty much the same. Study, meet with friends, stay home… I think that travels are over. 🙁

Second visit from my parents

My parents came to Saarbrücken this weekend! It had been about 6 months since I last saw them, and I missed them. They came on Sunday and a little late, because there weren’t any card to rent… and they had to go with the train and bus and such but they went the wrong direction and they ended up giong to Mainz! They had to travel 2 hours more. Oh well. At least they brought spanisch chorizo!!!
It went pretty well, we stayed about the city because with so little days we couldn’t really do much. Then we rented a car the next day. I don’t understand why my dad always wants to rent a car, I guess he’s not used to the German way of living. Many Germans don’t have cars and use public transport.
Anyway, I’m glad to see my parents, but at the same time it sucks because I don’t have much time here anymore and I need to start saying goodbye to people… Ten months ago I was thinking that I had the whole exchange thing in front of me, and now that it’s almost over, I feel it’s been too short.
Anyway, I hope Germany wins the World cup. 🙂 I saw the last two games with friends, last week we went to a barbecue and yesterday we were in the city at some bar to see Germany against Crazy americans. 😉

The story of how I began playing Alter Aeon

This is the story of how I began to play alter aeon, the best online

text game I’ve ever played. If you want to join me and play along,

visit alter aeon’s website
11 years ago I discovered the game that would literally change my life:

Alter Aeon.
I still remember the day: It was July of 2001. I was 9 years old at the

time and didn’t know much English (I am from Spain). As a curious and

young blind kid, I was always keen to explore the internet. Keen to

discover new things, and of course, new games to play… I was on a

website called whitestick: Tom Lorimer’s Whitestick Website, a website

for blind people based in the UK. I started looking around and found

another site called the Accessible Friends network, which offered some

games and stuff. There was a link to Alter Aeon, an online text game.

What’s this? I thought. I had played a text game in the past, but it

was not online, but a text adventure for blind people. and a mud seemed

like a nice way to get to play a real game where you could interact

with people and practice my, at the time, horrible English. So I


My name is Oriol, and everyone in Spain called me Uri. Mega is an

adjective in Spanish, and sometimes also in English, to describe

grandure or something big. So my name was, of course, Megauri!
I joined Alter aeon as Megauri. I was really lost, and my English

wasn’t good enough to understand anything. But I joined anyway. I

remember I started reading help files and using commands, each new

command being a challenge for me due to the lack of proper English

But I managed. I started going through the mud school, killing the mud

school monsters and getting armor. I remember I was really happy

because the game said that I had four armor class and was very well

armored for my level…

At that time I just kept running around and not really folowing any

gaming strategies, so I kept asking people how I could do things. I

remember noticing that my sword was attacking very slow, so I kept

spamming kill deer, kill deer, kill deer, kill deer and the mud would

keep saying You do your best! You do your best! You do your best! But

my English was so bad that I didn’t get the hang of this sentence, so I

would just keep spamming kill deer kill deer over and over, without a

real clue of what I was doing.

Then the time came, I was looking through the options and login and

found ppk. I thought that it was really bad if I didn’t register, I

don’t know why. Something in my poor English told me that I better

register for ppk because it had many advantages, something about

getting experience if I was a permanent player killer or something. I

remember I used to think that if a player killed me in ppk I would be

unable to play that character anymore. Something like that. I don’t

remember it, really. so I registered for ppk and well, no one killed me

at first. I remember I survived for a few weeks, but then someone

killed me. Kaoken, I think. Could it be? Or Ruin. Maybe both. I

remember being ice imped and being unable to move, and I had to wait a

long while until I could play again.
The first time I killed a ralnoth Cityguard I was so happy. Ralnoth

issue eq gives me so much armor class!
Basically, the only things I worried about were hitroll, damroll and

ac. Yeah, I had a warrior character. But I kept training stats. I

remember I couldn’t spell strength because I was using the spanish synthesizer to play and of course strengt and strength in Spanish sounds the same… Oh and cristal coat and crystal coat. But at the

time I didn’t even know about spellcasting. I didn’t practice any

skills! I just kept training strength because well, I’m a warrior and

I’m a strong guy. So let’s just train strength. Until strength was at

25, and my practices started to accumulate.

Then came the first person who really helped me out… And I would say

with a 99.9% certainty that itt was him, even though he doesn’t

remember. It was Pharel.

Pharel took me through the mud university because, according to him, it

was so much better than mud school! I was totally amazed Oh! There’s

more stuff in here! The whole mud is not just some cityguards and a mud

school! I remember thinking at first, OK  I’m going to go down this

road in Ralnoth, and eventually there will have to come to an exit

where I can only go the previous way I came right? The mud cannot be

endless… This road has to have an end, it can’t be that big.
But anyway let’s not get out of topic. Pharel helped me out, he showed

me mud-u and the Ralnoth guildmasters. He even told me that there was

something called spellcasting and a spell called shower of sparks! I

learned shower of sparks and I could kill so much faster than with my

crappy sub issue sword!
And the next day he showed me a waypoint called the glade of spirits.

It was such a cool place, because back then you could regen hp and mana

so much faster if you were in that room.
So Pharel helped me out and I discovered spellcasting. I don’t remember

much after that.
Oh, and I’ve talked about the mud school and Ralnoth, but 12 years ago

the newbie islands weren’t even in Dentin’s head! The newbie world

revolved around mud school, mud-University if you were an advanced

player and didn’t feel like going through the whole newbie monster

killing thing. And then a few other newbie areas, but I don’t think I

got that far because I took a long break for a few years.

After my first long break from AA, I came back. And the newbie islands

weren’t there yet. I can’t remember exactly when it was that I came

back, but my English was a bit better then. I could communicate with

other players and understand help files, so that was a huge plus. Now

that I think of it, I must have been around 12 or 13, so 3  years

later. I had a friend from the UK with a character called Tigger play

with me and he helped me out too, even though he was also a newbie.
I met some pretty cool people back then: Eva, or ava or something, from

the elfs channel, maybe someone remembers her. Franco/Page was also in

the lot, wuver then joined with us, he was also friends with tigger,

but I think he had another character back then. Magekiller or

something. I can’t really remember. I can only remember I had a

character called ultramage.
I remember having a heated discussion with my English teacher because I

told her that mages are also people who can do magic, because we were

talking about magicians.
Like the magicians in the circus. And I said that you could also use

the word mage for magician. And she said no no no no no no  you are

wrong. So I started arguing, that I play a game where a mage is a magic

user. So you can also call a magician a mage, can’t you? Because

magicians do magic… Yeah.

But anyway, I’m getting out of topic again. After that I took another

long break until 2005 or so. And there things got a little more

interesting. I met a bunch of blind people, like Lillie, Pjbdude,

Moose, I don’t know. Many. Oh, Torax of course. But Torax came later.

He still plays, even. Maybe you are Torax and are reading this right

Anyway, I met a guy from the UK, his name was Matt and he had lots of

characters: Libertine, Mattias, and he had another friend from the UK

and would tease him a  lot about not being able to tank boulders and

being a walking punching bag. Oh, and they supported two different

football teams. I remember Matt supported the westham team and the

other guy supported Sheffield United. Oh yeah, the other guy had a char

called Sheffutd. and he was silenced/noyelled because he started

yelling all over unholy that his team lost in the Premier League.
But anyway, I’m forever blowing bubbles (Westham anthem that Matt sang

to me through gt while running a ball lightning tome at Apollo) and God

save the queen. Yeah.
Matt and I wanted to mess around with ltype0 and ltype1 chars. You

can’t make these anymore because they were disabled by dentin,

basically all ltype 0’s were forced to convert to ltype2, the new

scheme and later also the ltype1’s. but anyway, ltype0 and ltype1

worked in a way that you had to get equipment to raise your stats if

you wanted good hp, mana and movement stats when levelling. It was

pretty fun, but unless you were a really experienced player and knew

were to find equipment with stats and negative hp, mana and move

values, it was pretty hard to get good stats. Me and Matt would have

competitionsto see who could raise a char to like level 15 with the

best stats and so on. and then more people started making ltype0 chars

to join us. It was fun.

From then on, there’s not much history. Just work on my part. I had

characters Soulsurf, Armagedoom, and then Zhiun. Zhiun was the

character with which I started creating mush-Z, hence the name mush-z

(hiun) and the zt channel Zhiuntell! Now I play as Kurek, but I can’t

easily rename mush-Z to mush-K without there being confusions, so it’s

stayed mush-Z since July of 2006, according to Zhiun’s date of

character creation. Yes, I’ve been working on mush-Z for over 7 years!

And it’s become so big… With more than 40 players using it at any one

time, it’s become, I think, the biggest mud client for blind people for

any mud, correct me if I’m wrong.
Mush-Z has gone through many, many stages that I can’t really think

about right now because it’s been very hard work, but it’s also been

gratifying. The first versions were just basic sounds for fighting and

battle music and so on. Then came the calculating of regen times, the

addition of channel history, the revolutionary pan/pitch progress bars

so you didn’t actually need a prompt and you could easily know things

like xp to level, your current mana, movement and health and so on.

I hope you’ve enjoyed my article. I appologize if I say too many

technical things, or things that apply specifically to the mud. I know

that some of you will have never played and will not understand some of

the things I said, but I really hope you try it out and join us all.

Once again, you can find the game at
And if you want to try out mush-Z, visit

Much time has passed since the last post

It’s been a while since I last posted here. The truth is that many interesting things have happened. I know that the last time I posted, I posted that I would go to sight city and I haven’t posted anything else about this. well, we did go to Sight City on may 15th. We went a group of blind people (Pia, Pia’s brother, Birgit and I) and we went. Ana came with us. she’s also a student in Saarbrücken and she works at a blind school as a mobility instructor and studying psichology.
De thing is that Pia, maybe you remember, is doing an exchange semester in Spain as a volunteer for European Services but she decided to come to Spain for a week.
The Sight City was very interesting. We saw things that were really great, and others not so much. For example, I remember being fascinated by the electronic braille writing machine. It’s like a Perkins writer that we’ve always had in Spain but it’s electronic and you can plug it into a keyboard. I was all fascinated and the Germans kept telling me they’ve had it for more than 20 years. And then they say that the ONCE in Spain is modern…
Talking about the ONCE, we saw two people from this spanish organization selling stuff. I bought a Parchis, which is like an english ludo, at a discounted price. The Spaniards were al hapy because they were in Germany… But I don’t think they could speak much German. The girl had to interpret everything and the guy didn’t really speak English either. Oh well. I eneded up translating for my group. I can’t imagine how they managed, when everyone asked them questions. there were a lot of people in there. I was happy to see them there, some spanish people at the Sight City in Germany. It’s a pitty they didn’t come from Barcelona or I would have possibly known them.
Another very interesting thing we saw was like a touchscreen but in Braille. It could show pictures in Braille and you could press on the screen to interact with the contents of the screen on the computer or whatever.
We also saw some crazy guy selling flashlights with ambulance sound. He went around saying that if a blind person is in trouble, we can use this superlantern and make ambulance noises… Yeah, may the force be with you and careful you don’t hit someone with the lightsaber. I told him, ironically, that I’m glad someone has finally decided to make a product to really show the world that we are blind. as if we didn’t have enough with the armbands.
I then stayed with Pia in Tübingen for a couple days and then we went to Trier, because Pia had to fly in Frankfurt Han.

But what else has happened in the last weeks? Many things have happened. Pia has shown me how to wash the dishes the German way and you can find a video in Spanish here

Basically what they do is, instead of wasting water like the Spaniards, they put all the dishes in the sink and put the soap in the sink.

I also started taking interpreting classes, in fact fact you can find a Spanish video here:

After interpreting for a while I get a headache,a nd given that these conferences last for about an hour… Well.

Last weekend we went to Trier and Homburg with Ana and Giorgi. Ana, the one who went with us to Sight City and Giorgi, a friend of hers also from Georgia.
I posted many pics on Facebook which you can find on my profile because they are public. 🙂

Many other things have happened, like the construction by my residence or the huge bee that came in the other day. I really thought it was a goddamn motorbike. No kidding. It was so huge and I didn’t even realize at the first moment that it was a fucking bee, and I thought it was a sound from the construction or something. My god if that thing would have got me, i have a huge panic of these despicable creatures so I went in and ran to the bathrom and I’m not ashamed to say it. You would have done the same if a be like that came in your room.

I’m going to talk about the constructions they are doing by my residence. They occupy the whole street and they mde a hole that’s like half a meter deep for which, if I’m not careful, I can fall every time I go to university or to the bus stop. But it’s only about being careful. The problem is that everything is enclosed and it’s hard to get to the bus stop, but I think I managed it in the last days.

I’ll try to post more in the coming days, promise. I don’t know why I didn’t write more often. I guess because of university (I had a presentation on monday) and other random things that made me postpone the blog.

Good week everyone!!!