Skip to content
  • Rules
  • Recent
  • Tags
  • Popular
  • External Links
    • Download Mario Forever
    • Cloud Lounge Discord
    • Mario Forever Wiki
    • Chinese Mario Forever Forum
    • List of Mario Forever Fangames
    • Mario Forever File Archive
Collapse
Mario Forever Space - International Mario Forever Forum
  1. Home
  2. Mario Forever
  3. Klawiatura v1.1.0 - Mario Forever with Multiplayer

Klawiatura v1.1.0 - Mario Forever with Multiplayer

Scheduled Pinned Locked Moved Mario Forever
19 Posts 5 Posters 1.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • togginsT Offline
    togginsT Offline
    toggins
    wrote on last edited by toggins
    #1

    Source codes & release/dev builds:

    - GAME: https://github.com/toggins/Klawiatura/releases/latest

    - LEVEL EDITOR: https://github.com/toggins/KlaEditor/releases/latest

    Youtube Video

    Klawiatura is an experiment written by me and @nonk that implements multiplayer using GekkoNet's rollback netcode. In layman's terms, the game uses save states to sync up the entire level with other players, so only your input is sent over the network.
    Usually, this kind of networking where save states are utilized is intended for less demanding games, such as one-on-one fighting games. But since Mario Forever is simple enough, you can fit its entire game state into ~200 KB of static data...which is why I wrote Klawiatura in C. Not having to worry about performance and easily implementing save states using direct memory copies is a big plus.

    Current features

    • Up to 8 players!
    • Lobby system using NutPunch. You can enter games as a player or spectator.
    • Fully playable examples of World 1 (1_1), World 2's ambush (hammer_bros), Hardcore World 1 (hardcore_1_1) and Funny Tanks (funny_tanks).
    • KEVIN and FRED.

    So yeah, that's pretty much it. Check out the GitHub link at the top.

    1 Reply Last reply
    4
    • looper231L Offline
      looper231L Offline
      looper231
      Admin
      wrote on last edited by
      #2

      Do you intend to port the entirety of MF onto Klawiatura?

      "The meaning of life is to become a legend" -Kefrens

      togginsT 1 Reply Last reply
      0
      • looper231L looper231

        Do you intend to port the entirety of MF onto Klawiatura?

        togginsT Offline
        togginsT Offline
        toggins
        wrote on last edited by toggins
        #3

        @looper231 No. Just most of the active objects since those are hardcoded here. I don't think anything will be taking MFCE off of its throne anytime soon either.

        looper231L 1 Reply Last reply
        0
        • togginsT toggins

          @looper231 No. Just most of the active objects since those are hardcoded here. I don't think anything will be taking MFCE off of its throne anytime soon either.

          looper231L Offline
          looper231L Offline
          looper231
          Admin
          wrote on last edited by
          #4

          @toggins I think as long as there will be a level editor, someone will "port" the MF levels over, other than that, I am very excited to see this evolve, the tests before were cool

          "The meaning of life is to become a legend" -Kefrens

          1 Reply Last reply
          1
          • nonkN Offline
            nonkN Offline
            nonk
            wrote on last edited by
            #5

            (please don't ddos the public lobby list it's really easy to do since it's fully udp-based)

            nonk.dev
            github.com/nonk123

            1 Reply Last reply
            0
            • togginsT Offline
              togginsT Offline
              toggins
              wrote on last edited by
              #6

              Got that level editor up and running, might have to move it to its own repository soon. The game can now read level files from it, all that's left are custom object properties.

              Editor:
              image.png

              In-game:
              image.png

              Fun fact, collision boxes for objects can't go past 256x256 pixels because of static limits. That's why solid markers are placed oddly in the editor.

              1 Reply Last reply
              1
              • togginsT Offline
                togginsT Offline
                toggins
                wrote on last edited by toggins
                #7

                To catch up on what happened since the last post:

                • 32-bit builds (labelled WinXP). Crossplay between Win64 and WinXP is possible.
                • @nonk rewrote the whole lobby system so it doesn't time out the 3rd player anymore. Linux support is also very close, but it was only tested using WSL.
                • KlaEditor moved to its own repository. Also, it has a pre-release build. Editing objects is very cryptic for now, since you have to work with raw fixed-point numbers (65536 or 0x00010000 means 1) or object indices from the game's code.
                looper231L 1 Reply Last reply
                0
                • togginsT toggins

                  To catch up on what happened since the last post:

                  • 32-bit builds (labelled WinXP). Crossplay between Win64 and WinXP is possible.
                  • @nonk rewrote the whole lobby system so it doesn't time out the 3rd player anymore. Linux support is also very close, but it was only tested using WSL.
                  • KlaEditor moved to its own repository. Also, it has a pre-release build. Editing objects is very cryptic for now, since you have to work with raw fixed-point numbers (65536 or 0x00010000 means 1) or object indices from the game's code.
                  looper231L Offline
                  looper231L Offline
                  looper231
                  Admin
                  wrote on last edited by
                  #8

                  @toggins said in [WIP] Klawiatura - Rollback netcode test:

                  Editing objects is very cryptic for now

                  Can't wait to make levels with the help of Ghidra

                  "The meaning of life is to become a legend" -Kefrens

                  1 Reply Last reply
                  0
                  • togginsT Offline
                    togginsT Offline
                    toggins
                    wrote on last edited by
                    #9

                    The bare minimum of the backend is now fully set up. Windows/Linux support is maxed out and crossplay is working. All that's left is to port the rest of the game mechanics.
                    There's now a basic UI for changing levels and gimmicks (and a lobby list!). It'll also boot you back there after exiting the game, but you can use the -level command to skip all that and quickstart in singleplayer, useful for testing.

                    Anyway, go forth my Funny Tanks:
                    image.png

                    Gameplay video coming soon if I could somehow lure out 3 more players for stress testing (3+ player desyncs are still there, just don't lose any packets or that happens...)

                    1 Reply Last reply
                    0
                    • togginsT Offline
                      togginsT Offline
                      toggins
                      wrote on last edited by
                      #10

                      Youtube Video

                      Singleplayer footage of Hardcore World 1. All of the multiplayer features are disabled when playing alone, so restarting and going between levels is possible. There's still no level changing in multiplayer though, I'm still figuring out a stable way to do that.

                      1 Reply Last reply
                      0
                      • LakiL Offline
                        LakiL Offline
                        Laki
                        wrote on last edited by Laki
                        #11

                        Hello? This is like, really cool?

                        Definitely will try this this eventually, just when I'm done with MFCE 2.0, which I haven't even begun to play 😅

                        I am DEFINITELY curious on what is the possible limit to how many players there can be, if there can be more than 4.

                        Looking forward to this!

                        "Stop quoting me on things I never said." - Sun Tzu

                        1 Reply Last reply
                        0
                        • looper231L looper231 pinned this topic on
                        • togginsT Offline
                          togginsT Offline
                          toggins
                          wrote on last edited by toggins
                          #12

                          Still a ways to go. And a lot has changed:

                          • The source code is being completely rewritten. The entire application now runs in a single loop, no more giant switch cases, objects have been decoupled from K_game for clean game code, ... ... ...

                          • Console window is no longer visible, you will need to launch Klawiatura through the Command Prompt to see logs.

                          • Assets are no longer limited to 8-character file names.

                          • @nonk added IPv6 support.

                          • Lobbies are now either hosted or joined explicitly, there are no longer implicit lobby setups.

                          • 3+ player desyncs are FINALLY FIXED, but it will take a while for the GekkoNet dev to merge the fix for a stable update.

                          • You can actually configure things for once (also a new menu system):
                            66763a5f-9c1e-4122-a49a-49dbb13d1471-image.png

                          • Lobbies no longer autostart, you can configure game rules on the go.

                          • Since the application window can be resized now, you'll get widescreen borders around the game screen:
                            ef475155-0307-4aac-8643-9a21d1324bb9-image.png

                          • Kevin is no longer a menu option. Figure out how else to summon him.

                          Most of the new stuff can be found GitHub on the rewrite branch.

                          1 Reply Last reply
                          undefined
                          1
                          • miyameonM Offline
                            miyameonM Offline
                            miyameon
                            wrote on last edited by
                            #13

                            hm, tried the wip with a few friends, if i should let you know:
                            main issue, once extracted the game ends up in a completely broken resolution of the top left for some reason, so i have to play unextracted i guess? no idea
                            we couldnt figure out how to change controls, pressing the binds dont do anything it seems
                            this may also be bad connection but disconnects happen quite a lot and game lags really badly when someone dies, if game freezes and you disconnect you also cant host on the same id
                            if i could contact directly i would like to talk about it, but this is whats been with my session, let me know if i misunderstood anything and i hope this project becomes what its planned to be, good luck with it!!

                            togginsT 1 Reply Last reply
                            0
                            • miyameonM miyameon

                              hm, tried the wip with a few friends, if i should let you know:
                              main issue, once extracted the game ends up in a completely broken resolution of the top left for some reason, so i have to play unextracted i guess? no idea
                              we couldnt figure out how to change controls, pressing the binds dont do anything it seems
                              this may also be bad connection but disconnects happen quite a lot and game lags really badly when someone dies, if game freezes and you disconnect you also cant host on the same id
                              if i could contact directly i would like to talk about it, but this is whats been with my session, let me know if i misunderstood anything and i hope this project becomes what its planned to be, good luck with it!!

                              togginsT Offline
                              togginsT Offline
                              toggins
                              wrote on last edited by toggins
                              #14

                              @miyameon Binds aren't reconfigurable right now, the controls are only displayed just so you know which key does what. Nobody else seems to have the resolution problem though. I pinged you on Discord so we can discuss further.

                              Sidenote, rewrite branch is now on master, so dev builds are back to being alive now.

                              1 Reply Last reply
                              0
                              • togginsT Offline
                                togginsT Offline
                                toggins
                                wrote on last edited by toggins
                                #15

                                Everything that has happened from October to November:

                                • The rewrite is now complete, 99% of the previous features are now available with some improvements:
                                  • Players have coyote time and more responsive crouching.
                                  • Items can be touched while sprouting from an item block.
                                  • Added infinite lives to Kevin mode.
                                • Multiplayer kicks some more ass:
                                  • 3+ player games are fully working! So is Windows/Linux crossplay!!!
                                  • Added a note when entering Multiplayer for the first time, in case people are blindly opening up a stable/dev build.
                                  • Raised the input prediction window so now you're able to play with fellow Argentinians without slow motion gameplay.
                                  • Multiplayer input delay can be changed with the "Input Delay" option in Options.
                                  • Level warping is now possible in multiplayer, no more awkward softlocks.
                                • Added a scoreboard for when you complete a scenario or lose all lives: image.png

                                The only thing left is to figure out why most VPNs are messing up P2P connections. @nonk has been hard at work on refactoring the hell out of the backend and it shows, so hopefully the VPN issue will be resolved pretty soon.

                                1 Reply Last reply
                                🥀
                                1
                                • togginsT Offline
                                  togginsT Offline
                                  toggins
                                  wrote on last edited by toggins
                                  #16

                                  Youtube Video

                                  Test recording on Funny Tanks with 4 players. Average ping was 300ms and rollback frames at 10 to reduce frequent pauses.

                                  1 Reply Last reply
                                  🥀
                                  1
                                  • togginsT Offline
                                    togginsT Offline
                                    toggins
                                    wrote on last edited by
                                    #17

                                    I'm considering Klawiatura done now, so the 1.0.0 release build is up. There are no plans for new stuff, just random bugfixes and backend updates from time to time.

                                    1 Reply Last reply
                                    undefined
                                    1
                                    • togginsT Offline
                                      togginsT Offline
                                      toggins
                                      wrote on last edited by
                                      #18

                                      Bumped to v1.1.0, changelog at https://github.com/toggins/Klawiatura/releases/tag/v1.1.0

                                      1 Reply Last reply
                                      0
                                      • togginsT Offline
                                        togginsT Offline
                                        toggins
                                        wrote on last edited by
                                        #19

                                        Bumped to v1.3.0, changelog at https://github.com/toggins/Klawiatura/releases/tag/v1.3.0

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        Hosted by Meteo Dream Powered by NodeBB
                                        • First post
                                          Last post
                                        0
                                        • Rules
                                        • Recent
                                        • Tags
                                        • Popular
                                        • External Links
                                          • Download Mario Forever
                                          • Cloud Lounge Discord
                                          • Mario Forever Wiki
                                          • Chinese Mario Forever Forum
                                          • List of Mario Forever Fangames
                                          • Mario Forever File Archive