Posts

Kajam End and gaming session 0

Laguna • 4 years ago on Multiplayer Kajam 

Hi there Jammers!

The Deadline for the Kajam is approaching fast. Please submit your games until 2021-06-04 21:00 Berlin time.
Please add some instructions on how to set up your game for multiplayer session (e.g. which ports to forward (udp/tcp) of if specific config files need to be adjusted).

On 2021-06-05 we will have a dedicated gaming session where you are invited to join us in the Alakajam discord "general" voice channel to play all the submissions together. Of course you can also join if you did not participate in the Kajam. We will start at 18:00 Berlin time. Check this website for your local timezone.

So everyone: let's add the finishing touches to our games and then have a great time together. Looking forward to talk to all of you in person.

Client Side Prediction and network troubles 0

Laguna • 4 years ago on Multiplayer Kajam entry  Space Turtles

Hi there,

So there is finally some progress. Not so much on the gameplay side, but the underlying mechanics are getting fleshed out quite nicely.

As we are aiming for a SHMUP game, the client really needs to feel responsive. This will be achieved by some clever client side prediction. This will only roughly be described here. For a full introduction, I recommend you this awesome tutorial here.
Basically the server but also every client runs on it's own pace and a slow client should not block the server or other clients. This means that some sort of lock-step implementation will not work for us.
Due to network lag, the client will always be behind the server and there is basically nothing that could prevent it. The idea is that the client predicts the movement for a certain frame 60. Then it sends out the input state for this frame to the server. Simultaneously the gamestate for frame 55 has arrived (due to network lag this will always lag some frames behind).
The solution now is that the player locally stores the game state as well as the input state for the past frames.
The number of stored input frames as well as the framerate determines what input lags you can compensate.

If a mismatch between the locally computed frame 55 and the received frame 55 from the server is detected, the client code now needs to roll back its simulation to frame 55 and re-simulate the input up to frame 60. This will then be used to display the player position.

To simulate network trouble, you can use a tool like clumsy. This allows to add arbitrary lag, dropped packets, throttle, limited bandwidth or even message corruption to your in or outgoing network packets. It works for ipv4 and ipv6 and supports udp and tcp. This is very handy for testing purposes.

Progress! 2

maartene • 4 years ago on Multiplayer Kajam 

Progress!

After Game Center match making, I now have some interactivity: choose your ship's heading and thrust.

  • It's a lockstep setup with input delay (currently two steps). Only input is synchronized between clients;
  • Simulation updates every 0.1s (and waits if input doesn't come in);
  • The "physics simulation" should be deterministic if Double acts the same on all iPhones/iPads.

Improvements:

  • It's not a game yet: no win/lose condition;
  • When it comes to network: current implementation uses tcp/ip and sends input as JSON to other clients. This should probably be optimized;
  • There is no graceful end of game: only stop the process.

Project setup: Websockets and workflow 2

voxel • 4 years ago on Multiplayer Kajam 

My current plan is to use the haxe programming language to create my kajam entry. In theory I can write a single codebase that can be compiled down to a headless (no graphics) server to run in the cloud, while having that same code be able to produce the playable version of the game. In order to get multiplayer support in the browser, I'll also be using websockets.

But more importantly I want to be able to quickly iterate on my entry during my free time, so I've set out to automate as much of the build and deployment workflow as possible. Nothing fancy, just a makefile that builds the server, deploys it to the remote server and launches it. I can then launch the client on my local machine and see messages passing between the server and client, which seems like a pretty important precursor to a remote multiplayer game. Testing with a local server on your development machine is OK but bypasses a lot of the issues that can occur with a 'real' server out on the interweb.

The test was successful but revealed that terminating the server on the remote server left a zombie process sitting on port 8000, which means that attempting to run the server again would fail as the port was unavailable. This behaviour didn't occur when hosting the server locally, so there's some instant proof that it's worth testing on as realistic a setup as possible. Hooray.

I am in 0

Laguna • 4 years ago on Multiplayer Kajam entry  Space Turtles

So I am joining the Multiplayer Kajam.

Tools that will be used:

  • C++
  • My self-written Jam Template, based on SFML
  • Visual Studio & Visual Studio Code
  • Aseprite for graphics

We will join in a team of three

We started yesterday evening and already had some trouble with our ISPs. One was configured to use only IPv4, the other was configured for only IPv6 (with an ipv4 tunnel). We found a way around that, where the only restriction is that I cannot be the host, but we can work around that as local testing is still possible.

I wish everyone best of luck for the jam!

Entering the Multiplayer Kajam! 0

maartene • 4 years ago on Multiplayer Kajam 

So, I finally managed to get working:

  • Game Center Sign In in SwiftUI
  • Matchmaking
  • Start a match
  • Exchange data between clients (just some strings with random data for now).

This means I can start making a multiplayer game!

Because Game Center is strictly peer-to-peer out of the box, I'll try and implement a deterministic lockstep mechanism. Hopefully the Swift Decimal type is stable accross architectures.

The Multiplayer Kajam is live! 0

Laguna • 4 years ago on Multiplayer Kajam 

The Kajam is live! Let's work on some awesome multiplayer games!

The Kajam will run until 2021-06-04. On 2021-06-05 we will have a common gaming session in the Alakajam Discord. You can of course also join for the gaming session if you did not participate in this Kajam.

Tell your story

Are you working solo or in a team? Do you plan to work only on specific weekends or throughout the complete time of the jam? What are the tools you are using? It would also be awesome to hear about the issues you encounter during the Kajam and especially how you solve them? Are you using lockstep or some kind of interpolation?
And most importantly: What game are you making? Did you pick a round based gameplay? Some strategy or some fase paced action gameplay?

New to the jam?

Check out the original jam announcement here

A list of networking libraries & tutorials 0

Wan • 4 years ago on Multiplayer Kajam 

This is a living list, gathering links suggested by the community. Please share your recommendations in the comments section or Discord, I'll update this post accordingly. Thanks!

General purpose

Unity

C/C++

Multiplayer Kajam in May 2021 3

Laguna • 4 years ago on Multiplayer Kajam 

The Theme for this Kajam is “Remote Multiplayer”. This relaxed, month-long event will start on 2021-05-07 and last until 2021-06-04. There will be no ratings after the jam, but a dedicated gaming session on 2021-06-05.

Please find the keynote on YouTube and SoundCloud

What does “remote multiplayer” mean?


By definition multiplayer means that more than one person can play in the same game environment at the same time. Remote means that you can play together over some sort of network and that you don’t have to sit next to each other.

What might sound as a daunting endeavour, is the chance to start thinking about games you would normally not do on a GameJam. Most GameJam entries specialize on gameplay mechanics for one player or are dedicated couch multiplayer games.
However in the time of continuing lockdowns when you can not meet with your friends as you would normally do, multiplayer games are a great way to spend some time together.

This Kajam is all about multiplayer.
Let’s learn about the technical details of multiplayer games, like network protocols and client/server communication!
Let’s make a game that you would normally never try on any GameJam!
And most importantly: Let’s have some fun while creating and playing multiplayer games together!

What are the rules?

For this Kajam you can work solo or as a team.
You have four weeks to create and submit your entry, starting on Friday, 2021-05-07 and lasting until Saturday 2021-06-05.
Every Language, Framework or Engine is allowed.
You can use third party assets and are even allowed to add multiplayer functionality to an already finished game!

Detailed rules here

Now, start your engines and join this Kajam!

What is a Kajam?

Kajam competitions are month-long events in which people make a small video game focusing on a specific aspect of game development. They're a perfect opportunity to learn, experiment and level-up your gamedev skills!

This gaming session sounds great! How can I join?

Thank you! The gaming session will happen after the Kajam on Saturday 2021-06-05. We will meet online at the Alakajam! Discord server and have fun playing the games which were created during the jam and have a great time together.

Discover the results of the 11th Alakajam 2

Wan • 4 years ago on 11th Alakajam! 

It's official: the results for the 11th Alakajam! are out! You can find the results below.

Solo winners | Team winners | Unranked games

A huge THANK YOU to all of you who took the time to recreate their game page, and most of all to replay ratings (sometimes even comments) on the games you played. Thanks to our collective efforts, pretty much every ranked game having its page restored has managed to get ratings! The past few days have been a bit strange, but in the end the event could be completed normally which is the best outcome we could expect.

Well, other than, say, servers not burning to ashes :,-)

Final words on the lost data

If, for some reason, you've been away from Alakajam for the past 10 days and can't find your game/user account anymore, please check this page for context. Game submissions will remain open for the unranked division for a while, in case any of the users behind the dozen of games that weren't recovered decide to recreate their game page.

I hope to eventually make a postmortem of the past events as a blog post, with some advice to everyone on how to set up reliable backups that prevent the scenario we got.

Upcoming events

  • The 12th Alakajam! will take place on the 25-27 June 2021 week-end!
  • Before that, a new Kajam should be held as a less competitive, more relaxed event to practice gamedev. Details have yet to be announced.

Thanks for being part of the 11h Alakajam, we hope you had a nice time, and look forward to the 12th! See you soon <3