Networking in Construct

This forum is currently in read-only mode.
  • As you know, about a year ago I put out a Python networking tutorial using Podsixnet. Seems to have gotten a fair bit of use as its had about 1000 downloads, but I've never seen a networking game besides the demo ones I've posted. Not sure if people found the topic too hard, don't want to use Python, or not really doing networking.

    I thought somebody was working on a plugin, but that seems to have fallen through from what I can tell. Thus this poll!

    Want to gauge the interest of the community on if they want/would even use a Networking plugin. If I did write one it would probably be a simple one..and at least initially only be an equivalent of what Podsixnet can do (except I'd use UDP). Also, for you plugin/Construct developers out there....how hard would it be to add Sprite indexing (i.e. Player[1].speed) to a plugin (I think it is mandatory for multiplayer, unless you can think of another way). I want to be able to Control players like in the Dungeon escape tutorial which required Sprite indexing.

  • Voted option 2, but I've never been too into multiplayer stuff so I'm not the best person to ask. I know there is a desire for it though, and it would definitely be a welcome addition that should have been made long ago.

  • Arsonide has been talking in chat about how he's been finishing up David's online plugin (when he's not busy working on his multitudes of other plugins). It sounds mostly complete. You join log on and chat it up with him.

  • I'm in chat..but nobody else seems to be there.

  • would be fun but i don't know shit about multiplayer programing

  • Also, for you plugin/Construct developers out there....how hard would it be to add Sprite indexing (i.e. Player[1].speed) to a plugin (I think it is mandatory for multiplayer, unless you can think of another way).

    it would be easier and more flexible to make a 'For Each Player' looping condition that would allow you to autopick everything related to that player at each loop iteration, and an expression as well if you needed it like

    networking.currentplayer (the loop index)

    if for some reason you wanted to access players randomly outside of that loop for other purposes, you could just do something in your cap like

    For Each Player

    ----PlayerSprite pv PlayerNumber= networking.currentplayer

    then use that playernumber pv to help you pick it in unique circumstances that involve more than one player at a time.

    I voted for the basic online thing I would use. I think it should be made as flexible as possible, that way you can find your own way of making dead reckoning, and you can try (in your cap)optimizing differently for a chess game or an action game, etc. Maybe even a few expressions in there to help you figure out when you're trying to push through too much information. As far as the online plugin davo was halfway done with, it did indeed sound almost finished last time I talked to arsonide, but it also sounded like he is insanely busy, and that it's kinda like a pet project on the side of his other 18 plugins he's working on, so plug away if you would. and also, don't hesitate to ask ashley for svn permissions, and see if you could just build off of davo's if you'd like to try that. Even without getting the svn permissions, though, you can still browse the code, and download it, and see if it's something you'd like to work off. you just couldn't commit your changes to be in the next official version.

  • I'd love to see a networking plugin made , it doesn't need to have all the advanced features to be useful, but I guess some basic dead reckoning would be handy someday

  • I had a good chat with Arsonide last night. Davo's plugin that he is finishing sounds very impressive. It should support fast shooter type games and have lag compensation ,etc. Everybody that wants to make an online shooter should definitely check his out when it arrives.

    I'm planning on just making something really simple (no lag handling) more to keep my skills from getting rusty and I would like to see a simple plugin. I'll start with something super basic and then work from there.

  • Sounds cool to me-- I voted for the basic one-- but I don't know... would basic updating of positions be enough to make-- for instance-- a multiplayer mario game?

    A plugin that can do that, and that is no harder to learn than perhaps the entirety of Construct itself would, I think, be taken advantage of by a lot of people, and yield some pretty amazing stuff!

    Also, does anyone know the status of what networking will be like in Construct 2? I don't pay much attention to its development since its still so early on.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I wasn't ready to announce that I was working on it, but I guess now is as good of a time as any...seeing as davo's code is plastered all over my wall in various notebook pages randomly tacked and covered in sticky notes.

    davo was pretty far along with his Online plugin. I ran through the source and it already has basic functionality. Honestly I think the community would like it as is, but davo obviously didn't feel that it was ready yet, so out of respect for him and his work I'm going to patch up a few features he was working on before I release it. Right now it works great over a LAN but I plan on including lag compensation features as well.

    It is based on Raknet - and I have spoken to Rakkar about what licensing issues that might entail. Basically, you can use the plugin as much as you want, but if you plan on releasing a major project to the public, you have to go to Raknet's site and accept the independent developer's license - which you do by downloading Raknet. You don't need Raknet to use the plugin, so after that you can delete it. You just have to make sure to accept their license. Raknet was davo's choice, not mine - but it was a good choice. Raknet is very feature rich.

    Their license is free, up until you make $50,000, after which you pay royalties. If you're making $50,000 on a Construct game, I don't think you'll mind. The license also stipulates that you mention Raknet in any readme files, splash screens, or credit screens.

    I have no idea how long it will take to reach a releasable state with this - I'm pretty sure I understand what needs to be added and how to add it, but it will take time. I have about four other plugins I'm working on as well as a day job. Luckily I don't have a life though, so development in my off time will be intense. I wouldn't expect it to take more than a month or two.

  • ould basic updating of positions be enough to make-- for instance-- a multiplayer mario game?

    Probably not without a lot more work. You would want Arsonides plugin for this otherwise you would have to handle alot of work yourself in the .cap. I think mine will be a simple one for non-action games, at least at first. If Arsonides only take a month or two he might actually beat me out!

  • I wasn't ready to announce that I was working on it, but I guess now is as good of a time as any...

    Err... whoops. Sorry about that!

  • Awesome, I always wanted a network plugin.

    The only features I'd like aside from basic data sending is built-in capability to detect players that join, leave (and time out) from the game session. Some sort of way to host games for others to join, and preferably some way to handle a case where the host itself disconnects/exits the game, auto-assigning another player to be the host.

    That, and the ability to send data using TCP or UDP, depending on whether you need TCP reliability or UDP performance.

    I'm not really sure why you need "sprite indexing". Each player should have a unique ID generated by the network plugin, however. This way you could assign an ID to each player's object and reference that when you receive some data update from that player. That's how I did it in MMF with their Moo and DirectPlay network plugins, if I remember correctly...

  • Players already have IDs, Raknet uses UDP I believe, and everything in that first paragraph is already in except for the host leaving thing. If the host leaves, the server dies.

  • voted in the last option.. i'm currencly working on a online project but because i'm very noob at python it taking slow steps... i'm learning python day by day.. but some things i really can't get to work..

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)