Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - raft

Pages: 1 ... 126 127 [128] 129 130 ... 132
1906
Projects / aptal karga (foolish crow)
« on: December 08, 2005, 11:54:42 am »
well, since i'm busy with lots of 'life' issues, nothing new yet.  but i just feeled i left my thread and project too lonely..

just for reference this is what 'aptal karga' (foolish crow) means:

foolish crow is the crow who resurrected for revenge after his death but forgot his reason of resurrection because of the happiness of returning life again. foolish crow is not real, just an urband legend among crows

(in turkish)
aptal karga ölümünden sonra intikam için geri dönen, tekrar yasamanın büyüsüne kapılarak varoluş amacını unutan kargadır. gercek degildir. kargalar arasında bir $ehir efsanesidir.

this should be in the first post of thread but who cares  :wink:

Code: [Select]
r a f t

1907
Projects / Imperio - Galaxy-wide strategy
« on: December 07, 2005, 12:47:50 pm »
Quote from: "rolz"
Raft, What i NICE IDEA !!!!!!!!!!!!!!!!

:lol:  8)

Quote from: "meinfilter"
The second balloons you use, the blitted ones, do they hide behind objects? How did you do it if they do? I can't figure how to do it if they are not 3D objects in the scene.


i simply decide to blit or not, by checking object's visibility and casting rays and see if they reach target.  blitting always done after rendering, so they never hide behind any objects. to interfere with rendering, i once thought of a object or polygonRendered method to add to paintListener interface but Egon said it wont do the trick since rendering is done from front to back for optimization purposes (Egon please correct me if i remember it wrong)

not a perfect solution but handles most cases. if you find a better one i would like to hear..

Code: [Select]
r a f t

1908
Projects / Imperio - Galaxy-wide strategy
« on: December 06, 2005, 04:54:12 pm »
hello meinfilter,

you can almost forget about texture based strings, they arent readable. have a look at the screenshots at karga thread

for skybox, instead of using a huge sphere i store a small sphere in a seperate world where the camera is always located at origin. than i simply render both of my worlds (the skybox one and the regular one) to same frame buffer one after another

Code: [Select]
r a f t

1909
Projects / Raven's projects
« on: November 18, 2005, 05:53:12 pm »
Quote from: "Raven"
Due to my state of newbieness to the matter..

nevermind, i'm also a newbie for this kind of projects, or at least i was before karga :wink:
Quote from: "Raven"
if I understand correctly, you're basically normalizing game animations and events by checking how fast the application is running?

yes, exactly. the idea is to increment the game state (animation indices, positions of moving objects etc) as much as the time elapsed since last update

say you have an opening door animation which you want to last for 2 seconds, and your fps is 50 (= 1/50 seconds elapsed) you increase animation index of door by 1 / (50 * 2) each frame

Code: [Select]
r a f t

1910
Projects / Technopolies
« on: November 17, 2005, 10:45:23 pm »
hey rolz, that's a really cool screen  :D

1911
Projects / Raven's projects
« on: November 17, 2005, 10:24:38 pm »
Quote from: "raft"
assuming constant fps it is trivial to decide where that user will be in each frame. with un-constrained fps it's somewhat more complicated


himm, i'm re-thinking now about the subject and, assuming constant fps even in an un-constrained enviroment may be a good assumption. normally fps doesnt change that much if something doesnt change radically (such as world size doubles or user opens another cpu eater application).

so, measuring fps every -say- 5 seconds and assuming it constant may also simplify things. i guess this way fps increases slightly since number of updates decrease. a drawback is, if one moves with key strokes every frame, fps/ups results in a smoother feeling

sorry raven, filling your forum with self thoughts  :oops:

Code: [Select]
r a f t

1912
Projects / Raven's projects
« on: November 17, 2005, 09:53:59 pm »
Quote from: "EgonOlsen"
in theory...it never happened for Paradroidz because collision detection is too fast


certainly it is. in fact everything, even those you mark as expensive in javadocs, is quite fast compared to render time. dont get me wrong, i dont mean rendering is slow :wink:

i choosed this way since i couldnt find effective solutions for some questions, especially in a multi-user enviroment. for instance, if some user moves from point A to B, basicly only these two points are broadcasted to other clients. assuming constant fps it is trivial to decide where that user will be in each frame. with un-constrained fps it's somewhat more complicated

Code: [Select]
r a f t

1913
Projects / Raven's projects
« on: November 17, 2005, 08:46:11 pm »
hello raven,

Quote from: "Raven"

So, to sum up, my question basically is: is this the way to go? Or is there some other method that's better when making 3D games? For example, should I be looking into threading each type of manager so it runs independantly?


as a rule of thumb, you should avoid threading whenever you can. it only complicates things and cost some performance (due to syncronization and context switching overhead). use threading where you have to do so (for example when use blocking i/o)

in karga, to simplify things, i targeted a constant fps. even collision detection and other non-render stuff doesnt cost much compared to rendering, so if i cannot reach targeted fps, i simply skip rendering for some frames and update the game state only. this method depends on measuring render time, something like this:

Code: [Select]

while (running) {
    long startTime = System.nanoTime();
    gameUpdate();
    gameRender();
    long elapsedTime = System.nanoTime() - startTime;

    if (elapsedTime < expectedElapsedTime) {
        // sleep here for some time
    } else {
        // do some gameUpdate without render
    }
}


with this approach, even on a slow machine updates stay closer to high targeted fps (50 for instance) so you can decide animation indexes etc depending on targeted fps

instead of controling animations and other things (movements etc) from a central location i've also defined a FrameListener interface which lots of my 3d objects implement. so they can 'take care of themselves'
Code: [Select]

public interface FrameListener {
    public void timeForNewFrame(/* pass here whatever you want like frame no, world etc*/);
    public void timeForRender(/* same as above */);
}



so what i do in gameUpdate and gameRender is:
Code: [Select]

private void gameUpdate() {
    for (FrameListener l : frameListeners) {
        l.timeForNewFrame(/* some parameters */ );
    }
}
private void gameRender() {
    for (FrameListener l : frameListeners) {
        l.timeForRender(/* some parameters */ );
    }
}


hope this helps :wink:

Code: [Select]
r a f t

1914
Support / Question: Models, lighting, and more.
« on: November 07, 2005, 09:14:02 am »
Quote from: "Raven"
I think you're talking about the same thing that Helge had already already pointed out to me, except that you want me to put it in a seperate file? But wouldn't I then have to align my map.3ds with the lights.3ds after I import them into jPCT?

not exactly, i think we were talking about different things.
i couldnt get what you meant by aligning ? those dummy 'light' objects are already positioned in your world. just export the world to map.3ds and lights to lights.3ds
Code: [Select]
r a f t

1915
Support / Undersampling
« on: November 06, 2005, 01:54:35 pm »
Quote from: "EgonOlsen"
Undersampling simply renders at half the resolution and doubles  the rendered pixels in x- and y-direction. Maybe scaling is faster because it can benefit from hardware support, but i somehow doubt it, because it's a non-accelerated BufferedImage.


on my box (both redhat and win xp), scaling runs almost 10% faster then undersampling. swing uses VolatileImage (accelerated) by default for back buffer, but the result doesnt change even if i disable double buffering. strange :?: (btw, i dont if copying from a non-accelerated image to an accelerated one offers any improvement)

anyway, i preferred the undesampling way since it makes things (like 2d blitting) much easier. and 50% undesampling makes almost a 50% speed impovement so i see no point in using other scaling ratios

Code: [Select]
r a f t

1916
Support / Re: Question: Models, lighting, and more.
« on: November 06, 2005, 01:22:07 pm »
Quote from: "Raven"
I'm wondering what the best way would be for me manage this. There's also the question of object placement: Figuring out where to place objects like "Healthpacks" for example.


possibly not best way, but i find this very handy:
i either:
* place dummy objects to mark those positions and save them in a seperate file (like lights.3ds) and then use the center of those objects to place lights
* again place dummy objects but save thier positions with max script (faster loading time and less space)

Code: [Select]
r a f t

1917
Support / Re: serial version uid
« on: November 03, 2005, 05:56:18 am »
Quote from: "EgonOlsen"
you can't deserialize old stuff with a changed class. So where is the actual difference?

you can, even if you changed the class incompatibly. you can change method names, signatures even add new fields (they are simply set to nulls or zeros during deserialization). i'm not sure what happens if you change field types or remove a field but the others dont break deserialization

Code: [Select]
r a f t

1918
Support / serial version uid
« on: November 02, 2005, 02:00:08 pm »
egon, can u please add a serial version uid to serializable classes ? it becomes incompatible with the previous version and it breaks loading previously serialized objects. sun suggests it too and it wont hurt for sure

Code: [Select]
private static final long serialVersionUID = 999L; // or whatever long

of course you can change it in time when it is necessary (such as when internal fields are not backward compatible)

and when did you update the site, i must have missed it. it looks nice :wink:

Code: [Select]
r a f t

1919
Projects / ¿how much pleople still using jpct?
« on: October 29, 2005, 08:25:12 pm »
+1
although not reading all posts, i'm here too :wink:
Code: [Select]
r a f t

1920
Projects / aptal karga (foolish crow)
« on: October 25, 2005, 12:17:33 pm »
if you say so..  :D

Pages: 1 ... 126 127 [128] 129 130 ... 132