About Me

Hello there! My name is Peter Nilsson, and I am a professional Software Engineer born and raised in Sweden. I grew up in a small town in central / northern Sweden (depending on who you ask), I would personally consider myself a northerner.

That's me in the picture in case that wasn't obvious already. I currently live 10 kilometers from where I grew up, along with my partner and our two cats. Until the start of 2022 I worked as a healthcare orderly (I mainly worked with old people), at which point I was mainly programming as a volunteer during my free time. I was finally hired by the company I'd been doing volunteer work for on the 2nd of March, 2022, finally making me a professional Software Engineer.

What do I actually do?

So what do I actually do? Well I'm a Software Engineer as previously stated, and I mainly work in C++ and C#, writing games and game engines. At the start of 2022 I was hired by Studio Cherno to work part time on the Hazel game engine.
As part of Studio Cherno I've also competed in the Ludum Dare game jam twice (Ludum Dare 50 & 51), and during Ludum Dare 51 I even acted as the lead game designer, writing 90% of the C# gameplay code.
Recently I was also asked to pick up some web server work, which eventually led me to decide to redesign my personal website as well.
But, what do I actually work on? Well I'm in charge of developing the physics and scripting systems in Hazel, and write most of the gameplay code for any games we may want to build. My work on the scripting engine led me to start writing a guide on using the Mono library to implement C# scripting, you can find a link to that guide in the sidebar.
While I do find C# scripting facinating I'm far more passionate about the physics in Hazel, especially considering my first ever contribution to Hazel was adding the PhysX library. And I've even written a lengthy blog post about my journey working with the PhysX and Jolt physics libraries. (The developer of Jolt actually ended up reading it)

Fusion & Fission

Apart from working at Studio Cherno I also tend to do some programming during my free time. Sometime in August of 2022 I decided to start working on my own game engine called Fusion during my spare time, as a hobby project.
Whenever I tell people that they always ask "So you get home from work and immediately go back to woring on game engines?", to which my answer is: Yes.
Now why would I do that? Don't I want to relax and take it easy after a days work? Well the main reason for me developing Fusion is as a learning opportunity. See, while I've learned a lot from working at Studio Cherno I mainly focus on physics and scripting, meaning there's little opportunity for me to learn other parts of game engines like graphics programming, audio programming, etc...
Not to mention making my own engine entirely from scratch allows me to improve at architecting a game engine in general, and it gives me a playground to mess about in.
Currently Fusion is in it's infancy, but I intend to keep developing it for as long as possible.

Eventually I decided to start developing my own physics engine for Fusion, mainly to learn more about the inner workings of physics engines. I named the physics engine "Fission" (seemed fitting).
Fission has since moved to it's own standalone project since I wanted to focus more on the physics aspect rather than the graphics / engine aspect of Fusion. When I got started working on Fission I did so by following the Game Physics In One Weekend book series, I have since diverged quite a bit from those books.