Nicolas Allemand

Music, game dev and emulation.

Hey !

Another try on my Game of Life simulation: this time, the goal was to make it a little better-looking. It was a great opportunity to get my hands on the wonderful shine library, and to work with tweening libraries (which I didn't use in the final version).

Get it here. :-)

LIFE2 screenshot Yay, shaders!

Today I stumbled upon a really cool wikipedia article which deals with a remarkable subject: quadtrees. As it says,

a quadtree is a tree data structure in which each internal node has four children.


Let me show you an example for you to visualize this:
Screenshot of a quadtree Each node has four children

The implementation is fairly simple, and I wanted to go a bit further. That's when I found koalastothemax. It is a quadtree implementation applied to an image : basically, for each child, you have to compute its colour, which is the average of all the image's pixels colours inside it.

Here's the result:
Screenshot a quadtree-based image
Another screenshot of a quadtree-base image

I wasn't very satisfied with my tinyLÖVEtemplate.
See, it was coupled, and too much of a pain to set up: I had to copy two folders and some files to get things to work. It required the middleclass library, and at last but not least; my project did not respect the Rule #2.

Because of all these things, I decided to rewrite my template, with the hope of a cleaner code, more in the "Lua-way". And I am honestly happy with the result : everything is smaller and cleaner. :)

Grab it on github.

I've been playing around with the Conway's Game of Life recently. I've found its resulting patterns fascinating.
I am currently working on a LÖVE implementation. Everything works (including loading/saving grids), it just needs a little GUI to improve the user experience. Here's a screenshot :

Game of Life screenshot Little boxes all the same.

Yesterday, I released denver 1.0.0, a little library which creates sound samples that you can play with LÖVE.
More precisely, you can generate simple waveforms (triangle, sinus, square, sawtooth, and noise/pink noise/brown noise) at any frequency. Here is a basic example:

local denver = require 'denver'

function love.load()
    -- play a sinus of 1sec at 440Hz
    local sine = denver.get({waveform='sinus', frequency=440, length=1})

Check it out here!