Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Tapio

Pages: [1]
7DRLs / Unnamed sci-fi themed, browser based [7DRL 2015]
« on: March 07, 2015, 04:53:26 PM »
Started today with rot.js and got to a good start:

I'm aiming to make this playable on smartphones too, hence the "touch where you want the @ to move"-controls. On desktop, keyboard is also available.

Currently I have movement, picking up items and simple world generation with separate maps for player's base and overworld planet surface:

7DRLs / Golem Quest - Successful 3D browser 7DRL
« on: March 16, 2014, 05:39:22 PM »
A wizard has misplaced four powerful animal figurines. As the wilderness is dangerous, he summons some golems and tasks them with the search and retrieval.

This is a browser game powered by WebGL. It's rather simple: kill some monsters, drink potions and retrieve four objects to win. There's also a co-op multiplayer option for two players (turn-based, of course!). I'm probably going to write a postmortem later on, so for now, without further ado:

Play online here: (Chrome, Firefox)
Development blog post archive:
Code & offline download:

Nicely in time for the 7DRL Challenge 2013 I present to you Unicodetiles.js 2.0.
Unicodetiles.js is a JavaScript tile engine based on Unicode (or ASCII if you wish) characters. It was originally made for last year's challenge and I used it for Infiniverse (second pic).

This new major 2.0 release brings a new WebGL-based renderer. This means there are now three options: WebGL has the best performance which also scales well for large viewport sizes with huge amount of tiles. If user's GPU or browser does not support WebGL, a regular 2D-canvas-based slower, but decent (and currently in some cases a bit more accurate) renderer is used. There's also a legacy DOM renderer, but it is by far the slowest and every browser I care about supports canvas. It does have mouse text selecting and DOM events for individual tiles going for it though.

WebGL performance for Firefox and Chrome seems to be in the same ballpark, each one scoring wins in some benchmarks (I'm actually surprised by this, usually Chrome always wins speed tests). Opera's WebGL implementation is not so great and in fact it loses to 2d canvas in some tests. In Opera's defence, its 2d canvas seems to be the fastest of these three browsers, at least with Unicodetiles' renderer. IE9 is also supported, although it obviosly won't have the WebGL renderer and the canvas is the slowest of the four browsers. You are free to benchmark yourself at but note that many of the tests are stress tests by design - for a simple roguelike even the DOM renderer should be fine.

Check out online demos and grab the code from
There are no API changes (a redesign is being thought of for 3.0) and no new examples, but there are several new tests/benchmarks.

Comments and suggestions appreciated!

PS. If you are interested in the technical side of the new WebGLRenderer, here's how it works: A cache of encountered characters is maintained and if the renderer sees new ones, it recreates a white font texture, rendering all the characters in the cache through a 2d canvas. The texture enlarges automatically if it can't fit all the characters. The correct texture coordinates for each tile (so it displays the right character) are calculated on the GPU based on a tile id passed to the vertex shader. The foreground and background colors are also passed in as attributes and the GPU blends them based on the font texture. Tile id and color data for every tile is uploaded to the GPU each frame, which sounds inefficient, but doesn't seem to matter in practise.

Programming / Unicodetiles.js: JavaScript character tile engine
« on: February 22, 2012, 11:37:17 AM »

I'm going to make my 7DRL a browser game and I thought it could be nice to share my JavaScript library I'm using for displaying the character tiles. I'm deliberately avoiding the word ASCII, because the engine has a monospace Unicode font bundled, so every user will also see more exotic characters consistently.

The engine is based on pure text and DOM, so there is no <canvas> (nowadays there is a canvas renderer, which is also the default one), WebGL, Flash, Unity or anything like that involved. I aim for compatibility so it should work on latest versions of any major browser. A bit older ones are also fine, but IE8 and below appear to have too slow JavaScript/DOM for this to be usable.

You can read more about the features from the webpage:
I've also tried to document it and there are several examples available. Some of the examples build upon others so they could almost be regarded as tutorials. Note that even though the demos produce roguelike lookalikes, the library itself is for displaying stuff and does not contain e.g. dungeon generators or FOV algorithms.

I was actually toying around with the idea of changing the API look like libtcod, but I think I'll leave it as it is at least for the 7DRL. Anyway, if anyone should like to use this as a basis of libtcod JS port, feel free: it's MIT licensed.

Temple of the Roguelike / Forum feature request
« on: March 14, 2010, 07:32:06 PM »
A thing that bugs me with these forums is that I cannot find the "Show unread messages since last visit" -button anywhere. That feature is very common in message boards and is also available in SMF (which is what these forums are, I believe). I'm just wondering if I'm missing something or is it really absent? Would it be possible to get the feature enabled?

Programming / rlutil - simple utility collection for C++ and C
« on: March 05, 2010, 01:37:22 PM »
Tiny C++ and C utility collection for cross-platform console roguelike development.

Just in time for the 2010 7DRL Challenge!

rlutil consists of mainly I/O functions that can be used to create pure console mode roguelikes (or other apps) that work on both Windows and Linux. I am aware of that there are libraries like curses that does this, but since I have seen many people using e.g. simple kbhit() / getch() combo for input, I think this has use for at least making those games easily cross-platform while using familiar functions. I also had many of these functions already coded and I like building stuff from the ground-up.

Main functionalities include colored output, keyboard input that doesn't require Return-keypresses and cursor manipulation. It also behaves nicely whether you use C++ or C - meaning that e.g. it automagically uses std::strings, streams and namespaces with C++.

WinAPI or ANSI escape codes are used depending on platform. I would like to have Mac OSX compatibility, but I have no way of testing/developing on that platform so contributions are welcomed.

Browse sources:
Download zip:
Clone url:
Code: [Select]
$ git clone git://

Traditional Roguelikes (Turn Based) / 1kbrl - Sources in C++ and FreeBASIC
« on: February 15, 2010, 03:25:42 PM »
I wanted to see how easily I could get coloured terminal output and key input with C++ and when it started to look promising, I decided to turn it into a <1kb roguelike. After that I wanted to see if could I do the same with FreeBASIC and so I ported the code and succeeded. :)

The game is somewhat inspired by RogueLight and has the following features:
    * Colored output
    * Random dungeons
    * Field of view
    * Torch affects vision
    * Death
The idea is to descend in to the darkness (keys: WASD), collect coins and keep your torch burning.

You can browse and see files, read README, download binaries etc etc here:
(Note: in Windows, you'll probably want the FB version, since the C++ uses ANSI escape codes for colors)

PS. for awesome Git people, a clone URL:
Code: [Select]
git clone git://

Early Dev / Infiniverse
« on: February 11, 2010, 09:17:25 PM »
My long game project called Infiniverse just recently saw a first alpha release - Lone Explorer Edition, so I decided to come here to present it and to get some feedback from you good people.

Infiniverse is a procedural exploration game with ASCII graphics in a nearly infinite universe. The main game is a (modestly) massively multi-player online game, but the now released Lone Explorer Edition is limited to (among other things) single player.

So, you can explore the galaxy, wander through the nebulae, search for the rare star types and take a walk on the surface of millions of planets. At this point there really is not much else to do (although I forgot to properly disable some semi-hidden features), but I'd like hear your thoughts and improvement ideas.

RogueBasin article: here
Website: here
Pics & vids: here
LEE alpha1 download: link (Windows / Linux)

Cheers! :)

Pages: [1]