Less garbage with a reusable array

This is the most boring post of all times. I recently hit some performance issues in the form of sudden spikes in frames. I thought it had to do with garbage collection since it cropped up every 250-300ms. So I pulled my pants up and made a ReusableArray<T>. That wasn't the culprit, but still, now I have less garbage. I created some List<T> every frame where I kept my meshes that should be drawn which went through some linq to determine inside frustum, etc. However, I notices that the garbage was collected a bit less and it didn't run for as long as it did before.

Read the full post

Started on a new game: The Crims

I have once again tired of my old projects. I am more experienced and have found new toys that I wanted to play with. This time I'm going for a smaller scope. I have ended up improving performance in my engine, a task that will never end and is easy to really take a deep dive into. Multithreading, AI, physics, etc.

Read the full post

Service oriented data driven game system

I am humble. My misconception is common knowledge, but it's easy to be fooled and drawn in by the beautiful pixels. It has has been an iterative process to arrive at this state of mind. The more I rebuilt and changed my engines, the more I realized how important the data was. Now, the system is much more about managing and distributing data to specific parts, than to render and shade triangles. The triangles are but a possible presentation of the simulation.

There is nothing but data. A game is just a system, simulating and mutating data. It's easy to fantasize in polygons since it represents a world we are familiar with. Data is a bit more abstract and dry. The conclusion is that games are subject to the same rules about data as a word processor or a case management system.

Read the full post

Seamless local and multiplayer, Part 1

George wants to travel the unknown universe of the internet, but sometimes he just wants to be simulated on his warm and safe localhost. Let's help George achieve his goals!

While working on multiplayer, I have stumbled over some scenarios that I havn't been thinking about before. Those have led me to change my architecture and probably cleaned up a lot of how parts in my engine connects.

Read the full post