About NuSan


Ludum Dare 37
Ludum Dare 36
Ludum Dare 34
Ludum Dare 33
Ludum Dare 32
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29
Ludum Dare 28
Ludum Dare 27
Ludum Dare 26
Ludum Dare 25

NuSan's Trophies

NuSan's Archive

First day

Posted by
Saturday, April 22nd, 2017 7:34 pm

I’m working on yet another first person puzzler with mind-bending mechanism!

I started pretty fast at first with an idea : things you don’t see can change anytime. So the place would be small, but would keep changing. I could name the game “frustum world” :p

But after a day, I’m now a bit stuck, without really knowing where I want to push the project. I need sleep, maybe my dreams will bring me an answer.

I’m in for the 14th time

Posted by
Sunday, April 16th, 2017 9:35 am

Next week end, I will take part in Ludum Dare for the 14th time in a row. Each time brings something else, I wonder what it will be this time !

Here are all my past entries so far :


Nusan - Ludum Dare entries


I made a sequel to “Non euclidean room”

Posted by
Friday, March 3rd, 2017 12:27 pm

During the last LD, I made a small exploration game about a strangely connected room. It was inspired by the work of M.C.Escher and some games like Portal and Antichamber.

Since then, I continued working to make a new game following the same idea but with real puzzle and a lot more content (about 45 minutes to complete).

The game is called “Fragments of Euclid” and you can play it for free (or pay-what-you-want) on Itch.io :


Sequel to LD37 game “Non Euclidean Room”

Posted by
Saturday, January 7th, 2017 12:48 pm

In the month since LD37, I continued working on my game “Non Euclidean Room”. It’s nearly a completly new game with several sections, puzzles, and a lot of new mechanics.
Since it take a bit longer than I wanted, I made a video teaser to keep the motivation going. Let me know what you think.

The game is now called “Fragments of Euclid” and it will be released soon in a “Pay what you want” model on nusan.itch.io
You can still play the original LD37 game here : http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=18943

Still hard working on Post-Compo version

Posted by
Tuesday, January 3rd, 2017 6:32 pm

I realy enjoyed working on the game from last LD, so I want to continue ! It’s more like a complete new game with a lot of new features and proper puzzles. Here is a glimpse of one scene, directly referencing M.C.Escher’s work. I want to release a video teaser soon.

About my results, it’s my best LD in Overall, Theme, Innovation and Audio. That’s a big step for me and a proof that polishing every aspect can give a better experience than only focusing on one feature. Other categories (Graphics and Mood) are great too but not my best. You can still play the original compo game here : http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=18943

#13 Theme 4.51
#25 Graphics 4.38
#34 Mood 4.02
#34 Overall 4.03
#60 Innovation 3.92
#161 Audio 3.27

Non Euclidean Room – Postmortem

Posted by
Friday, December 23rd, 2016 1:33 pm

For Ludum dare 37, I worked on a game about wandering around a strangely connected room. The idea obviously come from the works of Escher on “impossible” geometries. The connection with the theme is to have only one big room, but using portals to make it interesting to visit.
You can play and rate the game here : http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=18943

At first I wanted to have puzzles, like pointing lasers to open doors. You would use portals to change gravity and walk on the ceiling. I also wanted to have markers for the player to place around and help you navigate the room. In the end, I only had time for portals and a simple room, with a couple of interesting visual tricks. The scope is smaller, but by focusing on smooth portal transition, level design and polishing, the game ended up pretty well.
Here is timelapse recorded during the creation of “Non Euclidean Room” :

Portals :
Making portal feel simple but a lot of things can go wrong. At first I simply wanted to plug a copy of the room at each door and teleport everything around. That can work but it limit what you can do a lot. You cant have two doors close to each other. Basically you can only have doors on the external faces of the room.
Then the next technique is to use a render texture to produce a view from the portal exit with a second camera. An object will use that texture to display it on the main camera.
Here is the code (in Unity C#) I use to place the portal camera according to the main camera and transforms from Enter and Exit portals :

Quaternion Rot180 = Quaternion.Euler(0, 180.0f, 0);
Vector3 LocalPos = EnterPortal.transform.InverseTransformPoint( MainCamera.transform.position);
Vector3 RotatedPos = Rot180 * LocalPos;
PortalCamera.transform.position = ExitPortal.transform.TransformPoint( RotatedPos);
PortalCamera.transform.rotation = ExitPortal.transform.rotation * Rot180 * Quaternion.Inverse(EnterPortal .transform.rotation) * MainCamera.transform.rotation;

You use the main camera location in the local space of the entering portal, you pretend it’s a local position in the exiting portal and get it’s world location to place the portal camera. The rotation by 180 degrees is there because the exiting portal face opposite to the entering portal. You do the same on the rotation of the camera.

Portal camera location

This technique can certainly work, but will need a render texture per door. So I tried something else.
I used only two cameras, and the stencil buffer. The idea is to first mark (in stencil buffer) the portal pixels on the screen by drawing them from the main camera point of view. Then draw the scene through the portal, by placing the camera at the correct position, and using the stencil as a mask. Then rendering the usual camera above that, without overriding the portal door.
For the player motion himself, I just teleport the player when he pass the middle point of a portal to the relative location in the second portal.

Portal Anatomie

A second trick that I needed is to use a clip plane along the portal door. You want only objects from beyond the portal to be visible. For that, you can use an oblique projection matrix. This technique create a near clip plane in an arbitrary orientation by distorting the camera projection matrix. There is some downside though, as some visual glitch can appear when the camera is near the clip plane. If you stop in the middle of a portal, you can sometimes see the screen edge disappear. Another idea, that I didn’t have time to test, is to send the clip plane to the shader, and use the instruction “clip” to discard pixels that are on the wrong side. That way, no need for a custom projection matrix.

Oblique projection matrix

After having that first version working, there was only one visual glitch when going through a portal. You could not see a portal trough another portal. That was very obvious when walking through a portal : every other portal will pop into existence. To fix that, I needed to display portal through portal, at least for the nearest portal from the camera.
The idea is to use the stencil bit masks to read and write two separate portal indexes. That way I could tag a door, and a door inside a door. This did limit the portal count to only 15, as there is only 4 bits left in the stencil buffer for each index. But this was enough for the small game I had in mind for Ludum Dare. I could also take the nearest 15 portals from the camera, but it was already time to start the level design so I limited myself to 15 total. You may notice that there is 16 doors in the game. In fact the final door that let you leave is not a portal, it’s a regular door. The portal transition is smooth enough that you don’t notice. Since the LD, I improved the tech quite a bit in a post-compo version.

Visual style :
I decided quite early on the visual style I wanted for the game. The reference to Escher’s work is obvious : black and white with thick lines and a shading made by changing line density. I choose a style a bit more sketchy and, of course, animated. The strokes are placed on the screen and move with the camera. The animation is there to hide that fact. I blend 3 layers of strokes, and 3 times per second, each one have a chance to pan and rotate. This give an unpredictable animation. Some people found the effect a bit too disturbing after a while. I want to revisit it later.

The second part of the visual effect is the edge lines. The issue with portals, is that I render everything in “forward” so I don’t have a “normal buffer” to run my edge detection on. I don’t have a proper “depth buffer” either because of the way I render portals. So, I needed to use only the color buffer to make my edge detection. To detect normals, I simply render the absolute value of the pixel normal in the color buffer, modulated by the lighting intensity. So to have the luminosity of a pixel, I can use the value of the color (average of red, green and blue). And I can use offsets in hue to detect edges by sampling a pixel to the right and a pixel to the bottom of the current pixel.
I also wanted to detect depth discontinuities, so I had the idea to modulate the pixel color by the depth, making some sort of fog. Surfaces with the same normal but at different distances will then have a slightly different colors, and could be detected by the edge filter. The fog gave a moody atmosphere to the scene but I liked it. To complete the look, I added a Gaussian bloom filter, to give some gradient to the flat blue interactive objects.

Scenes from the game :
– Penrose infinite stairs

– Twin scenes through portals

– Falling through an empty space

Future post-compo version :
As much as I like the game as it is, a simple exploration game where you make your own path, I wanted to do more. In the beginning, I wanted to change orientation when you go through portals, letting walk on walls and ceiling. But I used the Unity Controller. And that controller cannot be rotated around freely. The collision capsule is fixed on the Z axis. So I did with that constraint. But now I started to extend the game in a Post-Compo version. The idea is to make a second room and exploiting everything I couldn’t in the base game.
– Infinite recursive portals :

– Proper puzzle with blocks (and laser later) + walking on walls :

I hope to complete that second room in early January 2017, with interesting puzzles and a longer playtime.

Playthrough for Non Euclidean Room

Posted by
Tuesday, December 13th, 2016 11:20 am

I made a video playthrough of my compo LD37 game “Non Euclidean Room”. I show some interesting locations and play it to the end.


You can play and rate here :


Infinite stairs

Posted by
Monday, December 12th, 2016 9:35 am

I uploaded my LD 37 compo game on Itch.io. Plus, there is non-euclidean infinite stairs in it.



My compo entry : Non Euclidean Room

Posted by
Sunday, December 11th, 2016 10:58 pm

Non Euclidean Room is an exploration game in a strange land. How many time a room can be connected to itself ?
Your goal is to make a mental map of that room while finding cool visual spots. Then you can hope to escape.

This entry was realy fun to make. It took a lot of time to get the tech going, but then it was mostly level design and graphics. You can play and comment here : http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=18943



First day is over, so much to do yet

Posted by
Saturday, December 10th, 2016 10:43 pm

I’m doing an “non euclidean” room, with some nice infinite stairs. Tech if ok, now I need to work on visual style and gameplay.

I’m in for the 13th time

Posted by
Saturday, December 3rd, 2016 6:17 pm

Next week end, I will take part in Ludum Dare for the 13th time in a row.

Here are all my 12 past entries so far :



The background of our shmup

Posted by
Saturday, August 27th, 2016 7:15 pm

Here is progress after one day in our entry. It will be a shmup and this is the scrolling background.

Shmup background

Timelapse added for The Serpent’s Shadow

Posted by
Tuesday, December 15th, 2015 3:17 pm

I added a Timelapse showing the making of my LD34 Compo entry using Pico 8 Fantasy Console.

Here is the link to play the game :


The Serpent’s Shadow

Posted by
Sunday, December 13th, 2015 8:02 pm

Check my (finished) ludum dare 34 entry made in Pico 8. It’s a great tool to make a small game easily.


Current progress with pico 8

Posted by
Sunday, December 13th, 2015 3:45 pm

Now you create grass somehow. Then some rabits come out and you eat it. I don’t realy know why yet …

Current progress with pico 8

Posted by
Saturday, December 12th, 2015 8:39 pm

Not sure where my game is going. Currently it is sort of a snake clone with enemies and eatable lights

[cache: storing page]