rtay.io/blog

Switch to dark mode

Meta is now offline

Hey!

Just making a quick post to say that I’m shutting down meta. It was an interesting experiment, and my training algorithm was certainly uniquely flawed, but after using it the other day and having it repeat slurs and bigotry back at me, I think it’s probably time to take it down.

Thanks everybody who tested and played around with meta.



Kahootz - Map Explorer

Hey everyone, now that I’ve finished exams I should be able to get back to making things for the next few months.

I’ve begun working on the very basics of a level loader and sort of map explorer for kahootz.club, which allows you to navigate the levels in a similar fashion to this noclip prototype I released about a year ago.

For this, I decided to use threejs’s GLTF support for the models. GLTF has a relatively small filesize and is ready to render, making it useful for web. Luckily for me, Blender recently added a .GLTF exporter.

However since I’m not familiar with the format and blender’s export behaviour I had some strange issues with textures not loading:

Screenshot of abstract kahootz level with white spheres instead of coloured spheres

I managed to resolve this by going through each mesh and removing all associations to textures not part of that mesh, which seems to have fixed it. I then loaded it into threejs and everything worked properly without issue.

I had to write a small amount of javascript so that backface culling would be enabled, and I was also able to import a couple of the other abstract levels I had extracted:

Computery looking scene with lots of colourful strips in the foreground and blue squares in the background Trippy hexagonal structure lined with colourful tiles

Unfortunately for now, all the levels are static and don’t have the usual animations that would accompany them in kahootz, due to my limited ability to extract animations with the 3d models. I’ll be looking into manually doing a lot of the animations in the future, but until then all the models and scenes will have to remain static.

I’ve added a simple select element to the html so you can switch between the scenes, and I’ll be working on a more detailed UI in the future to accompany this. Hopefully I can figure out a good way to be able to import different assets into the scenes and eventually add the ability to animate them.

You can see all these things added over at kahootz.club!

Have a play around with it and tell me what you think, more maps are coming soon.



Kahootz - Decompiling assets

One of the first things I noticed after installing Kahootz was that all the resource files are available in an open file structure, something really uncommon in modern applications. Usually assets are all compiled into much larger files which are dynamically extracted at runtime, but this program just has everything freely available in the Res folder:

File directory of the Kahootz3 installation folder and the Res subfolder

Inside each of the textures/Sounds/models folders are what you’d expect, but actually getting something usable out of this isn’t as easy as you’d expect.

This was developed over 10 years ago, when they presumably had different software standards and development environments, and as such I’m not actually familiar with any of the file types. After a bit of research here’s what I’ve discovered:

Type Potential use / description
.cst Director “Cast” file
.cxt Director “Cast” or “Object” file which is edit protected
.dxr Director “Movie” files that are non-editable
.ico Icon file that’s still somewhat common today
.ini Common configuration file type
.kb Keyboard script? Not sure; It’s in the “backgrounds” folder
.w3d Some sort of 3d model file used by Shockwave/Director
.wav Common audio format. I’m so happy I can just open these files as is

I think it’s probably clear by now that most of these files are relevant to “Director”, which refers to what was probably Macromedia Director at the time. Director was obtained by Adobe in 2005 and reached End Of Life in 2012, and so it’s really hard to find support or even a copy of the program.

I honestly spent a while trying to find and install different versions of Shockwave and Director in order to open these files without success. It turns out somebody else had partially solved my problem though, and created a tool to convert Shockwave 3D World Files (w3d) into a more usable format.

To test this, I just chose a random environment model ‘ENVI_SewerageTunnel.w3d’, which corresponds to this sewer level in the game:

Sewer scene open in the kahootz 3 program

And running the ‘ENVI_SewerageTunnel.w3d’ file through the 3D converter tool got me this collection of very usable files:

File directory of models and images for the sewer scene

Which I can easily enough open in blender.

Sewer model open in blender

I love how they’ve used a cone for the sky. Also it’s really interesting how there’s a separate simpler mesh in the model for collisions, which defines where the camera is allowed to fly in the game.

Here’s some cool blender renders of the sewer with different lighting. I haven’t modified any of the models/textures at all here.

Light falling through the grate illuminating the sewer Sunrays hitting the floor and illumating the rest of the sewer chamber Candid shot of a flashlight in the sewer as seen from above ground

I have a lot of work ahead of me extracting all these models. I’m considering making them all openly available and explorable in the browser with three.js or something, assuming the publishers no longer care about their long-abandoned proprietary software.

Oh, and I’ll get around to kahootz.club soon, I’m very busy with uni right now :)



Movies

Lately I’ve been super into movies. It turns out there’s a lot of good movies I haven’t seen, and I’m always looking for some spare time to watch them.

Sometimes I’ll do movie nights with friends, and if we can’t manage to all travel to eachother’s houses we all voice chat and stream the film. It’s not perfect, but better than nothing.

Nobody else really understands this recent obsession, and to be honest I can’t figure out what it is I like about them so much. I’ve never been a television or movie person, and I can’t see myself getting into TV because all the storylines and character arcs and seasons upon seasons are too time consuming. At least with films you can complete the whole experience in a couple of hours.



Kahootz

Hey, long time no see!

Since at least June 2018, I have been searching for a working copy of this old software I used to use as a kid in primary school called Kahootz. It’s a sort of educational movie maker toolset with a bunch of included scenes, characters and objects you could put together to make stuff, which was really awesome as a kid. Kind of similar to 3D Movie Maker.

The only problem is, the program hasn’t been available since 2012, isn’t anywhere on the internet (since the name kahootz is now used by many other things), and it’s Australian and had a relatively niche interest group of a few schoolkids born between like 1995 and 2000. Not available on ebay, nor amazon, nor any bookstores. I even checked with my local primary school to see if they still had any copies laying around - nope!

However, I did manage to locate a single copy of Kahootz 3.1 Home Edition being held in a library somewhere ~2 hours away in a real rural town. I was lucky enough for my Dad to surprise me and pick it up one day. I got the disk out, loaded it into my laptop, and started to copy everything off to make a backup that I could use and share around.

My laptop managed to copy about 60% before it the progress bar just got stuck. Broken, confused, I stop the copying and take the disk out. It’s super scratched up, something I hadn’t noticed in my excited rush to get a copy of the game.

I try cleaning the disk to no avail, I try copying everything else, doesn’t seem to work. In the end I’m ultimately left with a useless CD that I have to return to the library, and half of the kahootz CD. I also get a few friends to look at the CD, but they have no more success than me, so I upload whatever files I recovered to the internet archive and pretty much forget about the whole thing.

Until the other week, when another friend came up to me and just casually mentioned he has a personal copy of Kahootz 2 that his mum bought him around 2007…

Screenshot of a church in Kahootz 2

I also put Kahootz 2 on the internet archive for anybody interested.

But something still isn’t right with me. This is Kahootz 2, not 3; it’s a much older version that doesn’t have a lot of the scenes and features I remember so vividly. I’m not completely satisfied so I go down another internet rabbit-hole trying to find a more recent version.

And lo and behold, those broken files I uploaded to the internet archive were what led me to success. One of the people who commented on my broken files had actually uploaded a working copy of Kahootz 3.

The much more detailed interface of Kahootz 3 showing a swimming pool scene

Success!

The kahootz project stuff will be on http://kahootz.club/ shortly.

I’ll post my adventures decompiling this and exploring the tool over the coming weeks, there’s some pretty interesting stuff in there. Plenty to come!



Virtual Community Museum!

I think I’m going to open a museum, but not like a normal museum. A digital museum dedicated to the art and creations of all the cool people I know.

I’m not exactly sure how to describe my plans, but essentially it’ll be sort of a walking-simulator-esque experience where I construct a virtual environment for people to put their arts. It will probably use three.js or unity or something for the engine.

Being able to place things around a 3D space gives them the ability to use more mediums, so they’re not limited to 2D. Three dimensional models can be placed around the environment, spatial audio and music can be integrated into the museum, and there’s still the means to include 2D media such as images and videos.


I’m hoping this whole experiment can inspire more people to create fun things.

If anybody wants to submit their own arts to the museum, feel free to send an email to: [email protected]


More updates coming soon!



two zero one eight

2018 is over.

Last year I got cancer, started this website, made some games but didn’t finish any, defeated cancer, posted 24 blog posts, listened to far too many podcasts and watched far too few films.

A bunch of politics happened and a lot of great people passed away, but we somehow made it to 2019.

We are the remaining survivors in an ever-changing world.


All 7.7 billion of us…


Fleshy, thoughtful blobs.

How delightful!


Here’s to 2019.



three.js

Hey everybody,

Sorry if I haven’t posted much lately. I haven’t been very productive, and I’m annoyed I don’t have more to show.

But I am working on stuff in the background, and I want to share it with you.

Lately I’ve been tinkering around with three.js, and coming up with some ideas for fun games or projects, or even just interesting ways to show content that would otherwise be limited to screenshots.

For example, I figured out how to embed 3D things into pages. Here’s a quantum gemerald being rendered real-time in your browser:



I've been busy, but busy is good

Hey everybody,

I’m finally getting back into the swing of things with work and study, and it feels good to actually have a schedule and productive activities to do. Although I’m not the biggest fan of routine, it has put me in a healthy mindset to see the world still spinning and people still living their day-to-day lives.

So while I don’t have much to show you at the moment, I can assure you that I still exist. I’m happy, surrounded by people whose company I enjoy, I have a lot on my plate at the moment, and it feels good.



Procedurally generated building interiors?

As a big fan of procedural generation, I feel like I don’t see enough procgen of indoor environments or building interiors. Sure, you’ll see dungeon generators just about everywhere, and plenty of terrain or landscape generation. Even city generation is fairly common, but I struggle to find examples of people procedurally generating building interiors.

Even when people do procedurally generate interiors, they don’t exactly feel natural. There’s something that separates a building layout designed by an architect or engineer from that of a procedural system.

I think I’m going to play around with some different techniques and see if I can figure out a good system.