moi
|
|
« Reply #20 on: April 28, 2008, 04:45:52 AM » |
|
Along the lines of using random numbers to make game content: I have made a game called "Ransack the Xmass Ninja" that randomly generates game maps. The download is here: Wow, Here goes my plan for this competition. I'll have to think of something else than a game with a ninja ransacking randomly generated castles now
|
|
« Last Edit: April 28, 2008, 04:49:19 AM by moi »
|
Logged
|
subsystems subsystems subsystems
|
|
|
Alex May
...is probably drunk right now.
Level 10
hen hao wan
|
|
« Reply #21 on: April 28, 2008, 07:06:41 AM » |
|
I am currently working on procedurally generating cities and towns for Deadrock. Here are some WIP pics (these are thumbnails; click on them to see the real size): Currently it works like this. I generate a point cloud with a mixture of linear and 1/distance falloff rates and multiply that by smoothed perlin noise. This gives me a population distribution. I also make a set of perlin noise for wealth. I have a Lot class that's a growing rectangle. All lot types are special cases of this. So the Roads are Lots that grow in only one direction. I distribute Roads over the town in a regular grid, deleting some and setting each road to grow in X or Y randomly. When they're done, I distribute large lots. The LargeLots grow in any direction and also collide with roads. Inside the large lots will be smaller lots, inside which individual buildings will go, which is why I've made the large lots a little more regular. Some of the large lots will have only one building in, like a car park, block of flats or a shopping centre, or a farmstead or fields, and some will have many very regular-sized lots for housing.
|
|
|
Logged
|
|
|
|
Zaphos
Guest
|
|
« Reply #22 on: April 28, 2008, 07:20:44 AM » |
|
If you want to do procedural modeling of cities, you might get some ideas from Parish and Mueller's procedural city modeling project: http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/PaperCitiesThey do some neat stuff with L-system variants. Actually, in general, for procedural stuff L-systems are often worth thinking about. They're not just for plants!
|
|
|
Logged
|
|
|
|
Wilson Saunders
|
|
« Reply #23 on: April 28, 2008, 07:24:55 AM » |
|
Along the lines of using random numbers to make game content: I have made a game called "Ransack the Xmass Ninja" that randomly generates game maps. The download is here: Wow, Here goes my plan for this competition. I'll have to think of something else than a game with a ninja ransacking randomly generated castles now Actually he is ransacking ice caves because the orks who live in them stole Santa's bag of toys. It really won't be copying if you make your ninja a non Christmas ninja. May I suggest Hanukkah Ninja, Quanza Ninja, St Patrick’s Ninja, Thanks Giving Ninja, April Fools Ninja, Independence Day Ninja, Mother's Day Ninja, Father's Day Ninja, or Valentines Day Ninja.
|
|
|
Logged
|
|
|
|
Izzimach
|
|
« Reply #24 on: April 28, 2008, 09:00:50 AM » |
|
What about other sorts of procedural content besides the environment? I did semi-random levels for my VGNG entry, thus I'm interested in trying some other theme instead. I've only seen a few in games: Procedural Bosses The best example I know of is Warning Forever, where the "configuration" of the next boss is based on how you defeated the preceding bosses. Also, some roguelikes make pseudo-bosses by varying weapons, spells, etc. Configurable/random players If I can change my avatar appearance and choose what weapons he has, is that procedural? What if I can create new powers by combining components, such as (Flame+Cone Area+Concentration)=Fire Breath. The creatures created in Spore are as close as you can get to procedural that I've seen. Defining "procedural" here is difficult, since avatars have traditionally been customizable for a long time, at least in FPS and MMO games. Random goals or victory conditions In the old Illuminati game, each player drew a random card to determine the secret organization they played. Each organizatoin also had a special victory condition they could use to win instead of the "standard" victory conditions. I haven't seen many other instances of this setup, but it could make for some interesting--and probably confusing--games. Random rules The card game Fluxx lets you change the rules as you play. ROM CHECK FAIL does this in a way, by changing the enemies and player. There are doubtless more, but that's all that I can come up with off the top of my head. Some are easy to do, some hard
|
|
« Last Edit: April 28, 2008, 09:04:17 AM by ghauss »
|
Logged
|
|
|
|
postlogic
Level 1
|
|
« Reply #25 on: April 28, 2008, 01:14:35 PM » |
|
Configurable/random players If I can change my avatar appearance and choose what weapons he has, is that procedural?
No. Procedural generation is done by the computer, not the player. However, if you change the avatar appearance and the weapon is then based on some rules, for example by reading, say, all colors in the picture and sort out stats on the weapon through an algorithm, that is procedural
|
|
|
Logged
|
No animals were harmed during the making of this post. Except one.
|
|
|
Alex May
...is probably drunk right now.
Level 10
hen hao wan
|
|
« Reply #26 on: April 28, 2008, 11:01:36 PM » |
|
If you want to do procedural modeling of cities, you might get some ideas from Parish and Mueller's procedural city modeling project: http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/PaperCitiesThey do some neat stuff with L-system variants. Actually, in general, for procedural stuff L-systems are often worth thinking about. They're not just for plants! Thanks, I've got that and a whole bunch of other stuff all linked up and ready to post to my blog. The CityEngine is definitely the best of the lot.
|
|
|
Logged
|
|
|
|
Javilop
|
|
« Reply #27 on: April 29, 2008, 12:22:34 PM » |
|
I used the same method of Mewse in my test game KTB Worms Terrain Generator (java, open source) for sending the seed to the player that connects to the game (you can play with another player using TCP/IP). So only with just an integer you can generate the same huge (or small) landscape. If you are interested there is a tutorial and full sourcecode.
|
|
|
Logged
|
|
|
|
William Broom
|
|
« Reply #28 on: May 02, 2008, 04:55:29 AM » |
|
I quite like the idea of a game where the environment starts out the same way, but changes dynamically due to the player's actions. Something like Worms, or Fantastic Blood Boy, but on a larger scale. Every weapon or event in the game would destroy or create landscape. This would obviously work best as a multiplayer game like Worms or an arena game like FBB. Just thought I'd throw that in there, since all the technical discussion has gone right over my head.
|
|
|
Logged
|
|
|
|
Alex May
...is probably drunk right now.
Level 10
hen hao wan
|
|
« Reply #29 on: May 04, 2008, 02:50:50 AM » |
|
|
|
|
Logged
|
|
|
|
butzopower
Level 0
|
|
« Reply #30 on: May 04, 2008, 03:10:14 PM » |
|
A bit late on this thread, but I was wondering if anyone ended up checking Processing out. The guy who wrote the book on it, Ira Greenberg, gave a talk at my school about procedural generation and did some really cool things with it.
|
|
|
Logged
|
|
|
|
Klaim
|
|
« Reply #31 on: May 04, 2008, 03:16:32 PM » |
|
I read the examples on the sites and it's verry interesting. I'm not sure how it would fit in a real-time game but i'm interessted in the book now...
|
|
|
Logged
|
|
|
|
joshg
|
|
« Reply #32 on: May 04, 2008, 05:04:12 PM » |
|
I've done a bunch of stuff in Processing. I think it's ideal for the compo - it isn't game-focused, but it's primarily aimed at artists who are coding up their own procedurally generative visuals which overlaps a lot with procedural content in games.
The only thing Processing is a bit weak at is trying to do procedurally generated audio - there are other environments which do that better, such as PureData. But if you just want to use regular sampled audio in your game, Processing will handle that just fine (use the ESS library, I think it's called).
|
|
|
Logged
|
these are from an actual radio shack in the ghetto
|
|
|
butzopower
Level 0
|
|
« Reply #33 on: May 04, 2008, 05:34:32 PM » |
|
I read the examples on the sites and it's verry interesting. I'm not sure how it would fit in a real-time game but i'm interessted in the book now...
Greenberg was defining it as this weird code art thing, and how he moved from canvas art to code art by seeing that the procedure is what his art was. Pretty interesting, considering it was a CS lecture. He also said that since it uses Java, you can also use any Java library along with it. I can't confirm this, but maybe someone else can. If so, then there shouldn't be too much from stopping anyone from making a full game with it, although it might be hard to package up into an executable?
|
|
|
Logged
|
|
|
|
Hinchy
|
|
« Reply #34 on: May 04, 2008, 05:39:50 PM » |
|
how exactly, in game maker, would I go about extracting characters from strings and getting their ASCII codes? i'm not that familiar with GML functions, although I know the syntax and whatnot.
|
|
|
Logged
|
|
|
|
joshg
|
|
« Reply #35 on: May 04, 2008, 08:23:14 PM » |
|
He also said that since it uses Java, you can also use any Java library along with it. I can't confirm this, but maybe someone else can. If so, then there shouldn't be too much from stopping anyone from making a full game with it, although it might be hard to package up into an executable?
I can confirm this. You can import whatever Java libraries you want into Processing code. It scales incredibly well from super-simple code to functional code to object oriented to full blown Java. (Which is one of the reasons why I seriously recommend it as the best IDE/language I've seen for anyone to learn how to program for the first time.) If you get to a point where you want to profile your game or do crazy advanced debugging or whatever, you can even get Processing code to run in Eclipse with just a little bit of hassle. It also has built-in publishing to standalone executables in Windows, Mac and Linux formats, dead simple, as well as publishing to a Java applet.
|
|
|
Logged
|
these are from an actual radio shack in the ghetto
|
|
|
Cthulhu32
|
|
« Reply #36 on: May 05, 2008, 08:46:51 AM » |
|
One of the core concepts I see overlooked a lot of times is the art of fuzzy logic for procedurally generated games. Take a read on Wikipedia if you haven't read up much on it, but Fuzzy Logic can be a huge benefit when it comes to procedurally generated content. http://en.wikipedia.org/wiki/Fuzzy_logicIf you use a simple fuzzy logic engine (you don't need all the fancy curves and graphing abilities), you can get away with doing some really cool Spore style character/pattern generations with a pretty simplistic algorithm to cover it. Lets say you wanted to make a series of enemies in a gauntlet game using a procedural concept and 5 body parts: head, body, arms, legs, magic amulets/pieces. You could have a list of predefined AI behaviors and attack patterns, and use some basic rules of fuzzy logic to create a HUGE array of creatures that are seemingly procedural but will follow the same set of rules defined in your fuzzy logic table. Now, fuzzy logic is a much stricter idea of "procedural" but you can totally combine this in with a genetic algorithm and get all sorts of interesting results. You could have mating monsters that create children based on their attributes, but who also inherit certain characteristics or use fuzzy logic to define some aspect of their characteristics. Lots of fun things here.
|
|
|
Logged
|
|
|
|
Melly
|
|
« Reply #37 on: May 05, 2008, 10:59:47 AM » |
|
Man, I can barely understand what that wikipedia article is saying.
|
|
|
Logged
|
|
|
|
increpare
Guest
|
|
« Reply #38 on: May 05, 2008, 12:40:44 PM » |
|
Aaaah I'm having irritating tree troubles. Stupid friggin' treeeees. Grrrrr. Stupid friggin' procedurally generated content.
|
|
|
Logged
|
|
|
|
nayon
|
|
« Reply #39 on: May 10, 2008, 11:52:13 PM » |
|
I'm not sure I completely understand procedurally generated content, what's the difference between that and randomly generated content?
|
|
|
Logged
|
|
|
|
|