Posts

Rapidity

I had what turned out to be overly ambitious plans for this year. They all looked achievable, but I’ve underestimated how much actually uninteresting work would be involved and how big of an obstruction that would be. I’ve technically started tossing around the idea for Spacewar over two years ago already, but only recently has the game started taking some sort of a recognizable shape. At some point, with most of the engaging stuff done (mostly things related to networking), it dawned on me how much has yet to be done (UI, VFS, assets, effects, etc.). The realization of the sheer amount of work I have no expertise or outstanding interest in caused my heart to almost give up on it entirely. I feel sort of ashamed of myself because of that, at the same time hoping that this feeling will somehow get me to finish the project. However, before that, as is usual with ADHD, procrastination took hold of me and thus, my first “game” actually got done!

Enginedev insanity

I’m telling you, you can’t even begin to comprehend how utterly nuts this whole endeavour is and has been from the very beginning. One’s event horizon has to be microscopically shallow to somehow escape the obvious realization that this is just a lot of herculean work, for comparatively infinitesimal reward. Recently I started having second thoughts about creating a custom engine for what seems like a very minor title, but I’m way too deep into all of this to quit now.

Chugging Along

It’s been a while, as expected, since the last update. Somewhat confusingly, progress on the engine is still moving forward. If anything, its rate is not exactly satisfactorily, but that can be explained easily - relationships take time, effort and attention to maintain. Especially the fast moving ones.

Loading games

Nevertheless, Chavelleh can, starting today, load game DLLs. The ultimate goal is to reproduce the Q3 setup, with a virtual machine executing unsafe mod code and only resorting to DLLs on dev builds or with locally verified files, but this setup should dramatically increase the development speed. With proper approach to data and API versioning, the DLLs can be hot reloaded during gameplay, giving me the ability to reload the game without restarting the engine. I would like to implement a homebrew solution for this - Handmade Hero was already very instrumental in pushing me towards this solution and will probably serve as source for additional inspiration - just for the sake of learning something along the way and being able to be proud of making something cool, even if it eats through a lot of my spare time that I don’t have much of recently.

Back To Basics

Gitlab also uses VSCode as the web IDE, that’s neat.

Godot is a fantastic engine. The speed at which one can prototype off of very naturally modelled ideas is, I believe, unparalleled. The object-oriented approach to defining objects in the game world makes it very easy, especially for a programmer, to simply pick it up and start hacking. The fact that the engine is licensed under MIT has enabled me to learn quite a bit about their new extension system and even fix it in a couple places!

Introspection

Alliteration is cool, but not particularly practical per prevalent perception.

Reading, or listening to Masters of Doom, gave me an impression that .plan files are mostly used as to-do/have-done lists as a matter of personal housekeeping. Not being particularly keen on sifting through the entirety of John Carmack’s .plan archive in search of golden bits of wisdom, I decided to employ the practice for my own use, but promptly forgot about the original source. Last week, I started going through more online material regarding the networking architecture of both the Q3A and the Source engines and stumbled upon PDF-ied releases of the aforementioned .plan files on Fabien Sanglard’s page. Turns out, JDC later used those files as a sort of a precursor to a personal blog, mostly, it seems, in a futile attempt to stifle the unbearable influx of mail. Prose is much nicer to read than lists of abbreviated thoughts, which is only proven by my devouring those pdfs as opposed to skimming them as I did with his early .plans. While I don’t particularly feel like expanding on my thoughts for my personal use only, updating this blog with more technical info on a more regular basis than just with random streams of consciousness or boring essays may only bring more (useful) life into it.

Inheritance

The progress on dev work has ground to a halt. I’ve decided to learn how to draw and model stuff in Blender, so that I would be able to produce interesting models for everything in the game. It’s pretty clear to me that this process will take a while and to remain motivated, I’ll have to begin working on the art as soon as possible with what limited skills I’ll manage to acquire.

The idea gauntlet

Coming up on the end of the first month of working on this prototype, it doesn’t feel like I have progressed much. This is expected: as ideas get fleshed out and scope grows, appreciation for the sheer amount of work to be done before the first playable, let alone the release, starts to sink in. It is, however, quite interesting that I managed to construct a semblance of a playable environment, albeit without many interesting gameplay elements yet. It may not look like much, but it is something to work with. Once I realized that, the panic set in.

FPS Identity

After spending a couple hours today following tutorials on how to make a first person game, I think it’s safe to say that coding the shooting aspects of the game will not be all that hard. The original parts may require some thought and keeping the structure of the entire project clean may prove challenging due to my lack of experience, but it goes to show how well defined and researched the common foundations of an FPS are. It was a fun experience, but the real hard work is still ahead of me.

Drawing inspiration

Let us be real for a moment here. There’s no good reason for Hostile Perimeter to be developed. Objective-based team games have been passe for a while already, Enemy Territory already exists, there’s so many different first person shooters that are quite popular now, the undertaking is way too much for a single person. In order for this endeavor to be successful, in this age of limited attention spans, it has to either innovate and deliver something new (and I wager the extent of innovation correlates to critical success) or improve the old. I have neither fresh new ideas nor an accurate sense of flaws that plagued my favorite games.

Codename: Hostile Perimeter

I made a couple of attempts at making video games in the past. Usually, ideas that involved a scope larger than a simple AMX mod were left to rot not long after I started getting more involved with them, either due to lack of motivation or time. Thus, I don’t expect this particular one to succeed; that however isn’t a reason not to try.

I’ve picked up Godot a couple months back when I was following a similar spark of creative flow following a short adventure with CrossCode and tumblr. It was meant to be an exploration massively multiplayer online game, invoking the yearning of yore. It wasn’t long, however, until I got tangled up with the technicalities of achieving certain design goals that I thought were not to be compromised on. The idea was thrown to the chest with the others, to wait for better days.