So, I’ve been busy the last month learning about other methods for rendering the voxels, specially on the GPU, I came across a method called raymarching which use signed distance functions (SDF) to create scenes, it is really powerfull and easy to write, you can create shadows, reflections and other effects with a few lines of code:

In raymarching you use a traditional ray casting method only that instead of advancing at a constant step you advance by searching the minimum distance to a solid in the whole scene:

Image by

The main problem with this is that you need to check the distance to all the objects in the scene to determinate how much you need to move, this is ok for 2 or 3 objects in the scene but not for a real (game) scene, you need a way to obtain just the object that falls in the ray direction, you can achieve this by many ways, the simplest one being using a raycast algorithm (Like this fast voxel traversal by Amanatides and Woo) in a grid to obtain the objects and then perform raymarching to get the pixel and other properties of the object. This improves the rendering time and let you have more complex scenes.

This works pretty well but since I need only small voxels (cubes) and no the others SDF so I wrote a small program in C++ to do raycasting on a voxels grid, this image contains a 64x64x64 grid but it supports bigger scenes at +60fps:

So I’m not going to continue what I had in JS using the greedy merging geometry (ala minecraft) but I will continue in C++, I have some issues right now, the main being sending all the voxels data to the GPU is rather slow, I tried writting a software renderer solution but with no luck so far due to speed issues, I’m also reading about OpenCL and CUDA but I’m not sure yet if I should use those. One thing that I’m sure is that I need to migrate the data from a raw array of voxels to a sparse voxels octree.

Anyways, this is still the beginning of this project (and this is by far the hardest thing I’ve ever tried), so I’m feeling a little patient and happy for now 🙂


I continued the development of this project (now called Wraith) This is the end of the 3rd week and most of the work has been directed towards the optimization of the engine, it was running pretty well but I don’t really enjoy having so many instances doing nothing.
The first thing I did is to modify the way the geometry and solid instances were handled in GM, I had before one instance per block and the geometry was the same size of the block:
Each individual color is a collision mask and 3D geometry:
I merged the horizontal and vertical collisions and the geometry is merged by texture.
Finally, I started working on a single level to test enemies encounters and the gameplay elements. If everything goes well then I will have a demo version towards the end of February.

So this new year I decided to start a new project and take a step back from the RPGs I’ve been trying to develop for the last years… My favorite games are the first person shooter and they are actually what got me into game development in the beginning, since I had an old license for Game Maker Studio I decided to give it a try and start a new project.
I know there are far better tools than Game Maker to make a 3D game, but that’s also the reason I picked GMS, it’s because I know it has a great potential for this kind of task, I already tried to develop a 3D game with GM 6 years ago and it failed, but it was done with GM8 and it was poorly optimised so I want to make it better now.
I’ve been developing it for 2 weeks now, most of the time has been working in the engine itself but I’m aiming to have something playable towards the middle or end of February
The gameplay will be based on old fps (Doom, Quake, etc) in which the action is faster and there is few story elements during gameplay, the game itself will have a story although I’m still thinking on how to present it without taking much of the game. It will have a single player campaign and a multiplayer mode, the weapons and game are going to be futuristics but in a wasteland environment.
The textures I have now (except for the gun) are from the game hexen but I’m going to replace all of them with custom made textures, I’ve done so far the collision detection in 3D (very simplistic for now since the maps are made on a grid), picking up weapons and firing making bullet holes on the walls, a terminal (like quake) to make modifications to the game and system messages for when picking weapons or making actions.
That would be all for now, I will be posting updates on this game hopefully every week with the new features I added to it.

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.

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.


It’s time for a new update, I’ve been really busy this November doing many different projects that made me put this as a side one, but it’s finally over I’m back to the project.

So what’s new in this project?, we are making some progress on the design part, Orlando which is doing the part of level designer created a sketch for the first map of the level but since it was on sketchup I wasn’t able to port it without creating so much problems, so I decided to port it to Tiled and then load it into the game:

And this is the result in the game engine (I still have pending to populate it with items and stuffs):

I also did a lot of work in the rendering part so the game should run faster now:

The other change I did was the inclussion of slopes and different ceiling heights for one map:

That would be all for now, I have a lot of plans for features to include to the engine and I will try to be really productive this December with this changes, you can check the new versión in the link below:


It’s been almost two months since my last update, I am still working on this project, but the progress is been a bit slow due to personal reasons, however I will return full time on December once I finish the rest of issues I have right now…

I added the sprite font system so I could display messages in the console and started to implement the actions the billboards used to have in the raycasting engine, they can have animations and can have different kind of actions after the player press enter or click on them:

There are also switches now that allow to open doors that are blocked and objects like keys that you can pick up:

And finally there is a very simple instance of enemy which for now only displays a animation of moving.

On the graphics direction, we are doing some quotations in order to hire an artist to build the whole art, we are also discussing about what tools to use (like tiled or sketchup) to create the maps for the game and trying to make it easy for the users that want to create content.

you can try the current version as always in the next url:


I’ve been really busy since my last update doing things for work and other projects but this game is still my major focus, the advancement is still slow because of the lack of an artist, but we have some advancements with the musicians and the design ideas for mechanics.

I implemented the interface (which is still just a placeholder) to the new WebGL game, I added the angled walls and finished their collisions, added the new doors (which works as 3D objects (we’re thinking on implementing other kind of objects later)) and also I added the billboards to the game I still need to add the enemies, items and the spritefont system to reach the level of my previous engine, I will (hopefully) work on it this week:

You can try the current version (has the samples themes from Catarelli) in the next url:

It’s been a while since I updated about this project and the reason for that is that we’ve been discussing about the design direction that the project should take. That’s because we haven’t been able to find a pixel artist to join the project.

I’ve been working on the raycasting engine adding more stuffs and correcting more bugs, and while the game runs in a very smooth speed I feel like we are working on its limit, not only that, but in some computers the game runs below the 30 fps.

Also, discussing with our level designer I came to the conclusion that there were more interesting things that I wanted to add (like different heights) and if I code that into the raycast engine than the project would start to crash, so taking this as a excuse (and the fact that most of the work is done in the rendering code rather than the game logic code) I decided to rebuild the project using WebGL.

these screenshots are the work of just 2 days (WebGL really makes things a lot easier) and most of the work again is done in the rendering part, so it will change during the execution of the project:

And about the SAN3DE project I will use it hopefully to develop a more simple game (like an action roguelike or something like that) probably in 2015.


New changes to the project (still no pixel artists), first I added some extras to the rendering process, when you walk the height of the camera changes to add the effect of being walking and not skating in the dungeon and you can look up/look down now:

I also added the option to change the height of the camera which allowed me to introduce things like water tiles and texture animations:

And finally (but not complete yet) I added the option to interact with objects using the mouse instead of having to press the enter key each time:

I worked also in the angled walls, which now work better but still have some distortions in certain angles, this week (hopefully) I will work on the interface (add a weapon and create a spritefont system for the game).