Here, you can find the projects that I deem worth presenting. This is not an exhaustive list of my technical experiences.

Klod

(2022)


A bonechilling combination of Katamari and Rock of Ages

Devil Dahu’s 2nd bevy jam game entry. It is a Rock of Ages-like with Katamari Damacy elements.

You can play the game in your browser right now! Click the link at the top of this section.

Details about the development can be found at our game studio website.

The game source code is available on Github.

Warlock's Gambit

(March 2022)


A card-based puzzle game made for the 1st bevy game jam

With a team of 4, we created a game in 4 days for the bevy jam using the Bevy game engine. The game is written in rust, is open source (code available on Github) and is playable on the web. (click on the title of this section to get to it)

I wrote most of the code, designed the gameplay and made the voices.

Check out the blog post for details on the making of the game!

Texture Parallax Mapping

(September 2022)


Parallax mapping shaders (relief and POM) for the bevy game engine

Parallax mapping is a graphical effect adding the impression of depth to simple 2d textures by moving the texture’s pixel around according to the viewport’s perspective.

This is NOT a “parallax” à la Super Mario World.

The section link goes to a web live demo site. The source code is available on github and the feature is intended to be upstreamed into bevy.

Bevy plugins

(2021-)


Plugins for the Bevy game engine

I’m an active member and contributor to the bevy game engine, I not only contribute to the engine itself, review PRs and edit RFCs, but I also prototype extensions and potential additions as 3rd party plugins. Check out my dedicated portfolio page (by clicking the title of this section) for details.

Generic Space Shooter Advance

(2016-2018)


A Gameboy Advance embedded game written in C

GSSA was written in C as part of a System Programming course. It was improved afterward. GSSA is not only a game but also the Python utilities needed to automatically generate the assets of the game. I also used it as an excuse to learn embedded (no OS) rust by rewriting parts of it.

Friendsketch

(2017-2019)


An online collaborative drawing game

Friendsketch is a web game based on Websockets. It is implemented in elm with a Rust backend. The game has players draw on their own devices while their sketches are being broadcasted in real time to other participants. The game’s development is now on indefinite hold, currently no working version is online.

The code is available under AGPL on Github.

Goatcalc

(2018)


Typed Interpreter for the λ-calculus

Goatcalc is a library that provides an API to manipulate and verify an intermediate language close to the λ-calculus. Thanks to the strengths of the Rust macro system, the library is heavily tested. Goatcalc contains an interpreter and a type checker with inference based on the Hindley-Milner type system. It also contains an implementation of my thesis and a way to easily visualize the functioning of the innovative checking algorithm I developed for it.

Game modding

(2017-2021)


Popular modifications for BoI

Lilium Dimension, Gold rune and Magick Chalk add features to the Binding Of Isaac game. The three mods accumulate 36.000 unique users. The mods add simple effects to the already extremely complex game with a very convoluted and poorly documented API. Lilium Dimension is written in a very rushed Lua, while Gold Rune and Magick Chalk are in fennel which is a pleasure to use. With my experience and knowledge, I later contributed to unofficial documentation and guides.

Being able to navigate an unreliable and poorly documented API is a necessary skill in enterprise software. The experience I got dealing with the BoI API helped me later at my job at the bank, especially dealing with 3rd party APIs.

Atom-boilua

(2017)


An Atom plugin to bring powerful auto‑completion to game modders

Atom-boilua is an atom plugin that adds function completion, logging integration and automatic jump-to-error to the Atom text editor for user modifications of the Binding of Isaac:Afterbirth+ game. It also provides templates for quick-starting a new project. The function completion facility was derived from an existing Sublime text plugin. Atom-boilua uses the Node.js API for handling cross-platform IPC and file system access, while text processing uses Python and the editor interaction is written Coffeescript.

The project is now discontinued and unsupported, due to changes in the BoI API and my preference going toward more lightweight text editors.

nicopap.ch

(2019-2022)


A minimalist site that goes to the point

This is a simple site that attempts to follow best practices and has a minimal overhead. One of my goals was to make it accessible even on slow connection or small screens. Notably, I use png with color palettes to massively reduce the size of pictures loaded on this page.

The static site generator software used to be a Makefile and various CLI utilities. In addition to pandoc, which generate the html from Markdown formatted files, there used to be bit of python for misc tasks, and some rust for the porfolio.

The site is now using the Zola static site generator, and nothing else. Amazingly, I could keep the portfolio TOML spec as-is.

The site has seen many hosts, from a home raspberry Pi to Digitalocean to Vultr and NearlyFreeSpeech.net.

Digital Life Viewer

(2021-)


A note aggregation app

A currently in-development tool to gather, combine, search through and process your digital life. In 2020 I started a personal diary, to keep track of interesting things and my state of mind. One year later, it’s basically impossible to stifle through 400 files to figure anything out! If this is true of a simple note taking app, which is meant to be searchable, what about online services like social networks? Your posts are here to be used against you at perpetuity by the social network, but you lose in practice all access to your posting history, because the access pattern prevents any meaningful data processing. I wish to give everyone the power to easily gather their own data and look at trends in their own lives even better than big tech corps can do today (and hide from you).

Blobula ex nihili

(2019)


A Ludum Dare game jam entry

An asteroid-like. This game was made in 2 days, written in lua, using the löve game engine.

New indie game studio

(2021-)


A dream and an half

I may or may not be setting up an international indie game studio.

I may or may not be working on 3 different commercial games.

Twine-Server

(2019)


Cloud functionality for Twine2

Twine2 is a Vue.js web-based version of the Twine story editor. Twine is popular tool for making text-based non-linear story/games. It has also been used to draft the Bandersnatch episode of Black Mirror. As part of my involvement with AZUNI I wrote a small server to support cloud-based collaboration on story editing. The server is not open source, but the fork of Twine that is compatible with it is available under the GPL3 license.