Infinite rpg game world
Posted 25 November 2012 - 06:22 PM
There's a game video here:
The story almost sounds procedurally generated also, but oh well.
Yes, I saw it on Slashdot.
Posted 25 November 2012 - 08:21 PM
It's commendable that more developers are adopting procedural content, but they have a long road ahead. Part of the problem with procedural content is that generating the base data is not hard, it's converting that into something usable. Take for instance terrain. Perlin noise is basic and lacks a lot of definition.
You need to spend a lot of time researching erosion algorithms and procedural texture generation (by far the hardest topic IMO). Even Terragen, a software dedicated to rendering realistic terrain, relies on the author to guide the engine to produce something realistic. I think procedural content is better suited for generating specific content on the fly to ease the burden on artists. Diablo's random dungeon is a good example of usable procedural content, as well as Terraria's earth. Borderland's lewt system is another example. Simple problems that can be solved with known algorithms. Terrain can be done too, but it's ambitious. Better to procedurally generate the initial terrain and have artists tweak it as needed. Procedural quests are currently poorly implemented in today's games as well, but it could be done with a well designed framework. However, this of course requires time and effort which could be allocated to just making a better linear game. Short term trade-off for long term investment, but you got to keep the funds coming in to improve on your procedural algorithms. A risky venture.
Posted 25 November 2012 - 09:39 PM
the program is composed of many step, and is intensive at 2d geometry, first step is procedural generation of terrain, filtered with a band pass filter to identify water, beach, terrain and rocks, then i triangulate all the points and i create a voronoi map , each cell is then assigned to a unique identifier so i have cells for water, terrain, beach, and rocks. After that i find the disconnected components or islands.
Each islands has a center from where the buildings are radially created using a polygon precomputed mesh, the mesh is oriented scaled and clipped accordingly to the distance and angle respect the center.
After that i trace bridges to connect each islands ( this is a still work in progress ) .
Strangely the hardest part is creating choerent bridges....
After that i will triangulate the map, will clean the map itself from all duplicated vertices , find connected 'streets' and then create a huge level , i am thinking about populating it with people , cars and a choerent traffic light system.
There are a couple of ideas for games, where the setting is a huge city.
Will keep you updated.
Posted 26 November 2012 - 02:04 AM
The difference with Betrayal of Krondor was that it was written by a professional writer. I can't imagine procedural quests will turn out very well. I think the quests individually might be all right, but the overall story will be pretty basic. The part that interested me personally was that it would have turn based, grid based fights. The graphics look dated, but I think acceptable from the screen shots, etc. I wouldn't have any problem with the game on that end. I agree, though, the optimum is a balance between procedural and human design. The idea of it being infinite, in my mind, is having no long term conflict resolution. We already have a million games that no one finishes, and they aren't even very big. I would like to look at it, and I think I would enjoy it for a number of hours if the fights are anything like Betrayal of Krondor.
v71, interesting project. I know, personally, I hate modeling buildings but do it because it's a necessity. It would be nice to choose a time period, size, and type, and have it all generated. I've seen a few things like that, but very basic and not detailed enough. I think Houdini is doing something close to it. Out of my price range, though, which is pretty much free.
Posted 26 November 2012 - 10:02 AM
Posted 26 November 2012 - 10:03 AM
You can generate whole planets worth of terrain that looks lovely, you can generate plants, characters, weapons, almost everything.
You can't procedurally generate game play.
It's an area I am actively working on, but so far it's a real issue. I have written some very scary genetic code to experiment with.
The other thing that is a real problem is very clearly shown in Borderlands 2. They make a big thing of the weapon system, what do they advertise, 4 billion weapons?
What they have created is a system that makes opening a treasure chest boring. "Oh look I have found ANOTHER rifle, this one reloads 0.02 seconds faster than mine but does 1.03 points less damage." (please read that bit as if you are a health and safety officer lecturing about the dangers of pencils)
At the moment you need a human to decide when procedural generation is a good thing and when we need a human.
Posted 26 November 2012 - 10:09 AM
It depends on how much detail you want to go into, but the basic system is well known.
I prefer the more intensive technique.
1) generate terrain
2) generate water
3) define usage zones (high end accomodation, to industrial)
4) generate roads
5) generate buildings
Buildings are generated by using style sheets so you can have anything you want
Posted 26 November 2012 - 12:57 PM
I was looking to extend my SkyGen tool to procedurally create cities that you can export and then import into your fav modelling tool in order to brush up. I wasn't looking to go to far with this, just enough to create a semi-realistic city that I can use as backdrop for certain projects. I originally made the mistake of working bottom-up. Meaning I started first with the buildings, then city blocks, and then arranging the blocks to form a road network. I realize now it's much better to work top-bottom, or start with the road network first then put the buildings in. All those years playing Sim City wasted
It's interesting in your solution you built a topographical map first, but I didn't get to the point where I'm mixing both cities and terrain. The only concern I would have with your solution is that you're using voronoi to create development zones. While some cities do have a paculiar grid structure that would fit that (Paris comes to mind), won't you have a harder time producing long avenues? Highway structures? This is why I feel developing the road network first would be best and then cater the city to that.
Posted 26 November 2012 - 01:46 PM
My target was futuristic cities, so they had to work. Industry had to have access to major transport hubs, so I often found that I needed a large open area near the road network, and didn't have one available. So I added a bit of recursion, and it stack overflowed. Never found out why.
So I swapped the order and it seemed to work better.
I think the ideal solution would require several iterations. After all most of our major cities have existed for a long time and gone through lot's of re-modelling.
Look at London and Berlin. Vast areas bombed out of existence.
Maybe the best solution would be to start with a medieval city plan, then have several iterations of demolition and rebuilding stopping at the desired time period.
Posted 26 November 2012 - 03:40 PM
The cell is now a polygon perimeter, in this perimeter i put a scaled, rotated and clipped 2d mesh , the rotation is based on the position of a randmly selected centre for each islands.
The process isn't so straightforward as it may seem, i discarded a lot of code before reaching to this solutions.
The roads comes naturally out of the same city layout, once you put all the cells into a big buffer and compute the nodes connections.
Incidentally, i don't take account of long roads, a possible solution would be select randomly 2 cells, connecting them with a long road and clip all cells encountered in the path.
Maybe this is somethign i will take care lately, currently highways only connect islands between them
Posted 26 November 2012 - 07:10 PM
Posted 28 November 2012 - 10:55 AM
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users