JavaGameNetworking 1.04 Released

Hey guys, I haven’t hung out here very much, but if there’s much interest in discussion of this project here that will change. :-p

I just wanted to announce that JavaGameNetworking API version 1.04 has been released:

http://javagamenetworking.dev.java.net

New features include:

  • Client / Server convenience classes
  • Built-in ping
  • Server Registry - simple extension of JGN that provides games a single location for servers to register and clients to get the list of currently available servers for that game
  • OrderedMessage - ability to specify a sequence of arrival of messages and guarantee that order will be maintained in delivery

For those of you who have not seen JGN previously this is a basic list of features:

  • All communication is currently done with UDP
  • Message object is the root of all communication and can be extended with simple getter/setter methods to produce serializable beans, but with much less bandwidth usage
  • CertifiedMessage extends Message and provides guaranteed delivery over UDP
  • Flexible API that can provide extremely fast sending and receiving of messages that is architecture agnostic. Fully capable of working with peer-to-peer
  • Ability to utilize Eclipse’s JDT API for dynamic generation, compilation, and utilization of classes to increase performance
  • Performance tested to send and receive messages in excess of 20/second
  • Event driven system for receiving and sending messages (addMessageListener, addMessageSentListener)
  • Various tests/examples that show the simplicity of use

I am very interested in getting good feedback to make this API better. My goal with this project is to provide an extremely powerful, easy to use, flexible networking API for Java games that allows the developers to spend less time considering networking issues and more time writing games.

-Matt Hicks

I will take a look at it.

Thanks Bruce. :-p

-Matt Hicks

Needs better examples, I for one has never used something like this and beginners might not grasp how to use this.

More examples? :o

Perhaps you did not see the test package in the source code…there are 19 examples in there. :-p

If you want more examples just let me know what you want and I’m happy to add them.

-Matt Hicks

Oh… didnt download it, just looked at the wiki page.

Yeah, I just posted a direct link to the CVS head of the basic example. There are lots of examples in the source. I’ll try to post more in the near future so you don’t have to download it to see just how easy it is to use.

-Matt Hicks

It would be cool to see this in action, do you have any small working games that use this?

I have a game called Roll-A-Rama that has been ready to push up for over a week, but I had been waiting for my new server to go live.

Now it’s live and I’ll probably be spending a week getting everyting configured and moved but Roll-A-Rama will hopefully be up soon. Roll-A-Rama utilizes JGN as well as my PhysicsNetworking API that extends JGN to send and received physics synchronization information as an alternative to dead-reckoning.

I’ll try to remember to post another message here when it’s up or feel free to keep an eye in the forums:
http://www.captiveimagination.com/forum

-Matt Hicks

I promised I’d let you know when Roll-A-Rama was released. It’s now in its first beta release utilizing JGN and the PhysicsNetworking API. You can check it out here:

http://rollarama.captiveimagination.com

Not much fun unless you’ve got more than one person. However, I’m working on one of the single player games now that will be added soon.

-Matt Hicks

Well, not much use to me if I can’t view the source :-\

A good point…I had planned on releasing the source for this project, but my hope is to eventually have a version of this of high enough quality to sell, so I’m afraid it will have to remain closed source. However, I am going to be starting on a 2D game as an extremely basic example of a game in the near future that I will release the source code for.

-Matt Hicks