Author Topic: Multiplayer in Axe?  (Read 7724 times)

0 Members and 1 Guest are viewing this topic.

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Multiplayer in Axe?
« Reply #15 on: November 17, 2011, 05:23:27 pm »
This game, made by Quigibo before he created Axe, demonstrates just how fun two player link play can be. <nostalgia> I remember playing this in Algebra II... </nostalgia>

http://www.ticalc.org/archives/files/fileinfo/423/42355.html

Offline Yeong

  • Not a bridge
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3739
  • Rating: +278/-12
  • Survivor of Apocalypse
    • View Profile
Re: Multiplayer in Axe?
« Reply #16 on: November 17, 2011, 07:20:37 pm »
This game, made by Quigibo before he created Axe, demonstrates just how fun two player link play can be. <nostalgia> I remember playing this in Algebra II... </nostalgia>

http://www.ticalc.org/archives/files/fileinfo/423/42355.html
OMG I missed that game so much :D
Sig wipe!

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Multiplayer in Axe?
« Reply #17 on: November 18, 2011, 05:43:23 am »
Fun fact: The link routine Axe uses was just copied over from that game and optimized slightly.

Like I always say, linking is easy, but syncing is hard.  Puyo Puyo runs fast because it only needs to send data when a particular "event" occurs (combos).  Event driven programming style is a little different than what you're used to but basically you put the Get() in your main loop so its always ready to receive an event.  Don't forget, Get() doesn't delay or wait unless the other calc is sending something.

You send data by first sending an enumerated event type (1 bytes) followed by the event data (which may be different length depending on the event).  For instance you might need to send a character's position.  This can be done by sending a "X change" event followed by the x coordinate whenever that coordinate changes and a "Y change" event followed by a y coordinate.  The actual transfer speed is about 500 bytes per second maybe.  If your main loop is running at 30fps and don't mind reducing to 20fps that's about 8 bytes per frame of data you can send which is probably enough for a decent subsets of multiplayer games.
« Last Edit: November 18, 2011, 05:45:01 am by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!