<- Previous Log | Select Different Log | Next Log -> |
Log from 2016-07-11: Jul 11 01:41:11 2016 <Lucifer_arma> Z-Man: random question: How easy would it be to factor out all of arma's network-specific code and generalize it for "any" game to use? Jul 11 01:41:43 2016 <Lucifer_arma> I'm curious because my son wants to write one of those really nerdy bridge simulators, since we're having trouble getting any of them to work (except quintet, which seems to be focused on combat) Jul 11 01:42:30 2016 <Lucifer_arma> and every time I look at network libraries, particularly in python where there are so few, they don't handle the basics that I don't want to deal with, like joining a server/authentication, pinging clients, etc. Jul 11 01:42:38 2016 <Lucifer_arma> You know, all the bookkeeping. Jul 11 01:43:20 2016 <Lucifer_arma> I doubt that arma's would be easy to generalize, I'm just curious how hard it would actually be. Sort of a way to get an idea how hard it'll be to write from scratch all that stuff. Jul 11 01:43:44 2016 <Lucifer_arma> and also more than a little annoyed that there's no existing library that handles that (don't get me started with Twisted, either) Jul 11 01:52:35 2016 <Lucifer_arma> Also, a more specific question, when you receive a datagram, how do you figure out which protocol buffer class to use to unserialize it? Is there a helper class for that, or did you have to write your own code for it? Jul 11 01:52:55 2016 * Lucifer_arma considers looking at the source, heh. Jul 11 07:15:23 2016 * ct|kyle (~kyle@184.18.134.169) has joined #armagetron Jul 11 10:43:19 2016 * dlh has quit (Ping timeout: 250 seconds) Jul 11 10:45:03 2016 * dlh (~dlh@unaffiliated/dlh) has joined #armagetron Jul 11 12:01:57 2016 * G5 (~g5@p2003006A6A7BA2006CF2A7F0B0C1CDBA.dip0.t-ipconnect.de) has joined #armagetron Jul 11 15:59:34 2016 * Long_Shoota has quit (Quit: One tough cookie since '05) Jul 11 16:19:56 2016 <ljrbot> New news from bzr: [0.2.8-armagetronad-work] r1463 Cleaning up fix so the current code looks better. || [0.2.8-armagetronad-work] r1462 Applying minimal fix attempt to GCC 6 compilation. Disabling... Jul 11 16:21:43 2016 <Lucifer_arma> Z-Man: ok, now I'm really stumped, heh. Looking for where you decode net messages, and not finding it. Jul 11 16:22:22 2016 <Lucifer_arma> I found someone saying to encapsulate all messages as members of a gigantic class and that'll make protobuf do all the sorting/parsing and stuff for me Jul 11 16:23:11 2016 <Lucifer_arma> on the other hand, I can go through all the work needed to create a lookup table and just make the first 2 bytes of every message a unique id for the message type, which is what I did when I was parsing by hand Jul 11 16:26:50 2016 * nelg-bot (~nelg-bot@unaffiliated/amaroknelg/bot/nelg-bot) has joined #armagetron Jul 11 17:03:52 2016 <wrtlprnft> Lucifer_arma: as dar as i remember, you instantiate a global object for each kind of message. That object's constructor takes a message ID and a callback and registers this information in some global array Jul 11 17:05:50 2016 <wrtlprnft> So there's no central place in the code where all the mesdage IDs and handlers are listed, but the IDs are still assigned manually (I guess the game will complain if you try to register the same ID multiple times) Jul 11 17:06:28 2016 <wrtlprnft> But all this information is from before the protobuf migration, not sure how that changed things Jul 11 17:09:14 2016 * Long_Shoota (~LS@cpc76140-clif11-2-0-cust43.12-4.cable.virginm.net) has joined #armagetron Jul 11 17:11:28 2016 * G5 has quit () Jul 11 17:37:03 2016 <Lucifer_arma> wrtlprnft: the protobuf migration shouldn't change things at all, especially since the protobuf migration is backwards-compatible for the most part, without just switching to the old code (i.e. the older protocols are still encoded/decoded with protobuf) Jul 11 17:37:47 2016 <Lucifer_arma> so you're basically talking about a lookup table, where I'd register all the IDs for each message type, and when I receive a message, I have to manually unpack the first couple of bytes or so to find out what message type it is Jul 11 17:38:02 2016 <Lucifer_arma> then get a protobuf object and have it do the decoding Jul 11 17:38:52 2016 <Lucifer_arma> I mean, get the correct protobuf object and have it do the decoding Jul 11 17:40:25 2016 <Lucifer_arma> In case you're curious, I'm working on a python game network library that'll handle all the bookkeeping involved in keeping clients connected. Essentially, what I was complaining about nobody having done yet. Jul 11 17:40:53 2016 <Lucifer_arma> I've got a game my son wants to work on when this library is functional enough, but there's very little he can do until then Jul 11 21:02:23 2016 * zmanuel (~Z-Man@p54A1FD02.dip0.t-ipconnect.de) has joined #armagetron Jul 11 21:02:23 2016 * Z-Man is now known as Guest91605 Jul 11 21:02:23 2016 * Guest91605 has quit (Killed (morgan.freenode.net (Nickname regained by services))) Jul 11 21:02:24 2016 * zmanuel is now known as Z-Man Jul 11 21:40:43 2016 * luke-jr has quit (Read error: Connection reset by peer) Jul 11 22:00:24 2016 * zmanuel (~Z-Man@p4FC16BEE.dip0.t-ipconnect.de) has joined #armagetron Jul 11 22:00:24 2016 * Z-Man has quit (Killed (sinisalo.freenode.net (Nickname regained by services))) Jul 11 22:00:24 2016 * zmanuel is now known as Z-Man Jul 11 22:37:37 2016 * ct|kyle has quit (Remote host closed the connection)View entire month