This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's Calculator Programming subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. General Coding and Design => Calculator Programming
Author Message
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 18 Feb 2005 07:16:04 pm    Post subject:

Starting off with a bit of a scare..


The textual idea..
First of all, any creature exists out of a basic skeleton, which are simple lines running from 3D points to 3D points. Nothing fancy yet, just an x, y, and z value for each point/joint and a line in between. This is low on CPU/GPU resources and will probably do for pre-alpha development, it will also leave plenty of resources for the heavyer stuff... (I hope)



The first level of skingraphing..
We start using the bone as an x-axis, and using a simple formula we calculate the y value (skin) for each pixel to render. For example, at the beginning of the arm bone x=0, and we get the value 5 for y, which means the arm is 5 thick there, then we run through all usefull x value of the bone. (more pixels drawn because of zoom or resolution means more precise x values needed) This should make objects like cones and pipes possible.

The second level of skingraphing..
Not every limb is perfectly/symetrically rounded, like a pipe or cone, so we treat the degrees around the bone as an x axis for another formula. When combined with the previous formula this should allow for shapes such as curved 3d boxes, soap-bar-like objects, spheres, and so on.

The third level of skingraphing.. (perhaps not required, I think levels 1 and 2 will be sufficient to render any bodyparts realistically enough, this level would probably just remian theory or perhaps only used in rendering 3d terrain)
We add another formula which gives the bone itself a graph to form over.

Eventually all of these levels are combined into a single (huge) formula where you input an x value for each level and get a pixel to draw.

It's just an idea I've been toying with, trying to think of better ways to realistically render living things (which aren't made up of millions of triangles surprisingly) for an RPG I'm developing, any and all feedback on this is appreciated.

EDIT:
To make the transition between bones easyer, more fluent, and more realistic I think it might be a good idea to add joint 'bones', just little in-between-bones bones.


Last edited by Guest on 18 Feb 2005 07:30:22 pm; edited 1 time in total
Back to top
axcho


Active Member


Joined: 09 Nov 2004
Posts: 555

Posted: 19 Feb 2005 05:10:54 pm    Post subject:

Sounds like a cool idea. How did you come up with it? Would there be textures? This would be great for evolving creatures and plants like in Biomorphs or L-systems, but 3D. (By the way, cellular automata would be useful in generating the textures.)

What platform and language will the RPG be on? Are you working with anyone else on the project? I didn't know you did big projects like a 3D RPG. Are you going to make it randomly generated too? If this will be more ALife-y I think I would like to get involved in some way.

Do you know much about the physics involved in simulating collisions of limbs like these? It would be necessary in a martial arts simulation. I haven't taken any physics classes yet, so I don't know how to do it.
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 19 Feb 2005 08:15:45 pm    Post subject:

axcho wrote:
Sounds like a cool idea. How did you come up with it?

I knew I was going to have to use a detailed skeleton model for use with the combat/physics system I have in mind, and then it dawned to me that, in reality, flesh is really just a smoothed layer that 'grows' (biology majors, bare with me here) on the bone. Perhaps I was kind of inspired by those clay reconstructions people can make from skulls and how they can tell specific features with quite a lot of detail.

At first I thought of seeing the bone as a list of values for how thick it is at a specific place, but after a couple of seconds of thinking how inpractical that would be I decided a graph would do the same thing, only using less memory and providing infinite detail.

When the basic idea of using the bones as graph axis was there it was only a matter of figuring out a way to do more complex shapes that would be nice to be able to use.

I don't like to say it, because I think it'll only sound arrogant, but I guess I'm just pretty creative when it comes to these sort of ideas. How practical they are is a whole different story. : )

Quote:
Would there be textures?
There would be, though thoughts on that are still in a work in progress stage. I'm thinking of combining skin textures with the clothing system I have in mind, which will treat the skin/texture as a big piece of cloth and wrap it tightly (clothing would work kind of the same, but much looser and similar to how rag doll models work in games like Unreal Tournament 2004) around the model, but I think this might be extremely heavy on the CPU. Perhaps I'd use regular textures or simply give 'flesh' material a fleshy colour effect, combined with realistic lighting & shadowing effects this might do, since we'll use clothes to cover up the bodies anyway.

Quote:
This would be great for evolving creatures and plants like in Biomorphs or L-systems, but 3D. (By the way, cellular automata would be useful in generating the textures.)
I was thinking of that as well, perhaps when the majority of the game's systems is planned out I'll allocate some time on thinking of a system that bases the skin formula's (and perhaps some kind of skeleton formula) on a base seed (DNA) somehow. But I think a very simple system that passes down things like eye colour and such would be enough for the game, so that would only be out of interest. (maybe a little evolve-the-skeletal-life-form-mini-testing-applet)

Quote:
What platform and language will the RPG be on?
The language will msot certainly be English. ; )

I haven't decided on a programming language and platform yet, I'm designing the game first, then I'll analyse what would be best. The main contestants are C++ with OpenGL and Java with Java3D or Java OpenGL, portability is held in high regards so I'm leaning towards Java. The only reason I'm still thinking of C++ is because it's the industry standard (for games) so it'd be nice to have this kind of experience with, but it'd be pretty unique to write an awesome 3D game in Java.

Quote:
Are you working with anyone else on the project?
The project originates from the will to make a proper RPG for once, to bring an end to the boring cloning of Japanese/Final Fantasy and such "RPG"s that are really no more than glorified Adventure games, Action RPGs at best, and the copying of Diablo-like Action RPGs that are really just graphic versions of Progress Quest.

Though many of my friends share my view on this, I've only gotten to designing the most original systems and general game idea and I haven't really talked much with others about this project, so I'm still on my own. Depending on what others would do in the project I'd only let people with exactly the right kind of view on the RPG genre and on what would make a great (medieval fantasy) RPG join. Only people true to the RP in RPG and who think creativity is increadibly important might stand a chance of joining. : )

Quote:
I didn't know you did big projects like a 3D RPG.
I've been toying with the idea for over two years now, I think it's about time to start getting busy with it. Especially since college is turning out to be a piece of cake. It's my first proper 3D project, first big game project, and I'm mostly doing it just so I'll finally have an RPG I can enjoy playing more than once. I also figure it's Good Practise (tm) in the area of game design, which will also be the most important aspect of the project itself, designing the game, writing down how everything works, thinking of a nice virtual world to RP in.

Quote:
Are you going to make it randomly generated too?
My idea is to simulate randomness through complexity, which is what the randomness in RPGs was supposed to simulate 20 years ago. Now we have enough processing power not to rely on random numbers between 1 and 20 to see if we hit our oponent, so I'd like to be one of the few to realise this and apply it to a game design. : )

As to wether the game world will be randomly generated, I'm leaning towards making it a free MMORPG where anybody could start a server with a seed (for the game world) of their choice and start discovering the world they've set up. This is great for replayability of course, but not everybody likes MMO games so a single player option will be important, I don't know if I'll bother designing my own game world for that or if I'll just make it a multiplayer option without the multiplayer. : )

There will probably also be a lot of randomly generated weapons, vegetation, and creatures, I don't really want to bother with hardcoding all of that manually, and I've already thought of how different weapons, creatures, and vegetation can be generated (what will be unique for each and how) so why not let an algorithm do that for me?

Most importantly, I don't want to know how each and every single item looks and 'feels' in the game, and since a certain somebody will learn all that eventually through testing the game over and over and over and over again, randomness will be nice, especially with millions of possibilities.

Quote:
If this will be more ALife-y I think I would like to get involved in some way.
What would ALife be?

Quote:
Do you know much about the physics involved in simulating collisions of limbs like these? It would be necessary in a martial arts simulation.
I know quite a bit on Newtonian physics and how to apply it to all kinds of objects and situations (go go best grades for high school Physics class) so I have a pretty clear picture on that, yes, how to apply it to dynamic 3D model animation, no, but this is a design first-program later project, and I have practically 0 experience with 3D graphics. (proper 3D graphics anyway)

I'm planning on having the majority of the game design document finished in a couple of weeks, at least a detailed game idea (big difference between those two) and I'll probably post either of the two as soon as possible, ideas can't be copyrighted anyway and the game will be free, so might as well get some feedback and hopefully show some people I'm pretty ok at game design.


Last edited by Guest on 19 Feb 2005 08:20:59 pm; edited 1 time in total
Back to top
CoBB


Active Member


Joined: 30 Jun 2003
Posts: 720

Posted: 20 Feb 2005 09:27:47 am    Post subject:

Newtonian physics are not enough here, you'll need to study control theory and the mathematics behind robot geometry to have a good understanding of what's going on exactly. I think the skinning method you thought up is too expensive. A much easier solution would be simply modelling everything between the joints (i. e. everything connected to a given bone would be a separate body) and simply draw these bodies instead of the bones. Basically I'm talking about a LUT-like idea here, but it would allow you to use arbitrary shapes out of the box as opposed to a closed formula where every new 'bump' would need extra processing power to produce.

Last edited by Guest on 20 Feb 2005 09:28:31 am; edited 1 time in total
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 20 Feb 2005 11:26:28 am    Post subject:

I wasn't planning on drawing the bones.

What would be in the lookup table exactly, predefined shapes? I don't see why that wouldn't easily be possible with this skingraphing idea.

Of course I could always use these formula's to graph an increadibly detailed model, in a development program, and then export it as a list of values with a certain density for in-game use, if the speed boost would be required. Is that what you mean?
Back to top
CoBB


Active Member


Joined: 30 Jun 2003
Posts: 720

Posted: 20 Feb 2005 12:30:51 pm    Post subject:

I didn't mean you wanted to draw the bones. What I meant was that the bones exist in the physics engine, but you only use their position and orientation to render the corresponding shape coming from the repository ('LUT'). Pregenerating these shapes using the formulae is much faster than real-time tessellation (which is unlikely to be viable anyway). However, if you have pregenerated shapes, you could as well model them by hand instead of using a mathematical approach to yield more visually appealing shapes. You can even merge the two by using maths to randomise hand-drawn shapes somewhat, but that should happen only once (when the owner of the limb is initialised). That's all.

A nasty problem is the looks of actual joints. You might also want to attach bodies to them to obtain a nice transition from one bone to the other.
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 20 Feb 2005 01:32:52 pm    Post subject:

Yeah I was thinking of having joints as part of the skeleton, in the graph rendering mode anyway.

They would take the angles of the joining bone formula's and calculate a transition formula.

BTW I do tink the thickness of limbs (amplitude of the formula) should be dynamic, would be nice to be able to see the difference between fat/strong creatures and slim/weak creatures. And it worked with regular polygons in Black and White, a formula can simply be factorized.


Last edited by Guest on 20 Feb 2005 01:35:22 pm; edited 1 time in total
Back to top
axcho


Active Member


Joined: 09 Nov 2004
Posts: 555

Posted: 24 Feb 2005 04:54:59 pm    Post subject:

Arcane Wizard wrote:
Quote:
Are you going to make it randomly generated too?
My idea is to simulate randomness through complexity, which is what the randomness in RPGs was supposed to simulate 20 years ago. Now we have enough processing power not to rely on random numbers between 1 and 20 to see if we hit our oponent, so I'd like to be one of the few to realise this and apply it to a game design. : )

As to wether the game world will be randomly generated, I'm leaning towards making it a free MMORPG where anybody could start a server with a seed (for the game world) of their choice and start discovering the world they've set up. This is great for replayability of course, but not everybody likes MMO games so a single player option will be important, I don't know if I'll bother designing my own game world for that or if I'll just make it a multiplayer option without the multiplayer. : )

There will probably also be a lot of randomly generated weapons, vegetation, and creatures, I don't really want to bother with hardcoding all of that manually, and I've already thought of how different weapons, creatures, and vegetation can be generated (what will be unique for each and how) so why not let an algorithm do that for me?

Most importantly, I don't want to know how each and every single item looks and 'feels' in the game, and since a certain somebody will learn all that eventually through testing the game over and over and over and over again, randomness will be nice, especially with millions of possibilities.

Quote:
If this will be more ALife-y I think I would like to get involved in some way.
What would ALife be?

That's what I meant by randomly generated, and that's kind of what I meant by ALife. ALife is the study of Artificial Life, and I basically meant that kind of complexity and emergent stuff. What were your thoughts on generating the creatures? It would be nice to have a little element of evolution. But I guess if there are lots of universes, that could give enough diversity. Why not have the whole thing in a game environment, so setting up a universe does not involve menus and normal computer stuff, but it would be part of the game. What I mean is that you stay absorbed in the game world when starting a new seed. It could be based on teleports or some equivalent, or something like in the Myst series. So people could share their gateways to worlds and explore as part of the game. It would be cool and surreal.

Quote:
I don't like to say it, because I think it'll only sound arrogant, but I guess I'm just pretty creative when it comes to these sort of ideas. How practical they are is a whole different story. : )
I think I know what you mean. I like to think that I am pretty good at coming up with interesting ideas.
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 24 Feb 2005 05:34:37 pm    Post subject:

axcho wrote:
What were your thoughts on generating the creatures? But I guess if there are lots of universes, that could give enough diversity.

Variety in height, weight, strength, colour, hair/fur, that sort of thing.

Quote:
It would be nice to have a little element of evolution.
I was thinking of having new creatures 'spawn' (not poof omg it's there like in current rpg's, something way more subtle*) and when they do they'd inherit the traits of some nearby creatures of the same kind with a little randomness added in.

This would act as the passing on of genes required for evolution to occur, natural selection/survival of the fittest won't have to be programmed specifically, because creatures have differing attributes they have different chances of surviving and passing on their traits. (the player, and other hostile creatures in the game, is/are less likely to notice a more camouflaged beast to hunt)

Eventually you might get a kind of creature to adopt a different skintone or become generally taller, but I think that would be the limit both on what I'd want in the game and what would be realistically possible to produce as a game feature.

*Like when a group of goblins have gathered they'd eventually set up a camp and new goblins would spawn inside the buildings/tents. Birds would spawn in nests. That sort of thing.

Quote:
Why not have the whole thing in a game environment, so setting up a universe does not involve menus and normal computer stuff, but it would be part of the game. What I mean is that you stay absorbed in the game world when starting a new seed. It could be based on teleports or some equivalent, or something like in the Myst series. So people could share their gateways to worlds and explore as part of the game. It would be cool and surreal.
I hadn't thought of making interconnected dimensions/servers (or any implementation of multiple game worlds) yet, but I had an nonmenu server selection in mind.

Things like choosing a character would also be 'in-game' or 'out-of-menu' (Smile), you would roam the world as a spirit and then posses a (posessable, can't have the player go and posses an immensely powerfull mage right from the start, or a king or something) person of your choice after seeing some stats (if any at all, should be able to determine the person's attributes by looking at them) like strength (textual, weak/kind of weak/ok/pretty strong/very strong, no numbers!). One of the nice things of this is that you'd immediately have a little bit of a background, some starting skills, and a career to survive from/can cause quests (randomly generated) to start, without having to spend hours staring at menu's.

This would also raise the interesting possibility of having your recently passed away character's body still in the game when you choose a new, nearby one, you could arrange your own funeral. : )

EDIT: probably keep those textual stats out of the game as well, give the player spirit a 6th sense which (s)he can use to look at a person's aura. That person would glow a bit in a particular way (colour, special effect pattern, that sort of thing) and you'd be able to determine the attributes that way. In spirit/dead form only of course.


Last edited by Guest on 24 Feb 2005 05:40:16 pm; edited 1 time in total
Back to top
axcho


Active Member


Joined: 09 Nov 2004
Posts: 555

Posted: 25 Feb 2005 04:14:27 pm    Post subject:

That seems like a good way to incorporate evolution within worlds. I would prefer to have more flexibility in creature types, so the overall form (bones and muscles) could be different. If you didn't have it evolvable, then you would have to hard-code all the body data. That's why I suggested L-systems, since they are good at approximating morphogenesis in plants, and maybe animals if you make them complicated enough.

You know those games like Pokemon or Dragon Warrior Monsters where you "evolve" or breed creatures to get better ones? Well, I had thought it would be much better to actually evolve and breed creatures with a genome so there would be an infinite number of possibilities. The creatures don't have to be realistic at all. It would be difficult to design a genome translator that is simple enough to be feasible, but complex enough to allow interesting and open-ended evolution of body types and abilities. This has many applications to games, which I'll go over in a later post.

This is important, not just for evolution, but if you want to get diverse alien worlds, you'll need some sort of genome to develop creatures. One way to develop a world from a seed would be to get a bunch of random genomes and climate conditions and let it run for a while so evolution can sort out an ecosystem for you. But this way you would definitely need to store the data for each world on a server or something. Well, why not have it all in one server? I guess the only reason would be memory limitations. But surely we can come up with a way to get around that? Maybe :)

Here's some articles that may be relevant:
http://www.gamasutra.com/features/19990917/infinite_01.htm
http://www.digit-life.com/articles/virtualrayengine/##
By the way, relating to the second article, I had an idea for a game that only uses spheres to make the characters, but I was thinking of just drawing circles to make it simpler. Maybe I could use raytracing for a later version.

Good idea about the spirits and auras. Maybe you can only choose a character who is just being born?
Back to top
DarkerLine
ceci n'est pas une |


Super Elite (Last Title)


Joined: 04 Nov 2003
Posts: 8328

Posted: 25 Feb 2005 07:10:37 pm    Post subject:

And then go through the trouble of watching it grow?
Back to top
axcho


Active Member


Joined: 09 Nov 2004
Posts: 555

Posted: 26 Feb 2005 12:32:57 am    Post subject:

Quote:
And then go through the trouble of watching it grow?
Isn't that the point of all RPG's? Oh wait, that would be too much like Progress Quest. Well, wouldn't it be easier to hide the development stage and then stop all growth once the creature is spawned? The creatures could still learn, but not make any major structural changes to their bodies.

The plants would have to grow over time though.


Last edited by Guest on 26 Feb 2005 12:39:32 am; edited 1 time in total
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 26 Feb 2005 06:20:14 am    Post subject:

axcho wrote:
The creatures could still learn, but not make any major structural changes to their bodies.

In which case one might as well build the creatures manually.

Besides, I'm not going to put creatures with randomly generated skeletal structures in the game but classic fantasy creatures.
Back to top
axcho


Active Member


Joined: 09 Nov 2004
Posts: 555

Posted: 26 Feb 2005 05:57:36 pm    Post subject:

Quote:
In which case one might as well build the creatures manually.

Besides, I'm not going to put creatures with randomly generated skeletal structures in the game but classic fantasy creatures.
Oh. Classic fantasy creatures? I thought that they would be like alien creatures that would be different for every world (so it would not be possible to build them manually). Do you think you'll do another project like that then?

Would you explain in more detail about your idea for the game?

Here's how I thought the textures would work. You have a coordinate for the position along the bone, and another for the angle round it. So there are two dimensions that can be the dimensions for a image. Each spot on the skin surface has a color associated with it. The resolution of the texture is not infinite though (would functions work as textures?). So that's how I was thinking of doing the textures.
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 26 Feb 2005 06:18:21 pm    Post subject:

axcho wrote:
Quote:
In which case one might as well build the creatures manually.

Besides, I'm not going to put creatures with randomly generated skeletal structures in the game but classic fantasy creatures.
Oh. Classic fantasy creatures? I thought that they would be like alien creatures that would be different for every world (so it would not be possible to build them manually). Do you think you'll do another project like that then?

Not very likely, I don't really like non-medieval fantasy fantasy.

Quote:
Would you explain in more detail about your idea for the game?
I'm working on a design document, once that's ready I'll post it.

Quote:
Here's how I thought the textures would work. You have a coordinate for the position along the bone, and another for the angle round it. So there are two dimensions that can be the dimensions for a image. Each spot on the skin surface has a color associated with it. The resolution of the texture is not infinite though (would functions work as textures?). So that's how I was thinking of doing the textures.
So like use the x values of the two skingraphing formula's as x/y coords of a 2d texture? I think that might work but I have the feeling that conclusion is a bit premature.
Back to top
axcho


Active Member


Joined: 09 Nov 2004
Posts: 555

Posted: 14 Mar 2005 03:54:16 pm    Post subject:

I'm still waiting for that design document. But anyway, I found this website with chapters from an upcoming book on game programming in Java. It seems like some of your ideas have been taken already. Or maybe not. But for example, the lathe chapter seems to describe something very similar to your skingraphing idea. And there is even a chapter describing a tool to grow trees with L-systems! Take a look: http://fivedots.coe.psu.ac.th/~ad/jg/
Back to top
Arcane Wizard
`semi-hippie`


Super Elite (Last Title)


Joined: 02 Jun 2003
Posts: 8993

Posted: 14 Mar 2005 04:53:48 pm    Post subject:

Just the lathe stuff if I'm not mistaken, which is nice, gives me something to read.

I like the trees, but I'm going to write all the routine for stuff like that myself anyway, if I don't I can't help but think whoever wrote the routines I use added 10 pages of useless stuff I'm never going to use that is somehow going to cause all kinds of problems. I need all the little values just the way I want them anyway.
Back to top
Display posts from previous:   
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
    »
» View previous topic :: View next topic  
Page 1 of 1 » All times are UTC - 5 Hours

 

Advertisement