7DRL Success: A Little Anxious When It’s Dark

I announce success! I am very proud to present my 7drl, A Little Anxious When It’s Dark. It’s a short treasure hunt through five dungeon levels. The gimmick here is that it’s 3d in a web browser, using WebGL. It might be a bit hard too, I think you need some serious sneakiness and luck to get to the last level. I’ve discussed this frequently here before, so without further ado, go to http://tapio.github.com/alawid for more information and the game itself – playable without installing anything provided you have modern enough browser and GPU.

Release Candidate: A Little Anxious When It’s Dark

So my entry has reached the state where I think it’s feature complete (in scope of 7drl). I still have some 16 hours left, and I expect I might have some balancing and definitely testing to do, but there is no doubt that I will announce a success tomorrow! \o/

Since yesterday, there have been numerous improvements and some new features, most notably blood splatters (pictured below) to indicate a hit. Also, the game is now called A Little Anxious When It’s Dark.

If you wish to take it for a spin before the official release and perhaps give some feedback on the difficulty, feel free to navigate to it’s homepage for instant action! (Note to those who have followed the development earlier, the github project name and thus address has changed).

Blood splatter

The final game starts to take shape!

Today I’ve managed to accomplish quite a bit and although there is still a lot of stuff to do, my 7drl starts to look like a game as there are now multiple levels and the possibility to win in addition to dying! The last level is/will be slightly special, but I don’t want to give out spoilers. 🙂

Furthermore, there is a new item type, new enemies (very few in total though), and “doorway” environment pieces – i.e. passages that only have opening at the base, not all the way up, so you need to look for them a bit more carefully. You can see one on the right side of the pic below.

AI is still very stupid, but rats are now special in that they are afraid of player’s torch – they’ll lurk in the light perimiter waiting for your torch to die out, but won’t attack unless threatened.

The magenta cave in the image is similar to the doorways mentioned above, but special – it’s a portal that’s used for travelling to the next level. I first thought of a spiral staircase downwards or something, but couldn’t easily find nice textures and then it struck me – a cave with a weird color is easy to create and looks awesomely magical. 🙂


Day 5: Mostly fixing stuff

I’ve tweaked the shaders to work better on crappier GPUs, but unfortunately that still doesn’t fix it for everybody. 🙁

The rest of day has passed fixing and tweaking stuff, nothing terribly interesting, but at least now the monsters attack the player by choice. Perhaps the most visible new feature is the messaging system shown left in the screenshot below.

Current interface
Current interface

Day 4: Gameplay starts to emerge

Today I’ve managed to add different enemies and simple combat (it is possible to kill monsters and also die) and torch/item management (torch can be toggled on/off, it will only last 60 seconds after which it will automatically go off; there are limited supply of torches, but some can be picked up around the dungeon). These new features are a bit preliminary and quite hacky/messy, but it’s progress. I’ve also added some UI elements around the game canvas using HTML and CSS.

In addition to working on the gameplay, I added a pretty useless and crazy, but fun feature: You can press ‘l’ to “look around” – in first person mode, lol. See pic below. Note that the actual gameplay is still top-down.

First-person look-around mode
First-person look-around mode

Now I really need to come up with a name – suggestions welcomed.

If you want to take it for a test drive, guide your browser here.

Call for compatibility testing

It seems a couple of people I have demonstrated my WIP WebGL-based 7drl have had trouble running later versions of it, so I decided to ask you guys to see if it works for you. The game is played inside a web browser and requires WebGL support (but not any plugins), so you need a rather new browser (e.g. Google Chrome 10 or recent beta of Firefox 4 – IE won’t work). Also, your graphics card needs to be at least OpenGL 2 capable (with decent drivers) for WebGL to work.

If all goes well, you should see a dungeon where you can walk around with arrow/WASD keys. On the other hand, if there is any error pop-ups or just a blank page or something, something has gone wrong. There could also be errors in the JavaScript console (accessible in Chrome by Ctrl+Shift+J). In addition to error messages, I’d like to know what is your web browser brand and version as well as graphics card and driver.

Access game here

EDIT: Check out WebGL Wiki for browser support help & notes.


So, my 3rd day isn’t over yet, but I thought I’d post an update already. I have managed to add some variance to the previously straight and boring walls. It’s not much, but certainly an improvement already. I cannot add infinite details as my polygon count and level generation time starts to rise to uncomfortable levels – the whole level is currently naïvely implemented as a single largish static mesh. Already previously I extended the walls beyond the camera, so it looks like the roof is very high. I kind of like this and it also has the nice side effect of letting me completely ignore LOS/FOV calculations and complex OpenGL shadowing.

In other news, the first steps towards actual gameplay are taken, as I implemented dummy randomly moving enemies and grid-based movement (previously pixel-based). Graphics still need tweaking, but I think I’m going to sideline that stuff for a while and do more in the content side.

Wall randomness
Wall randomness



Day 2: Mostly lighting stuff

My second day was mostly spent on trying to make normal mapping work in my WebGL 7drl. I finally managed to do that, but it took too much time for me to be completely happy and there still remains some tweaking. However, I did have time for something else apart from making the walls bumpy. I now have an actual dungeon generator instead of a hard-coded level, but it still needs a lot of work. Other notable things concern lights: they now pulsate slightly (not yet a satisfactory torch effect though) and the engine is now able to handle arbitrary number of them (the closest ones are determined and passed to the shaders).

Tomorrow I hope I can improve the map generator and also the actual visible wall geometry. I might also add some simple monsters.

Light in the dark

I started my WebGL based 7drl roughly 10 hours ago and I think I’ve gotten into a quite good start: I’ve got movement, basic collision detection, level loading from an ascii map and basic lighting with multi-light support.

Multi-light system
First day’s results: simple dungeon with lighting

I’ll probably continue by tweaking the shaders for prettier effects and trying to add randomness to those boring cube blocks.