64K RAM SYSTEM 38911 BYTES OF STUFF I MADE

Intergalactic Intern (originally Space Station Mayhem) was the game i had coded for the game development module of my 3rd year at uni, which was a group project consisting of both artists and coding students. 

The game is a VR experience, the main game being the map and resource management, with the side minigames to distract the player from what they should be doing.

I had pretty much coded everything but the map game, however my main focus was on the 6 minigames. 

These minigames were as follows:

A simon says style game, watch the sequence and repeat it back at the end, originally this was just colors, it would take the material assigned to the button and use that on the "screen" so we could have used any texture.

I also wrote it in a way that would allow the others to add as many simon buttons as they wanted, however we ended up with just 4.

Towards the end of development we changed it to also use a letter to provide better accessibility to color blind people.

The pipe game was a VR implementation of the classic "Pipe dream", the player could spawn in a selection of pipe pieces that would fit onto a board like a puzzle, they would need to connect a start to the end point. This is a grey boxed version showing the flowing logic:

The first version of the pipe game board and pieces for testing.
The first version of the pipe game board and pieces for testing.
The pipe game grid with placed pieces.
The pipe game grid with placed pieces.

I created an array that would contain the "pipe holders", when the flow was started it would check if that index had a pipe attached, if so it would check the entry and exit indexes to make sure that it was flowing into the next piece.

One of the final parts was to make the draw that the game sits on work use a button press instead of pulling the draw out (which caused a lot of user experience problems...), after waiting weeks for the coder who did the draw in the first place to fix this i stepped in and used a timeline to make a smooth movement transition for it.

Draw using the button to show/hide it.

The wire game was started by one of the others in the group, however that was a static cylinder path. I took over this and changed it to use a randomly generated spline mesh for the player to move around, you can see some really early generated ones here:

The original concept by the other group member.
The original concept by the other group member.
Early version i made with the spline mesh generation.
Early version i made with the spline mesh generation.
 Another random spline mesh generated.
 Another random spline mesh generated.

I had written this in a way that anyone could just set the values and generate an X by Y grid with Z "points of interest", where the spline would pick a new coordinate to move to, sadly the group decided they wanted to fit it into the smallest space possible so you only got the following..

One of the final versions of the wire game.
One of the final versions of the wire game.

The biggest problem with this game was how unreals physics work in VR, because once a player picks up an object unreal will no longer simulate the physics for it and you cannot use hit events.

I got around this by having a duplicate of the ring which just had a collider on it, and check if this overlapped with the wire, if so it would trigger the wire touch.

A little bonus but you can see the original version of this game in this video i had recorded whilst showing the broken hand models in engine.

The gas tank minigame was a two parter, it had a gas tank and a tape dispenser. The gas tank would randomly spawn X amount of ruptures around the tank (these were randomly placed around the body of the tank using some code).

The player would need to hit the tape dispense button, and tape up the ruptures before too much time had passed and more ruptures spawned/tape was blown off of the existing ones.

A later version of the gas tank, trying to fit the artists new tape dispenser into place...
A later version of the gas tank, trying to fit the artists new tape dispenser into place...

The repair gun added a nice gun type experience to the game, the windows would crack and the player needs to spawn in an ammo (we never came up with a better solution in the time), they need to breach the gun, load the ammo, close it and fire at the window.

This one i enjoyed coding the most as it had so many small parts even though its a fairly simple concept. I got some early footage of this here:

An early build of the gun mechanics.

The cracks were are predetermined locations on the window, and we had a major problem the artists never managed to solve in that decals do not work on translucent materials.

I had to add a quick fix in that would swap the window material on the game start, the "in lore" reason being some kind of window shield turning on.

Panel repair was originally going to be a motherboard soldering/placing parts minigame, but with it being the last i was running out of time, being a panel repair with the soldering still worked you though.

Early version of the panel repair game.

The game had 3 parts, the panel, the blow torch and the solder rod. The board would randomly generate a spline mesh from 1 side to another side, and the player would have to slowly move the solder rod and blow torch along the path to weld it.

With all games in it was tweaking, bug fixing and testing, but just before the final hand in and expo date i also managed to get in a drawing pad, it doesn't work as nicely as i would like (if we had managed to get the physics to stop objects passing through each other it would have been nicer) but it was still a fun addition.

The drawing pad with multiple color options.
The drawing pad with multiple color options.

Along with the above i also wrote the animation blueprint/state machine so that i could add an animation enum name to the grab component that would allow anyone to set which hand animation should be used when the item is held.

I also added options to set which socket the item should snap to when picked up, and extended unreals grab component to account for a few different factors, one being the ability to set a cooldown after an item had been dropped because the player could grab it again, this was mainly to fix an issue with the vive controllers.

You can see some unedited gameplay from the project here, art by the artists, voice provided by one of the other coders:

We also had to provide a trailer and poster for our game, i didn't have much to do with these one of the artists created these but i've included it for completeness:

The trailer
The poster
The poster
Tech Used
  • Blender
  • SteamVR
  • OpenXR
  • VR
Info

Date Written:
06/2023