Mixed reality online multiplayer board game simulator in Unity 3D

Together with a teammate, I created a multiplayer MR experience in which you can play Chess and Go. This was for the module “Windows App development” Used for this project was Unity3D, MRTK and PUN2. Check out the description and code on the GitHub repository.

The project was made to work on an Augmented Reality device such as the Microsoft HoloLens and Virtual Reality Headsets such as the HP Reverb. The idea was that two players could connect with either platform and play with each other. Initially there were plans to integrate the table recognition of the MRTK for the AR devices, but that was scrapped due to time constraints.

In the end, project had the following features:

  • peer to peer Online Multiplayer
  • AR and VR support
  • Builtin Chess and Go modes (no rules, just board and figures)
  • import of custom games with board texture, 3d models, snap positions, etc.
  • control with hand gestures for AR (Hololens)

Gamejam: I Am Dice

My very first gamejam game made. Also my first actual completed project with the Unity3d engine.

This is a simple 3D collectathon platformer in which you have to collect all the dice “dots” to win. What happens when you find them all?

I worked on this in a team of four and we submitted it to the “GMTK Game Jam 2022“.

This was a rated gamejam and we placed as followed out of 6049 entries:

CriteriaRankScoreRaw Score
Enjoyment#8393.3813.381
Presentation#9693.6673.667
Overall#15203.2223.222
Creativity#33942.6192.619

Link to the game: https://steffen-winternheimer.itch.io/iamdice
Link to the GitHub repo: https://github.com/MisterIXI/i-am-dice

Dodge-Box – a learning/university project

Dodge-box is a university project for the module “Software Engineering” in which we were supposed to do some sort of programm in a group with version control. We, as a group of three, decided to do my go-to learning project “Dodgesquare” in javafx.

We didn’t have all too much time, so the project ended up pretty crude, but it works and we got a good grade.

GitHub repo: https://github.com/MisterIXI/dodge-box

Dodgeblock

 

In Order to learn more about using the Unity3d engine, as well as programming C# scripts, I wanted to re-iterate the idea of my first game programmed in Pascal in Delphi. (To check out the post about that project click here) This game takes the basic ideas of my old game I just mentioned and adds expands on it further. The main difference is that through the 3D engine used all the objects can now move freely on the two axis of the game field, and additionally implement physic simulation into the mechanics. Through that the blocks can push each other around or have new types of movement (like the purple momentum based blocks).

You can download the game & files here:

First steps with a “LEGO Rock Raiders” inspired game

One Game I really enjoyed in my childhood was “LEGO Rock Raiders” and at some point I wanted to try myself on a game similar to it and see how far I could take it with my current knowledge.

A short explanation of the original game: it’s a strategy/building game in top down vision in which you indirectly control all your builders. While you can micromanage pretty much all actions it is one of those “queue your actions and let the builders decide who takes up which action” games.

Anyway, this project was my first go at pathfinding and made realize the complex math behind the different possibilites. After researching a few of them I decided to implement the A* and fully understand it before I moved on to start on the rest. After a lot of hours put into this I finally got a working prototype. You can see this here:

As you can see the little blobs can’t walk on water and try to avoid the gravel, since that makes them walk slower. I also made them split up when controlled together. But my biggest problem was that I couldn’t fully grasp the use of a dictionary for this implementation. And since this was supposed to be primarily a learning process I focused on the different topics lying below it.

I ended up doing other stuff and letting this project sit. Maybe I will revisit this at a later point when I have a better grasp of the more advanced basics needed for such use cases.