The dev of JNAG continue, how many people may want to use it?

Hello,

It is the chinese new year here, and for this new year I decided to continue and finish the JNAG project. I am curious to know how many persons may use it or not. If you use another lib, please tell which one.

I also need to program a few little demos to show how to use the lib, but I still don’t know what kind of programs I should write. If you have any idea, please tell them. The demos need to demonstrate some real usage in games in order to validate the fitness of the lib to the needs of the developers.

Thank you for your cooperation,
Karma.

I voted “Maybe I will take a look on it.” but you can take that as “I will take a look at it!” :wink:

I’m currently working on my own library but I’m always interested in seeing how other’s do things and learn from that.

The project description sounds good, but I have concerns about the RMI comparison you make. It’s well known that RMI / Serialization doesn’t really suit real-time applications like games. Or am I mis-interpreting that part?

Thijs

You didn’t mis-interpret that part at all and that’s why I am developing JNAG: My lib takes all the things good for game developers from RMI and only the good things.

Does anyone have any idea about what kind of demos I should implement for JNAG ?

Give me a generic FPS networking demo (quake 3 style maybe?) and I’ll be convinced. :slight_smile: People running round and interacting with environements even in limited ways with a consistent network response.

Kev

I think there is a good idea in what you said. I will probably not implement a quake3 :P, but I may implement a program where each client connect a server and can move a symbolic character (let’s say a simple 2D arrow) on the surface of a 2D rectangular area viewed from the top. People will still be able to run around and see how fast they get the visual response and how the server behave with more and more clients at the same time. I don’t see what the interaction with the environment have to do in the demo ???, I don’t want to do something off-topic, I just want to show how to use the lib and also test its robustness and efficiency.

I also plan to implement in the next days a really simple chat-room client server.

Any other idea?

The interaction with the game world is quite important, being able to track movement using a Quake 3 style networking layer is pretty simple. Management of game interactions (shooting each other, blowing up barrels, opening doors) with a shared environment is really important and tricky.

I’d really like to see a networking layer at the level of Environment, Entity, Interaction. I stick a bunch of these type of objects together and the network layer synchonizes them between clients. :slight_smile: I keep thinking its possible but finding the time to dedicate is a problem.

Kev

I agree with Kevglass,

Achieving easy synchronization of the environment by just marking what needs to be synchronized, is what would make it interesting. Doing this yourself hardcoded is easy and fast but a cumbersome job todo… we wouldn’t need another lib just to send this data over the wire, as thats dead easy todo yourself.

For automatic synchronization standard serialization or RMI would be overkill (as pointed out in various other threads in this forum). I had an idea on this, but haven’t implemented anything yet to see if it’s feasable; Use an interface to identyfy to be synchronized objects, force getters / setters for attributes marked to synchronize (fx as transient). Upon initialization these getter / setter methods could be cached in a collection to gain relatively fast access. That way you could assembel your packages automatically like with serialization, but hopefully without too much overhead.

Thijs

Understood.

For now, JNAG only support an automated way to send messages via procedure calls a-la-RMI, the state synchronization is not yet there. I initially planned to have it but after 1 year I kind of forgot it ::slight_smile:

I will make sure to not forget it in the roadmap. Thx.

Hey Guys,

I am not satisfied of my current version of JNAG.
I realized that I lost my focus and spent a lot of time to make an optimized version of something that doesn’t address all the issues that I wanted to.
I come back to the scratch, don’t expect a new version soon.

Karma