X-Odus: 90% Complete

This is a short post as I have updated where I am active on social media.

I have removed Twitter. From both a moralistic standpoint and a traffic standpoint I get zero value from the network. The account is still live but I have replaced it to a link to this post as the pinned post. I may just use it to retweet or spam my blog posts or when I go live on Twitch, but I’m unlikely to dedicate any more time on it.

In it’s place is Bluesky. I am really enjoying the conversation there and the connections. I have seemed to find myself into WordPress, SEO and (surprisingly) Game Dev lists so I get a lot of value here for the moment. Hopefully it continues. The plan is to setup accounts to Dwi’n Rhys and Retro Garden there. It’s verification method is pretty good and clever. Much more than paying a Space Karen for it.

I am about 5 accounts from almost removing Twitter completely. If Colwyn Bay FC, ThatsSoVillage, Heather Burns, National Rail Enquries and a few Pro Wrestling and Retro Asylum accounts I follow make their way onto BleSky, then we will be done.

I am still active on Mastodon. I like the conversations there and enjoy the slightly smaller but more techy group of folks there. So will pop in there still as it is cosy and has better conversations.

Threads I am not enjoying. It’s experience seems to be similar to the “I’m Helping!” Ralph Wiggum GIF that doesn’t seem to exist on the other networks. Seriously: I had an issue with something I felt when it came to DNS servers, Chris replied pretty quickly, the problem was solved (thank you Chris), but yet the answers kept coming. I think I was getting answers after my super slow nameserver was done propagating.

Threads experience (2024, Colourised)

Plus my mum’s on there.

But I’ll still post there, and I’m using Openvibe I am able to update all three, it’s ace.

I am also keen on adding more itch.io followers. I am making more games and want to connect with more Indie developers. So if you have an account on there, please consider giving me a follow, particularly if you like retro or retro styled games. Thank you.

For long form stuff I am here and I am still on the same theme. Until the Social Media block allows you to add custom networks or I don’t have to hard code half the networks I am on, I can’t see things changing.

Anyway: that is basically it. Where are you active?

50 before I’m 50 – Release a video game

Warning: This blog post is long, winding and probably doesn’t make sense, but explains the last few weeks. If you just want to play MonoScale, click here.

One of the 50 before I’m 50 that I have technically done before is release a video game. Using Blitz Basic in the early 2000’s, I made a bunch of games. You can read about them here. Though, sadly, the games are no longer available to download (I must have removed them at some point). Sadly lost to time.

I’m older, and a bit more experienced in programming, so embracing my new-found sobriety, as the nights draw in I thought to play around with game development and try to make a video game.

Not wanting to let it drag on forever and to give myself some sort of deadline, I entered a Game Jam. Game Jams are you’re given a limited length of time to release a game. And like the time I signed up for a 5k, I signed up for a game jam without really any sort of experience in game engines. I’d played around with Godot a bit, but I was not too experienced with it and regularly hitting walls. There’s a physics based joke in there.

Anyway, I found a Game Jam I was interested in the concept of – a 1-Bit Jam. As well as a theme where the limitations were to graphics, it also gave a couple of weeks development time. I’ve seen game jams that last for 48 hours and they just do not sound fun. So I signed up, joined the Discord server, and readied myself for making the game.

The Idea

Before the Jam started there was a vote for the theme. As well as the restrictions you had to make a game surrounding a theme. I can’t remember all the potential themes, but the two that I remember were “Silhouette” and “Tower”, purely because I had an idea for each of them. Silhouette may get made later down the line, as I really like the concept, but Tower won.

As for an idea? Well, sadly I went for the obvious. I was ravaged with COVID and was watching the Olympics at the time. I got really into the Speed Climbing. I was fascinated by the speed they were scaling the walls. A simple climbing game was what I thought, climb the outside of a tower incredibly quickly. Rather than climbing, I thought of a grappling hook system, where you’re against the clock to climb a tower quickly.

With an idea in my head (actually two), I hoped either Tower or Silhouette won. Tower won, so I begun development.

Development

Although I’d been playing around with development in other items, I felt using Godot was the best tool for my needs in terms of familiarity and features.

The difficulty going from WordPress to game development is that – even with the current state of the community and the irrationality of certain actors – I’m fairly confident WordPress is never going to introduce a physics engine. Even though Godot does a lot of the heavy physics engine work (things like “apply force to this object in this direction” are one commands), it can be tricky for somebody that focuses on PHP and MySQL to get their head round.

Godot development uses “Nodes”. These can be anything and everything. So for example, they can be players, enemies, power ups etc. You code every interaction needed for the game. In this game, I had a couple of base nodes – the climber, and hooks.

The climber can fire a grapple. This grapple would have a max length, and the player cannot fire a grapple if one is already active. If the grapple is attached to a hook, then the player is pulled towards the grapple. In reality, a force pushing the player towards the hook is applied. Once the player reaches the hook, it is released.

It sounds complex, but the force direction and application is two lines of code, so I don’t have to calculate anything!

These nodes were then put into another node, a Tower node. Which adds a background and detects the player position. The hook node was set to randomly generate and pushed out onto the wall.

At the moment it felt like a wall, so I want to make it feel like a tower. This was relatively easily to do, as I looked at games like Nebulus to see how that was done. A brickwork pattern was applied to the background, and when the player hit collision areas located in the left, right and top of the screen, the tower scrolled left, right and up.

Look at all the collision detection!

Hooks were interesting, as to maintain a look scrolling the hooks was needed. This again was looping through each hook and moving it left, right or down. Should the hook scroll off the bottom of the page it’s deleted from memory and a new hook is spawned at the top of the page. Oddly, even though there were approximately 100 hooks on a 1500 x 1500 pixel area, there was no real slow down, and although you could get parts where hooks are clustered together and other parts of the tower are barren, it worked pretty well.

Finally, I had to introduce a lose state (which is the player falling off the bottom of the screen) and a win state. The win state was a bit of fun, a simple ending animation should the player go off the top of the screen when the height climbed was over 100m, the time recorded and a return to the title screen. This is where game development gets difficult as nodes are in effect wrapped into one other. A main game node (containing the player, hooks, HUD and background), a title screen (containing information and the high score) and an ending scene. One advisory I saw about Game Jam entries was “make your game fairly easy”. Send the punter home happy, show a lot of your content early and often. I imagined most people would have played my game at maximum two times, so I set the height of the tower at 50m (I struggled to complete it at 100m) which should offer enough challenge, but not too difficult.

The game was actually built relatively quickly – I did use ChatGPT to format things I didn’t really understand but no AI was used in the art or music assets. I think in total about 10 hours to take the idea to completion.

Polish

Once the game was finished in it’s most simplest form I began thinking of ways to polish it. The first was improving the sprite work.

I found a tool – Aseprite – for the sprite work. I felt confident enough in my abilities to do some basic sprite work (soon to be misfounded). Sure enough, after about an hour and a bit I managed to get a basic tower built and graphics. It’s incredibly powerful, Aseprite, but not really had too much time to play with it.

One thing I did struggle with was the people, as I’m not great at drawing people. I used – oddly – the arcade version of Track and Field as a guide, and it didn’t turn out well. Poor Gwyn the Colourless was not looking well. In the end I left him looking a bit odd and weird in the game, as I did with Princess Blanc (the character you “rescue”). But we’ll leave it at that.

The evolution of the “falling” sprite for Gwyn the Colourless. I didn’t like the second draft, as he looked odd and too similar to the “going up” sprite.

One thing I am proud of is the tower effect. One thing I was worried about was the hooks and the fact they didn’t stand out on the tower. Thankfully with Aesprite it was easy enough to create a dithering effect, and the hooks were made a bit bigger and bolder so they stood out a bit more.

With the dithering, it also allowed me to put a round effect on the background. This was done with an overlay so it looked more like a tower that scrolled around the screen.

After the graphics was the music. I am not musically inclined so I approached the Discord asking if somebody would help me out. Thankfully somebody offered to help me out so that was fine. With the sound effects, I’d been playing around with Pico-8 recently and it has a snazzy sound effect editor. After a bit of time I had a game over, fire and connection sound effect ready to go.

Finally, I made a title screen, somewhat of an ending and cleaned it all up. The title screen I was most impressed with thanks to the starfield I created, that allowed me to drag and drop it into other scenes, set the width, height, offset and density, and put it elsewhere.

LOOK AT IT SPARKLE!

There were other ways to polish it. But I wanted to get it finished by the end of Wednesday 9th October, as I’ve two days before submitting it. Come the 9th, lateish in the day, I uploaded it and submitted in preparation for the game jam. The second suggestion was making your game playable online, rather than relying on people to download it. Thankfully in Godot you can compile your game to web so a quick upload to itch.io and the game was ready to play online. About 5 uploads in total for various reasons (the music wasn’t looping, “Fullscreen” would reveal my tower secrets, etc etc), but I got there in the end, and it was published on the 10th.

The polish work was the 20% of the 80/20 rule. Whilst the main game took me about 10 hours, polishing was around 15 hours.

Should you wish to play MonoScale you can do so at the link below. Let me know how you get on!

Post “Launch” Debug

There were things I wasn’t too happy with the game. I found it frustrating and it came up time and again in testing. I did think about reducing the height but I thought having an average time of 2 minutes to complete it is fine.

Nevertheless, it probably is too difficult. A new version would probably be slightly easier, with a bigger hitbox for the hooks.

Come Friday 11th October when the Game Jam was over the voting began. At this point you have a period of time to vote on other games. Here’s a bunch of feedback I received as well as the general comment of “It’s too difficult”.

An idea that was suggested on was camera work. I liked the end condition of throwing yourself off the top of the screen to win the game, so I wanted to keep that, but the scrolling up as you go up is a bit wonky. I’m not sure what to do here but one suggestion was maybe a zoom out if the height is under the 50m target height.

Quickfire ideas that I both a) like and b) take on board are the following:-

  • Sound levels are a bit off. SFX are a lot louder than the music (anybody who has watched me on Twitch will know that’s no real surprise).
  • A cylinder warp effect on the tower would definitely make it look more cylandrical.
  • Give the option to immediately retry the game, rather than push folk to the title screen.

One of the surprising bit of feedback was that Michael Klamerus featured it in his Indie Game Roundup on October 11th. I was not expecting any coverage outside the Game Jam itself. He praised the art (which is always a nice thing to hear as I feel like I can’t draw). Once again though I’ve heard the comment “I’m bad at this” which I’ve translated as “The game is too hard” for people who are incredibly polite 😊.

Also, checking the stats I’m somewhere on Indienova, but I don’t know where as a search has proved fruitless and Google Translate only goes so far.

Finally, the nicest feedback I received was that it would make a perfect mobile game.

All of those are suggestions for what I’m wanting to do when I have a bit of time.

The Game Jam & Results

During the voting phase, you’re encouraged to vote on other games. Here’s some games I really liked were:-

One of my favourite games was “The Skyscaper Plagiarism Agency“, which is a simple one bit game that requires you to build towers to match another tower. Really good fun and it showed – was in the top 10 of the most fun games out there (Gameplay it came 7th). Would be fascinating to see a full version of this without the 1 bit limits.

Bab.le was a Wordle clone I quite enjoyed. You have to build longer and longer words. Again, an original take on the tower concept (granted, the idea of “Tower of Babel” isn’t exactly unique, but the execution was great). This game also did well. In the top 50 for both originality and gameplay.

Witow Hero was a thunder god playing on a tower, so had a basic kind of guitar hero clone, but the graphics and the music really appealed to me, as it was a gameboy aesthetic.

Spire Bound was another great game: a fun little Metroidvania game that had a nice pacing and you were never really truly stuck. Gameplay it scored well (again another top 50 game).

Finally, Escape Tower was a fun escape tower with an amazing soundtrack. Did get lost, and it wasn’t truly 1 bit in my eyes (there were discussions on how games should deal with transparency, and it confused everybody, so I don’t really blame the author, however it’s something that affected a lot of games, and that was the game jam’s fault).

Anyway, how did I do? After the voting period was over I scored the following:-

CriteriaScoreRank (out of 340)
Gameplay3141
Theme454
Originality3.273157
Art3.091171
Music2.727178
Uses 1 Bit graphics4.545198
Overall3.439153

Overall, it was a fairly average game that scored slightly above half way. Happy with that overall. It wasn’t the most original of course and it had some limits but after the first week it did seem to drop off in terms of popularity. I knew art and music would be my weaker areas (there were some areas I didn’t like about the music), so not surprised about that.

I was a bit miffed with the “Uses 1 bit graphics”. I’m not sure what knocked me down a point or two? Maybe I missed some pixels and they were dark grey, as opposed to black, or the side dithering? I don’t know.

There were things I should have done better. If I enter it next year it is to change the colour scheme. MonoScale doesn’t stand out with all the black and white entries. Maybe go for a Game Boy palette?

You can see MonoScale, or not, as it doesn’t stand out…

Conclusion

Overall, I really enjoyed my first game jam. Even if it became a bit all consuming at the end of it. The last couple of days I was pretty much finishing work and doing 2 to 3 hours on MonoScale, but I wanted to get it done and over the finish line in a state that I am proud of it. And I am. It’s not GTA7, but it’s my little indie game.

There’s a base for a game – a MonoScale 2 or “Deluxe” version, using the feedback shared above, and adding a few bits I didn’t have time for.

Finally, I’ve also found a new hobby. I already have game #2 on the go, which I hope to release before the end of the year. There’s a bit less pressure on me for that one.

That however is being worked on with less time pressure. Will shout about it when it’s done here, or you can follow my itch.io page here.

Yet another white 40 year old tech company director with no medical experience praises high tech solution to health issues he brought upon himself

Seriously lads, the NHS Couch to 5k App is amazing.

In mid July, when I had a 40+ health check and was instructed to be more active as my blood pressure was high, I decided to look at the Couch to 5k App after a few folks I like rated it. It had been something that I was wanting to do, but the health check gave me the boot up the backside to do it.

I’d argue it’s probably the best thing I’ve done for my health. I’m not a runner. Really not a runner. I was crap at PE and crap at running in particular. Cross country was my least favourite activity in my least favourite sport in school. To explain how bad I am at 40 years of age: in my first ever run with the app you run for 7 x 1minute splits, with a 90 second walk in-between. By the end of that run, I couldn’t do the final 1 minute split.

On Tuesday, I did 30 minutes continued running.

Me after my first run/walk

For me 30 minutes is a wee bit short of 5k for me. The run on Tuesday saw me complete week 9 of Couch to 5k, and the course in general. It’s fair to say that I got a bit emotional. It had it’s ups, it had it’s downs. I got sick of Vernon Kay’s 90’s playlist, I questioned Denise Lewis’ concept of time, I cursed my left calf, but I got there in the end.

There are so many highlights to my journey, but here’s a bunch that come to mind.

  • The bemused look from a neighbour who I ran past on my first run.
  • The joy I experienced on my 4th run, which was Week 1 run 3 again, as I had COVID and thought I lost my ability. I didn’t.
  • The run in London where I ran along the South Bank of London on a gorgeous Friday evening.
I think giving I was running along one of my favourite places in the world, this was the first run I really enjoyed.

  • The first time I overtook somebody in Mile End Park in London. Granted she was 75 and looked knackered but I did it!
  • My first Week 4 run, which saw me run along Dusseldorf’s riverfront. It was a tough run.
I needed a shipping container to hold me up in Dusseldorf

  • My first failure, the Week 4 run 2, in Berlin, where I just couldn’t run up a tiny hill and a chihuahua ran in front of me, causing me to stop. I nearly cried.
The run in Berlin. Gorgeous park, but I just couldn’t do it there and then.

  • Week 5 Run 3, and the joy I experience when I finished it. It’s a step up that one – a full 20 minutes running!

  • Smashing my phone on a run, meaning I had to run alone with my thoughts. Not good. Turns out I moan a lot when running.
  • My first Parkrun, where I set a goal to run under 45 minutes by the end of 2024.
First Parkrun. Picked a hilly bastard one.

  • My second Parkrun two weeks later, where I ran it in 39:39.
  • Learning about Zone 2 running which has really helped me. A more efficient fat burning style of running, with less effort, who knew!?!?!
  • And telling a kid I couldn’t get his ball back he hoofed over the school fence, because I was on a good pace (I’m not too proud of this one).
Couch to 5k done!

I’d really like to publicly thank a bunch of people: Aled, Nat, Fern, Shane & Del who pretty much have had to listen to my questions and the strange selfies over the past 3 months (especially my brother Aled, who I messaged when he was at a wedding to ask about strategies for reducing chafing). But also so many other folks who have given me support on Instagram, Threads and Mastodon. Genuinely couldn’t have done it without you.

But mainly, it’s the Couch to 5k. In little over 4 months, I’ve pretty much gone from panting and wheezing to being comfortable running, to being a Garmin and Strava wanker, buying all sorts of clothes from Decathlon, and probably fitter and healthier I’ve ever been in my life. I’d really recommend it to fat folks like myself wanting to get a bit fitter, as if I can do it (and make a new hobby out of it), I’m confident you can too.

So while certain individuals who are the similar age to me are funding medical research to justify their addictions to South American hallucinogenic plants, I’ll just stick to my running, getting up early on a Saturday to do a Parkrun. I feel it’s easier to justify to the parents, talk about publicly, and – whilst Parkrun is a bit of a cult like community at times – it is something I can discuss at parties and people will not think I’m creepy.

Sorry if that’s a bit boring for a white bloke in tech.

The Desire to Disenshittify

“Disenshittify” may be my word of the year.

I read with interest from Tim Nash’s Newsletter (you should subscribe to it) Cory Doctorow’s “Disenshittify or Die” article (also a talk – hopefully available soon), and it resonated with me with how there is a movement to make things less shit, and how things have become so bad.

I was going to talk about it in my newsletter (again, you should subscribe to it), but thought I’d talk about it here instead. Noticing how crap Twitter has gone, how Threads is barely functional (sorry Threads, I really want to like you, but eh) and how things online have – with a few exceptions – have gotten worse. Chuck in the collective hard on services have for AI* and the desire to disenshittify and retrieve focus for my online habits has become a focus for the year.

Becoming Leaner Online

Rather than rant about how online services have all gotten worse, I’ll share how I’ve become to be more lean online. It’s still a learning process, but here’s a few things I’ve found useful.

First off – I am subscribing to newsletters now! Newsletters are actually wealths of information (or try to be), and I try to subscribe to them. At the same time, I’m unsubscribing from ones that are either spamming their products or affiliates – looking at you Marriot Benvoy who wanted me to join a betting site recently. They seem to be following the b3ta model of newsletters with a lot of useful stuff with the occasional sponsorship. Straight into your inbox.

Secondly, I’ve really enjoyed The Disenshittify Project, which creates and curates lists of projects that are not bloated mess. These are small things that do are simple and do not need to be bloated. Two they have are a password generator and a QR Code Generator. Excellent. They also have suggestions for where to go next. I’d particularly like a JSON Decoder that isn’t ad supported.

Maybe one more to my to-do list?

EDIT: Thirdly as a Brit you have a wondrous version of Amazon that is so much better. Argos! Bezos has his billions and he can’t get folks to deliver to same day? Pish. You can get a couch the same day from Argos. A fucking couch. No knock off products, everything is of reasonable quality, and it isn’t noticeably more expensive.

Where do I see this going? I’m not sure. I would love people who create things to make the internet be supported for their work, as the reason advertising is so prevalent is creators are not being supported. Patreon systems? I don’t know.

I’m not against advertising. A lot of newsletters I do subscribe to have advertising. Or against affiliate marketing. High quality services I’m more likely to support.

But at the same time the AI, bloated tracking mess is – I feel – unsustainable. I’d love to get back to a more simpler web. Where folks own their content, and share with smaller, like minded communities. Hopefully I’m not the only one who believes that.

Featured Image: “With Glass-like Clarity” by JFXie is licensed under CC BY 2.0.

* It was on the Giant Bomb Podcast that we are about two years into the “AI Revolution” and there is a lot of friction still to it. I’m still not 100% sold on it, though I do use it. But like everything, I don’t want it shoved in my face at every opportunity. I want to choose to find it useful, not be the default.

The Ballad of The Blogroll

Another lament on a web gone by.

I recently had to use The Link Manager in WordPress.

For those of you who are unaware, the Link Manager was the first high profile thing dropped from WordPress. In the earlier days of the web you were encouraged to link – freely – to other sites. The Links Manager was a way to link to blogs you liked, and it was known as a “blogroll”. When you linked blogs you tended to have sidebars with a whole host of links to sites you liked. Over time, when link equity became a thing, you removed sites, instead focusing on your own stuff, or removing them entirely.

As WordPress became more of a CMS than a blog platform, the Link Manager popularity dropped.

I remember when it was removed in WordPress 3.5, and how to handle it. In the end, it was enabled for those who had a WordPress installation since before 3.5, hidden for those that installed WordPress for the first time in 3.5 and above. Should you want this feature, you should use the official plugin to restore it.

An actual sensible solution.

Sadly, even now, it’s largely abandoned. Even the documentation hasn’t been updated.

Looking through my Blogroll

As this site has been present on the internet since before 3.5, mine was never hidden.

I clicked it and pined for a simpler time. Sure it’s largely gone, but I miss people being creative. Many of the domains have expired, dreams lost, projects abandoned. Furthermore, I’ve lost touch with a few of the folks there. One site is still going (waves at Jem!), the rest haven’t been updated in years, turned into static websites, or abandoned.

Sad. I hope the folks that were there that I don’t follow on socials are doing well.

As an aside, The reason I had to use it because I found a blog post from Jan-Lukas Else that linked to Robert Alexander’s Blogroll Map, that for entirely selfish reasons I wanted to be a part of.

It’s a bit finickity – the OPML protocol has advanced and there is a plugin that uses the more common ways to add the required headers to aid blogroll discovery which I’ve put on a few of my sites, but hopefully my sites will be more discoverable to a very nerdy corner of the web. Huzzah!

Blogroll @ newthinking store wc” by Neezee is licensed under CC BY-NC-SA 2.0.