As the end of the month comes running in, guns blazing, I’ve finally decided how I want to get things together for my game development as a whole. I missed Ludum Dare 52, Jan 6th to 9th this year, since I was battling to get the correct plan for how I personally prefer to work on games.
Way back, around 8 years ago, I worked on RapidXNA, a simple engine architecture on XNA for Windows Phone and Windows development. A friend started his own fork of it, RapidGame, approximately, and it died out with the last of XNAs days. When that died I bought a license for Unity, this was before Unity moved to the subscription model. You can tell, I don’t want to pay for subscription(s) for game development. I thought a life-time license would last forever, I was mistaken.
Since the start of last year I’ve been back and forth on where I want to take my plans for game development. Suffice it to say, it was fun to take a look at my old DirectX 11.1 implementation. Using my architecture from back then, it’s always fabulous to keep backups of old code – this was when I worked at Microsoft SA for EMEA. Last year, I moved into my own ideas around Vulkan. I had one goal, like my C# wrapping to use DirectX 11.1, I went through the Vulkan Tutorial to start out, and mapped it to C# as much as I could. The C/C++ side was going well for me, but I’ve forgotten the fundamental step to map the graphics architechture into C# and got demotivated with a single troublesome memory leak. With the demotivation, after a few months I stopped.
Around October last year I stumbled upon FNA-XNA. Suffice it to say, it took a while to gather the courage to start again, thank you Ethan Lee, I am now bringing back the project which started on 7th Jan 2014, SokoBomber, as a brand new game idea – ExploPuzzled. Pending name. SokoBomber will forever be playable through the new game as a ‘mini game‘, at least, since it will live on for nostalgic amusement. Instead of the MonoGame I played around with, it will use Vulkan now.
eVX So Far
The idea for eVX is simple – an engine wrapped around FNA-XNA, it specifies use of Vulkan.
A new eVX project will start with the code snippets below as an example:
using Microsoft.Xna.Framework;
using Sample;
using var evx = new eVX.eVX(1280, 720, false, true, true, Color.Black, new SampleGameState());
evx.Run();
using eVX;
using eVX.Structure;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace Sample;
public class SampleGameState : IGameState
{
public override void Draw()
{
}
public override void Load()
{
Engine._ConsoleLog = true;
Thread.Sleep(8000); // to totally prove this method works
}
public override void Loading_Draw()
{
Engine.SpriteBatch.Draw(Engine.Content.Load<Texture2D>("loading", "loading.jpg").Texture2D, new Rectangle(0, 0, 1280, 720), Color.White);
}
public override void Loading_Update()
{
}
public override void Unload()
{
}
public override void Update()
{
}
}
It’s easy to understand, this is a Console App running on .Net 7 – that is, eVX games will be made with C# 11.
This uses the old XNA structure I grew to love, but eVX only needs a simple specification for FNA-XNA as it begins:
Environment.SetEnvironmentVariable("FNA3D_FORCE_DRIVER", "Vulkan");
The debug console, when I need to use it, shows it off:
It’s lovely that I’m in a happy place with my game development projects, and code, again.
One important adjustment I’ve made, I will use manual updates to releases of XNA for eVX – that way if I ever want my own, odd, customisation I can do so. XNA is fabulous on it’s own anyway!
Showcase
With all of that above, it’s most definitely my personal fun. So far, at least. Back in 2011 I started, and used, RapidXNA – a library that was helpful to make games in a speedy manner. While it would require use of archive.org to see more, it’s easy to understand, it dwindled away.
As a note, in eVX my games aren’t playable yet. I’m still organising my own architecture into eVX. Just to share the starting processes a little:
To put it in the simplest terms: SokoBomber will be playable, again, through Vulkan. It’s on the way, at least. I’m excited to bring it back to life with FNA-XNA on Vulkan. This means I can finally work on the plans for the new game to replace SokoBomber: ExploPuzzled – name still pending. I will share more in the near future, if at all possible.
Thanks to DaveRusselZA, and Pomb, back then; the new version is on the way. A new idea for the original game, SokoBomber, with a better name, at least. Note, it isn’t playable in a browser anymore, but I might bring the original Unity web game back in the future.