Is it possible with torque to generate world dynamically?
by Jan · in Torque Game Engine · 04/11/2002 (4:20 pm) · 9 replies
Hi,
I am going to buy the engine but I need to know if something like this is possible:
I have a world filled with buildings (rather simple models), each building is described by some parameters like:
height (in floors), *segment (one-floor mesh, if height=3 then building is created by 3 instances of the same segment), texture (so texture is connected with building rather than segment)
*each segment (floor layout, indoor and outdoor) is described by parameters like: mesh_indoor, mesh_outdoor, zero-floor (version of segment with door to the building), last-floor (version of segment with roof)
on each segment there could be a lot of apartments, each apartment is described by: door_texture, rooms_layout (map with rooms, doors, windows, etc.)
in each apartment (and segment too) there could be a lot of objects like: furniture, agd, paintings, etc. each object is described by: mesh (and texture, etc), list of things you can do with it (list of functions?)
my goal is to create a big_big_big world from small pieces, part of that world would be generated on demand (when player enters the apartment, game must generate its content, furniture, etc. it'll be based on a template and random value, then this information would be cached for future use with this specific apartment). I want to create a map with only buildings, grass, roads, trees and cars - rest of the world would be generated on demand
And question is - is it possible to develop system like this with the engine and without undocumented hacks?
The dependency is: world --> building --> floor --> apartment. so walking from each "node" (ex. from floor to apartment) means loading new (from memory, from disk, etc..) walls, objects, etc. (portal system is ok)
I can't find documentation for the engine (I understand that it's provided when I buy a licence, am I right?) so I don't know if I can dynamically allocate new objects, meshes, etc. I just want to build whole world dynamically (with good support from the API).
TIA for all comments and sugestions!
sorry for my bad english.
I am going to buy the engine but I need to know if something like this is possible:
I have a world filled with buildings (rather simple models), each building is described by some parameters like:
height (in floors), *segment (one-floor mesh, if height=3 then building is created by 3 instances of the same segment), texture (so texture is connected with building rather than segment)
*each segment (floor layout, indoor and outdoor) is described by parameters like: mesh_indoor, mesh_outdoor, zero-floor (version of segment with door to the building), last-floor (version of segment with roof)
on each segment there could be a lot of apartments, each apartment is described by: door_texture, rooms_layout (map with rooms, doors, windows, etc.)
in each apartment (and segment too) there could be a lot of objects like: furniture, agd, paintings, etc. each object is described by: mesh (and texture, etc), list of things you can do with it (list of functions?)
my goal is to create a big_big_big world from small pieces, part of that world would be generated on demand (when player enters the apartment, game must generate its content, furniture, etc. it'll be based on a template and random value, then this information would be cached for future use with this specific apartment). I want to create a map with only buildings, grass, roads, trees and cars - rest of the world would be generated on demand
And question is - is it possible to develop system like this with the engine and without undocumented hacks?
The dependency is: world --> building --> floor --> apartment. so walking from each "node" (ex. from floor to apartment) means loading new (from memory, from disk, etc..) walls, objects, etc. (portal system is ok)
I can't find documentation for the engine (I understand that it's provided when I buy a licence, am I right?) so I don't know if I can dynamically allocate new objects, meshes, etc. I just want to build whole world dynamically (with good support from the API).
TIA for all comments and sugestions!
sorry for my bad english.
About the author
#2
The documentation for Torque does not necessarily give you all the answers in accomplishing a task like this - but instead gives you the understanding of the foundation you are working on. This knowledge, combined with lots of "trial and error" have resulted in a pretty slick system.
So, I would say that Torque will support your concept - but it will take some hard work and research to figure out how to do it.
Justin Mette
21-6 Productions
www.21-6.com
04/24/2002 (6:54 am)
We have implemented a dynamic mission generator for Myrmidon which isn't exactly like the system you describe but has many similar qualities. The majority of the code for our mission generator was written in the Torque scripting language, with only a couple of "helper" methods written in C++. The documentation for Torque does not necessarily give you all the answers in accomplishing a task like this - but instead gives you the understanding of the foundation you are working on. This knowledge, combined with lots of "trial and error" have resulted in a pretty slick system.
So, I would say that Torque will support your concept - but it will take some hard work and research to figure out how to do it.
Justin Mette
21-6 Productions
www.21-6.com
#3
Diablo. Middle-area. The game doesn't even require half a brain to play, so randomness will cause you to have to figure out some of the areas again (aka, passive thinking). Diablo 2 seemed much less randomly sealed off than Diablo 1. By this, I mean when a level will impede movement. Narrow corridors or tiny rooms. "main" areas are not random at all (random monster spawns) In this case, randomness is used to try to feign that it's trying to keep you from shooting yourself to end the boredom.
As for the last one... definately a failure. When you're demanding that the player take up some emotional tie with the gameworld, you can't have it be random. No one would give a damn if the place blew up, burned down, or dissapeared. Anarchy Online is a MMORPG, and randomly generated areas are somethings that MMORPGs can't have.
Randomness is a substitute for depth and quality design. When I hear of 21-6's random mission thing, I wonder if they're taking it from Anarchy Online (afterall, I remember talking to one of them and saying that Anarchy Online was a major influence) 21-6! If you are, please.... do it right! Don't emphasize that it's random, emphasize the mission in the world and make it personal and unique. No "Kill monster A in this random mission". Just from my vantage point, I see 21-6's project going for a Diablo/PSO kind of game. Both were good games for what they were (mindless kill lots o stuff for no reason games) but I hope that 21-6's game tries to go above that.
To be blunt, if you don't try to be considerably different from those games it can't stand out against the non-indie heavy hitters. Quake, Diablo, Everquest. All games very difficult to try to follow up on. Diablo was nice for it's time, as was Quake and Everquest. Now the gameplay is all very dated (yet some people still play it) and they know their name alone will sell millions. Blizzard could rerelease Diablo, put a "3" on the cover, add 1 new level and it'd probably sell many copies.
Look at Quake 3. Sold a good deal of copies despite being a really, really, really shallow game with nice graphics. Diablo 2 was Diablo 1 with more classes and more items. Everquest was waiting in line to be kicked in the face converted into a game you pay monthly for!None of those titles are new, nor are their sequels or spin-offs very interesting. You can't make a game that is a sequel to one of these unless you're the company that made the original or license the name. Anyone who puts the gameplay of id's next game into a comparable engine wouldn't sell anywhere near as many copies as Id due to brand recognition alone.
Yes, I got side-tracked a good deal but I guess this is just me leaking opinion again. If you want to make a game like another game to make some money, think twice. Redoing something isn't the way indies can make a hit. You'll have to do something unique.
04/24/2002 (4:25 pm)
Only major games I can think that based gameplay off of random areas was Diablo, most Real-time strategies, and Anarchy Online. In strategy games, some of the challenge is adapting to the terrain. High detail isn't required. Ideal for random situations and terrains.Diablo. Middle-area. The game doesn't even require half a brain to play, so randomness will cause you to have to figure out some of the areas again (aka, passive thinking). Diablo 2 seemed much less randomly sealed off than Diablo 1. By this, I mean when a level will impede movement. Narrow corridors or tiny rooms. "main" areas are not random at all (random monster spawns) In this case, randomness is used to try to feign that it's trying to keep you from shooting yourself to end the boredom.
As for the last one... definately a failure. When you're demanding that the player take up some emotional tie with the gameworld, you can't have it be random. No one would give a damn if the place blew up, burned down, or dissapeared. Anarchy Online is a MMORPG, and randomly generated areas are somethings that MMORPGs can't have.
Randomness is a substitute for depth and quality design. When I hear of 21-6's random mission thing, I wonder if they're taking it from Anarchy Online (afterall, I remember talking to one of them and saying that Anarchy Online was a major influence) 21-6! If you are, please.... do it right! Don't emphasize that it's random, emphasize the mission in the world and make it personal and unique. No "Kill monster A in this random mission". Just from my vantage point, I see 21-6's project going for a Diablo/PSO kind of game. Both were good games for what they were (mindless kill lots o stuff for no reason games) but I hope that 21-6's game tries to go above that.
To be blunt, if you don't try to be considerably different from those games it can't stand out against the non-indie heavy hitters. Quake, Diablo, Everquest. All games very difficult to try to follow up on. Diablo was nice for it's time, as was Quake and Everquest. Now the gameplay is all very dated (yet some people still play it) and they know their name alone will sell millions. Blizzard could rerelease Diablo, put a "3" on the cover, add 1 new level and it'd probably sell many copies.
Look at Quake 3. Sold a good deal of copies despite being a really, really, really shallow game with nice graphics. Diablo 2 was Diablo 1 with more classes and more items. Everquest was waiting in line to be kicked in the face converted into a game you pay monthly for!None of those titles are new, nor are their sequels or spin-offs very interesting. You can't make a game that is a sequel to one of these unless you're the company that made the original or license the name. Anyone who puts the gameplay of id's next game into a comparable engine wouldn't sell anywhere near as many copies as Id due to brand recognition alone.
Yes, I got side-tracked a good deal but I guess this is just me leaking opinion again. If you want to make a game like another game to make some money, think twice. Redoing something isn't the way indies can make a hit. You'll have to do something unique.
#4
T2 for instance, as in the case of a pub server, might have done well with a bit of randomization to prevent long time players from 'over-learning' the stock maps and having even more advantage by it.
However, randomized missions or maps can be very difficult to properly create. You can't just throw the dice and drop some stuff around. The map must be playable and give the illusion that someone with at least *some* skill has created it by hand. Much more difficult that creating a map by hand, but done right, and in the right context, I think it may work well.
And you are right - the randomness in the games you mention, well, sucks. That and you can't rely entirely on randomized scenarios - you have to make some by hand.
04/24/2002 (4:54 pm)
I do agree with you Matt, but I also believe that in the case of a game where you are hopping from planet to planet (for example) and never expect to return, intelligently done random missions could be fun anyway. T2 for instance, as in the case of a pub server, might have done well with a bit of randomization to prevent long time players from 'over-learning' the stock maps and having even more advantage by it.
However, randomized missions or maps can be very difficult to properly create. You can't just throw the dice and drop some stuff around. The map must be playable and give the illusion that someone with at least *some* skill has created it by hand. Much more difficult that creating a map by hand, but done right, and in the right context, I think it may work well.
And you are right - the randomness in the games you mention, well, sucks. That and you can't rely entirely on randomized scenarios - you have to make some by hand.
#5
im coming back to ask ...
wtf?
first : what does matt's post have to do with this guys question?
second : what does an opinion have to do with his question?
either way this is a good idea.
hard to make real.
nothing wrong with what diablo did it worked out real nice
and made people play the game more than once
I think its funny how you step in here to say a completely useless drivel
Im still trying to figure out what information the guy is supposta get from your post.
04/24/2002 (5:05 pm)
uhh ..im coming back to ask ...
wtf?
first : what does matt's post have to do with this guys question?
second : what does an opinion have to do with his question?
either way this is a good idea.
hard to make real.
nothing wrong with what diablo did it worked out real nice
and made people play the game more than once
I think its funny how you step in here to say a completely useless drivel
Im still trying to figure out what information the guy is supposta get from your post.
#6
Oh, and I agree Tim. Randomized levels have their place. Diablo was good for what it was, a game where you switch your brain off and break your mouse button! :p I've yet to see a truly fun 3d level generator (best being in Timesplitters for Ps2, which really wasn't beyond Quake 1 fan-map kinda quality) but I know when I do it'll be really fun to play around with. Mainly for the reasons you say, since there's always that one punk who knows where to camp with the sniper rifle to get more kills then everyone else. Random levels would keep even the seasoned vet on their toes, and possibly force team tactics since no one really knew what they are supposed to be looking for.
04/24/2002 (5:16 pm)
I could ask the same question for your post, but I already know the answer. Nothing. A thread doesn't have to die when the question is answered, so let's try not to derail things with your rather silly complaints.Oh, and I agree Tim. Randomized levels have their place. Diablo was good for what it was, a game where you switch your brain off and break your mouse button! :p I've yet to see a truly fun 3d level generator (best being in Timesplitters for Ps2, which really wasn't beyond Quake 1 fan-map kinda quality) but I know when I do it'll be really fun to play around with. Mainly for the reasons you say, since there's always that one punk who knows where to camp with the sniper rifle to get more kills then everyone else. Random levels would keep even the seasoned vet on their toes, and possibly force team tactics since no one really knew what they are supposed to be looking for.
#7
yeah
Well you will find my usefull information at the top
as for my latest post
directed at you was neither informative nor silly.
believe it or not is my first post to respond to your drivel, ive seen others do it I figured why not..
its your turn.
04/24/2002 (5:22 pm)
..yeah
Well you will find my usefull information at the top
as for my latest post
directed at you was neither informative nor silly.
believe it or not is my first post to respond to your drivel, ive seen others do it I figured why not..
its your turn.
#8
In Myrmidon, we are going after "dynamic" missions which really has two meanings: First, the difficulty of the mission is based on the overall experience levels of the adventuring party (similar to Diablo) - which translates into more difficult objectives, enemies, and better rewards. Second, the objectives and environment will be different each time you play the mission (within reason).
We are not trying to randomly assemble pieces of an interior, for example. Rather creating different "sets" of interiors that have a particular chance of being placed in the mission at one of many locations in the environment.
I think the Tribes 2 reference is a good way to think about it - each time you play the "Research Station" mission in Myrmidon, the overall story for the mission is the same but the layout and objectives for the mission will vary each time it is played. We are attempting to make the missions more replayable using this technique.
All that said, we still have alot to learn about designing missions with this kind of flexibility. We are still attempting to have good storylines and depth to the missions - but we have compounded the work of the level designers to essentially build many missions in one. So far, this has worked out well - but we have a long way to go...
Hope that sheds some light on the "dynamic" missions of Myrmidon as opposed to truly "random" missions.
04/25/2002 (6:34 am)
Those are some good points to consider on truly "random" missions.In Myrmidon, we are going after "dynamic" missions which really has two meanings: First, the difficulty of the mission is based on the overall experience levels of the adventuring party (similar to Diablo) - which translates into more difficult objectives, enemies, and better rewards. Second, the objectives and environment will be different each time you play the mission (within reason).
We are not trying to randomly assemble pieces of an interior, for example. Rather creating different "sets" of interiors that have a particular chance of being placed in the mission at one of many locations in the environment.
I think the Tribes 2 reference is a good way to think about it - each time you play the "Research Station" mission in Myrmidon, the overall story for the mission is the same but the layout and objectives for the mission will vary each time it is played. We are attempting to make the missions more replayable using this technique.
All that said, we still have alot to learn about designing missions with this kind of flexibility. We are still attempting to have good storylines and depth to the missions - but we have compounded the work of the level designers to essentially build many missions in one. So far, this has worked out well - but we have a long way to go...
Hope that sheds some light on the "dynamic" missions of Myrmidon as opposed to truly "random" missions.
#9
Badguy: If everyone else tried to make me jump off a bridge, would you do it too? I can understand if my "drivel" annoyed you, but trying to start an arguement because "others do" really isn't going to help you out in anyway.
04/25/2002 (12:06 pm)
Ah good Justin! That's the only thing I was worrying about Myrmidon. I don't really like random stuff, dynamic sounds better anyway.Badguy: If everyone else tried to make me jump off a bridge, would you do it too? I can understand if my "drivel" annoyed you, but trying to start an arguement because "others do" really isn't going to help you out in anyway.
Torque Owner Badguy
but alot of work, I would really look at this one close
before I went to it.
First :
Feasability : doable.
Cost : the dynamic working's can be taxing without(and maybe even with!) the right logic in place.
Quality : This will be hard to achieve.
considering the dynamic methods the template's are really gonna have to be generic and at the same time non- redundant, and the same could be said for the required algorythm this will be a task.
and the fun part :
there is not really any direct support. You will be looking at,
more so the methods used to intergrate the basic object into the engine and starting from scratch :)
Good Luck! :)
be sure to show your progress