The concept is inspired by A Dark Room, an amazing text-based game by doublespeakgames.

What it does

The user wanders about a world where its scenery is generated by characters, while being mesmerized by open-source ambient music.

How we built it

Starting off with HTML, a tiny bit of CSS, and a lot of JavaScript. We used Three.js for drawing 3D graphics via WebGL and some jQuery (because, why not?) to speed up development.

Challenges we ran into

We were unable to load online fonts from a local webpage without setting up a webserver, which turned out be an easy task with Python. We were also confused by global and local positioning and orientation of 3D objects to be displayed in the scene.

Accomplishments that we're proud of

By re-writing pieces of the code, we were able to boost the performance of the game considerably. The game would run out of memory and crash because there were too many unnecessary font caches being created for every letter drawn onto the screen. We fixed this issue by pre-constructing the font caches at the beginning of the program, then loading these font caches for drawing each of the letters.

We actually managed to collaborate by revising each other's code, although not as intense as pair programming, and we wrote code based on each other's code. Also, we spent a good amount of time brainstorming and planning out the details of the game, so that the implementation of our ideas was rather straightforward. Of course, we had to debug a lot.

What we learned

A good understanding of version control is very important in a development process.

Brainstorming and then eliminating ideas is also a very important process. It's also essential to start with a simplified version of the ultimate goal, then work towards that goal bit by bit - which is what we did.

What's next for created-index

Introducing new objects, new scenes, and making a plot for the entire game. Now it's nothing more than a free-end exploration, but a plot fitting to the calm, ambient theme of the game would be a great idea.

Built With

Share this project: