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 132
1921
Projects / aptal karga (foolish crow)
« on: October 25, 2005, 12:17:33 pm »
if you say so..  :D

1922
Projects / aptal karga (foolish crow)
« on: October 25, 2005, 04:40:37 am »
if you say so..  :roll:

1923
Projects / aptal karga (foolish crow)
« on: October 24, 2005, 10:53:41 am »
as i know, ack's are only sent in response to other packages, as receipts. if application doesnt send any data, no packages will be transfered. when the socket is closed (either manually or by an application crash) a connection reset or whatever package is sent to notify peer. but i'm not sure, i dont know much about tcp as i said. who cares, as long as java net api's keep this much high level :wink:

Quote from: "rolz"
p.s. nice to see you people back after summer hiatus :)
 thx :D

Code: [Select]
r a f t

1924
Projects / aptal karga (foolish crow)
« on: October 24, 2005, 10:13:40 am »
Quote from: "rolz"
regarding heartbeat what transport do you use for the game - HTTP or just plain TCP/IP or UDP ? I assume in case when you use connected sockets you will not need heartbeat at all

no udp or http. i use primarily tcp and for some criticial state information rmi (my type safety obsession :roll: ) i'm afraid heartbeat is necessary even for tcp sockets. otherwise you cannot detect -for instance- an unplugged network cable during inactivity.

i was testing karga in a friends' wireless network. they somehow disconnected but the server and even the clients didnt detect it. i dont know much about tcp low levels but i cannot find any other explanation for this

Quote from: "rolz"
regarding serialization - are you sure you need to send mesh data over network ? ;) You may want to choose lightweight objects with minimum required data - like name, gender, body type, hair color and so on - and a factory on client side that will create 3D objects from lightweight ones.

lol, you got me wrong. i'm not sending mesh data over network for sure. i was talking about about loading animation meshes from serialized (instead of 3ds or md2) files during startup ;)

thanks for the suggestion, it sounds good. i do something similar to your 'incremantal serialization' as i wrote in my first jpct days. i believe, using transient fields in cooperation with readObject and writeObject methods may significantly lower the necessary space for serialized meshes or other jpct objects. helge are you with us ? :wink:

Code: [Select]
r a f t

1925
Projects / aptal karga (foolish crow)
« on: October 24, 2005, 01:53:48 am »
since my last post:

* added jump
* some gui impovements and add-ons
* added 'dont see a user' option. (both sides simply dont see each other anymore) this has no take back at the moment so use it carefully ;-)
* added one way (client to server) heart beat mechanism. this is certainly necessary to detect network failures (especially in wireless ones)
* added basic i18n (internationalization) support. translated most parts to turkish but i've noticed that it's really hard to use turkish in computer generated messages :shock: for instance prepositions are in form of suffices which change depending on both wovels and last part of the word :evil:
* changed the way animations are loaded (from pre-serialized data). this takes 25% much space (than 3ds) but loads almost 20 times faster.
* added stand and talk animations (well in fact only the mechanism, animations are dummy). paired animations (like kissing each other) is coming soon. stand by ;)
* prepared a formal business plan. for god's sake, should i ever able to find resources for this project  :roll:

btw, i still think much can be done to decrease the serialized data size (with custom writeObject(..) and readObject(..) methods). even the mesh of a simple cube takes 2.5k space when serialized  :?:

Code: [Select]
r a f t

1926
Support / Undersampling
« on: October 23, 2005, 10:47:44 pm »
for the ones who use software renderer, using a small sized FrameBuffer and then scaling it to screen may be a better alternative to under sampling.

i didnt make any comprehensive tests but it seems this way peforms better than under sampling. furthermore one can use any sampling ratio. i remember i read something like sun graphics engineers suggest scaling images on the fly (i dont know why)

btw, assuming all others the same, can we say rendering time is proportional to FrameBuffer's area ?

Code: [Select]
r a f t

1927
Projects / Dissapointed
« on: September 28, 2005, 03:22:29 pm »
uml maybe quite useful for some cases. i mean not to use it for code generation or other purposes but use it for planning your program (or parts of it) before starting coding

in general i find drawing diagrams (not necessarily uml)  of ideas extremely useful as it forces one to think in depth and find possible errors, mis-thoughts earlier. as the old preverb suggests 'one diagram worths a thousand words'

in karga, i dont use any uml software but try to take my notes as diagrams on paper

another point i think very important is to make as much tasks done automatically as i can. for instance i use ant not only as a build tool but for copying files, zipping them etc. as humans make errors on these kind of tasks and easily forgot the procedure. and of course it's a real pain and source of discouragement to do the same boring things over and over again

this may be considered as a matter of taste but i also find it very useful and important to throw exceptions from methods (as opposed to returning nulls etc) and make things as much type-safe as possible. this way errors can be detected earlier. i love the idea of using the compiler to its limits to find errors

at a glance these are what i think about software development cycle

i wish you luck with your game :wink:
Code: [Select]
r a f t

1928
Projects / aptal karga (foolish crow)
« on: August 09, 2005, 12:52:20 pm »
obviously they are :shock:

one note about transparent panels, maybe it may help another addict :wink:

i found my self doing a common mistake. it is written every where but i did it  :oops: they say 'dont put your rendering code into your paint method, but simply copy a pre-rendered image' swing calls paint of background component everytime the foreground transparent one is repainted. and if you do a render as me in your paint method.. !$%@

Code: [Select]
r a f t

1929
Projects / aptal karga (foolish crow)
« on: August 08, 2005, 08:20:11 pm »
oops, forgot to login for post :oops:
and it is a 10x10 tile map. i cant correct it as i posted as guest :oops:

1930
Projects / aptal karga (foolish crow)
« on: August 04, 2005, 06:21:25 am »
as rolz asked for useful ideas, here is one. i use it since my first viewer prototype and find very convenient

if you use xml for static configurations (ie. not changed during program run) this is a simple receipt to make it robust and light-weight

* use jibx to convert your xml file to a tree of java objects. this eliminates those regular xml parsing issues which are both painful and error-prone
* serialize your object tree to a file
* re-compile the classes that make the object tree (as jibx uses bytecode enhancement, after using it your classes gets fatter and you need jibx runtime in your classpath to use them)
* now you can de-serialize that file in your program and use it without jibx runtime
* dont forget to manually assign a serial version id to your serializable classes -as below- otherwise above will fail

another advantage of this method is, since jibx uses reflection, you can make your configuration classes very small: with no setters-getters and almost all fields final

the result is, you get rid of xml parsing code and have a pure type-safe configuration in very little space

Code: [Select]

public class SomeConfigurationClass implements java.io.Serializable {
    private static final long serialVersionUID = 999;  // 'manually' assign serial version id
   
    public final String aStringValue = null;
    public final SomeOtherConfClass aComplexConfValue = null;
    // no need even for a constructor
    //..
}


Code: [Select]
r a f t
cheers :wink:

1931
Projects / Technopolies
« on: August 02, 2005, 06:24:23 pm »
Quote from: "rolz"
btw, what is your progress with hair/cloth/grass/tree animation ? got any useful ideas to share  ? ;)

the mechanism for clothing, hair and other accessories is basicly complete. as i wrote in my thread all clothing -including skin color, make up etc- is based on generating textures on the fly. hair and other mesh based accessories (glasses, earing etc) depend on animations saved via max-script to text files

if i dont break or change something (i will for sure :wink: ) it is a matter of modelling and configuration

i'm now working on terrain structure and a simple LoD (level of detail) mechanism for performance reasons. i will write in detail when completed

what is that grass/tree animation btw ?
Code: [Select]
r a f t

1932
Projects / Re: a screenshot
« on: August 02, 2005, 05:50:53 pm »
Quote from: "rolz"
Crawling through the evergreen forest ...
:)

to be honest, i really admire your shots.. they seem great
Code: [Select]
r a f t

1933
Projects / Technopolies
« on: August 01, 2005, 06:36:59 pm »
Quote from: "EgonOlsen"
Quote from: "raft"

btw, sometimes forum engine doesnt notify about replies
Works for me all the time...couldn't possibly be your spam filter or something?

no it isnt filtered as spam. maybe gmail is down for that moment and forum engine doesnt retry it  :?:

1934
Projects / Technopolies
« on: July 31, 2005, 08:12:51 pm »
Quote from: "EgonOlsen"
Depending on how you are implementing the collision detection, this may cause trouble IMO. Imagine entity A on client a move towards entity B (standing still on a) and entity B on client b moves towards A (standing still on b). Locally, this is no problem. On a, you correct the movement of A to not run into B and on b, you correct B's movement to not run into A. a and b are then sending the result back to the server. But then, A and B may cover the same space.
Have a look:

another example that causes the same problem occurs when both A and B tries to move to the same empty point P

i did use this approach in karga. clients may also use collision detection for movement of other players, this solves the 'unwanted intersection problem' but client states may differ a bit. not a problem for a '3d chat' but may be considered a slight problem in a game. anyway since its unlikely to happen, i find it negligable even for a game

in fact my server doesnt now anything about the 3d world in clients. it only stores a few necessary information about users, like their location, direction and current node

if the user moves with keyboard, one have to calculate movement stuff for every frame (as opposed to movement with mouse, which employs path finding) and those calculations cannot be done in server in an internet application (due to network lags)

looking this way, it is obvious that clients must maintain their own states. maybe some correction stuff can be deployed depending on the application type. for instance, in 3d chat, it is important who a user looks at so correction may depend on this

anyway, as i said before i find this somewhat negligable and low priority stuff

Code: [Select]
r a f t
btw, sometimes forum engine doesnt notify about replies

1935
Support / how to blit jcomponents?
« on: July 27, 2005, 03:06:09 pm »
Quote from: "EgonOlsen"
I just can't contribute to this thread...all i'm getting when i'm using Swing are grey rectangles... :oops:

who cares ? as long as you support jPCT  :wink:
Code: [Select]
r a f t

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