We’re currently making a lot of progress on Lumini! With this blogpost, we’d like to give you a little insight into how the Lumini and their movements are programmed and how their behaviour has evolved during the development process.
In Lumini, you control an entire swarm, instead of just one character. For the demo that we released last year, (which you can still download for free), we gave each Lumini a fixed position within the swarm. With this method, we were able to easily place the Lumini into a nice looking formation and even change the shape of the swarm at any time, for instance when making a sharp turn, by repositioning the fixed positions.
The old system: each Lumini has a very specific position within the swarm
The problem with this method, was that the swarm looked very rigid and unnatural. We wanted the swarm to feel more fluid and flexible. That is why, after the demo’s release, we decided to start from scratch.
We then tried using the Boids system. In a nutshell, the Boids system simulates the behaviour of a swarm of creatures, like birds or fish, by telling them to move towards the center of the swarm without colliding with each other and to adjust their heading based on that of the rest of the swarm. We had already tried using the Boids system for last year’s demo, but couldn’t get satisfactory results in time for the demo’s release. With our second attempt, we had the same issue as before; though the swarm looked very natural, it was too chaotic to control properly. The Lumini were flying all over the place and it seemed impossible to control them as a whole. We made several improvement through tweaks and alterations to the Boids system, such as adding obstacle avoidance, but it didn’t seem like we were going to get the results we wanted.
Finally, the solution came through a combination of our old, fixed position method and the Boids system. By telling the Lumini to move towards a series of target positions rather than a single position, and using the Boids system to reach those target positions, we were able to create a swarm that moved naturally, but that we could still control easily by moving the target positions.
The new system: several Lumini are assigned to each target position, avoiding each other using Boids
The new system is a lot more fluid. For instance, you could drop a rock on top of the Lumini and the result would be that the Lumini would scatter to avoid the rock and then move back towards their corresponding target positions. (Don’t try that though; the Lumini don’t appreciate having rocks thrown at them.)
Right now, we’re holding internal playtests and tweaking the Lumini’s movement further based on feedback, so we can make it even better. We can’t wait to show you the full game! You can expect to play Lumini around the second quarter of 2015!
Got questions? Suggestions? Friendly comments? You can contact Luc through Twitter ( @LucVeigadaPalma ) or send a mail to luc [at] speelbaars [dot] com