Progress is going to be a little slower for the next month because I’m taking a break, I’m still working on this whenever I have free time but for the next month or two I’m going to be on other subjects.

This week I implemented the frustum culling to avoid rendering of parts of the world that are not visible, it test against an octree so it is really easy to determinate that large areas are not going to be render.

I also been working a little bit more on optimizing the rendering algorithm, it is better now but there is still work to do on that field.

I did a little research on how to generate a terrain using the perlin noise algorithm, this article on was really usefull on this subject, I already did a basic implementation but I have to work more on it to achieve a good result:

I’m going to start working a little on the collision part, mostly allowing to create and remove voxels with the mouse and after that I will work on the lighting system.


So this last week was a little slow for me, I couldn’t work on all the features that I wanted but I did manage to improve the greedy meshing algorithm that I was using.

It works pretty fast now even when removing multiple blocks on several chunks, one of the things I did was to change the way I was doing the merge, in the previous version I had to render both faces of each triangle because of situations like this:

When two voxels shared the same face but the face needed to look in both directions at the same time, the solution was simply to split the face in to two faces:

With this done now I can activate the culling and render each triangle only once.

I also Implemented the octrees to distribute the chunks and be able to do culling (still pending):

I hope to finish the frustum culling this week and maybe do some implementation for occlusion culling.


I’ve been busy last week trying to implement a greedy meshing algorithm based on the article by Mikola Lysenko on the 0FPS blog, It was a bit more tricky than I expected (I still have to optimize it more) but the basic theory for this is pretty straight forward:

This allows me to merge multiple blocks and hide the triangles that are not visible

So far I think it is working fine, it takes quite some time right now (about 50ms) to regenerate the chunk of 16x16x16, which would be about 4 frames in a 60fps application, I will try to reduce this number as much as I can.

Next thing on the list is trying to implement octrees to later perform culling of the chunks.


I’ve been busy the last couple of months: learning a bit of pixelart and story writting and most recently I started to research about voxels and decided to give it a try by myself:

I’m coding it in JavaScript using WebGL, it is more limited that if I just do it on a native environment but I want to see how far can I take this on the web, I’ve seen projects like voxel js that have done a pretty good job usign threeJS.

For now there is no much to see, I’ve been working on this for a couple of weeks now laying down all the basic structures, chunk management an geometry reconstruction:

I’m not targeting to do a game with this but I do want to publish it later as a library along with several examples that I will be developing during the development time; I’ve already have an example of several voxels (around 2M) and it worked fine but it still needs optimization in order to run properly:

That would be all for now at least on this topic of voxels.

This year is going pretty fast, its been a long time since my last post for the 7DRL game. I’ve been busy working on different personal projects during the last 4 months but there is nothing really to show, here is what I’ve been to:

Perhaps the biggest project I’ve spend time is on learning graphics programming and developing a new WebGL library, it is going pretty well but it is a really big project so there is still a lot to do, I will try to upload demos in the next months while I work with it:

I’m also learning to work on the unreal engine, I like it a lot but I don’t think that I will develop a project any time soon:

And finally, I decided to retake the development on Lune, I was developing this project along with Slash but we kind of dropped it after the contest for the 7DRL challenge, anyway, since he is busy working on Ananias, I will work on it for now:

That would be all for now, greetings.

And so it’s over, after a long week of hard work to try to achieve some playable and fun game, we finally finished our entry for the 7DRL challenge of 2015:

Stygian Abyss is a procedurally generated first person action dungeon crawler; survive the legendary Stygian Abyss to find the Codex of Ultimate wisdom, a new adventure awaits you every time!


  • A level generator inspired in Ultima Underworld
  • Explore the environment in a first person view.
  • 8 classes with different starting equipment and skills
  • 11 spells
  • 28 different monsters
  • Melee and ranged weapons

I worked with Slash for this challenge, he did an awesome work in the levels generator (Stygian Generator) as well as assembling all the pieces together and finishing the last touches for the game.

I was in charge in the development of the engine (we decided to reuse the engine for Britannian Underworld that I was programming) as well as the main gameplay like the combat, items and magic system.

The cover art was created by Talzhemir “Manda” Penumbra; drawn and painted specially for this game. She was part of the Ultima VI dev team. Thank you!

The music is Ultima IV “Dungeon“, from Ken Arnold. C64 version from the Videogame Music Preservation Foundation

The sound effects were made by Bart, from OpenGameArt.

Graphics come directly from the Ultima IV and Ultima V tilesets, with some tweaks and original tiles being made.

This project is non-commercial, made just for fun from fans to fans.

So what’s next

While the challenge is over and we delivered the game, there is a lot of things that we originally intended to add but in order to meet the deadline of the 7 days we had to cut them out, I’m planning on adding those features (and some more) in the next weeks.

I’m also planning on redesign most of the sprites in the game: add more colour, increase the resolution of the creatures, redesign some enemies to make them look bigger, etc.

I’ll post soon on the development of this.


Another day is over and the endline is comming really fast, in this day I worked a little more in the collision (mostly for enemies with instances) and some extra work with the texture rendering and management, I also added the potion and started to work on the magic system:

Finally, I worked a little more on the enemies AI, but I think I’m going to leave it like this for now:

Meanwhile Slash started to work on the dungeon generator system, I’m hoping to implement it very soon.

That would be all for this day.


Day 2 is over and things are starting to shape up, I worked on the collisions system and started to work on the AI of the enemy, right now is a very basic AI, if the enemy sees the player then go and try to kill it.

The player can now attack and kill the enemies, there is no death or hurt animation so the enemies flashes in red for a fraction of second:

If the enemy is close to the player then performs a melee attack, until the player is dead:

I still have a lot of work to do on the AI, and also i have to start to work on the general objective for each level of the dungeon.


I am working with Slash in a new roguelike for the 7 days roguelike challenge, we are reusing some parts of the engine that I’ve created in Britannian Underworld.

For this first day I chopped some code from the engine that aren’t going to be used in this game and also made a little scene for testing the new things:

Tomorrow I’ll work on the AI and items system, we haven’t decide yet what is the direction and scope of this project so I can’t give any more info yet.


Happy new year 2015!!

The year is off and the project is taking more time that I would like, we are still pending on receiving some drafts and first sprites for the enemies so that we can make a good version before launching a campaign on it.

I didn’t work as much as I wanted on December, the reason was the start of a new project (news on it later) and the fact that I also started to learn some 3D modeling. Anyway, this is what I got so far in the new version (It isn’t online yet):

So, the first thing is a debug console to aid my development, since I don’t have a map editor (and it can be really painful to set some details on Tiled) I decided to create a tool that allows me to modify the structure of a map and add new things in real time:

The next thing was the inclusion of a lifter type object, it will probably going to work most of the times by activating switches, but for now it’s just when you are next to it:

And the final thing is the support for 3D objects, for those details that just can’t be in a 2D sprite or painted on the wall:

That would be all for now.