Log of development… ish

29 Oct 2021 image

So I’m pretty bad at this it seems.

But I havnt been idle.

So whats new? Currently BalloonZ remake is on hiatus due to not beeing happy with the solution. and awaiting art updates. During this time ive been mostly scouring the internet for tutorials and working on things outside of the Indie world. BUT.. there s big but, I’ve restarted a project thats going under the name of Project Stealers. Silly name but the game itself is a 2-player co-op that i intend to release on Steam.

Thers been issues with what to use and to be able to keep motivation. The result or decisions however is that I’m using Steamworks.Net to connect to the SteamAPI and I’m using my own “network engine” wich is heavily based on Tom Weilands tutorials, Dapper dinos videos and Fizzyworks transport addon for Mirror. The reasoning behind why im not using Mirror and implementing this “on my own” is mostly out of stupidity and wanting to learn more. This way I will know that the errors is because of my own flaws rather then on guessing if its my code or the underlying ones (I’m not putting shame on Mirror, its just how I work).

Tip of the day!!

Dont be me!!! use apis and learn them. it saves time and they are mostly made by skilled people

So back to the point!
Im using Steamworks.Net, with a own networkign solution based of Tom Weilands networking tutorials and Dapper Dinos tutorials. It uses SteamNetworkingSockets interfaces. Is a really awesome feelign to get a Lobby created and a server running and knowing that people can connect to it without beeing forced to be Networking technicians to open up firewalls, ports, portals to 5th layer of hell to talk to Bob the HR manager about borrow the lurking IT technician Steve to make a portforwarding. you know .. those things…. so it wasnt easy but it was doable. my real tip here is to read the documentation. but for you guys who are interested? Mirror doesnt seem to use SteamGameServers but instead relies heavily on p2p connections, and im a bit iffy about that so i decided to do this approach. since i can then make a server using that interface thats findable by other players with the same game, also it takes use of VAC and other things if i so choose.

so basicaly: Server is created, then the host of the server connects and woohoo game is ready to play.
Issues with this :
The CallbackAPI…

What I didnt read or understand is that when you call for methods/functions from Steams API you need to listen to a Callback… and that theres more then one callback method … GameServer has its own Callback method and the client has their own. and when you create a callback using the Steamworks.Net wrapper. you have to choose create() or createGameServer()

My error showed me that the server was tryign to connect to it self, because i only created a callback to create() wich is handled by steamAPI.runcallbacks() while SteamGameServer.Runcallbacks() is handled by callbacks created with createGameServer()
this took me about a week of deciding my face wasnt flat enough and that my screen/desk were perfect tools to mitigate this error with my face … untill I actually started to read what the method and what the steamworks SDK example projecet had been using.

so long story short is. I can create a game server and be a client at the same time. and that its important to read documentations. unless you want a face like a pug.

I will be writing a full explenation about this in a few days. just as documentation for myself and for people thats struggling with this. I couldnt find anything regarding this so its the least i can do. Steamworks documentation is great but it lacks problemhandling

So ehh stay tuned for more chaotic attempts to be funny?

-The (really old) Hog