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 ... 127 128 [129] 130 131 ... 133
1921
Projects / aptal karga (foolish crow)
« on: February 17, 2006, 09:48:29 pm »
thx :D she's really cute, in fact i may fall in love with her ;) and she's only 470 polygons

for the old avatar, i suspect he's better than quasimodo :oops:

Code: [Select]
r a f t

1922
Projects / aptal karga (foolish crow)
« on: February 16, 2006, 10:53:06 pm »
* added the new girl avatar (she's from turbosquid by bogdan iliesiu)
* fixed a bug about setting default accessories
* finally implemented normal talk mode at server side :/
* improved user movement resulting in smoother movement and less stuck
* added spring period to jump

the new girl avatar


Code: [Select]
r a f t

1923
Projects / aptal karga (foolish crow)
« on: February 09, 2006, 04:04:01 pm »
* fixed run mode for windows & linux (hope it will run at MacOS & Solaris too)
* extended LoD mechanism to cover avatars too
* some more small improvements for sending user movements

Code: [Select]
r a f t

1924
Projects / Technopolies
« on: February 05, 2006, 12:44:23 am »
brave decision !

why ? what went wrong ? talk about details please.. i really wonder as (i guess) many others do

1925
Projects / aptal karga (foolish crow)
« on: February 02, 2006, 08:59:09 pm »
* added run mode: double tap forward key to run (1)
* improved animation load mechanism to allow using same mesh in multiple sequences: resulting in reduced load time, disk and memory usage
* seperated walk forward, backward, turn, strafe left, right and run animations
* improved footstep synchronization
* improved the way user movements sent to other clients: they are almost replicated now in an efficient way

(1) i've just noticed that run mode doesnt work on win32 platforms since Java generates different KeyEvent sequences on win32 and linux. i'll fix it soon

test tool running to show the sent user movement


Code: [Select]
r a f t

1926
Projects / aptal karga (foolish crow)
« on: January 20, 2006, 04:31:42 pm »
since my last post,

* tcp communications are compressed now
* added the tube: it's an old fashioned multi purpose device, used as both personal teleporter and dressing room (binded to key t for some time)
* replaced the sky-box with a better one
* added third person custom view: both camera distance and angle can be adjusted by shift and arrow keys
* regions panel does not show up anymore if there is only one region
* added server side configuration files
* camera now moves smoothly
* implemented basic paired animation mechanism: right click to a user to suggest him some action

new sky-box and the tube in action:


Code: [Select]
r a f t

1927
Projects / Technopolies
« on: December 15, 2005, 06:31:43 pm »
good luck rolz ! and tech site looks cool  8)

Code: [Select]
r a f t

1928
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

1929
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

1930
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

1931
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

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

1933
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

1934
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

1935
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

Pages: 1 ... 127 128 [129] 130 131 ... 133