Oliver Nyholm
AI and Gameplay Programmer

BossBros



C# | Unity | Networking | Hobby Project


BossBros was my summer project 2018. I was inspired after a game session of PathFinder when discussing with a mate. It would be fun to have a game like World of Warcrafts dungeons, but instead of having to do the boring part of trash, there would only be bosses after bosses. Somewhat like The Game Bakers' Furi.

I had never coded networking before, but I was eager to try it. And as I was quite experienced with Unity and since Unity has lots of tutorials, I decided to use their engine. Unfortunately, Unity decided to deprecate their old uNet system and the project was halted. Also, lots of school... TGA...


Hover over spells to see description. Use spell 2 to leap to target.
Somehow, the loremaster died instantly due to
                    the sacrifice spell. Oops!

I started of with some capsules, but got quickly tired of it and asked Olof if he wanted to model something to me, and we agreed on creating gnomes. I always played gnomes in World of Warcraft. Master Race.

Unity's system was easy to start with, but having to use if-statements for isServer, isLocalPlayer and hasAuthority quickly became difficult to wrap my head around. I got to the point where I could have multiple clients connected to a host server, and they could heal each other and attack a "boss", that didn't do much but run towards the players and hit. I started of with a shockwave effect for the boss, but never finished it.

Now that Unity's current networking system is deprecated, I lost some motivation to continue on the project. It would be fun to try starting it from scratch again with my new knowledge, especially now that I have had the networking course in school. Unity is currently in alpha (April 2019) with their current networking system and there is very little documentation. Perhaps I would try Unreal Engine again and try networking there instead.

Below are two functions that the players' characters used to cast spells. There were a lot of if-statements to ensure that it was possible to spawn spells. Also when I started out with this project I wasn't too concerned about making it reliable against hackers. So I let the players, only myself (:(), do the if-checks if it was possible to spawn spells. Then I used Unity's Command system to spawn a spell on the server for all other clients, letting it do a final sanity check on whom the spell should be cast upon.