Quite a while ago I decided to introduce my daughter to the world of classic video games. Obviously, the best game to start with was the first video game whatsoever, Pong. However, the Pong implementations I found on the Google Play Store all had some design problems. So I started to implement my own version. The result, Coopong For Kids, is now available in the Play Store. The following article takes a closer look at the main game design decisions involved.Continue reading Coopong For Kids is online!
Recently I reached an important milestone for my game: I asked two friends to play it with me. As usual in this case I tried to fix as many of the remaining bugs I knew so that the app would run reasonably stable. And as it always happens when time is running out, I ran into a problem that totally puzzled me. All of a sudden my app showed a bluescreen (!) on two out of three Android devices – sometimes. Wasn’t that a Windows thing? Continue reading Android Bluescreen
Some problems are so intractable that you almost despair on them, like the one with the RPC error message that haunted me for two months. It was even more stubborn than the one I wrote about in my last post. Imagine you are working happily on your multiplayer game and out of nowhere you get an error that says “Found no behaviour for incoming ClientRPC …”. In this case, I really did not change anything in that part of the code and the error just popped up. Continue reading No Behaviour for Incoming RPC (UNet Pitfalls #2)
Unity’s UNet multiplayer networking layer is easy to use and a good solution for any project without special demands in this regard. However, doing my second project now with UNet, I repeatedly find some pitfalls which temporarily take the fun out of programming. This time, I wondered about some SyncVars not synchronizing correctly, until I found out that my problems had nothing to do with them. Instead, I discovered that the OnStartClient method of NetworkBehaviours is not always called in the same order with other callbacks such as Awake or Start.
Unity is a great tool for writing games, and especially so if you are just prototyping some new idea. However, Unity is not only great for games, but works for many other applications as well. Making plans for a new home, I’ve discovered that Unity, together with ProBuilder, is quite useful for sketching floorplans in 3D. The results are quite presentable and offer a first impression on how your future home might look like with your current plans. Continue reading Using ProBuilder for 3D Architectural Sketches
As promised in my August post I cleaned up the code for my relay server and uploaded a first version to GitHub under the name ConquestRelay. It is meant for hobby game developers prototyping their own online games, but still lacks a lot of functionality found in professional network layers.
As described in my previous post Unity makes it pretty hard for hobby developers to develop their own online games. It is impossible to run a game server created with Unity on an Amazon AWS instance due to the missing batchmode option. As a workaround I implemented a relay server for my current project which is based on WebSockets and allows me to run my own server at home, combined with the benefits of a server in the cloud with a fixed IP address.
For a few months now I’ve been fiddling about my own small multiplayer game using Unity. Basic versions of client and server are now in a state where you can play the first games, at least in my home network. But of course the goal is to play the game over the Internet, so I chose to host the server in the cloud of Amazon’s Web Services (AWS). Setting up your own server there is a separate chapter, which I will hopefully be able to tell later. It turned out that Unity and AWS don’t work together for amateurs like me. Continue reading Unity in batchmode: for Pros only