Show Posts
|
|
Pages: [1] 2 3 ... 51
|
|
7
|
Java Game APIs & Engines / Xith3D Forums / Help needed: port FlyingGuns to Xith3D
|
on: 2007-06-18 23:11:59
|
Hi! Maybe some people noticed the project FlyingGuns before. FlyingGuns is a distributed simulation framework with a WW1 flightsim as a demo. FlyingGuns was using Java3D from the very beginning. Meanwhile I created an abstraction layer that allows to use different high-level 3D engines (see description here). Now I'm looking for Xith3D experts who like to implement the new interface on top of Xith3D. This port not also should improve FlyingGuns but can also be used elsewhere, e.g. for Java3D-vs-Xith benchmarks, scripted prototypes, VR etc. The task shouldn't be *that* complicated for FG only uses basic 3D techniques so far. Any takers? BTW, FlyingGuns once had a Xith3D-based prototype which worked extremely well!
|
|
|
|
|
13
|
Java Game APIs & Engines / Java 3D / Re: Transform3D#set( Quat4f, Vector3f, float ): signature correct?
|
on: 2007-02-19 16:11:10
|
As a side note, I think the whole idea of having Point, Vector and Tuple in a math API is stupid since conversion from one form to another is necessary for performance. In your example a Movable could describe the Transform of a leaf node which is the result of the accumulation of all the transforms into 1 Point, but you can't cast a Vector to a Point since Point doesn't inherit from Vector. Simple documentation could be written on each method to specify what that method takes, whether it was a directional vector would suffice. Hence why im very reluctant to move to vecmath for VE.
I don't think its stupid. E.g. does Matrix4f uses different code when transforming a Vector3f and a Point3f of course. This alone is enough reasoning behind it. For a vector, only the rotational part is applied (e.g. for normals) while the full matrix is applied to a point that describes a position in space (resp. position in a reference frame). Without that distinction, you'd have to care yourself and be very clear about what you have. As you said, there are differences, mathematically speaking.
|
|
|
|
|
14
|
Java Game APIs & Engines / Java 3D / Re: Transform3D#set( Quat4f, Vector3f, float ): signature correct?
|
on: 2007-02-18 19:23:38
|
|
Hm, I see ... although I cannot follow that (0,0) argument, for a Transform3D always describes a position relative to the parent. So it always counts from (0,0) of its reference frame. Virtially, a 'true' (0,0) never exists.
Taking it another way: in my API I need to place a (game)object. I wonder wether it has to be Movable#set( Vector3f,Quat4f) or Movable#set(Point3f, Quat4f) ? IMHO the same should hold for Transform3D.
|
|
|
|
|
16
|
Java Game APIs & Engines / Java 3D / Re: Wanting to Dive into Java3D
|
on: 2007-02-06 09:19:06
|
i wouldnt mind starting off making a game that looks like counter-strike one.
Oh, what a modest approach for a beginner. What about a spinning cube instead? Then, for a 'simple CS', get acquaintaned with BSP or other PVS systems, animation systems, IK ... and start writing a bunch of good tools (after buying a modeler and learn how to use it). For this is a Java3D forum, people here are supposed to propose Java3D. Anyway jME is a good choice for a game. Go for that. And take a look at Xith3D, too. Or take another perspective: what data do you have? Model format? Scene format? Than look for a 3D engine supporting that format. That's the way I came to Java3D (although those days jME and Xith3D didn't yet exist).
|
|
|
|
|
20
|
Java Game APIs & Engines / Java 3D / Re: v: signature correct?
|
on: 2007-01-09 14:50:05
|
|
At first I'm asking whether it is correct. If it is not, I'd ask for a change of API. Clarification is also important for the design of my ingame API, maybe my thinking is wrong.
My point, when you e.g. transform a Vector3f by a Matrix4f, the translational part is not applied. This is useful when the Vector3f e.g. describes a normal. This is bc. a Vector3f describes just a direction and not a point in space.
Applying the Matrix4f to a Point3f, translation is applied.
So:
Vector3f == direction Point3f == location in space
IMHO Transform3D#set( Quat4f, Vector3f, float ) needs a position in space as second argument, so it should be a Point3f.
|
|
|
|
|
23
|
Java Game APIs & Engines / Xith3D Forums / Re: Which IDE do you use?
|
on: 2007-01-06 23:59:57
|
I suggest for everyone to take atleast a look at the new UML tool for Netbeans 5.5 (available via Online Update inside the IDE). It supports bi-directional working (reverse engineering) which helps in getting an overview of class relationships - especially for large projects like Xith3D. I'm really a big fan of NetBeans and use it every day, but the UML module just is not finished. Pretty powerful, but too many bugs.
|
|
|
|
|
27
|
Game Development / Networking & Multiplayer / Re: Sending weapon data over the network
|
on: 2007-01-02 14:35:39
|
I also don't thinks it's a matter of game size or complexity. Military simulations e.g. are highly complex and don't do everything on 'the server', which doesn't have to exist at all. Interesting enough that mil. simulations don't care for cheating  . In contrast I think the more complex and the more exact things have to be, the more you have to rely on the client. Imagine sitting in a fighter plane giving a single shot at an opponents plane aileron from close distance, being sure that is *must* hit the target. You also need visual/audio feedback much sooner than a network roundtrip would allow. In this case, only your client can determine the hit. The server cannot do that for it only has a vague impression of what you see on the screen and maybe doesn't have the detailed mesh of the target for the exact collision bullet/aileron. All the server can do is saying: 'well, ok, the player still had ammo and their (estimated) relative positions/orientations make a hit feasable'. Letting the server decide leads to situations where you hit a target over and over w/o giving any harm to it. Depending on the gameplay this can be very annoying. (note: I said 'depending on the gameplay'!)
|
|
|
|
|
28
|
Game Development / Networking & Multiplayer / Re: fast objects and networking
|
on: 2007-01-02 11:58:21
|
|
Hm, after kicking the ball, its trajectory is completely determined until something else happens. So why do you send 20 messages/sec with information everybody could know anyway?
With your approach you are really begging for latency issues and thats what you get.
If you are going like that, you have to improve your smoothing. Never realize a position received from the network. Use timestamps (and a synchronized clock) and treat incoming information as a hint to correct the current path. Remember that all messages from the network come out of the past!
|
|
|
|
|
29
|
Game Development / Networking & Multiplayer / Re: Sending weapon data over the network
|
on: 2007-01-02 11:50:07
|
|
I don't agree 100% with bla. I'd formulate more like that:
'If you have to avoid cheating, never trust the client.'
If cheating is not an issue, trusting the client opens a wide range of options to simplify logic and protocols and save a lot of bandwidth. It often allows for better feedback.
In FlyingGuns, the shooting client analyzes wether there is a hit and calculates the damage. Then it transmits the damage to the targets client. On the targets client, the damage is evaluated and e.g. makes the target smoke or explode.
This way, no networking handshake is necessary, just a store-forward. Second, the experience is believable, bc. a perceived hit on the shooters side in any case *is* a hit. So no network artifacts show up.
Of course, a cheating client will always win.
Saying that, concerning your specific questions, I wouldn't transmit the officers state with every bullet bc. that is completely redundant and a waste of bandwidth. I'd share the officers state separately or calculate the damage on the shooting side (if thats possible).
|
|
|
|
|
|
Add your game by posting it in the WIP section,
or publish it in Showcase.
The first screenshot will be displayed as a thumbnail.
|
|