Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


A member registered Aug 20, 2017 · View creator page →

Creator of

Recent community posts

Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz   3.00 GHz

8,00 Go

NVIDIA GeForce GTX 1050


good atmosphere

Cons :

slow loading (horrible); please add thread to speed up

You should test your game on low powered computers, or add specs in your description

Control screen does not disappears when clicking on YES, which made the history unreadable

Can not skip the intro screen with the text.

Actually writting this comment, the game is still loading for 2 minutes now, I think I am going to quit. Yeah, I relaunched and it worked great.

cant skip the text cutscenes.

Graphisms are decents.

Music is playing, I can see a vessel crashed, the game is freezed now.

Thats enough for me, I closed the game with the task manager and deleted the folder because i will not play it because it can not be played.

Hi I tested your game (I am the guy who did Guns and Rush (Aliens Survivors). It has the potential to be very good with a few adjustements. I like the atmosphere and the general concept.

What I liked : 

  • Art is nice
  • Music also*
  • the UI is very nice and well polished although some stuff could be bigger. For example, the result pannel, after death is very small and compact compared to the size of thee screen.

What I disliked :

  • Why an engineering wheel at the base of the character in game ? They are not supposed to be enineer
  • Character is too slow, it is very difficult to fight while avoiding ennemies
  • Attracting gemms is too hard, the radius should be greater
  • Too much life, the character should have very small number of HP to make the game more exciting. Make it easier to avoid ennemies and more punishing when you take damage (less character HP)
  • Why ennemies take damage when they touch you ?
  • The yellow modulation when your mouse is over buttons looks cheap. It looks like you pissed on the button.

Hello, what is the base size of a tile ? 16x16 ? 32x32 ? other ?

It looks very nice, what is the color palette used ?

Thanks for your feedback, it may help some people who have the same problem. I hope you will enjoy the tool !

Did you give a name to your save file ?

Thanks for your very good feedback !

Ok I understand. Nice trick.

(1 edit)

First thank you for your answer.

Sorry to insist but the documentation of steamworks explains that the lobby is automatically destroyed when game starts. See there

Furthermore, I would like to display all the servers currently running so that anyone can join a game that has started. Do you think it is possible to achieve this with steamworks ?

Hello , is it possible to join a game that has started with this extension ? Indeed when you create a server and launch a game with steamworks, steamworks automatically destroys the lobby. Therefore is it still possible to display the game currently played and join them once it has started ?

Great. Thank you again for your work. It is tremendous for novice developpers who want to make multiplayers game with gamemaker and steam.

Hello, I am using your steamworks.gml example file to create a game. I wonder if you made a mistake in your code which occurs where 3 or more players play together :

Let us say that a local cursor (which is not lobby) moves, then it uses the script packet_send_all() to tell to the server that it has moved. Then, the server reveives this packet, update the position of this cursor and has to tell others that this cursor has moved. Therefore, in the packet_handle_server, case packet_t.cursor, you first write the steam user id in the buffer with the command :

p = packet_start(packt_t.cursor)
buffer_write_int64(p, from)

I agree with all of this. The point is that u never take into account this information in the script packet_handle_client, at the packet_t.cursor case.

I thinkthat you should have something like instead :

case packet_t.cursor:
var steam_id = buffer_read_int64(b);
var _x = buffer_read(b,buffer_f32);
var _y = buffer_read(b,buffer_f32);
with obj_cursor if user == steam_id {



What do you think ? I hope  I am helping. Cheers.

Ok, to summarize, tell me if I am wrong, what I have to do :

1°) Send changed state variables to server only when it is triggered (for exemple, one client press up, , then u send the new y position of the object) and not every frame because it costs too much

2°) Use extrapolation and interpolation on client side in order to smooth a little bit the movement of other players

3°) Dont use lag compensation because it is a small game.

Finally, I wonder if it wouldnt be better to use fast protocole (UDP) instead of reliable (TCP) ? Indeed, with interpolation and extrapolation , it is not a problem anymore if a few apckets are missing ? What do u think ? In ur example, u have set everything to reliable.

Anyway, thank you a lot, I will try that.

Thank you very much. I am developping a multiplayer game which look like nuclear throne for less than 10 players. Do you think I have to implement advanced technics like lag compensation and so on ? Or is it enough to only send states variable when an input command is pressed locally (send the satte variable, not the input) and then the server modify the true state game and send this to every client  ? I am very new, so maybe I am saying bad things... ?

About your answer, I understand what you say. Therefore, the lag compensation trick only works if the latency is the same all the time, which is generally the case.  However this technic needs that every client send packets regularly, lets say every 3 steps for example, otherwise you can not rebuild the full scene ? Right ?

I wonder how to code the lag compensation trick because current_time is a local variable (it depends on when the client has started his OS).

Great. Thank you.

Thank you very much, this is very clear.

I have read a few articles about how to handle latency exposing some mehtods  to deal with that : prediction, reconciliation, interpolation.

For now, I have tested your extension with two computers on the same internet connection. Each one has a different steam account. I dont have implemented any of the methods cited before (prediction ,reconciliatiob, interpolation) but I do not see any lag for now. I wonder if the packets are send locally or if they transit trought steam. In the first case, this is not good because I am not testing the game in real conditions. Then how is it possible to test a multiplayer game with gamemaker with simulated lag ?


first thank you for your incredible job. This is amazing and helping me a lot to create a multiplayer game on steam with gamemaker.

I am trying to handle death of vessels. I wonder where should I do that :

1°) the first possibility is to handle that on the client side. Each client checks if his vessel receive a bullet and then if it is the case, send a packet to server to say he is dead. Here I wonder if this would create some syncrnizing problems but I am not sure since I am very new to this kind of problematic.

2°) the second possibility is to do it on the server side, once we have receive a packet (player move or bullet move...) we chack if one of the vessels is dead. If it is the case, we send a packet to all clients to say a vessel is dead.