• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Running GM on a Windows Server 2016 machine

DukeSoft

Member
Hey everyone,

I couldn't find much information about this subject so I decided to post my question here.

I'm working on a multiplayer shooter game, and would like to have some default servers setup for the game. I've ordered a VPS with 2 Intel Xeon cores @ 2.4ghz.

I decided to do a little test run - the game itself runs at 600fps on my i7 7700k + 1060 card. After installing DX, it runs at 2fps on the Windows Server 2016 instance.

Obviously I haven't disabled any audio / drawing / shader stuff yet (which I will) but 2 fps concerns me. I'd expect at least 60. The server has no graphics card (I'm assuming) so I'm hoping the performance will be better. Will update the thread as i'm working on it.

My question is basically - are there people familiar with running GM based servers? How was your performance?
I'm thinking maybe for now I'll have to stick with a desktop PC i'll leave on - or maybe write a dedicated server in another language (will take a lot of time, but well).

I'd love to hear about your experiences and i'm all ears for other ideas!
 
K

Kenjiro

Guest
Actually that's pretty neat to hear that it runs on a virtual server at all. YYG must have coded in to run as software if DX hardware isn't available.

It will probably fly if you disable the draw event, you'll just have to think of novel ways to report what the FPS actually is. If it were me, I'd hook in a basic DLL and pop up a windows message box showing how many frames were processed in a ten second period or something.

If you set room_speed to 9999, I think it will fly along and your concerns will be put to rest. I pretty much guarantee it will just be the renderer stalling things currently.

Watching the topic to see how this goes, I'm intrigued. (Might even do some testing of my own and report back :))
 

DukeSoft

Member
Well, the initial error I had was not even a basic GM related issue, but a "DX3D vertex shader compilation error" - My game uses a post-screen shader from the beginning. I'm disabling more and more and trying to figure out what's slowing it down so much. CPU and RAM wise the server should be more than powerful enough to run at least a couple of instances of the game.

As for the FPS - Good thing we have "window_set_caption" :)
 
K

Kenjiro

Guest
Well, the initial error I had was not even a basic GM related issue, but a "DX3D vertex shader compilation error" - My game uses a post-screen shader from the beginning. I'm disabling more and more and trying to figure out what's slowing it down so much. CPU and RAM wise the server should be more than powerful enough to run at least a couple of instances of the game.

As for the FPS - Good thing we have "window_set_caption" :)
Yeah, I'd expect anything graphical to almost break in a Terminal server style environment. Surprised you got as far as you did.

Good call on the window_set_caption. Just don't disable the draw event in the create event or you'll get no window to start with ;)
 

DukeSoft

Member

Here's the specs. Just edited my game to support the disabling of different elements - I'll see what helps :)
 

DukeSoft

Member
upload_2017-5-29_13-54-27.png
Here's the edited version - no post screen shader. 50% increase in FPS already.

Seeing that the real FPS is about 1800, I'm quite sure this is all bottlenecked by the GPU (its probably a software GPU running on the virtual CPU. So its going to be terribly slow.) I'm going to try to disable more and more graphics and see what FPS we end up with... Sad thing is that I have some bits of game logic in some drawing steps, so i'm going to have to move that and then try it with the drawing completely disabled.
 
K

Kenjiro

Guest
I'm pretty confident if you get rid of all of the drawing elements, you'd much closer to 9999 FPS than you'd think.
 

DukeSoft

Member
upload_2017-5-29_14-5-0.png
Interesting.

It seems to run a steady 60fps with the complete drawing disabled (room speed is well over 60, but I think its hitting a sync limit or something. I've disabled V-sync, but i'm not getting higher FPS'es..)

Drawing is the key :) Here's what kind of happened with the FPS:

Lighting + shadow + terrain rendering + all assets being drawn = 10fps (real 10);
Just assets drawing = 30fps (800 real);
just drawing GUI = 76fps (real 1200);

Disabling all drawing using the draw_event_enabled function: 60fps (real 3000 - 7500)

So.... I think we're good here :)
 
K

Kenjiro

Guest
Yep! Pretty much as I anticipated in my previous posts. Good job :)

The other thing too. RDP is slow too as it needs to update the frame (and pretty much locks while it does this). So if you can get rid off absolutely all screen drawing (eg, log out of RDP so you are 100% headless), you will get even higher frame rates. But you'll need to connect via networking to test the additional performance.
 

DukeSoft

Member
I thought this would happen as well - but I've had bad experiences in the past with older GM versions. I was hoping this would happen! I'm going to move all game logic away from the drawing events, and make a special dedicated server option. Then I'll probably be able to run multiple instances of a game server on that VPS.

The big 99% spike is with drawing enabled. The CPU is doing the GPU's job. After that, running a game without bots (but with the game logic) its 5%. I cant really add bots / players yet because there's some dependencies on drawing code, but I'll report back with how things are going.

upload_2017-5-29_14-16-27.png
 
K

Kenjiro

Guest
Good one! Yep pretty sure you'll get close to the full 9999 FPS when you do this.
 

Xer0botXer0

Senpai
You are using a VPS to host your server ? Do you just ftp the server exe over and control it remotely like in team viewer ?
The reason I ask is because I'm working on a multiplayer game so I'll eventually need to do something like that too, just haven't figured out what yet, looks like I might get some insight here.
But I'm curious since your server is being hosted on a vps with no gpu you're saying the server is getting low fps ?
 

DukeSoft

Member
Yes, I have bought a VPS. Its an instance of a Microsoft Hyper-V setup (its microsoft's virtualisation solution). There are multiple virtual machines running across multiple physical machines, and I'm renting some CPU, some RAM and some bandwidth from that huge farm. You can simply log in using MSTSC (the windows terminal client) and you'll see a desktop in front of you there. I had to install DirectX first, but I'm not sure if its actually required (i had to because i was using some shaders).

I'm currently paying about EUR15 a month + EUR7 for the win2016 license. So, about 22 euro's a month for this hosting setup. It does have a GPU, but probably not a physical one. HyperV will "simulate" a GPU so that the machine can run any kind of OS. It takes the GPU's instructions and the CPU handles them. Thats why its terribly slow in GM - unless you disable all the drawing.

So yeah, its feasable! Just a word of advice: Start to get rid of any game related logic in your drawing events!

I'm going to make my dedicated server so that it loads up and spawns the game depending on some .ini config. Currently, I'll have to go in, setup the server (at 30 fps), and once its running, I disable the drawing, and up goes the FPS!
 
Top