The Story So Far

Hello World!

Hello everybody! My name is David and I made this website to showcase what I’ve currently been working on. For the most part this will all be game development related so expect things like art posts, engine development or music production. But don’t be surprised if I post circuit board design or model rocketry stuff.

Right now I’ve been working on a new game engine called LOKI. I’ve made a game engine in the past called Marauder but I didn’t really know what I was doing back then and was making it up as I went (I’m still making it up). But, I’m making better progress this go round! I guess I’ll begin by talking a little bit about Marauder.

Marauder Engine

logo

logo by Kyle Tallant

Marauder was a 2D game engine made in C# using monogame as the renderer and I made it for a game called “Space Marauders”. It was in development for a solid 7 months and I’ve used it for a couple of prototype games as well.

Space Marauders

I’ve documented this fairly well and made a couple of YouTube videos on its development. The game was meant to be something akin to something like Kenshi or Bannerlord. Some of the features that I wanted to tackle were pretty ambitious for a solo dev.

  • A simulated economy
  • Trading between stations
  • Fluid dynamics (for airlocks and stuff)
  • Reputation between stations
  • The give the player the option to do anything they want such as becoming a bounty hunter, trader, or buying their own station.
  • GOAP AI
  • Lua Scripting AI

Looking back what slowed down development the most is that I wasn’t really working on the game but the engine. If I used something like Unity or GameMaker, I might actually have some gameplay to show. What I spend the most time doing was rolling my own physics engine. I learned a lot, but now know better than to do that again in the future.

Here are some gifs I made while this was in development.

SM SM

Here are some gifs of me playing around with the particle engine I made.

SM

Some initial parallax tests.

SM

Playing around with the physics engine.

SM

Here is a really annoying bug I found that made it so once an entity went outside of a loaded partition, it would stop updating. I solved this by making projectiles load partitions as they entered them.

SM

Showing off the in-game console (also ran lua commands)

SM

An art asset I was proud of.

SM

Eventually I realized that I needed to work a lot more on the physics engine, because what this showed was a single grenade moving an entire ship. Meaning that I either needed to give each collider that made up the ship a really heavy mass or somehow add up all of the colliders in a ship to then calculate how much force should be absorbed.

SM

Nonsense…

Looking through these gifs I forgot that I even made a tool to create ships!

SM

At first, the game was the engine and the engine was the game, but I was given the thought to just pull out the engine bits and then develop that separately. Doing that I was able to create an actual editor for the engine, but that became difficult simply because I just didn’t know enough about how to serialize data in a way that it can be used in two completely separate projects. Simply put, reflection is hard. But here are some screen grabs and gifs of the editor in action.

SM SM SM

Here are some gifs of the editor I was talking about earlier. I was pretty happy with it at the time, but I never got around to create it in a modular way to allow for a different project to be able to be edited with it. It could only edit the scenes for Space Marauders, and would have to be recompiled for a different project if I wanted to edit a separate game.

Crops

Crops was a farming management simulator. It was a lot of fun to develop and I learned a lot from it. Without Crops, Marauder would not have a workflow for creating UI elements, nor would it have made the many quality of life improvements it desperately needed. We never got too far with the project, but there technically was a gameplay loop. It just needed a lot of fine tuning balancing.

I’ll post some of these images with the developer’s notes to give better context because most of the art was just programmer art.

Crops Farmhands loading a truck with finished crops.

Crops

Crops

A UI concept for crop planning. Basically we wanted for the player to be able to specify what crop will be planted during a specific week.

The following are just some debug views of soil moisture, fertility & crop completion.

Crops

Debug view of crop completion

Crops

Debug view of soil fertility

As crops were being grown, they actively took away from the total soil fertility.

Crops Debug view of moisture (lol I think this was broken)

I do remember that later in development, the closer you were to a lake or river, the higher your moisture values would be. And we had plans to give the player the ability to dig water troughs and wells to increase the soil moisture values. Again this project was pretty fun to work on, and I wouldn’t mind revisiting it in the future.

Wastelanders

The last project that I worked on in Marauder was Wastelanders. It was just a post apocalyptic survival game that never really went anywhere. During the development I was mostly just focused on learning about 2D lighting shaders. Here are some images of the development.

Wastelanders

Here is a UI concept of what the player’s inventory would look look like.

And here is how far I got… not far

Wastelanders Wastelanders

Wastelanders

Here is a screen grab of the world gen. If I recall correctly, first I just used perlin noise, then overlapped that with some river generation. Rivers were generated by creating a particle at the edge of the screen with a random velocity then letting it “carve” out a river through the world.

Wastelanders Wastelanders Wastelanders Wastelanders

Here are some examples of me messing around with shaders and post processing effects. I don’t think that I’d go back to this game, though I do still think that the style is cool. Especially with the red accents. But gameplay just wasn’t fun and the idea has been done to death.

I think that’s it for this post. In the next one I’ll go over the progress I made with the new engine I made. Thanks for reading!