Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (715)
Games in Android Showcase (214)
games submitted by our members
Games in WIP (788)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1] 2 3 ... 5
1  Game Development / Networking & Multiplayer / Re: Real Time Strategy game on: 2010-04-17 13:25:48
I am using it and it is a good one.
My tool Jnag is also supporting it.
2  Game Development / Networking & Multiplayer / Re: Jnag's return (1.2.2) on: 2010-04-13 11:42:44

I recommend you to try the samples, take a look at the generated files, and trace the code if needed.
3  Game Development / Networking & Multiplayer / Re: Jnag's return (1.2.2) on: 2010-04-13 05:23:21
Can you point me to some classes that do network communication?

They all kind of do :-)

There is a section which explains which module contains what at the beginning of the documentation.
4  Game Development / Networking & Multiplayer / Re: Jnag's return (1.2.2) on: 2010-04-11 11:25:24
I have made my main wiki page clearer and let it be the project's landing page. I will release the next version of Jnag using zip files as requested. So far, your feedback were really useful. If you have more critics, they are more than welcome Smiley
5  Game Development / Networking & Multiplayer / Re: Jnag's return (1.2.2) on: 2010-04-10 08:12:02
When using @Singleton, if you just send the method ID, how do you identify what class to invoke the method on?

In fact, I forgot that I changed the way I encoded the messages a few months ago. Now I send the method ID first, then the target object ID if needed, then the parameters.

The method ID implies the type of the target object. When the count of all the methods of all the network interfaces of the receiver is over 256, then 2 bytes are used for the method ID.

Because of the RMI overhead, while it is very minor, I tend to just send objects in my games and do instanceof checks on the other side to determine what to do with the objects. A bunch of instanceof checks certainly isn't as nice as being able to call methods remotely, but it does avoid a couple bytes per send (at least in my apps).

If the object's type information is sent, then that's about the same.

So to get back a value, the other side of the connection would have to explicitly make an RMI call to send the response? How would you correlate the response back to the input? Eg, I think you would have to send an ID along with the input parameters. The response would have to also include the ID, so that you'd know what input parameters the response correlates with. This may be tedious if it is needed often.

Jnag was made for games which are not designed to block on a remote function call (that's a big difference with RMI). If you want to get an answer, you need the destination to know where to answer. One way is to have the remote object implicitly know where to answer (by program design), and another way is to pass a reference to a callback in the parameter list. If such reference is a singleton, then no additional byte is encoded for this extra parameter.

Also, you won't be able to get back a value by remotely invoking methods on 3rd party classes that don't know how to send back a value through JNAG. You could always wrap them though. Of course, for games you probably never need this.

True, we never need to directly do a remote call to a 3rd party library.

Much better! Though I still contend that the "Wiki" link is too hard to find. If someone doesn't think to click on those four little letters, they'll never find the nice documentation you've written. If it would be possible to move your documentation index to the homepage, that would be ideal.

I will try that.
6  Game Development / Networking & Multiplayer / Re: Jnag's return (1.2.2) on: 2010-04-09 17:05:09
Hi Jester,

I reorganized the wiki's pages. Now the navigation should be more clear. Thx.
7  Game Development / Networking & Multiplayer / Re: Jnag's return (1.2.2) on: 2010-04-09 15:26:25
JAR != zip file. I always wonder why people put docs, etc in JARs. Smiley

Good point, I take notes. I should distribute zip files.
Note: the jar files are zip files with a different file name extension. You can rename them to .zip and unzip them.

I *want* to see how it works. I look around in the sources JARs. Why are there so many? I opened 3 or 4 and found only some annotations and interfaces.

Jnag is composed of a few modules, you saw 1 jar for each of them. Their content is described at the beginning of the documentation. You probably opened the module that contains the annotations and interfaces that are used to decorate the network interfaces.

Ok, then, back to the website. I found a link to some source, clicked on examples, and began expanding a bunch of Maven format directories, waiting for the whole page to refresh (slowly!) with each click. After 8 painfully slow clicks, I find two interfaces: EchoClient and EchoServer. My god this shouldn't be so hard.

The part of Kenai which serve the sources on a per file basis is very slow, you chose the worst way to read the sources. The best way is to use Mercurial and clone the whole repository. The second best way is what you did early, to download the sources from the download section.

It appears to be an RMI library.

An RPC library, precisely.

Can you serialize types other than primitives, Arrays, Lists, Sets, Maps, and Enumerations?

Not at the moment, but this is easily to add. (added to the todo list for the 1.2.2 release, thanks).

How efficient is the bandwidth usage?

The parameters are not currently compressed, but only raw data is transmitted, no type. You also need to count 4 bytes for the target object if you choose to use Jnag without the @Singleton annotation (using the annotation, it is zero bytes), and for the method ID, I would say that in most cases only 1 byte is needed.

How many bytes does it take to call a method with one int parameter that returns an int? Do method invocations on a proxy object block while the remote method is being invoked? Do you support non-blocking? Are you using NIO?

The library is doing asynchronous messages, they are going in 1 way only, and the program doesn't block when you call a function on a proxy.

Seemingly hidden at the bottom of the first wiki page is a link to "Documentation", which takes me to a ton of information. I definitely think you should make this more prominent!

he he ... I am a programmer, not a designer :p

How would you organize it?

It looks like an interesting library.

It is  Grin

If I were to sit down and make use of it, I'd read all the documentation, but since I'm just giving it a "once over", I basically skim the example code. I think I have a reasonably good idea of what you are doing. I think it would help if the example code started simple and built up to the more advanced usage. Currently I feel sort of thrown into the advanced bit before I can really understand what is going on.

True. I need to create more samples, 1 for each feature.
8  Game Development / Networking & Multiplayer / Jnag's return (1.2.2) on: 2010-04-09 07:58:06

I would like to post a link to the Jnag library (Java Network API for Games), which is now open source, documented, and pretty mature. Please see the wiki for its documentation.

Any feedback, good or bad, is greetly welcome (please use the forum of Jnag for the feedback, thanks).

Vincent Cantin
9  Game Development / Networking & Multiplayer / Re: Jnag 1.2.0 + PDS samples now available on: 2009-11-01 14:11:08
Big OOops ! I think I didn't double checked my website, some pages were "private" where they shouldn't be. I also forgot to put back the download section, sorry.

Give me a couple of minutes to fix it.

The library is not open source, I stopped myself from doing so because I need to find a way to get paid for all the work I have been doing on it. However, non-commercial projects can use it for free. The license for indies is really cheap, it doesn't even pay me for half a day of work - that's a symbolic price. More info in the License section of the website.

Edit: The website is fixed. If you see anything strange, let me know.  Roll Eyes
10  Game Development / Networking & Multiplayer / Re: Game Server on: 2009-10-31 19:16:08
pessimistic, no , realistic, yes... we visioned a simple asynchronous (non-live-sync) multiplayer system for mobiles would take a year, it took two years, full-time work...

It doesn't take everybody so long to make it. With the right tools and a basic experience of asynchronous communication, it could take a week to write the network part of a simple game.

For the sample that heckboy wants to implement, it could take 1 hour to me.
I am using Jnag & Darkstar, this helps.
11  Game Development / Networking & Multiplayer / Jnag 1.2.0 + PDS samples now available on: 2009-10-31 19:06:52

I recently released a new version of my network library and I would like to know what you think about it.

It is a "messaging" library, it means that it is used only to encode function calls into a DataStream, it doesn't send data over the network by itself. This way, it can be used in any program, on the top of any existing server of network library which is handling the transportation of the data from 1 host to the other one.

My messaging library is pretty advanced. It is used by defining the messages via a some special java interfaces. Those interfaces are read by an annotation processor which generate the source code for the proxies which encode the function call, and which generate the source code to decode those messages into local function call on the remote host.

The library is able to work between jse programs, and also has an implementation which work on the top of the Project Darkstar Server.

The library has a lot more features that makes the network programming really easy. I invite you to discover them via the few Jnag samples available on the kenai website.

For more info, see please
12  Discussions / Jobs and Resumes / Re: Yumetech is seeking an experienced 3D graphics programmer on: 2008-09-09 05:21:53
Yes, sorry. It's in Seattle, WA, USA. We would normally consider remote workers, but in this case, I'm looking at the role involving a reasonable amount of mentoring of junior developers as well, so we'll need you in the office for that.

I would say that if the junior developers are mastering Skype and remote desktop, then that's not a real issue.
I am located in Taiwan, I have no experience with GLSL but I do have some with CG.
Please message me if you are interested,  I will send you more details about me.
13  Java Game APIs & Engines / JInput / Re: How do you deploy JInput? on: 2007-08-16 13:57:08
I use it directly, as it was explained in the "getting started", but I plan to use webstart as soon as I understand how to use this animal.
14  Game Development / Shared Code / Re: abstract class declaring a derived class as a return on: 2007-08-08 18:11:06

I have been using this pattern for year, and there is something you need to realize:

It is not because you write :

public abstract class X<C extends X<C>> {...}

... that you should suppose that X will always be used like that:

public class A extends X<A> {...}

It could also be used like that:

public class B extends X<A> {...}
15  Java Game APIs & Engines / JInput / Xbox360 USB controllers on MacOS X - Working fine on: 2007-08-07 16:48:28
Hi, I just wanted to say that I am playing my game on iMac using a Xbox360 USB controller via jinput and everything works fine.

Jinput Rulez ~~
16  Java Game APIs & Engines / JInput / Is JInput ok for Wii Remote? on: 2007-07-31 08:17:19

I just followed the "getting started" instructions from Endolf  and was able to use jinput in my prototype in just a few hours.

Right now, my prototype is already using 2 Xbox controllers at the same time and everything still works fine.
I am going to try with 3 and 4 a little later. If it still work then I don't need to use SGS to have my prototype finished :-)

I have a weird question to ask: do you know if jinput is adapted to the special data format of the Wii Remote? I know that some hackers did use it on PC so maybe there is a way to access it via directX and jinput, but I don't know exactly what kind of data the Wii Remote could send to the program.

Did anybody tried it already?
17  Game Development / Networking & Multiplayer / Re: Load balancing cluster on: 2007-04-14 13:47:46
What URL for the jobs?

[Edit] If it is this one --> <-- then I am interested.

18  Discussions / Miscellaneous Topics / Re: Mii - Parade on: 2007-04-13 14:28:57
I am even more late, but here it is:

2529 5025 8114 1045

19  Game Development / Networking & Multiplayer / Re: Long execution/background tasks on: 2007-04-03 12:10:18
Strange, I remember the documentation saying that the default value is 1 min.
You can change the time out value. See the documentation.

It is strange also that your task is 3 seconds long. Does it takes that long to forge your message ??
I recommend you to split the creation/send of your message into subtasks.
20  Game Development / Networking & Multiplayer / Re: darkstar examples on: 2007-04-03 12:06:48
Some tutorials and documentations are in the package when you download the SGS lib, I learned from there.
21  Game Development / Networking & Multiplayer / Re: Question about genericity in the class ManagedReference on: 2007-04-03 12:02:25
Thank you for the explaination.
22  Game Development / Networking & Multiplayer / Re: Question about genericity in the class ManagedReference on: 2007-04-02 17:32:57
What you said is true.

But, as I said, with or without generics on the class, the class cast exception will come at about the same place (inside the get function for the current version, and at the usage, pretty shortly after the get function, for the version that have the generic on the class).
23  Game Development / Networking & Multiplayer / Re: Question about genericity in the class ManagedReference on: 2007-04-02 16:58:23
So it gives no assurances, but causes extra confusion because it looks like it does.

.. but .. that's the same with the ArrayList class, and people are still happy to use generics on them.

Isn't there a way to guaranty (at least for the user of SGS App) that a ManagedReference really reference the type of data specified in its Generic type? For example, by adding the genericity to the following function in the interface DataManager:

<T extends ManagedObject> ManagedReference<T> createReference(T object);

.. and it seems that this function is the only one to create the Managed reference.

Now, how can a ManagedReference could reference an object whose type is incompatible with its generic type?  Smiley

I also want to point the fact that with or without a genericity in the class, the cast exceptions happen in the same places and the result for the user is the same.
24  Game Development / Networking & Multiplayer / Re: Question about genericity in the class ManagedReference on: 2007-04-02 13:47:06
On 1, its a really fine and subtle point of semantics.  While it would seem the obvious thing to do (and something we did in the EA stack) it turns out to be subtly, arguably semantically wrong.   If you want the whole argument in depth, you'll need to get it from Seth or Tim. 

From my point of view, to do

Foo foo = ref.get(Foo.class);

instead of

Foo foo = (Foo) ref.get();

is not particularly helpfull. The result is the same so it is as if there was no genericity at all in the class.

If there is no really usefull genericity in the class, I prefer that there is at least the one I proposed since it leaves the choice for the user to use it or not.

I am really curious and would like to understand where it is semantically wrong to use the design of the collections here.

Deep respects,
25  Game Development / Networking & Multiplayer / Question about genericity in the class ManagedReference on: 2007-04-01 12:04:50

I still have 2 questions about the design of the SGS App API:
  • I would like to know why the genericity in the class ManagedReference was not designed like a Collection(i.e. ManagedReference<E extends ManagedObject>),
  • and why there is a need to specify a class in the functions get() and getForUpdate(). Was it just to be able provide the wanted type as the return value or does it help to request the object from the database?

26  Discussions / Miscellaneous Topics / Re: You know your a java geek when... on: 2007-03-31 14:45:12
... when you write a network lib for games in java while you have a busy fulltime c++ game programming job and a pregnant women to take care of.  Roll Eyes
27  Game Development / Networking & Multiplayer / Poll about classnames in JNAG on: 2007-03-31 12:22:45

Sorry for posting in the thread for SGS but I needed to submit the poll to JNAG users and it seems that they will all be SGS users.

I will have a version of JNAG working on SGS in the next days (1~3 days) and I would like to know what classnames people prefer to use. For instance, I am currently using "", and I am thinking to refactor that to "". I am aware that the users might be confused between the sessions from SGS (ClientSession and ServerSession) and the one from JNAG but maybe it might not be the case .. so I created this poll to help me to choose to refactor or not.
28  Game Development / Networking & Multiplayer / Re: RFE, common type for Channel and ClientChannel on: 2007-03-31 05:59:19
Hi, karmaGfa, I'm one of the developers who worked on that API.  We spoke for awhile at GDC.

Hi, I remember you.  Smiley

Sorry to bother you with my questions.  Lips Sealed
I guess I love too much Java to stay quiet when I see places for improvements.

Good point!  The short answer is: this is by design.  [...]

I understand and totally respect your choices since it was a design desicion.
As you said, I made some adaptors for the client and server and there is no problem at all.

Thank you for the answer.
29  Game Development / Networking & Multiplayer / Re: RFE, common type for Channel and ClientChannel on: 2007-03-30 13:20:25
I'd rather feed your questions back and either get answer for you or have them answer you directly.
There will be some lag in that process though so I'd ask you to bear with me.

Still no feedback ?
30  Game Development / Networking & Multiplayer / Preview of the new JNAG .. done on: 2007-03-25 17:34:09
I posted the preview of the new version of JNAG on its website. Those who want to take a look at it can access it via CVS. If possible, I would like to have some feedback about the API (I added the javadoc of the project on the CVS server).

Current limitation of the implementation:
- Not stable (i.e. no error handling) and you cannot serialize objects yet. Only primitives, arrays, enums, and references to instances that implement the interface Remote (that's similar to RMI) can be sent over the network from an host to another.
- Doesn't work yet on the top of SGS (will be done soon).

Edit: the javadoc can be browsed directly at the adress
Pages: [1] 2 3 ... 5
CopyableCougar4 (132 views)
2017-03-24 15:39:42

theagentd (115 views)
2017-03-24 15:32:08

Rule (174 views)
2017-03-19 12:43:22

Rule (162 views)
2017-03-19 12:42:17

Rule (166 views)
2017-03-19 12:36:21

theagentd (180 views)
2017-03-16 05:07:07

theagentd (176 views)
2017-03-15 22:37:06

theagentd (143 views)
2017-03-15 22:32:18

theagentd (137 views)
2017-03-15 22:31:11

ral0r2 (157 views)
2017-03-03 11:52:41
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!