Mining Mayhem - multiplayer platformer [devlog]

  • Yeeeaahhhh that's very nice!

    ~Sol

  • Thank you SoldjahBoy!

  • Some progress has been made this week - I have managed to create a save/import system that works on both NWjs and html5. That was quite difficult!! Now for a cup of tea....

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Slow but steady progress so far this week. Forgive my placeholder graphics - but you can now edit some of the layout contents, including light effects

  • This reminds me of many of my childhood favourites. Games like Minebombers, Liero, Molez and even cave flying classics like Wings, Auts and Kops (are you familiar with those?). Looks like a great fun!

    I am building multiplayer platformer myself too, so would be interesting to hear what strategy you used to make Multiplayer plugin work with Platformer behavior? I ended up with a little bit simplified version of what troublesum posted here:

  • apeisa - you listed some real classics there!

    I was also unable to get the platform behaviour to work with the multiplayer plugin, and I don't expect that bug to get fixed any time soon (ie not before and probably not soon after c3 is released) so I am using a version of the data-sync technique used in that example you linked to. It's quite a good and simple concept, and works well for my game so far. I'm trying to be smart with the amount of data that gets shared between players - limited to game-play data like positional and velocity info, tilemap changes, bullet spawn, etc. This data is all necessary, but I have elected to not share floats (only integer numbers), with each field of the data being placed into a Dictionary json for sharing (as array jsons within the dictionary json).

  • Colludium - especially the Minebombers comes to my mind from your game. That was absolutely fantastic hot seat game: https://fi.wikipedia.org/wiki/Mine_Bomb ... enshot.PNG

    Regarding multiplayer - pretty same here. I do use multiplayer native sync too, I have physics (bullets etc) going on and those are created on host only and synced to peers. Works very well. But what comes to peer inputs, there I use messages and broadcasting the inputs and then moving them with functions (same functions on peers and host) - then I do update positions on whenever player stops or lands (seems to be often enough to keep them well synced). It didn't work with input prediction at all.

  • Really nice game I can see this becoming really popular on steam.

  • Thanks KnivetonStudios

    OK - progress report for the week:

    Help! I am stuck in the following loop:

    While Dev Work is not finished: edit arrays, manage data storage, obfuscation techniques and custom image manipulation; test work and only if the player edit level is finished then: End Loop...[/code:2o32kss4]
    
    When will this end?!?
    
    Soon, I hope.  I give it another couple of weeks before I will have something tangible to report, but we're getting there (wherever 'there' is...).
  • Progress! Here's an example of importing a tilemap with a a user-created image/tileset. The import includes some lighting objects as well, all thrown in to test the data storage. I had to recreate the light effect system so that the player will see the exact same lighting effects in this edit mode as will be seen in the main game...

    Completed:

    Basic game-save and import logic

    Image generation and save system (but needs tweaking to remove artifacts in corner cases)

    Lots to do over the next couple of weeks, including:

    Password protection for data

    Data obfuscation system

    Import saved level into main game

    Long term objectives:

    Create a bespoke platform behaviour. Sounds crazy but the default platform behaviour is not truly framerate independent and it makes wall climb / wall jump / multiplayer just that much harder to work out. I don't want to spend the next 6 months creating my own behaviour, but if this goes to plan then I will use it and the multiplayer plugin to properly manage collision detection v latency. I'm going to run this in parallel to the main game dev, so I can swap between the two when I get bored, so it might come to nothing.... .

  • It's been a slow few weeks, with my real job demanding more of my time than I would like! I managed to steal away a few hours this weekend and have created a system for you to import an image of your favourite person into a patrolling enemy image. I'm going to encourage my kids to upload images of their teachers into the game - is that morally wrong?

    Completed:

    Game save with edit password

    Data obfuscation

    Some more user-definable visual effects

    Now working on:

    Bespoke platform behaviour (will be based on the patrolling routine demo'd above).

  • Colludium - this looks great man. So it seems like, as per you and apeisa, data sync seems to be the way to go? I spent some time looking through that example, seems like there might be a way to simplify all of that though. Are you sending json packets for bullets as well?

  • mudmask - thank you! Data-sync is the way to go, for sure. I created a method where each player 'owned' their own bullets, which were then copied to the other peers, so the player always felt that their game was tight. Seemed to work ok, but this project has sadly been shelved for the time being - I don't have time with work and so I've decided to learn JavaScript whenever I get the chance (either for c2 / c3 plugin fun, or perhaps Unity)!! I hope to pick this up at some time next year, although the big headache I was getting to was syncing all game objects between all players - a large world where each player could interact with many game objects was creating a bit of a headache (and required planning and commitment that I sadly don't have time for)...

  • Colludium - sorry to hear that, but man I feel you. I have a bunch of projects that I'm circling back around through from time to time, a lot of them I've had to hit pause on because life/work/family got a bit busier! Right now I'm messing with something that wouldn't be more than maybe 4 vs 4... so hopefully it won't get too complex!

    So hey... any other tips you'd want to share?

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