"A Space Pawdyssey" is an adventure in space, where you take control of Astra, a husky and commander of the crew which is sent out by PWSA to discover and claim new ressources. But along the way, there are suddenly
some issues with the equipment. It seems like you have to find a traitor among your team members.
The game takes you on a journey across planets, space battles and a space station. There you have to solve riddles, challenges and music games to get to your goal.
In this project, my core responsibilites were the development of the AI and the inventory and equipment system. Another part of my responsibilities was the integration of the spaceship and its systems
and a UI system for customization of graphic, audio and input settings.
The AI in the game had different requirements. One AI was designed for a car race. It was necessary for the AI to be driving physically and stay as much as possible inside the boundaries of the track. We also
wanted them to be able to drive different racing lines, do tackovers and avoid obstacles. To achieve this goal, I developed a system which allows a designer to create a track with data and design a variety of
different racing lines. The data approach allows the AI to be performant even for VR on a Meta Quest headset. It would also have been possible to create AI with different driving behaviours, but due to time
restrictions, the development had to end after the creation of an beginner challenge.
Another AI was designed for space combat, while chasing a target. For the "runner" AI was a system developed to create a network of paths on which it can travel along and dynamically pick new directions if necessary.
The "hunter" AI did not require a special system, as it only had to keep running after its target. But to be able to use the hunter against the player as well and make it visually more interesting, the AI could
get different degrees of agression which had influence on how much distance it kept to its target. How fast it reacted to velocity and direction changes. Or what the maximum velocity or maximum tracking distance
is. If desired, it would have been easy to extend the design by more sophisticated decisions to increase the versatiliy of application.
The third type of AI was using the equipment system to get access to weapons on the run and select the most effective combat distance and position based on environment queries. To keep them as an interesting encounter,
the intelligence for decisions like taking cover or movement was reduced by introducing delays to allow the player some opportunity time windows where he could outmanouvre them successfully. Another aspect to keep the
enemy appear more engaging was achieved by adding melee attacks if the target was too close and shooting might appear weird.
In addition to the AI behavior, I developed an inventory and equipment system which allows to add and remove items to targets. These items in turn can modify the targets visually as well as their attributes and abilities. The objects required for each item are split up, to enable an access for multiple users at the same time and improve workflow in interations and reduce down time. It also allows a more simplified way to creat variations of the same object or mutations by reusing and combining the existing modules.
The goal for the game was to make all vehicles move physically. This required to create a spaceship which uses booster and thruster to maneuver. At one point, we created a setup similar to how it is represented in "The Expanse" which had relative weak maneuvering booster for rotation. But if the ship wanted to stop, it was necessary to rotate against the current velocity and use the thruster. While this was possible to manage for AI on relative short distances, the player felt overwhelmed and it prevented a more established "airplane fighter" and agile playstyle. For this reason, it was decided to increase the power of booster to a point where it was possible to move quite agile and fast (for VR), but if big distances had to traversed the thruster would still be the better choice.
We wanted a menu which expands depending what level of depth the user is on. Another goal which should be achieved was to modify game settings (eg. graphics, audio) or rebind inputs. In the end, it was all achieved and it is even possible to put custom limitations on which keys can be assigned to certain bindings. But because of the current structure, the design still requires backend work if a major design change on the front end is made which should probably be improved upon in the future.
Role: | Developer |
Plattform: | Meta Quest 3 |
Engine: | Unreal Engine 5 |
Website: | Meta store |