(August 2016) Monthly WIP screenshot thread

It’s based on Valve’s architecture for their games. I think they perform ok but maybe I’m wrong. :slight_smile:

Anyway, anything else is just an open door for cheating and creates its own ‘hard to solve’ problems.

Edit: I should put these here for the curious:
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization

2 Likes

Yeah good point, how is the traffic though? I’d assume you can only gave so many objects at a time before your router decides it’s being ddosed and crashes.

This title on that page:

Umm, This is a Lot of Work

Describes the topic oh so perfectly.

I played on some Garrys Mod servers. It usually handles up to 32 players perfectly. Maybe more. But when you play on some roleplay mode with tons of objects and about 64 players you could see deep freezes. I’m just base on my experience.

The server authoritative part is based on Valve’s ideas about where stuff should run.

On top of that, I built a really tight protocol that sends only the deltas highly compressed into bit streams. At last count, I think I can fit 70-80 full object updates in a single 1500 byte UDP packet. More if some of those objects aren’t moving.

@zissis is using it in his game and can talk more about stressing the library… he’s done way more stress testing than I have. :slight_smile:

Arcade game incoming on play store.

2 Likes

What is the goal? Fitting shapes into holes?

Goal is dodging fragments. Black and White Shape move synchronously so you have to watch both sides and the game ends on first collision.

I’ll post a video soon.

Working on blurred drop shadows for Labels in my Lemur modification:

This only works with TrueTypeFonts as the blurring method will be a part of jME-TrueTypeFont and I’m just incorporating it into LemurDynamo for Label shadows. You will be able to set the number of passes, a multiplier for the blur radius and the intensity of the resulting blurred text.

This first two use three passes with 1.5 intensity, the third one uses 4 passes with 2.5 intensity.

10 Likes

I reinstalled jmonkey after screwing around with other engines for a year. That’s progress right? :chimpanzee_facepalm:

7 Likes

That’s enlightened wisdom :wink:

1 Like

Sometimes progress means knowing what you don’t want

Progress on LSF Blueprint Builder (the android companion app)

With help from @pspeed and other people who helped with my quaternion problems, I managed to overcome them. This is the result. In the end I ended using a ChaseCamera and a new ViewPort for background. No FPS drops compared to before :slight_smile:

9 Likes

Could you tell about your experience? Just interesting

IIRC this allows you to do client-side prediction on physics and game logic to hide or smooth out minor lag. I suppose all commercial multiplayer games do it these days.

With the physics and game logic calculated server side only, what you as a client see’s is the most accurate but because of lag its jumpy and slow, unless you are on a LAN with the server. You can also calculate on the client, and show that to the player and in practice it looks and plays great - buts its only an approximation of what is “really” happening. If the server and client start disagreeing to much, the client will take the servers state and apply that and that’s when you get warping - but much less often than if there was no client side prediction.

Also, as already pointed out, the server does not trust the client on its state (neither would there be a mechanism for he client to even tell the server whats going on), so cheating is ameliorated somewhat.

Also, as I understand it, the MMOFPS Planetside 2 does actually have a lot more trust in the client when it comes to position of player and perhaps other things than say Quake multiplayer. There are trade off’s when you have 500 people on a server vs 32 max. I presume they have other cheat protection mechanisms.

As mentioned in the Valve articles, you are actually seeing an interpolated period in brief history basic on known good data from the server. It’s not jumpy or slow… though you may feel the lag. Most games have physics acceleration so the character does not move forward instantly so it is not noticeable except in the extreme cases. Also, generally the player “look” or camera is free rotating on its own and not tied to the server data. This also makes it feel more responsive even if you don’t start moving until 100 ms after you press the key.

If you tie your Spatial locations right to the data coming from SimEthereal then you will get the jumpy behavior you speak of. That’s why there is built in code to gather recent history for an object and do automatic interpolation. I’ve done this in the SimEthereal example in another thread.

2 Likes

I finished my Jpony plug-in so now I’m prototyping a few scenes for an upcoming game Temple of Xathe.

8 Likes

I was hoping you were going to pick the torch in the middle and smash all these pots :chipmunk:

1 Like

Playing with particles

14 Likes

WTF, how many particles are this? At least so many that it’s not playable anymore, but it looks cool :stuck_out_tongue_winking_eye:

Mentions of valve and source engine get me worked up… I get so mad at them and that engine. Pure garbage.

(not a dig btw, I remember reading those articles when I was learning about how to deal with latency, very useful)

1 Like