#SWARMMO A MMO MADE WITH ELIXIR - PRE ALPHA

1 messages ยท Page 1 of 1 (latest)

wheat juniper
#

https://swarmmo.games

Hey all. I've finally made my game public. Its currently in pre-alpha. The backend of the game is powered by Elixir. Right now mostly focused on improving performance.

If anyone is up to try it, please do so. Very interested in feedback regarding performance, lag, etc. Currently only regions are NA-West and EU-Central. You're welcome to try the servers if you're out of the regions. I want to open more servers once I figure out the best settings.

I am using cowboy websocket and Cloudflare Tunnel. Reason being I don't have much exp with hosting servers on linux so I don't know all the settings. The cloudflare tunnel was like 1 click setup and it seems to work.
But maybe its the culprit for additional latency. Hmm. Weirdly EU-Central has better performance then NA-WEST for me despite being farther.

warped rain
#

Spawned, got mobbed by random goblins, died. A+.

It's pretty laggy and thus difficult to control. The menu music is great. It would be nice to be able to move in more than four directions.

wheat juniper
# warped rain Spawned, got mobbed by random goblins, died. A+. It's pretty laggy and thus dif...

This is great! Thank you. The movement controls are a bit clunky right now. I'm going to improve it in the next round of updates. 8-dir movement will be possible and feel more intuitive.

As for lag - I am looking to fix that up ASAP. What region did you connect to?
I'm using Cloudflare tunnel as a reverse proxy. I think it may be adding extra latency...ahh I will have to investigate more.

warped rain
#

I used EU region (I'm in Finland). But it may have gone through my VPN, I should try at home

wheat juniper
#

Interesting.... The EU server is hosted in Helsinki. If you are able to try it at home sometime and report back that would be great!

warped rain
#

I tried it a bit more. now that there's 8-dir movement, it would be good if pressing down would actually move down instead of diagonally. it would make it much easier to move

#

do you need to always have a target locked to attack?

#

I think it would still benefit from some predicted movement so that your character would move instantly instead of lagging a bit.

#

also I think it's brutally difficult ๐Ÿ˜„ I'm not sure what else to do than use the basic attack. and when I try to respawn I'm always thrown out so I never get any levels and all the enemies are too difficult

wheat juniper
#

Thanks for the feedback! Really appreciate it.

wheat juniper
wheat juniper
wheat juniper
warped rain
#

Well I haven't played many MMOs so maybe it's just unfamiliarity

wheat juniper
#

As for the difficulty - I agree. The game is very unbalanced and not fair. I am going to address game balance once the game feel is improved. So hopefully next week.

There are some world objectives/mechanics that are currently not communicated to the player - so this also creates confusion. ๐Ÿ˜…
There will be an update to combat so that basic attacks can "chain" and attack multiple targets if they try to attack you within a cone. That should make the combat flow faster and easier when you are swarmed by multiple enemies

wheat juniper
#

hey @warped rain! I've made some general improvements to the game regarding lag, difficulty, gameplay flow, etc. If you get a chance please give it a try, would love to get your feedback!

random knoll
#

This is pretty neat, love the look of it!
The delay on input is pretty significant for me too, it almost seems like there is a roundtrip to the server after pressing a button and before the position is updated / animation is played, is that the case?
If so I think the client should display those updates optimistically

wheat juniper
random knoll
#

Sure yeah I don't mind! Yeah I don't know much about game development at all but looks like client-side-prediction would be the term ๐Ÿ™‚ I guess 'optimistic updates' is more of a webdev-specific thing

warped rain
#

I haven't had time to look at this but I'll try to remember to do that

wheat juniper
#

@random knoll Hey! If you're up for it give it a try. I have made some updates

solid viper
#

Really cool concept, great that I can just join in without making any account. But the lag is just too much (playing in Germany). When I spawned I thought the game doesn't recognize my keyboard, because it took so long before I could move. And then I have what feels like 512ms of delay in movement, does every movement do a round trip to the server without any optimistic rendering (I did play on EU servers)?

Since pvp is disabled, would it not be possible to to movement client side and just sync that back to the server and distribute it from there, so that your own movement feels smooth? Like in other online games where the serve acts as a referee and just sometimes "lags you back into place".

But I'll definetly keep an eye on this ๐Ÿ™‚

#

How did you make the frontend, if I may ask?

wheat juniper
# solid viper Really cool concept, great that I can just join in without making any account. B...

Thanks for the feedback and interest! Initially you aren't able to move after spawning because the client and server do time-synchronization for 10 seconds. I will adjust it so it doesn't take as long.

There is some optimistic rendering in place. But I kept it very conservative. I will try experimenting with some new techniques. The lag issue is tough. Because some players don't report any issues with lag while others do. So its hard for me to determine the exact issue. But if you are able to record any footage of your experience I would really appreciate it. It helps a lot!

wheat juniper
solid viper
solid viper
#

I just figured out that (at least in my case) the game seems to work better/faster in chrome than in brave (still has input lag, but much more playable)

wheat juniper
# solid viper Are you using cloudflare with proxied enabled by any chance? And do you have a...

I am using cloudflare proxy, yup! Cloudflare proxies the IP address for the game server...
do you know what impact that would have on latency? I set it up because it seemed like a smart thing to do so I don't expose the raw IP of the game server.
In US-West I get around 30-50ms latency, so it doesn't seem to have a huge impact. But who knows..

As for free screen recording on mac. No idea unfortunately. On Windows I use OBS. I think there is OBS for Mac. It can still be a pain though!

Ahhh...what a good point about the time sync. I should add some psuedeo loading screen to hide it. or pop up some quick tutorial window that distracts the user..

wheat juniper
# solid viper I just figured out that (at least in my case) the game seems to work better/fast...

Interesting....I have yet to test the game in brave! So far I only test in Chrome, Firefox, and Safari.

To be honest, the game is currently distributed as a web client because its easier for me to push updates ad-hoc.
But in the future I may just distribute the desktop client via steam. Its the client I test the game with and it has better/native performance. In godot this is just a matter of changing the build target

wheat juniper
# solid viper Interesting, but makes total sense for a top down game. What part of it pairs pa...

Thats a good question. My take is a bit biased because Godot is the only engine I've really learned very well and become comfortable in. The other engines - Unreal, Unity, I have used very little.

Godot offers its own scripting language GDScript to use. To me it offers just enough syntax and functionality to quickly code game-client specific logic and UI components. Godot also has this concept of "signals" which is similar to message passing in Erlang.

solid viper
# wheat juniper I am using cloudflare proxy, yup! Cloudflare proxies the IP address for the game...

https://www.youtube.com/watch?v=bjfy0VCrBDc

I actually ran in a lot of trouble when using a free Cloudflare account and made a short explainer video + blog post. Short answer, with free cloudflare accoutns german (EU) requests get routed through the US instead of German data centers.

#

"Ahhh...what a good point about the time sync. I should add some psuedeo loading screen to hide it. or pop up some quick tutorial window that distracts the user.. "
Yeah exactly, at first a simple text overlay to let the player know that something is still laoding (so they don't try every key because they can't move), and later have a laoding screen with random tipps or information to read)

solid viper
#

For latency feedback you could add time logs (to the dev console)

  • key down
  • received server response

That might be better feedback than a screen recording, and then you can actually just collect them automatically. Save the user's IP geo location and latency.

wheat juniper
wheat juniper
solid viper
# wheat juniper excellent video! Thanks for sharing it. I liked and subbed to your channel ๐Ÿ™‚ ...

Yeah, I did that when I posted earlier, becuase I was seeing the ominous nyc hops^^:

traceroute to eu-central-1.swarmmo.games (172.67.202.94), 64 hops max, 40 byte packets
 1  fritz.box   4.782 ms  2.562 ms  3.871 ms
 2  dip0.t-ipconnect.de 39.862 ms  31.137 ms  8.268 ms
 3  nyc-sb6-i.nyc.us.net.dtag.de (62.154.5.202)  92.102 ms
    nyc-sb6-i.nyc.us.net.dtag.de (62.154.5.206)  89.814 ms
    nyc-sb6-i.nyc.us.net.dtag.de (62.154.5.202)  91.753 ms
 4  nyc-sb6-i.nyc.us.net.dtag.de (62.154.5.202)  92.423 ms  91.546 ms
    80.156.160.213 (80.156.160.213)  93.224 ms
 5  80.156.160.213 (80.156.160.213)  92.784 ms  91.927 ms  93.797 ms
 6  if-ae-2-2.tcore2.n0v-newyork.as6453.net (216.6.90.22)  95.684 ms
    if-ae-0-2.tcore3.njy-newark.as6453.net (216.6.90.14)  100.119 ms  100.317 ms
 7  66.198.56.205 (66.198.56.205)  100.024 ms
    66.198.70.2 (66.198.70.2)  96.476 ms
    66.198.56.205 (66.198.56.205)  100.640 ms
 8  162.158.61.113 (162.158.61.113)  96.551 ms
    66.198.70.2 (66.198.70.2)  99.007 ms
    162.158.61.221 (162.158.61.221)  92.341 ms
 9  162.158.61.221 (162.158.61.221)  95.941 ms
    172.67.202.94 (172.67.202.94)  96.221 ms
    162.158.61.105 (162.158.61.105)  96.567 ms
#

If your EU servers are hosted in the EU and cloudflare is routing through the US, just setting it to dns only (at least for EU customers), might already fix all latency problems (also the website would load faster).

My own liveview app was running on cloudflare with proxy worse than in dev with slow 4G, so it was a massive differnce.

wheat juniper
wheat juniper
#

thank you sir!

wheat juniper
#

@solid viper OK! I changed to use "DNS only" for EU. I think it really improved the latency! Its way less laggy for me now. If you get a chance try the game out now

solid viper
#

HUGE difference! Now it is really playable, and loading times don't make me think something crashed ๐Ÿ™‚

wheat juniper