Community Reputation

About sBibi

Quote:Could a clump of mass the size of the earth or the moon become a black hole? no, they aren't massive enough to collapse under their own gravity into a blackhole. but theorically, with enough energy, any lump of matter could be forced into a blackhole... except that, like with the tiny artificial "blackholes", they won't be stable, and as soon as you stop artificially holding them together (assuming you can do so in the first place), they will just blow apart... (though I might be wrong here...) Quote:What would you need to know to calculate a black hole's gravitational force? Probably mass, right? er... yes... like with any other body... Quote:Can you calculate mass from size of event horizon? you have the answer to this in the 7th post: "sr = 2.0 * G * mass / (c * c);" and you have the answers to the rest in the page dv linked: http://www.photon.at/~werner/bh/gvsim.html

mh, something else: about the singularity thing, I'm not sure a blackhole necessarily means a singularity. if you take a neutron star, what stops if from collapsing further is the strong nuclear force repelling neutrons from one another (which gives a density around 1.10^18 Kg/m^3 if I'm not mistaken), and even then, when the star's mass becomes large enough that the neutron-repelling force can't stop it from collapsing, it collapses again to a quark star... (it seems "logical" (although here, what seems logic might lead to very wrong deductions, of course))... so, why systematically throw in a singularity? why couldn't there be blackholes with quark stars inside? (and how can we know there isn't yet another collapsing level below that?) if any one could answer, or has any links answering these questions, or explaining why not, I'd be very interested! thanks :) EDIT: perhaps it has something to do with the fact that neutron stars can have quark cores, and that a full quark star would necessarily have a core collapsed one or more levels further, and that it is assumed there are no further steps, and no sub-particles below quarks, so the whole thing actually collapses to a singularity? Oo EDIT2: Quote:btw, on a gravitational point of view, a blackhole behaves exactly the same way as a regular celestial body (like a star) would. and the "stretching" thing, is the same as sattellite-ripping tidal effects close to giant planets, so as long as you perform these computations correctly for other massive bodies, there is no specific code to add for blackholes. to give a more concrete example: if you consider the earth, and the sun, and you make the earth orbit so close to the sun that it almost touches it, the earth, although totally roasted, will stay together. if you want it to actually be ripped apart by tidal forces, you'll have to move it to an orbit that's actually below the sun's surface (so that's not possible), however, if the sun had a smaller radius, you could experience such effects... it's the same with blackholes. as they have a smaller radius, orbiting objects can be tidally disrupted much more often, as they may come closer. [Edited by - sBibi on October 31, 2006 12:58:41 AM]

There are various types of black holes, among which: non-rotating (schwarzschild) blackoles, and rotating (Kerr) blackholes. (and maybe some other types/subtypes, I don't know) the easiest one to simulate would be a non-rotating one. Quote:Also, does a black hole's size affect its gravitational pull in any meaningful way? actually, it is the black hole's mass (thus gravitational pull) that defines its size (more specifically, the size of its event horizon, more on that later...). you can define a black hole with various parameters in your game: mass, angular momentum, and electric charge. (although you probably don't care about the last one) for a non-rotating blackhole, if you know its mass, you can get its visible size by computing the schwarzschild radius: sr = 2.0 * G * mass / (c * c); (where G is the gravitational constant, and c the speed of light in vacuum) basically, this radius is the distance from the blackhole below which the blackhole's gravitational pull is so strong that even particles travelling at the speed of light cannot escape. what this means graphically is that you "see" a pitch black sphere of radius == sr, and this is your blackhole. you can go even further with this, and have intermediate states. you can see a blackhole as a regular star/object whose event horizon has risen above the object's physical surface, so actually simulate a transition from a regular star that collapses into a blackhole, and render the transition accordingly. (although you would need raytracing to "accurately" render this, you might be able to fake it with regular rendering, as a star that's in between blackhole and star would probably (just speculating, didn't check it on paper (and even ten, I don't know enough about this stuff.. perhaps someone here will be able to give you more details))) look like a black sphere with a small circular "window" on its center where you would still see the star's surface. another interesting thing to do if you want to render blackholes would be to simulate the bending of light rays in the blackhole's vicinity. you could do that by rendering a cubemap from the blackhole's center, then render a large billboard centered on the blackhole, and for each pixel of the billboard, depending on its position and distance to the blackhole, somehow compute an indexing vector into your cubemap... you'll also probably want to have a look at the articles in wikipedia, and see what they have on the nasa website... EDIT: ah.. crap... triple cross-post... sorry... :D EDIT2: btw, on a gravitational point of view, a blackhole behaves exactly the same way as a regular celestial body (like a star) would. and the "stretching" thing, is the same as sattellite-ripping tidal effects close to giant planets, so as long as you perform these computations correctly for other massive bodies, there is no specific code to add for blackholes.

"dodekaeder" seems to be the german word for dodecahedron ? if that's the case, and unless I misunderstood your post, the left image isn't based from a dodecahedron. It's a subdivided icosahedron. (you could rebuild it starting from a dodecahedron, but it would be much more painful than subdividing an icosahedron). and the faces aren't all exactly the same. they seem to be, but there are small differences/distortions. the icosahedron is actually the largest structure you can create in 3D that's made of identical equilateral triangles. (and that's 20 triangles) you can grab an icosahedron's coordinates from paul bourke's platonic solids page you can then subdivide it to get the left image (that would actually be subdivided twice with the algorithm below), with something more or less like: while (subdivisions--) { for (f = 0; each triangle in the mesh; f++) { // grab original face's vertices v0 = cur_mesh.faces[f].vertex[0]; v1 = cur_mesh.faces[f].vertex[1]; v2 = cur_mesh.faces[f].vertex[2]; // compute edge midpoints m0 = (v0 + v1) * 0.5f; m1 = (v1 + v2) * 0.5f; m2 = (v2 + v0) * 0.5f; // // v0 m0 v1 // x----x----x // \ / \ / // \/___\/ // m2 \ / m1 // \ / // " // v2 // build new triangles new_mesh.add_face(v0, m0, m2); new_mesh.add_face(m2, m0, m1); new_mesh.add_face(m1, m0, v1); new_mesh.add_face(m1, v2, m2); } // final step, push back the vertex on the sphere's surface for (each output vertex) vertex = normalise(vertex) * sphere_radius; swap(cur_mesh, old_mesh); } there are many ways to subdivide this, that's probably one of the most straightforward ones, but clearly not the fastest. you could also directly subdivide in one go without iterating, and not be limited to multiple of two subdivision counts (as with the above algorithm), although it would be a little bit more complex, as you would have to take the sphere's curvature into account to avoid distortions when projecting vertices back onto the sphere surface, you also can stripify quite efficiently the output triangles if you wish, the subdivided structure being quite tristrips-friendly, etc... [Edited by - sBibi on November 27, 2005 2:04:34 AM]

if you are interested in knowing what maximum precision your floats will have at a certain distance, there is a very easy way to do it... something more or less like: float get_precision(float val) { int prev_val; prev_val = *((int*)&val) - 1; // -1 instead of +1 because you won't go past val anyway, so the actual maximum error you will ever get is the delta between val-1 and val return (val - *((float*)&prev_val)); } (this code doesn't handle values <= 0.0f, denormals, infinities, etc.. but you don't really need to, and it's just a few simples checks to add anyway if you do need it). it just takes advantage of the fact that, if you take a binary representation of a float, let's call it bin_float, bin_float + 1 will be the next representable float, and bin_float - 1 the previous one. just feed the function with the maximum extent you will ever have in one of your world's partitions, and it will give you the maximum error you will get in this space. (or you can also see this as the maximum resolution of a discrete coordinates grid, you can observe that pretty well in your screenshots, see how the vertices are placed on discrete layers on the Y axis, (not the others of course, as only the Y coordinate went very high), getting further apart as the coordinate grows bigger...) if you plan on partitioning the world in.. say... 2000.0f units sized cubes, and each cube's origin is centered, each coordinate will range from -1000 to 1000. so call the function with 1000, and that's it =) EDIT: typo

w00f> catmull-clark subdivision scheme can be applied to ngons, not only quads and tris, you can very well use it to subdivide a mesh made out of 100-gons if you like, (instead of 3 or 4-gons (respectively tris and quads)) Quote:am i correct here: number of new quads = 4 * quads + 3 * tris numver of new tris = 0 yes, and more generally: for each ngon { quad_count += ngon level } (where "ngon level" is the number of vertices in the ngon) Quote:and what would be the number of vertices in the new mesh? (open meshes are possible too) you will need more information than just the initial number of faces and vertices to do this, especially if your mesh isn't closed, or has duplicate vertices (if you want to handle whatever per-vertex data discontinuity, like hard edges on your surface (normal discontinuity), or texcoords discontinuities (almost unavoidable for most closed textured meshes)) the number of output vertices can be computed with: n_verts = vc + ec + fc where vc is your vertex count, ec your edge count, and fc your face count before subdivision. you keep each vertex, you subdivide each edge (each edge will generate a vertex at its midpoint), and you add a vertex at the centroid of each face.

Quote:if it's for a game, you'd be better of to make it up. Then you can tweak the gameplay as you wish (add more mass since the ship is more powerful than expected, ect...). I second that.. and a ship's density isn't constant, you could have a very small ship that weights the same or more than a larger ship, how do you determine the average density? the same for all ships? quite restrictive... :/ by hand? then you'd better just set their weight by hand in the first place, and then you won't need their density... anyway.. that's just my opinion.. if you still want to compute their volume, you can use the method Dmytry described in the other thread. (link's somewhere up on this page) I use that method too and it works fine. just take the AABB height and lower Y bound, place the virtual projection plane at min.y - (height * 0.1) (the relative offset is here just to avoid some imprecisions if the meshes you want to measure vary widely in size, then just ignore the Y coordinate of the triangles, compute the 2D area (dot product), and do area * (v0->y + v1->y + v2->y) / 3.0f, and add these values for each triangle to an accumulator. in the end, you'll get the volume. he gave some visual explanations in the other thread if I recall correctly... might be clearer :) note that if your mesh isn't closed, you will have volume "leaking" in or out, depending if the "hole" is located on the top or bottom of the mesh... anyway, make sure the mesh is completely closed.

yes, this is handy to remove degenerate tris on cards that support it, however, you can exclude all ATI cards AFAIK (except if they implemented this NV extensions in their latest stuff, but I highly doubt it ;)) (although this isn't really a problem is you rebuild the strips at runtime according the the primitive restart extension...) and for dynamic data, unless perhaps on PCIE, I guess the gains from lower upload times due tu less vertices in tristrips would be quite advantageous compared to potential rendering gains with tris... (and if both tristrips and tris were ordered cache friendly, perfs are pretty much the same anyway, (didn't do extensive tests on this though.. the only difference except increased upload rates for tri lists (and it doesn't count if already in vid mem) would be the cost of evaluating degenerate tris, or restart indices (I have no idea of what this costs), so deciding on which one to use depends pretty much on the mesh, and on the usage (dynamic, static..)))

Quote:Very interactive storyline is Half Life 2. There are no cutscenes and you basically can choose to follow or not follow the storyline. ?? I guess this was ironic :) HL2 is an example of a game _completely_ linear, where you have no freedom at all (except freedom of movement), everything is scripted, and you can fool these scripts quite easily using some tricks like flying, bunnyhopping and grav-jumping... even if you are free to move wherever you want, the storyling is completely static and predefined, you can't do anything else but follow it (or die), you can't even kill these damn "friendly" NPCs that get in your legs all the time and sometimes get you killed because they're so dumb that they block you in some corner and you basically can't move... this is an example of a game as linear as it could be. you have absolutely no choice in the story, it always starts the same, continue the same, and ends the same, as long as you finish the game, no matter how you played...

Quote:If you absolutely need per-vertex collision detection, you could always skin the mesh in software. Then, do your tests, and render with the vertices that you already skinned. However, I don't really recommend this, because it is quite slow. actually, to solve this I use collision meshes for nearby LODs, and simple OBB // ellipsoids for further away collision lods. you very probably don't _need_ a per-triangle accurate collision detection on the rendered mesh, and collision meshes are almost always totally sufficient. (they are just very low res versions of the model that enclose the high resolution mesh) you just need to skin the collision mesh in software (you can get away with only 1 weight per vertex, or maybe two or three for a high resolution collision mesh), and software skinning with 1//2 weights is pretty dammn fast (you can use SSE to speed things up even more...)

Quote:I think what Sages meant was to render your scene with color writes disabled but not with black. This means your z buffer is written as it should but you save a lot of bandwidth(half?). So: you don't even need to re-render your scene, just render the normal scene, grab the z-buffer, and render the glowing geometry using the z-buffer from the rendered scene. that's all, no need to re-render non glowing geometry...

aw, I knew I should've read everything before posting... my bad :D Vaipa> Quote:Well, a more in-depth discussion on this topic could be found around this site: www.realmsofkrel.com that's the site I was talking about in my previous post... :) Quote:3) I supose its clear you'd have to tone down the frequency of deaths, its common for an inexperienced mmog player to die more than 5 times in an hour. Thats quite a strain on the bloodline, and if they have to re-equip, travel and gain skills again, seriously boring. you don't need to have permadeath on normal fights, only with specific monsters, or quests, or whatever, witch would be pretty rare... Quote:Slightly off-topic, but what about the concept of no death at all. Why does an MMOG have to be about creatures in life-or-death battles? yes, I partially agree with this (not with the no death at all, rather with not necessarily death). what I mean is, in most (if not all?) mmo(rp)gs where there are potentially lethal fights, a fight ends up with the death of one or more players/npcs(mobs). it doesn't necessarily have to be that way. you can have an unconciousness level, wich is basically a life level beyond witch you fall unconcious, but do not die (your life level progressively goes down, until you reach another life treshold, and wake up from the pain. if you don't heal yourself quick enough, you'll die anyway). a fight (assumed between two players/mobs) is considered won as soon as one of the two fall unconcious (note that you can still die directly without going through the unconcious state if the last damage taken was high enough). then the other player can either choose to finish its oponent (but he doesn't gain anything in doing it, except personal satisfaction), or walk away, leaving the defeated opponent alive (he stills gets the experience and all, and can loot the body) frostburn> nice idea about the spirit fight to gain a body... about this: Quote:odily remains, and items: The only logical thing I can think of is that the body drops where he dies, and all the items are lootable. what we do is quite similar, everything is lootable on a corpse, but as this can be _very_ annoying (even if you've got friends around to "protect" your body the time it takes you to either be ressurected or for your spirit to come back from the cemetary and reacquire the body (system similar to wow on this cemetary/soul point of view, except a few differences), and as players would really be pissed off, we also have an item protection spell. different skill levels on this spell allows to improve the protection, and there also is a counter spell (much harder to learn/master however), that can deprotect items. basically, you have a protection quota that depends on your level on that spell, that you can freely spread across multiple objects, and balance protection time over protection intensity. for the same protection quota used on an item, you can either protect it very strongly, but for a short period of time, or protect it more weakly, but longer. (or protect one item very strongly for a long time, or lots of items less strongly for a shorter time, etc...) the protection is automatically activated when you die. if you take too long to come back and reacquire your body, and if time goes past the protection spell time, other players/mobs will be able to loot the protected item(s). and the protection intensity is used for the counter spell. if you protected very strongly a given item, only players very skilled with the unprotect spell will be able to loot that item. (takes quite a long time to get a good unprotection skill, whereas it's pretty quick to get a good protection skill, so it balances things out) Quote:Without a body: When your body has been killed you exist in a non-corporial form. You can levitate some distance over the ground, go through some walls and objects (not ground though), and cover ground at a much larger pace than you could with a body. You can't do anything in this form however, so you have to posess a being to interact with the world. but you can/could interact with other spirits like yourself at that moment, or access certain places unaccessible for material beings. basically be in a parallel spirit world. (have things that could harm/help your spirit, interact with them, etc...) Quote:Keep in mind that the dropping of attributes with age only applies to physical attributes. Mental stats like intelligence and, more importantly, wisdom will grow linearly through a character's lifetime. at some point, mental attributes will also begin to fall inevitably... Quote:The bloodline idea is a complete departure from role playing in the traditional sense. Just because death of a character is permanent doesn't mean that it is catastrophic. Quite the opposite. I'd say it's even necessary at some point... Quote:Intermarriage with other households could be encouraged for political or eugenic reasons, and some sort of aging dynamic would require the uber-characters to pass into legend and let others have a shot. or, as an uber character passes into legend, it can also enchant a magical item (like a statuette that allows you to call the spirit of the deceased hero to do/cast something linked to what that hero was so good at), the more powerful the character, the more powerful the enchantment. Quote:I believe that in order to create a more compelling game world that you HAVE to integrate player property ownership into the cities. there is also the technical problem of such a thing, and efficient management/display of dynamic cities in a large world can become really hard... (I assume 3D worlds, it'll be easyer in 2D though...) Quote:I envisioned time passing quite a bit faster than that. The problem with a system like this is that you have to have a balance. If time passes too slowly then you have to go to great lengths to limit death as you need enough time for new family members to come of age. However, if time is too fast then it would get ridiculous if it took you 5 game years to get from point A to point B. This is perhaps the most difficult thing to determine in a system like this. about time, you can't just accelerate the time scale. distances are the same, and travel/battle times should be the same too. there isn't any necessity to have a ration between days/months/years similar to what we have in the real world. or even to have days or weeks or months or years. in your mmo world, a normal lifetime for a human could be 25 cycles, each cycle being 83 days, each day being 6 hours, (beyond the hour, imho it's better to keep a coherent time frame with ours, so the player doesn't get _completely_ confused and lost :)). that would make a lifetime last roughly 518 days, so a bit less than a year and a half (considering that the character gets unplayable as it gets too old, or when it's too young, if its efficiently playable lifetime is only, in the above example, something like 19 cycles, this will make a playable lifetime of 394 days. now for seasons, if there is a winter and a summer, and in-between seasons, and if we assume a season cycle == 1 cycle, a player sees a full season cycle every 20 days or so... it not too fast, but not too slow either :) Quote:As for the game evolving, that is a great idea. Instead of simply releasing "expansions" you could progress the game world.. excellent. yes, it's a good idea, but it also brings its whole load of technical problems... Quote:Remember also that not everyone will be on every day, or even every week. Maybe you could have automatic e-mail updates on the status of the bloodline. A quick status report on each member, and a summary of new business, like formal offers of marriage arrangements or other communiques from other players. Running a bloodline might be more than just inhabiting a character and killing goblins with it; you'd be the head of a social unit. good idea :) Quote:There could perhaps be a web interface to manage your blood line. In the case of a casual player that plays maybe only on the weekends, they can log into a web page for 5 minutes from work and take care of what needs to be done. if I recall correctly, there is something like that in everquest2 (although not about bloodlines, but I think you can access your stats and other player's stats through their website) Quote:Another little nugget. I am totaly against a "con" system. For those of you unfamiliar with a con system, it is a system commonly used in mmorpgs to give the player an exact or ballpark guess as the level of a target. In this way characters can choose only enemies that are close to their level. I think these systems are bad. Instead I would replace them with a system in which enemies can only be judged by physical appearance. Strong characters will be taller and broader than others. They will show more muscle definition. In contrast, a weak character may have poor posture and a beer belly. As characters age they will get taller and more well-built. as they grow old they will shrink and become feeble; perhaps getting an arched back and grey hair. This way players would have to target their opponents based on a gut reaction. Of course it could be possible for a character to be strong but a terrible fighter, or old and a quite good fighter, but these variations would only add to the adventure. I totally agree with you. same thing with mental/spirit/mana/magic/whatever that's not directly visible physically, you can/could "sense" the aura of a character, perhaps through some spell that makes it visible to the player. this also adds the possibility to make this aura hideable at wish (a skill to learn), adds some strategy ;) Quote:Many of you have added ideas that will prevent or at least slow down this phenomenon (such as the length of an in-game year, etc) but eventually, once a player *did* grow his bloodline to epic proportions- who's going to play all the available characters in the family? other players. if a "family" is seen as a collection of players that can be played by more than one person. if for example instead of making a "clan" with some fellow players whom I'm used to play with, I make a family, and let my fellow players play the members of my family (that'll be their family too). this would prevent having one family per real player (as it can become quite heavy :D) the only problem with this is that the incoming players would already need to have an existing character. so it would be good to make some free members of your family available to new players (instead of explicitely "giving" them to someone already registered...) although this can be problematic, as you don't know who will take it, and you might not like him at all. dunno if it's good or bad... er, sorry, just saw this: Quote:that if families become to big, you can decide to put certain members of your family into the "new player pool" and a player that starts anew could have the option to take over the name Quote:While I have thought about the idea of intermarriages and sharing bloodlines, I actually think extending this system that far is a bit too ambitious. There are a number of issues that arise from that sort of system that make it extremely complex and I haven't been able to figure out, nor has anyone presented a way to me in which it could be done simply and effectively (in my mind at least :]). I also think the idea of integrating actual sexual reproduction in a game may not go over well (even though there will be no actual "sex" depicted). lol. that'll make the game 18+, although you'll probably have an increased <18 players population ^^ joke apart.. I don't see the problem with this kind of reproduction. it's much more logical, adds lots of possibilities, and isn't that hard to implement (maybe harder to balance, although I don't really think so...) Quote:I think that intermarriage would be missed. With players manifesting families, an economy of genetic material would be expected. clearly Quote:One additional thing I was thinking of was... say you don't manage your characters very well, and you DO run out of people to play due to getting them all killed. Then, long-lost relatives come and you play them -- at a cost. They will have lesser stats since they weren't directly involved with the rest of the bloodline. mmh, you make it sound as if it was easy to get a character perma-killed. it shouldn't, and if you really managed your family that badly, then you're out. and just have to start again (your family is destroyed and ceased to exist anyway), or find another family that can welcome you (although I'm not sure anyone would want to welcome such a horrible player that got all its bloodline destroyed, except if it was an accident ^^) sorry for the (relatively) long reply... [Edited by - sBibi on January 21, 2005 12:21:12 PM]