• Register

Cycles3D is a game where you pilot a futuristic motorcycle that creates large walls around other motorcycles to force them to crash into your wall.

Post news Report RSS Cycles3D Networking Taking Shape

While the user interface and game play are still very unpolished, Cycles3D isn't very far away from being playable over the internet!

Posted by on

Now that the holidays are over, I'm back on game development. One of the cited goals for Cycles3D is to learn about Unity game engine networking, and in the past maybe six hours worth of actual work spread out over a couple days, I've learned quite a bit. As it stands now, Cycles3D supports:

  • Hosting a server
  • Having a player join a game in progress but wait until the next round to play
  • The server can gracefully handle players leaving, and new ones coming in
  • All players get player lists
  • All players have their own cycles instantiated after the level is loaded

But the part I like the most is this:

  • All the network management above the Unity layer is handled in a component that can be used in any game. All in-game commands are fed to this component even in single player games to hide the abstraction of being in a network game from the player.

So for instance, if I command the cycle to turn left, the script that takes in keyboard input calls "InputDirector.SendCommand("OnTurnLeft", my_cycle)". The InputDirector component will look at whether the player is the server, or a client, or playing alone, and decide the right action.

The next step is to make sure state synchronization is working; although the walls are 90 degrees now, I'm thinking about all the demands that will eventually be made to have smooth turning and even turning wall casting on and off. Then I need to test wall instantiation, and finally making it so only the server can decide who crashes before I meet my next milestone.

Here are some boring screens of my progress:


Image 1: A network game in progress from the server's POV. The cycle in the picture is that of the client; the selected item way in the back is the server's cycle.


Image 2: The host game screen. Behold its rugged developer-friendly glory!

I will make another post once I hit that next milestone!

Oh by the way, since this is the first news posting, some of you may not know that Cycles3D was a light cycle clone programmed over a decade ago, but has remained popular to this day. I finally decided to take it under Gamieon's wing with the intent to learn more about Unity, release the game for free, and to hopefully hand development over to someone else so I can focus on my four other projects. Here's some video of the single player game play:


Follow Gamieon and see my other games!

Post comment Comments
itchyeye3
itchyeye3 - - 12 comments

this is amazing work! keeps it up!

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: