Monday, January 08, 2024

Gun Storming

A full day of Gunstorm updates. Some take along time for slow or little result, some are faster. The game now has a hi-res font with all characters, and better lives and spider-bomb indicators. I've removed the now irrelevant graphics options, and all demo modes. I fixed one bug with the random numbers; this was an engine bug which wasn't in the game before the 'upgrade'.

Two aspects of gameplay have changed. First the enemies will appear when an old one is killed as in the new Roton remaster - this much improves the game, makes it more exciting. I've also set the maximum game speed to 200%, rather than 100%, which makes basic Gunstorm more fun. I'll increase the speed on Asteroids I think, as this game is a bit too easy; I managed to get to level 15 with ease. I'll also increase the automatic firing rate to stop the incessant clicking.

Mike Drew came round to drop off two faulty Zoom recorders. One has a faulty on switch, definitely corroded, as a contact cleaner fixes it, but only for a time, and a firm press in certain ways seems to work, but most presses don't seem to work. The tiny switch is welded onto the tiny circuit board, so an ideal fix of a replacement switch isn't easy. I haven't looked at the second device yet.

He shared some of him music. He needs to record more, store more, file more!

Sunday, January 07, 2024

Game Filing

A full day, but not a hue amount ticked off the list.

It was below zero overnight and next door's dog woke me at 4:30 with a bark. I didn't resleep. I thought about Doom, and how revoloutionary it was as a game, that nobody before it could have imagined a whole new genre of game about to explode onto the world. This made me think of a new game idea, something rather different than anything I've made before. The technical aspects of it are very difficult because part of the concept is infinity, but there are engine similarities with Taskforce. Perhaps I'll investigate, but I'm not sure.

This at least shows that my gaming brain has been enlivened a little.

I started the day with a big list, first filing the existing textures for Gunstorm 1 & 2 to prepare for new ones. I tested my 'Skeleton' better and found and fixed a small error concered with UFT-8 vs ANSI text files. Then I started to file, but things went a little awry. I've filed my projects in a general way like this:

CxA-Gamename (code and name of the project)
-Gamename (a folder which contains the full game version)
-Source (a folder with source code)
--Gamename (the source code, named after the game)
--Bitmap (art, if wha have some)
---Gamename (the game name again, so I can easily drag it to a useful folder)
--Other files...

But the standard was not consistent. Textures were sometimes filed with other game art, and Steam Versions needed a duplicate 'full' (or full and demo) versions, but duplicating all of the files is not efficient, so only parts were duplicated. Then there were old Amiga files...

Ultimately, I decided to develop new standards for filing the 91 projects I have archived, and this has taken all day. I now list:

CxA-Gamename
-DistributionWindows (or DistributionAmiga, or DistributionSteam) (various final game files)
-Source
--Codev100 (version number or designation of the code filed here, some games had files older versions which might be required)
--Graphics
---Bitmap
---ILBM (for Amiga games)
---Imagine (or any other graphic formats or programs)
--Sound
---Prometheus
---Tracks (for final wavs)
--Tools (subfolders with specific tools, level editors etc.)

So this process has taken all day, but prepared the way for future updates. Filing is vital for efficiency.

The only change to the games was to set the perspective correctly for narrow and widescreen, and adjust as needed. It means that Gunstorm now has a much bigger gameplay area. I may need to adjust the zoom.

The big job will be reworking the graphics. For Future Pool and Future Snooker I didn't update anything apart from the tables. This may suffice, updating only the backgrounds.

Saturday, January 06, 2024

Hector v131, Textfile v102

Sigh, a huge and very full day, endlessly working on, and testing, the most tedious of things: text processing. The original class I used on Gunstorm II, and all games prior, supported 127 characters at most - a char, a signed byte. At some point recently, probably for the Taskforce remaster, I've upgraded all of this to support over 150 characters; a complete set of European language lettering to support just about every language apart from complex ideographical languages like Chinese, Japanese, Korean etc.

Today, my plan was to update this text class. It was in need of an update, there were lots of potential crashes and a definite lack of null-pointer checks. But little bugs kept appearing, just little annoyances. Crossing the 127 limit made the char values negative, so I used little internal unsigned variables to check and adjust things if the bytes needed inspection, but the whole thing was too complicated. Gunstorm used the old 127 limit, so didn't really need an update, but I really should update ALL games to the latest thing, and every game should be simple enough and robust enough to cope with an upgrade.

So in the end I switched to using unsigned bytes throughout, which makes far more sense, but it meant rewriting routines to print text, measure text, and complete complex substitutions (controls like 'fire', 'thrust' can be substituted with the keyboard key).

This has taken all day, a day prone to finding silly bugs on an hourly basis. As soon as I thought it was all fixed, new errors would appear. This is why game developers tend to use off-the-shelf engines; it saves hours of bug-hunting for simple things like text processing. Yet, off-the-shelf engines can be full of bugs too. I can't tolerate any bugs. I really try to fix every single one.

One other job was to translate the full possible set of keys, including joypad controls, 'shoulder' buttons and that sort of thing. The new controls have been there a while, but never translated into French or German, so I did that.

So ends day two of these game conversions and all I've done is upgrade the engine to a basic level. Almost all of the day was updating (and fixing) the main engine rather than adding those changes to the games. Both games are now running using the ancient graphics, and 22050hz wav sound. Both games still have 'demo' versions, links to buy from Share-It (remember them! that dastardly company that sold my games and sound effects for over 10 years, then deleted my entire catalogue and kicked me off without warning when the sales dried up for a month or two), and other things that need removing and updating for a Steam release.

My head is spinning.

My mouth is healing well, and aside from a tinny taste I can practically speak and eat like a normal human.

The next jobs are to file the current set of legacy graphics (I wonder if they could form some sort of option for customers - DLC?) before I update them all to at least double the resolution.

I've been musing on how to improve the other games; Bool, Firefly, and Breakout Velocity. So far, I've generally updated the look and sound of my old games, but not really changed the gameplay much. I think these games need a revamp too - they need to be made better. Breakout Velocity could do with a new name, and perhaps combining with Fallout. Firefly, a Pac-Man clone, might work in 3D first person, that might be interesting, and all games could use some algorithmic level generation.

Arcangel may be the most difficult to get working, partly because it would need an ancient size of screen, probably 640x480 pixels. As a 2D bitmap game, it can't be upgraded for modern computers without redrawing the graphics, and that took a year or so originally, with painstaking help from Andrew. This is my oldest code. My first Windows game was Thermonuclear Domination, but I've lost the source code to that, so the Arcangel is ancient and liable to be full of bugs and things that have been long since superseded. That fact, and my suicidally unhappy associations with this doomed project, causes me to delay work on it.

Friday, January 05, 2024

Gunstorm and Gunstorm II Remastering

Finalised the Gmail backups and organising, and decided to look at Gunstorm and Gunstorm II.

Looks like I updated Gunstorm a few years ago (I had totally forgotten that), but it still needed quite a few changes to get it working in Visual Studio 2022, with the latest incarnation of my engine.

Gunstorm II was another story and, this, my last game and therefore the technical highlight of my classic period, hasn't been touched since August 2008. It's taken all day to get it working, but now it does. The graphics are at least half the resolution they need to be, and upgrading the controls has proven difficult, as the latest version of my game engine involves a choice of 512 controls: 256 for the keyboard, plus others for mouse, game controllers etc. Before this I used 'unused' keys for those 'virtual' keys, but with just one or two game controllers those spare keys can disappear quickly.

I'll spend tomorrow updating the basic game engine and my C++ classes, as it, the DirectX9 Skeleton I use, is already in need of an upgrade. My little changes to the older games that I've refurbished, Radioactive and Taskforce, have updated some aspects of it, so I'll need to do that first. Martian Rover Patrol and Roton were my most recent programming projects, but they were 2D so don't really count, but there are bound to have been changes there too. I rememeber the nightmarish time with graphical glitches in Martian Rover Patrol. I can't remember anything about the bug or its soloution. My mind is certianly going, so perhaps it's good to make these games workable while I can. After the engine is updated I can fully update Gunstorm and Gunstorm II.

It's a big learning (or rather re-learning) curve. I've encountered about 9 regular 'bugs' concerned with compiling the old code. I do hope that DirectX9 remains supported forever. It would be a pain to update everything to the latest thing. Well, people still play Commodore64 games, so there is hope.

It will at least make things more stable and easier to upgrade if I can get my old games up to the approximately same standard.

Email Archiving, Old Games

A full and intense day archiving my Gmail, a backup procedure I've generally neglected. Until now, to save space rather than preserve data, I've sought out emails beyond seven years (chosen because it's the storage requirement for tax purposes), and deleted certain classes of email from that period, such as files over a certain size ("older:2015 larger:3Mb") or similar, but this is haphazard as I had no set rules or standards of what to keep and what not. In particular, small emails are often not worth keeping.

Most of the emails I receive are notifications, often automated of the 'no reply' sort. With any online order there is also a slew of emails; the order placed, an invoice, a delivery notification, a 'delivered' notification. I generally kept those as a record of what I bought and when, but in my ancient text-based backups (I have text emails going back to 2000), I only included conversations and not notifications. It seems over-cautious to keep records of purchases, akin to filing receipts from local shops; and online orders are often preserved anyway - Amazon's are at least. For unusual items, I often make a personal note or review of what I bought and how good it was anyway, so there's less and less of a case for keeping these sorts of email.

I also filed the occasional newsletter, or press release, or even (shudder) mp3 attachments sent to me for ArtsLab. Nowadays I'm much more aggressive when it comes to culling mail. I tend to download attachments and delete the email. It's a great shame that we can't delete attachments but keep the text.

So the day started by using Gmail searches "newer:2015 older:2016" for example to sort emails by year, then creating a label for each year. Then searching each big email and deleting any that don't need to be that big. Generally every email over 2Mb is deleted anyway, and those over 1Mb scrutinised for important content that I want to file. I had 2000 emails a year in the 2010s, but now it's more like 1000; partly because I delete more, partly because I'm less social and less e-social these days.

Then I started to delete, and have decided to delete most or all of the notification type emails; many of which are from the big tech companies like Amazon, eBay, Google. I'll keep last year's from them, but beyond that the information they convey is minimal. For anything I purchase that may be used in financial records, like invoices, I'll now download and file all of those. I often do that anyway, but can keep a second copy in email - not any more.

Newsletters, offers, posters, art or poetry competition forms are deleted, and perhaps filed under their event. If I'm sent images, those are also filed separately, so there's no need to keep an email too.

After this, Google Takeout can be used to download each year, one tedious year at a time. I prefer it that way rather the one giant block. It makes it easier to add a neat new file to the archive each year. Not sure how much space this has save me overall, perhaps half a Gb.

It's amazing how huge the Gmail email archives are. My text emails from 2014, the last year I stored them 'by hand', amount to 13.9Mb. The Gmail archive is 141Mb! Ten times bigger for the same thing.

Doing all of this filtering for the years 2015 to 2021 has taken all day, and the process is not complete. It's hard to be sure that this is a worthwhile job, but filing and organising is a fundamental purpose of life. I expect that nobody else does this, and I expect that in 100 years time (if you are reading this, reader of that future), my email record might be one of the few that still survives, but who can say? I might be wasting my time, but there's no harm in preserving such data, the most intersting and culturally important of which will, perhaps, be my every day conversations with friends.

Soon, to other jobs. Perhaps 2024 is the year I finally put my old games on Steam. Gunstorm II is an obvious choice, being my lasts and most techncally proficient game, although it's a plain-old shooter. There's probably more of a case of it than Future Pool or Snooker being on Steam, but what held me up is that I'd really need to release the first Gunstorm game first, and that's merely average. All of this costs a lot of money and the chance of getting it back slimmer than ever, but this is a cultural investment and in the long term is likely to break even. Other games that need releasing are: Bool, Breakout Velocity, it's sequel Fallout (I could probably combine both into one game), Firefly, Trax (which is very old and never been revamped), Arcangel (similarly ancient, and never released at its best), Outliner (one of my favourite to play, yet simplest games).

Wednesday, January 03, 2024

Effervescent Intro, Frames

A slow and low day of continuing mouth pain, but things seem to be improving. Most of the pain seems to be my left tonsil, always a problematical one as it has a calcified 'stone' there, which hurts whenever I have an infection of some sort; though this ache can function as a sort of 'early warning system' for colds etc.

I added a new intro to Effervescent, but later in the day removed it. Many songs now have more feeling based, more improvisatory intros that echo the main theme. I made this one because it sounded nice, and because Effervescent is rather short; but perhaps this is overkill, akin to some baroque curves in a carving. I could use it elsewhere or include it as second track instead.

I also worked on some very old sequences, a rock tune called 'Cat Covid', and another surreal track full of energy in the style of the some of The Dusty Mirror songs called 'Walls (And How To Hit Them)'. The Cat Covid one is a bit silly, and there only because it's a bit silly, as well as being largely complete.

Linda came round to drop off a gift of some old picture frames, and, though it was painful to talk, we happily talked a little about painting. I miss painting and exhibiting. It's hard to feel like an artist when I have no place to show my work and no people to share it with. I increasingly dislike showing things online. The ephemerality of it all worries me philosophically, so oil painting trumps my music in this regard. Yet so much of the visual art world seems to be internet based too. If it were not, how would most people hear of it?

I spent a happy hour removing the faded prints from the frames, and cleaning them from their sticky tapes using a hairdryer and a solvent called Goo Gone; making them ready for new oils. A new frame and a blank canvas is a wonderful gift - there's no better one, apart from a commission or a competition.

I've wasted too much time browsing Wikipedia, reading about Dennis Potter. I watched the rest of Casablanca, a film I've never seen, but one certainly worth seeing as its reputation indicates. Some of today was even spent in a semi-sleepy stupor which is most unlike me. Things will get back to normal when my mouth and face doesn't ache so much, and when I have a million thrilling tasks rather than vague notions of one or two.

Tuesday, January 02, 2024

Mouth Pain, F.I.G. Live, and Ponderous Notation

A slow but steady day. My mouth and left side of my throat is in such pain that it's difficult to focus on anything else, but I managed a few jobs.

First revamping our Fall in Green live videos a bit. There are lots, but many aren't public on YouTube, so these will now start to appear every Friday at 7pm.

Then I did some work on a logo for my music publishing arm, which doesn't yet exist. I occasionally list works as published by 'Cornutopia Music Publishing', on PPL for example, but the music isn't technically 'published' in sheet form, or registered with the PRS as published. When I do publish the sheet music it gives me the opportunity to fix a name so I may choose a different one. 'Cornutopia' is a long and meaningless word, taken originally from an Amiga module (tune); a happy melody, so it was a cross between Cornucopia and Utopia.

In the afternoon, I scored the music for the new Ponderous Tomes composition for Fall in Green, although my mouth pain grew over the day so motivation became difficult due to this.

We had some good news in that Deb's site magically came back. I'd half hoped this would be the case, that a technical error over the holiday wouldn't be noticed or corrected until this morning. In the afternoon, things gradually came back, making the experience a valuable lesson and rehearsal for possible future problems. The internet is so very ephemeral. I wonder if the thousands of great artworks (and the millions of bad ones) of this generation will be lost forever in a mere century's time because so much is online only and very vulnerable.

Christmas and New Year Notes

A nice Christmas Day 2 with Deb on the 30th, starting with a the discovery that the Crewe Library Winter Party was in the Crewe Chronicle, a full page article:

At 8pm on the 30th, the new $19.99 version of SFXEngine was launched on Steam, so the evening had to be spent at home working but the technical parts were not difficult as I'd prepared for them. The $100 version was plagued by illegitimate buy-and-refund attacks, with a spattering genuine fraud, over $40,000 worth in November, which were incredibly dispiriting. I had aimed, in 2023, to release Argus too, but those attacks had scuppered that. I still hope to release Argus there one day and must keep aiming high.

New Year's Eve began with some awful news, Ink Pantry vanished from the net along with every other Falcoda website. She has paid for 2-years hosting and the domain but we've no idea how to gain back the site or her domain. Deb has a sole backup from May (10 year's worth, so important) but everything since might be lost. This is an ongoing situation that is affecting hundreds of people. For me, the day started with my annual computer backups, but the rest of the day was spent with Deb too. We visited a few shops and watched the film The Killers over the two days; the best scene by far is the diner scene at the start. My thoughts were constantly about the technical aspects of her site being lost.

New Year's Day was more relaxing, full of little annual jobs like updating my website for the new year. How my paintings there from the past few years make me cringe! They look far better in real life. Every time I visit I'm reminded why I spent so much of 2023 making lights for their photography, which I haven't yet used). Another job to do.

I can now barely speak or eat as my tongue spontaneously blood-blistered on the left side on the 29th. This seems to happen at random every so often, and I know that this means about 10 days of pain as this heals.

I've decided to rest a little, with more small jobs. I am a little physically under the weather. This has been one of my healthiest festive periods, with little extravagant food and only sips of alcohol, but I've barely stopped working or paused to rest and I've often felt exhausted.

2024 is a foreboding year. When I ask my instincts about the future, the year 2024 keeps appearing; good or bad who can say? I feel optimistic as I always do. The economic and political portents are not good, but lights shine best in the darkness. 2023 was one of my best years in many ways. My two album releases were my most popular, following steady learning steps of albums, each a little more popular than the former, and I performed my first live songs in years. The months October, November and December were highlights, with our first Words & Music Festival performance with Carol Ann Duffy, and the popular and enjoyable Snow Business project. And across 2023, I completed a lot of sheet music. I've now scored 15 album's worth of music, with 24 to do.

It is a time for plans. Onward we march.