GM Online Framework Versions Save

Warp is a feature-rich framework for multiplayer games, written in GameMaker and NodeJS (previously GM-Online-Framework)

v6.0.1

2 months ago

v6.0.0

4 months ago

🎉 The long awaited v6.0 update! 🎉 Honestly I should've released this months ago, but it is what it is There could still be some [breaking] bugs, so please report any so I can fix them asap in v6.0.1

This update introduces a bunch of new features and concepts, improved Matchmaking being the main one obviously, and other systems, such as Game Modes and Levels are just there to support it and allow you to interact with the mm system and describe your specific game.

The old Matchmaking used to just put every player in the first non-full lobby (cringe) The new Matchmaking system, on the other hand, tries to balance the teams to have close average MMR, as well as account for parties (for now, only full parties are supported for Ranked game modes (any party sizes for unranked though!))

Of course, it is, as always, customizable inside config.js

Have fun and lmk what you think about the update! - Evoleo

v5.1.0

1 year ago

This update introduces some big changes to the project structure (most noticeably I got rid of the "internal" and "custom" folders and instead moved everything out to the root folder, I thought it made more sense that way)

Also packet handlers and senders are now split into different files! Previously it would get pretty inconvenient to have everything in one place as your project eventually grows in scale

You can still write your handlers and senders as before if you want to though!

In addition to that, I added the ability to validate incoming data using the library "fastest-validator". This is useful for additional type/value safety, as well as for potentially preventing cheaters from hijacking the packets to e.x. submit a really long username or other invalid data that could potentially break the backend and would otherwise be only filtered on the client-side

I know there haven't been any updates in quite a while, so I hope you like this one! - Evoleo

v5.0.2

1 year ago

Fixes a major bug with snapshot interpolation that caused the game to sometimes be jittery

Also you no longer need to set non-static type and object_name properties on each instance, as they will be set automatically from the static ones in the Entity constructor

There are also a couple really minor changes in the project structure (moved the client-side entities from WarpDemo/Objects/Gameplay to Warp/Objects/Entities)

Enjoy! - Evoleo

v5.0.1

1 year ago

Adds jsconfig.json and a couple new JSDoc types for better JS experience

v5.0.0

1 year ago

This major update introduces a whole bunch of new features and improvements, most notably snapshot interpolation (which allows to smoothen out the entities jittering that was caused by packages being spaced unevenly when latency is present), a friends request system, as well as some changes and improvements to the server-side physics system, including making it delta-time based

Also I was able to reduce the server's tickrate from 60 to 20 tps, which makes it much more performant and less bandwidth-heavy!

Advanced matchmaking functionality unfortunately didn't make it into 5.0, since I really didn't want to delay this major update for another few weeks. It is currently planned for v5.1 though!

Keep in mind, that as always I haven't been able to test everything, so please let me know of any bugs/inconveniences that you find in the framework!

Enjoy! :D - Evoleo

v4.4.3

1 year ago

This minor release introduces a new feature for the server - it now fetches clients' GAME_VERSION and checks it (using the "semver" npm package) against its own config.meta.compatible_game_versions, which you can edit inside the config.js/ts file. It then kicks the client if their version is out of date (not compatible with the server)

(As of now this feature does not work for the js/web client, bc I'm too lazy to implement that lol)

Also, looks like somewhere along the way a GameMaker update broke dual instances, so I fixed that by swapping the extension used to execute shell commands with the amazing YellowAfterlife's execute_shell_simple (the previous one used was also written by him btw lol)

So, uhh, Enjoy! ...and have a Happy New Year!

- Evoleo

v4.4.2

1 year ago

Makes it so that all the sub-objects of the dev/prod configurations are merged correctly into the global.config object

v4.4.1

1 year ago

This update adds the new rooms_path server-side config that is responsible for the location from where Warp is grabbing the .yy files to load. Previously you had to manually copy the .yy files into the server/rooms/ folder every time you made an update to the levels, but now you can just load them directly from the GM project!

Warp will now warn you if there is ever an object with no matching entity type attached to it that Warp is trying to load. You can disable this warning in the config.js/ts file

Enjoy! - Evoleo

v4.4

1 year ago

Adds WebSocket support for the GameMaker client!

Really useful if you want to run your game in the browser (although WebSockets do also work on Windows) You can switch to using WebSockets by simply changing the SOCKET_TYPE macro to SOCKET_TYPES.WS inside NetworkingConfig.gml

Enjoy!

- Evoleo