Graphics on server

This is probably a question with a pretty obvious answer for you who know jME better than I do.

I'm wondering if you need a good graphics card on your server in a server-client setup if you never render on the server or does it work with any low-end card?

The server might create textures and apply them to loaded models and such things, perhaps this uses the graphics card already and so you do need a good graphics card on the server if you want to do that (you could of course instead represent textures and models with pure data to get around this)?



Thanks in advance!

Not really, your example wouldn't really be the server "creating" textures, but telling the client to load a texture from its local memory and apply the model, etc. Basically the server should only be sending messages to the clients (vice versa) that helps the client login, keep in synch, know where other players are, validate player moves, etc.



Granted, a server-client setup doesn't really need to be something like an online game (e.g. the setup could be run on the same computer, and that's how the architecture works (an example would be the Torque engine) - which usually means the server and client could be run on different computers anyways). But think about it - it takes a while to download models and textures, it would be really bad if all that had to be streamed in real time to the player.



Of course, streaming of new model/texture data during the lifetime of a game is possible…I know the Steam/Valve games have that ability (e.g. using custom spray icons), but generally those are streamed in the background and are small files and thus are doable - but imagine if the server had to handle the graphics AND get a map's textures/models to players of Team Fortress 2 while the game's being played…the game would be unplayable I'm sure.



In regards to jmonkey…it's just a rendering API thats all with no networking built in. You'd have to do all that stuff yourself with a custom coded server, or use a third party API like JGN.

Thank you for your reply!



I'm using JGN and not streaming any objects of textures to the clients, they are loaded locally on the clients based on primitives or Strings sent via JGN Messages.



Thought because I've been using some simple examples from around here in the beginning, the server also loads the same objects (not textures yet, I believe though) so that they can be synched with JGN.

If I understand JGN correctly though, I can just use more simple representations of the objects and still do synch (since synch just handles a few variables) and I'll probably change it to that.

I'm meaning to possibly stream new model/texture data live later too with JGN, but then I would only handle data.



Is anyone else making objects on the server or how have you solved it? Do your implementations require good graphics cards?



I think I see that the server won't need a graphics card of high quality already, so I can get the server I was looking at, but I'm grateful for more valuable input.

If the server doesn't need to render anything it would be preferred to avoid loading models/textures completely to improve performance of actual server functions. Physics simulations and triangle-accurate collision algorithms will require model data but not texture data. jME does provide a special "headless" operation mode in which all graphic card operations are ignored, this will allow you to remove the requirement of having a good video card on the server side but will not prevent loading of textures and models from the hard drive.



If you're making an MMO I strongly suggest not following the flag-rush networking example as it is suited for low-pop, user-hosted multiplayer games. An MMO requires client data validation and authentication that the example does not provide.

Thank you Momoko_Fan!



I'm actually running the server as a StandardGame in headless mode already, I didn't know all graphic card operations were ignored when using that, very good to know!



Actually, I didn't follow FlagRush even though I've looked through it. I used some other examples (though similar) and put them together and there are just a few small remnants left of them now.



I think I'll keep models on the server for the (possible) physics and triangle-accurate collision calculations where needed and use simpler representations elsewhere.



Thank you for you help!