GM Online Framework Versions Save

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

v4.3.2

1 year ago

a minor update, adds lengthdir(), lengthdir_x() and lengthdir_y() to util/maths.ts, similar to GML's lengthdir_x/y() functions

v4.3.1

1 year ago

This minor release fixes an issue with the demo where remote player instances would jitter while moving (only noticeable when there's latency present)

v4.3

1 year ago

This update introduces new server-side configs in the config.js file that allow disabling the rooms and the entities systems, as well as toggle lobbies between adding the players into play all at the same time or one by one

These are some very important changes, since they allow you to easily decouple the systems that you don't need in your game from the core of Warp framework (that is fundamentally just sending and receiving packets). Really really vital for when your game isn't a 2D platformer, or doesn't even use entities whatsoever (e.x. a card game)

Enjoy! :p - Evoleo

v4.2.3

2 years ago

yup, secure web socket support that's right (JS client only for now sorryyyy)

v4.2.2

2 years ago

so there was a really dumb major bug where ping commands would never stop going around and stack up with time and eventually lag the server...

oops! :d I am very sorry, I had no idea, I haven't tried leaving the server running for 20 minutes to see if there's a potential memory leak in the ping logic!

anyways, now it's fixed!

- Evoleo

4.2.1

2 years ago

So, 4.2 was a pretty big update! And, uh, 4.2.1 is here to fix some critical issues that went under the radar!

Changes:

  • Fixes a bug with broadcastList() that would ignore the notme flag (reintroduced somewhere along the way), see #9
  • Fixes a major bug with portals and reconnecting players, that would remove/kick every player from i to length, instead of just 1 (who would've thought that Array.splice() works that way...)
  • Adds a new ip/hostname config
  • Adds npm scripts to run the server with npm run dev/npm run prod

Enjoy!

v4.2

2 years ago

🗒️ Changelog: 🗒️

  • Collisions revamp. Entities can now have rotating colliders
  • (Now depending on "detect-collisions", which wraps "rbush" and "sat", instead of using "rbush" directly)
  • Change client-side collisions to check based on the "solid" asset tag rather than just hard-coded oWall object
  • New Warp Portal entity and proper room transition
  • Queue packets for later using queuePacket() (e.x. for when you receive entities while still changing rooms)
  • Position interpolation for entities to drastically reduce jittering
  • Entity positions are now automatically rounded up to 1/100ths each tick to account for 0.1 + 0.2 = 0.30000000000000004
  • Entity props and improved .yy room loading (now also loading variable definitions)
  • A critical fix that finally prevents the game from occasionally crashing when ran over WAN with a latency
  • Fixes a bug with the entities that started in the room that would load them twice into the rtree
  • Fixes a bug that would load non-solid entities into the rtree
  • Performance improvements
  • A Stress Test room with 50 boxes
  • New demo rooms to showcase the Warp Portals
  • Rooms automatically stop processing entities when there are no players present for X seconds (you can change/disable it in the config)
  • Purge all local entities on room start (GMS2) - to avoid creating duplicates when loading entities from the server
  • Bundle "entity" commands into a single "entities" command that each room is sending once per tick. Also adds meta-data to see which room sent the entities
  • Optimize the lobby packets to only send relevant info (instead of all the entities of every room)
  • Bumps the packet size header bytes from u16 to u32
  • Adds a new "initial_lobbies" config that controls how many lobbies the server creates on start
  • Adds a new "verbose_lag" config that sends warning when the server is running below its tps
  • Minor QoL improvement to the Demo's menu rooms - pressing escape now sends you back to main menu
  • Adds a "Reconnect" button in the main menu
  • Console output styling using the "chalk" library
  • Implement a gulp script to preserve newlines when building TypeScript to JavaScript, which enables me to publish (an actually humanly-readable) JS version of the server in just a couple minutes
  • Fixes a bug that would infinitely flood the global.clients list when reconnecting to an already running server
  • Fixes a typo/bug when if you used the --port command line argument it would try to assign the same port to both TCP and WS servers
  • Minor change to wrapping outside room - the object now has to be moving away from the room for the wrapping to happen
  • Adds pinging functionality

Enjoy! - Evoleo

v4.1.1

2 years ago

fixes a bug with PhysicsEntity.isOutsideRoom() that wouldn't take the provided position into consideration

v4.1

2 years ago

This release introduces the JavaScript version of the big feature-rich v4.0 update (that was previously TypeScript only)!

Also there is now an npx command to bootstrap a project with ease! Just run npx create-gmof-app and it will automatically pull the files from the latest release!

I may have missed some bugs while testing, so if you spot some of those or just generally have any questions on the framework, please be sure to ask them in the Discord!

Have fun!

- Evoleo

v4.0-alpha

2 years ago

Adding a whole bunch of new features!!! (too long to actually list them here, will do it later)

keep in mind that this is not production ready yet, as it's not been tested, but please be free to mess around and send any feedback/suggestions/bugs to the Discord Server

P.s. TypeScript only for now :p

Hope you enjoy! - Evoleo