Hello again GameDev

Published January 03, 2023
Advertisement

Well my friends, let me tell you – what an eventful time it has been. As we all stumble into 2023, hopefully by now no longer hungover I hope you have all had a successful year. Quick catch up on what I've been doing while AFK from here:

  • I got in. Not as a game dev, but as a software engineer. I have been learning full stack Web App technologies like React, TypeScript, Node.JS and .NET Core backend. It's with a good company and I've gained a lot of industry experience. I'm in no hurry to make another career move until I've earned “Senior Dev” and fulfilled my end of an equity share vesting period. I've built some rather large and complex pieces of software now and have new project management and dev skills I can bring to bear.
  • Work and family obligations still consume the vast majority of my time. It's just what life is. Time to devote to projects is a luxury, although being honest with myself I waste a lot of my not obligated time spacing out in front of YouTube and stuff that doesn't bring me any closer to my goals. Yes, human beings need some time that is not meant to be productive, but lately I've begun to think of this as a sort of self struggle against authority – in this case societal expectations that I dispose with as much of my time as humanly possible. I'll never have the kind of time I want to pursue creative endeavours if I don't first find a way to financially free myself of that trap. Besides, the things I was trying to occupy my “free” time with were frankly not very interesting. I finally got around to playing Star Wars: Squadrons for instance. It was a well polished game, IMO (I have no interest in multiplayer, only speaking about the single player campaign). But there were weaknesses in the story and the campaign was short. There was no mission editor to set up big gratifying space battles with. I fear its life span will be short. I truly do find designing and creating my own games more interesting at this point.
  • I'm beginning to see my creative pursuits in a new light. I've written a novel (in the wee hours of the night, slowly) set in the world the Valkyrie game is set in and am starting the process of editing and trying to get it published. This may include setting up a holding company to handle IP, revenue, taxes, etc.. because I know what happens when you keep sloppy records and just bank all the money as income: the IRS takes half.

All that said, here I am finally in a position where I can turn my attention back to what I was building towards with this engine. And I have to say, looking back I am still pretty happy with the engineering decisions I made. I still like the pipeline of parsing an XML document into runtime classes to compose a level at runtime. I was playing around with Unity the other day and found it simply lacked some of the visual features I'd already built into Valkyrie, like the Sprite's Z plane. It simply doesn't have the flexibility to compose a level as dynamically as Valkyrie does. Now to be fair: Unity is a finished, production ready client whereas all I have is the beginnings of an engine's rendering pipeline. But it's a pipeline built to my tastes.

Technology has not held still during my hiatus. .NET 6 is out, and with it came MAUI (Multi-Platform App UI), an evolution of what Microsoft was trying to achieve with Xamarin.Forms. I am legitimately thrilled that Microsoft is moving further into the cross-platform space, embracing it and coupling tightly to it. I would like to see a future where all app development is multi-platform. It is simply too much work for a small team or solo dev to support more than one platform. But even the value add for a larger company is questionable, I feel. Why re-develop a client you've already spent the time developing once all over again? The answer basically comes down to achieving low level memory optimizations and native API calls. The speed advantage is of that over say, a Virtual Machine is not to be sneered at, but it still leaves you in a position where you're having to learn Swift (to do iOS) and Kotlin (to do Android) and if you want Desktop? (not Mac) C# for most cases, C++ (Qt, etc..) if you're a glutton for punishment. Add to that the frameworks, API calls, package managers, build / test workflows you have to master and pretty soon you have a zoo. Xamarin is already in a position to import libraries that do utilize those low level optimizations. At some point I think it becomes a value judgement of time invested to determine if you're like Ahab, chasing optimization as a matter of pride, or if you are keeping your eye on the prize and trying to keep a project on schedule

Realistically speaking, the only way I see myself being able to deliver
- a game client (any platform, but I think I will start with UWP)
- a level editor
- common libraries and test projects for those libraries
- a default visual assets pack

That is not a single project. That is what's called a mono-repo. Because they're all inter-dependent (meaning, a change in any part will involve a deployment of all parts), I'll be making (slow) progress against all at once, prioritizing bottlenecks.

This begs the question, Xamarin or MAUI?. Trying to read the tea leaves, which will survive and which will not? I would hate to re-implement what I've already done in MAUI only to see it did not get adoption and Microsoft drops it in 2 more years. Well, the project management experience I've picked up says just because a new technology is out does not mean drop everything and refactor what you've built for it. I'm already ~25 / 40% built in Xamarin and have not yet achieved minimum viable product. It is logical in this use case to continue with Xamarin.


When I stopped work on the engine, it had already reached a point where it was hard to continue because I had to hand-craft the XML documents describing the levels. I have my first bottleneck. It's time to build a level editor. Stay tuned for the design phase of that.

Previous Entry Hello again
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement