network connectivity and organisation
Great success! I have a client and server connection! I mean, for some reason it says there are two clients connected and I know there is only one, but baby steps. I’ll fix that later.
I’m particularly excited because this is working on my desktop, something that with the previous networking implementation, did not happen. I spent a good long while tearing my hair out, Googling, searching community forums, and documentation to work out why my client and server wouldn’t connect on localhost. It wasn’t until I ran on my laptop that I found my code was fine.
I’m now fairly sure it is the fault of my Bigfoot Killer Networks LAN chip on my motherboard - this popped up as a problem trying to play an online game, and a swift netsh winsock reset dumps the LSPs and allows connectivity. Of course it might be that the new networking system in Unity 5 fixed something else that made it work on my desktop... but probably not.
So I have networking. Next step is implementing messages to track player death.
But a quick note on Unity Client/Server setup. This new “UNet” offers a High Level API to facilitate simple game client/host setups, for example if your game was multiplayer and no hosts were found, your client would make itself a host.
Neat, but not at all what I wanted. And if like me you want a dedicated server and clients incapable of turning themselves into hosts, you probably want to look at this section of the documentation: http://docs.unity3d.com/Manual/UNetClientServer.html
Yep, it has both client and server functionality in the one class, but it’s easy enough to parcel out into separate applications. Okay? Okay.
The next bit might be a bit boring, but like SVN, setting up some kind of project plan is mandatory for you to know what you’re doing. So I signed up to Trello.
Sneak peek at some upcoming features!
Trello is used a lot by agile projects, and makes it pretty easy to type up tasks, and drag them around into various columns as you work through. It’s also good because if you’re working and something fires off a mental note to do something else, add new functionality, whatever, it’s really easy to type up a card and throw it in your backlog straight away so you don’t forget.
You can also assign verbose descriptions, and checklists, and assign people to tasks if you’re working in a team. I like it.
I already have a design document, so I know what to do, at high level, and sure, I could work from that doc directly, but this makes it a lot easier to break down all those high level tasks into things that are more manageable, and track what I’m working on and see where I’m at; I can’t help feeling (like with version control) that these “boring” bits will save you a lot of time and hassle later on.
Finally, something I’m going to start doing, for ease of traceability, is keep a running tally of development hours spent since I started this blog, and estimating an additional 50 hours of work prior.
Hours So Far: 56









