Welcome back to WebUrbEx my Godot project where you explore the retro internet.
One of the hallmarks of old websites is how colourful they are. Be it zany background colours, images, gifs of dancing skeletons, etc. So before releasing WebUrbEx I wanted to get in on at least some of that action.
Although quick side note… as far as I can tell getting animated gifs to load into godot and be usable with bbcode tags is… something I’m going to have to work on, so don’t expect that just yet. Without futher ado…

(but before that I rewrote most of the backend of websites like 3 times because I wasn’t happy with them)
(oh and I rewrote them to be able to load from inside godot so I could stop people from breaking the instructions and/or the search engine)
(and then had to rewrite the image loading algorithms to work regardless of if it’s loading externally or internally)
(why does it keep crashing!?)
Right, I’m going to go into detail about all of the things that can go wrong when moving over code designed for loading external files to loading files from inside godot. Not because it is interesting but because it’s a field full of pitchforks I want to save others from stumbling around. If you don’t want to read this all, scroll down to the magpie.
Godot’s internal “file system” uses its own loading and saving methods that are almost but not quite able to do the same things as System.IO, and those few edge cases where it doesn’t work are basically the few edge cases I also happen to be using for “scraping” all of the available sites. So by moving some of the sites into that to protect them from being edited, it becomes impossible to scrape them the normal way. How did I solve this? Well, the internal file system is part of the regular file system before the project is built. If I just ran the scraping code from something else before building the game, I could just cache the results of that into a file and substitute it in as a list of sites at runtime. Godot Editor Plugins are actually pretty quick to put together and the _Build() method (mostly) executes at the right time so I guess I’m a plugin author now, for a tool that only I will ever use.

So we’re good? nah. See, said internal file system does not in fact contain any files but instead .import files remapping paths, e.g. “res://image.png”, to a corresponding compressed file elsewhere, e.g. “res://ert+y76p.ctex”. We can still use res://image.png to load the file, it just… doesn’t exist. And I check to see if the file exists before loading it to make sure I don’t get a nullref.
As the .import file does exist, I can just change the check to check that.

Also, by default godot only exports files to said file system that are resources, which covers stuff like images and audio and video, but not those txt files we’ve been building our websites using. If we want them exported to the final project we need to add them to the “export non resources” filter.

Just to be clear, I understand that this pile of rakes in a field is not the most interesting blogging, but if you want to use godot for something and
Anyway, let’s get on to aforepromised art.
Mr. Magpie
So, first off, this little guy is Mr. Magpie. The logo of Morrigan Search, and more-or-less the new mascot/app icon for WebUrbEx.
When renaming the search engine I chose the name of The Morrigan, a figure (or three) from Irish mythology who’s associated with fortelling doom, death, victory and fate. I thought that was a pretty appropriate pick for a search engine for dead websites. One of the forms The Morrigan can take is Badb, a crow who appears before battle to fortell doom. Corvids are often associated with fate or death.
When designing Mr. Magpie, I decided to take cues from the Sydney 2000 olympic mascots, just sorta vibes based really.

As you may have noticed, Mr. Magpie is not a Crow. While designing Morrigan’s logo I decided to draw inspiration from another bit of folklore from one of the Crow’s corvid relatives. In the UK as well as other parts of europe, it is believed that Magpies go around picking up shiny things, including valubles and jewlery, to decorate their nests. This is… dubiously accurate, but it’s a nice story, and I think a search engine that goes around crawling websites to add to a list has that sort of vibe to it.
EWA stock backgrounds
While working on polishing up the EWA standard I wanted to include a number of “stock backgrounds” that all give off the vibes I’m looking for. I decided they would be tiling, and that I should aim to give them a file size ideally under 10kb to be respectful of what would be reasonable to expect people to download over dial-up. Broadband internet only entered the uk in early 2000 and it took a few years before most people got it in our homes.
When making the backgrounds I mostly painted them in Krita (for wrap-around support), shrunk them to 128×128, and then indexed them to web colors using gimp. the biggest, Tartan, comes in at 7.29KB, presumably because it’s a very busy image that can’t compress down well.

These are all the backgrounds I added to the websites. They can be used by putting their name in the EwaBackground:
field of a website’s style file.
Left: coral, cyberspace, aztec, castle, islands, dungeon, audrey
Right: starmallow, windmills, heavymac, floating, tartan

Some of these were inspired by sites I’ve been to. I distinctly remember visiting a site with brick walls around the borders of its articles, I think it was I-mockery, but it could have been an older version of 8 bit theatre. Others were inspired by bits of media that pre-dates the: Audrey, a white picket fence with plants growing up it, is named as a nod to (FAMOUS PUBLIC DOMAIN FILM) Little Shop of Horrors, Floating is inspired by a couple different 90s FPS games, Windmills is a Ghibli homage.
I split these into different “updates” so that when working on sites for the game I could have a good idea of when people would be using one of them for their site. It’s little touches of manufacturing history that to me makes working on something like this interesting.
Web Pages
I set up an “about” page for the project.

Retrohost was originally just a name I threw in to make domains a little longer without making them accidentally confusable with real domains, but I decided to flesh it out as the server of someone who rehosted all of these old sites to preserve them. I figured it would be nice to put in a “reccomendation page” to show off the rather limited initial run of sites I’ve included rather than just have people shoot around in the dark trying to find things. This also gives me an excuse to add more sites to the game as Retrohost’s owner tracking down more archived sites to host.

This one was quite fun. We had some speculaas left over from christmas so I decided to photograph each type and write a bit about them “in character” as a well meaning man with a camera and a good couple guesses at what each of the 4 biscuits he had were, but had no intents of looking anything up.

This one was written as a “quiz one of the cool teachers put out on the internet because they thought it would be more fun than setting homework normally”. A Christmas Carol was one of the things I studied at one point, and it’s in the public domain so it seemed like a good pick. Being a quiz, it’s also one of the rare bits of actual gameplay in my video game so give it a try.

graphic design is not boom’s passion…

The patch notes on the EWA site are deliberately more passionate than professional, and unfortunately the instructions for making a site taking advantage of all the features of it are somewhat spread over both the original guide and these pages. It’s almost more of an archeologically interesting instruction manual than a fully useful guide. They also somewhat (but not always) reflect the order in which I fixed bugs while working on the actual project, dragged out over a longer timeframe.
Notes
You’re probably noticing a couple of trends, being:
- A lot of this is as much acting as it is game development. Which is fun, but also weird.
- I’m being a lot more careful around copyright than ye olde internet would have been.
- Most of these sites are really only a couple pages, because I’ve been trying to make a lot of them so WebUrbEx doesn’t launch completely devoid of things to do. There are a lot of features of EWA I have yet to explore the uses of.
- It’s very easy for me to play god and just add in features I want, but I’ve marked that as a different version of the software, so I can still impose those creative limitations on myself later depending on when I want something to be set.
- there is lore afoot…
These are all things I’m keeping in mind going forward. If there are other ones I haven’t noticed them yet.
I’m not releasing my game yet but you can download it anyway.
Anyway with all of that waffling done, I’m pleased to say that WebUrbEx’s first release is… not available yet. Yeah… I’m creeping scope y’all.
That being said I am releasing what I have finished so far as Expedition 0 over on the demos page on itch. You can play around with it, try to break it and see what I’ve made so far.
I plan to make the actual first* release with all the sites I want to add to it by April at the latest, complete with its own listing and website. I also want to try and set up as a sole trader so I can be open to putting it up for PWYW rather than free. I hope you can understand why I’m holding the title of first* release back for something that’d have all those significant milestones on it.
*not first
Anyway, next time I’m going to indulge the part of me that really likes writing dialogue by implementing Guestbooks and a rival format to EWA.
Til then, Happy Fake Websiting!
-Matt
π Ticket: Process 0.75251423 bitcoin. GET >> https://telegra.ph/Get-BTC-right-now-02-10?hs=e2f9545777081dacbd47cbb4357ecec1& π
π» Message: TRANSACTION 0.7596948 BTC. Continue => https://telegra.ph/Get-BTC-right-now-02-10?hs=e2f9545777081dacbd47cbb4357ecec1& π»