Sunday, January 12, 2025

Norman Bates Video, Arcangel

A frustrating couple of days, I'm eager and keen to finish The Dusty Mirror but find myself working on the music videos. I now know the feeling of being made to promote music by working at things like this, even though I barely work commercially (merely hope for success), and have no task masters; yet my own drive pushes me to do my best, and always towards new ground.

I'm beginning to feel like a film maker. Watching Star Wars: Rogue One yesterday, and North by Northwest, made me observe the lighting, angles, calculate shots and layers; all automatically, as a result of my recent filming and video work.

A side note: Rogue One: the best of the universally poor 'new' Star Wars films. The best part of every story is not knowing what will happen in the end, and the lack of this is why all 'prequels' are terrible. The only thing worse is the 'remake', for the same reason, except that a good film (nobody remakes a flop) is dragged through the dirt and soiled by association. The only thing worse than a remake is a 'reboot', which is a remake without imagination. Alas, all of the 'new' Star Wars films are all of these three things, and Rogue One manages to be all three in one film! Idiotic though it is as a story, the action parts at the end are good. The final battle is by far the best part, on par with war films like Where Eagles Dare (and more shallow).

Many recent films, such as this, fall prey to casual racism and sexism. We cower in shame at Hollywood's early days where black and Chinese parts were played by white actors, or even male actors played female parts. Now, female actors routinely play male parts (most of these action characters are clearly male in attitude and style, merely looking female), and black (less so Asian) characters play white parts excessively, making exactly the same mistake as 100 years ago. This is response and reaction to that earlier shame.

I digress.

I compiled most of the final music videos yesterday, but 'Norman Bates' remains. I felt the need to make a full video, so have spent today doing this. I'm limited in some things. I'd like few more slow zooms and fades. My camera wobbles when the lens zooms. I've used an old time-lapse of some sunlit clouds, darkening them for a storm, and spent yesterday trying to record a film on television as though seen in a rainy puddle at night. This involved making a 50x50cm tray from aluminium foil, painted black, and placing it in front of the television in a dark room.

It looked better than I thought in some ways, worse in others. I became fascinated more by the odd patterns, in a grainy film that didn't really look how I'd intended. I have, in this film, started to use a wider range of camera settings, and I'm starting to see flaws in everything. This is good; a sign of progress. Beginners struggle, then after a while things seem to be working fine. The next step up is to think that everything is bad; this is the first sign of becoming actually good at something. This feeling never really goes away. Being satisfied at any creative work should be a hard battle.

In other news I had an email about my old game Arcangel, the game which was 'published' and distributed across the world without my permission or any payment, the game that drove me to the brink of suicide and pushed me into a new direction of avoiding publishers or help from anyone - for life. The worst aspect of the Arcangel debacle isn't my lack of control, or the loss of a game which I'd put my life into for 2 full years, but that it was a flawed and incomplete game, gifted to millions of people in bad condition; and badly received. Perhaps I should be glad it wasn't a hit, given that it was stolen from me, but to have a creative work stolen, seen by millions of people, and be an unfinished horrible mess, is a worst of all worlds. Well, I can't face that game, any more than David Lynch can face Dune. Though, he is wrong, as he can fix it if he wants (I pray that he will), and he was paid for his work. For Arcangel, I got nothing.

Friday, January 10, 2025

Arm Dream, FOTTI Single Videos

I dream of a world where living human arms can grown and adopted. One person adopted an arm which grew a black hand. Deborah adopted a (white) hand, which hadn't yet grown. These were world firsts. I took part in a television debate about these hands and the regulation concerning their adoption; were people able to look after them? Some background checks must surely be needed, etc. The dream was probably linked to the various arms and hands in The Dusty Mirror and its videos.

An day of unusual and extraordinary tiredness, perhaps due to the cold or great stress. The past two days have also been very busy and productive. My stomach is tight and in constant pain.

Today I completed the final edits of the 'Fear of the Thing Itself' and Johann Strauss videos. The PRS are lax in processing the latter song, a job normally done in 24 hours has taken nearly two weeks to date. I've ordered a new memory stick for animation work, which (if I'm very lucky) could compete in speed terms with the unreliable hard drive I'm using at the moment. I've done some cursory work on a 'Norman Bates' video. Before yesterday's YouTube showcase, I was happy to call the Dusty films complete, and make Norman Bates a simple lyric video, but now I see the importance, utility, rarity, and artistry of video work, so I'll try to push myself yet harder. This is already my most accomplished album by far in video terms.

I must summon the energy to complete this. New music and new video await.

Thursday, January 09, 2025

Johann Strauss Video, Cat Covid Showcase, Bandcamp Pre-sale, and More

I awake at 04:00 and sleep in torrid flickers until I rise at 09:00 to a 12 degree room. I finished the Johann Strauss video, re-photographing a background and using two 3D lights to approximate the colour (if not the shadows!) of the scene.

Then added the lyrics. I recompiled 'Fear of the Thing Itself' with gaps around the subtitles, though this made little difference, and made and uploaded Spotify Canvases for both songs. I then went out, primarily for some exercise, and bought some new face paint colours - essential props!

Then, I released the pre-sale of the album on Bandcamp, something of a last minute decision, but if the album is to be released soon it needs to be visible, so it's now visible. I need to update my album release plan to make my path clear and stable.

Then, work on the 'Except for the Hatred' video, adding long lightning sparks to it, which echo the lightning on the album cover. I heard that 'Cat Covid!' was to be featured in a new (to me, at least) music showcase programme on YouTube, I tuned in ay 18:35 to just miss my track, but enjoyed the rest of the show and will be back.

I then compiled some paintings for the Society for Art of Imagination membership renewal, and built more drafts of the videos in progress. I need to complete the album plan, reach final drafts for the videos and start uploading. I also need to promote the SFXEngine Sound Pack; the first is due out on the 29th.

I am at my limit of jobs. Any more would be overwhelming.

Wednesday, January 08, 2025

Johann Strauss Video, and More

A power day of video wrk. Completed the lyric video for 'The Arm' and updated the draft of 'Fear of the Thing Itself'. Then completed the animation for 'Except for the Hatred', and filed Argus v1.50, releasing it this evening. I also set up a few Steam sales for the future.

I confirmed a year's membership of the wonderful Society for the Art of Imagination. Then, filming some hands for 'The Fingers of Evil'. I always had a strong image of a certain type of white bony hand, shaded like the imagery in David Lynch's Alphabet film (ideally I'd have pointy nails!). I painted my arm black and while and filmed myself in front of a dark curtain, raising the shutter speed to make it darker. I converted at a low bitrate to leave in some digital grain.

The colour is muted but natural, I used a cyan and yellow light (my favourite combination!) but made no more adjustments. That shot is mixed with the digital clouds from the final video.

Finally, work on a video for the B-side 'The Johann Strauss Blues'. I made an image of Johann waltz and tap its virtual 'feet' to the music in a most amusing way. This needs a backdrop and lyrics.

All videos are done in some draft apart from 'Norman Bates', which now exists as a generic lyric video, already better than nothing.

Tuesday, January 07, 2025

Back To Video, Argus v1.50

I'm wrestling with new finding a new focus. Yesterday I worked on more Flatspace 3 plans, just working out and codifying ideas. I don't think I'll ever program this game, but after a few days of work on Flatspace, it seemed appealing to try and develop a good idea.

I also worked a little on Argus, and did the time consuming and tedious album admin. I'm still waiting for the PRS to list my Strauss track; without this I can't register it. I expect they have a backlog. This admin, with the PRS, PPL, Soundmouse and MusicBrainz, took all day, for one album. How frustratingly inefficient the modern world is!

Video work continued to today as I charged back into The Dusty Mirror videos. I started the remaster on Nov 20th. It was a good idea to add lyrics to them all, but I've bitten off a bit chunk of ambition with aiming for full videos for every track of this sort of quality. Today I have at least lyric videos for all tracks; adding the words to 'The Arm' and 'Norman Bates', over a simple foggy background which matches the cover art.

I also finished the first draft of 'Fear of the Thing Itself', with some simple animation overlays, and started on 'Except for the Hatred', as well as updating Argus to v1.50 with a few new features. This the most I can fit in a day.

I must be sure that the work is worth it, rather than rush out things. I remind myself that new art doesn't have to be better than the best, but better than the worst. My work must be better, a bit better, than what has come before. These videos are that. Of course, some past videos were very good, to me at least, but here I have a full suite, something I've rarely done before. This full suite has much more in it than those of the last two albums.

I must work twice as hard, three times, faster, to get as much done, of as high quality as possible. At times I feel I have no goal; that this work will never make money or can even be for money (unless one video proves to be such a wild sensation that it creates millions of streams or followers!). Experience indicates that my work won't be popular or acclaimed either, but I can hope and aim that it is worthy of this in the long term. The least I can do is my best, give my most, push my hardest, strive beyond what I've done before.

Onwards!

Sunday, January 05, 2025

Flatpspace IIk v1.11

An unexpected full day of work on Flatspace IIk. I was determined to track down the orphan mine bug and have worked all day on it, finally solving it. One crucial trace was to save out each shot and sprite pointer when a game is saved, then document each sprite when loaded. Oddly, one of the loaded sprites was later disregarded as an orphan; my first clue.

It turned out that the problem was entirely with save and load. When saving any game with shots in the air, re-loading that save would only load one shot, but re-load all sprites as though they were shots, leaving a mass of ghost-shots which appeared to be valid, making the error less obvious. It was caused because the linked list of shots is uniquely added to at the start rather than the end (shots have a 'bank' to speed things up and avoid real-time memory reservation).

This has probably been a bug in Flatspace II since version 1.00, and old and huge games may have hundreds of thousands of distant shots filling up the game universe. Saves made from v1.11 onwards will finally fix this and work correctly, though older saves can't easily be fixed as there's no simple way to see if a sprite is valid or not, ghosts will persist forever (until death and a new game, that is). It won't be a problem from v1.11 onwards.

I'll release the update in a few days or weeks, after more testing. Now I must get back to music videos. My computer fan is making annoying clatters, perhaps because the room rarely gets above 18 degrees in the current cold snap. I can but hope that it will enter a calmer phase, as it is wont to do.

Saturday, January 04, 2025

Castle Park, More Software Updates, Art and Science

First, a trip to Castle Park Arts Centre to collect my three paintings. I exchanged a few words with the nice artist helping with the process.

At home I updated Future Pool and Future Snooker with the new game engine changes as planned. Charu sent a Flatspace IIk save which exhibited the 'mine bug', which is useful but I couldn't find how to replicate the error, which is the crucial thing. There are so few instances where the shot vanishes, and all should make the sprite vanish too.

One line caught my eye, an 'if' statement that referenced a pointed-to variable like the deletesprite routine. It would be bizarre if that was the cause of the problem, as if the statement itself was bypassed out of fear of a crash; no that's too bizarre, but still, I've added a NULL check. I'll refrain from updating the program for a few weeks. This bug is not urgent, it may have been around for years so cannot be serious.

I'm tired of this programming. I analysed my Steam stats today. The total number of lifetime players for my Steam games are: Flatspace IIk: 2285, Radioactive: 72, Yinyang: 25, Future Snooker: 54, Future Pool: 41, Flatspace: 2410, Taskforce: 31, SFXEngine: 25, Gunstorm: 14, Gunstorm: 13, Argus: 161. Of course, the Gunstorm games are the newest. It's sad that so few have played my games, but my task is to make them as well as I can and not worry about much else. I was reminded today that I designed all of these games 20 years ago when I was a very different person. Now I'd do everything differently. Then, I hoped for success from my games, something popular, good, and profitable. Now I only want to do my best; to create something special, in an artistic and emotional sense.

Artist and scientist are the same job. Both form connections between things to create a magical spark, a spark enjoyed by those who later see that connection too. Science, however, has great prestige, and even touted as worthy and a good job for the country by the government; and art a poor job, or even a pointless waste of time. How both opinions be true? Science is thought to have a practical value (though of course, many discoveries do not at first). Art, however, is rarely seen in practical terms; yet it is as practical as science, if not treated with the same rigour as science is today.

Friday, January 03, 2025

Flatspace Upgrades

Well, I had thought I'd fixed the Flatspace IIk bug. It was fixed (ie. failed to crash!) in one save, but trying another save caused a crash at Game Over. I painstakingly traced it by outputting a line in a text file at specific points, and I eventually narrowed it down to deletesprite(), a core part of my game engine.

This was a bit of a surprise, as the code there hasn't changed much since 2002 and the first Flatspace game. More odd is that it shouldn't ever crash. The program cycles through all sprites, and if they have a flag of zero (which means 'dead'), the pointer to that sprite is passed to the delete routine. In that routine, all sprites are searched again to locate that pointer. We know the sprite is there and that the pointer is valid, but for some reason, it didn't seem to work, as though it were searching for a sprite that wasn't there...

Odd in many ways, not only in that it had worked fine for 22 years. Perhaps the sprite had been deleted by using some advanced forward-looking logic in a modern CPU, that it had been deleted before the code even saw it. Or the lack of a NULL pointer check (I didn't think I needed one) made the system refuse to look further just in case... but ultimately, the fix was as simple as adding that check, which is good practice anyway.

From:
for (lplpsprite=&startsprite; (*lplpsprite)->next!=lpinput; lplpsprite=&(*lplpsprite)->next);

To:
for (lplpsprite=&startsprite; ((*lplpsprite) && ((*lplpsprite)->next!=lpinput)); lplpsprite=&(*lplpsprite)->next);

The fix seems to have worked. There were are few similar iterative loops that used the same sort of code, so I changed those too. Then I discovered that I'd made this deletesprite() fix in my game engine some time in 2020, but had failed to pass it on to Flatspace. This means that some games; Gunstorm 1 & 2, Bool, Firefly, and Taskforce, probably don't need updating; but Future Pool, Future Snooker, and Argus, should be. Radioactive and Yinyang are too old to need the update. They date from the DirectX6 era and used an array of sprites rather than a linked list (much easier to program with, but far more memory hungry; Radioactive holds over 300 sprites in memory at all times).

The updates to Flatspace and Flatspace IIk have taken all day. I took the opportunity to fix some of the GUI problems in both games, to upgrade the Steam Store graphics with double resolution, and update lostinflatspace.com, which I hadn't touched in about 2 years.

What a waste of my precious time and life these troubles are. I seem to waste so many days scrabbling to try to get back to a stable state, a step once attained and now lost by a random act, rather than making actual positive progress. Well, at least I made a few little upgrades. Yeats said that 'the intellect of man is forced to choose perfection of the life or the work' - I'm supposedly free, as free as Leonardo da Vinci, yet am forced to choose work time and time again. I can but do my best by rising early, working late, and doing what is needed as efficiently as I can.

I will wait a day or two to update the other games, while Flatspace is being tested in the real world. Onwards I charge.