<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">2013/5/31 Mathias Kraus <span dir="ltr"><<a href="mailto:k.hias@gmx.de" target="_blank">k.hias@gmx.de</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Am Mittwoch, 29. Mai 2013, 21:56:40 schrieb Nathan Sala:<br>
> Hello there gamers,<br>
<br>
Hi<br>
<div><br>
> We had a really great time playing Granatier today on the KDE stand for the<br>
> OpenSource solutions forum in Paris.<br>
> People also enjoyed watching us ;)<br>
<br>
</div>Nice to hear :)<br>
<div><br>
> It came an idea which is to implement the online mode.<br>
<br>
</div>I always wanted Granatier to be an online game, but I didn't find time to do it.<br>
Last year, I think, I saw a blog post from the telepathy guys. They had a proof of concept online version of battleship, but I don't know what happened with that.<br>
At that time it sounded reasonable to use telepathy to connect the player with each other. With telepathy we wouldn't need to care about such things like NAT and so on.<br>
<div><br></div></blockquote><div style>Yes that would be good. Can it help with NAT?<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
> As far as I know, there is no example of real time online gaming in kde<br>
> games?<br>
> </div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
> I see a common part which would be valid for any game:<br>
> - A client/server model with their specific interfaces.<br>
> - Network layer<br>
>   - A common messages header.<br>
>   - A TCP/UDP messages matching.<br>
>   - A messages synchronization based on sequence numbers.<br>
> - A later next step: textual description of the network messages and<br>
> automatic structs and classes generation at compile time.<br>
<br>
</div>It look like you have some experience with online gaming. It would be great if you could help with a common library.<br></blockquote><div> </div><div style>No. I have experience about networking performance and reliability, but not about game engines.</div>
<div style>As a first step I want to build a solid low level networking UDP/TCP layer which will handle clients/server synchronization.</div><div style>But then I need to find a good generic algorithm and therefore a  protocol.</div>
<div style><br></div><div style>The best idea I have until now would be like:</div><div style>- User inputs are sent to the server and redistributed to all the clients.</div><div style>- Every XX milliseconds, the server sends the full current state of the game to all the clients.</div>
<div style>  <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br>
> And then Granatier as a POC:<br>
> - Modification of the game engine to fully support the client/server model<br>
> with 2 types of clients: local and remote.<br>
> - Some UI work about creating/joining games and so on.<br>
<br>
</div>I already did some proof of concept work in a scratch repo to try to separate the game engine from the visual representation, but didn't get too far.<br>
It's a big task, the codebase is about 8000 lines of code, but it is doable if there are several people working on it.<br></blockquote><div><br></div><div style>What a good new. That's what we need!</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
Hias<br>
<div><div><br>
> This is just a first thought, so any comment is greatly welcome<br>
><br>
> Regards,<br>
> Nathan<br>
</div></div></blockquote></div><br></div></div>