03 Jul, 2012, plamzi wrote in the 1st comment:
Votes: 0
The Age of Heroes has begun!
http://tinyurl.com/79sxfc7

Eryn the Dwarven Champion:
"Fame is for the living, but undying fame is what you are really after, my friend. What if I told you that all your adventures so far are like a long, dreamy childhood, or an afternoon stroll under the warm sun. Think long and hard, and if you are ready to enter the Way of the Hero, if you truly wish to become a living legend, then find your destiny reflected in the burst of starlight gushing out of the body of a Star Vampire slain at the Equinox. It is where I found myself, hundreds of years ago, and have never once regretted walking the Way of the Hero."

* 10 More Mortal Levels
* Hero Powers (armageddon, deathproof, infiltrate, leadership)
* Truly Random Artifacts (as well as enhanced artifacts)
* 16 new magical item properties

Few games offer truly random items, with thousands, maybe millions (who's counting) of combinations. Heroes can pop/create magical items such as these:

Item name: Hades Anklet of Dread
Item type: something you can wear
Item is: ARTIFACT
Can be worn on: ANKLES
Weight: 3, Value: 350,000, Material: Titanium
Properties:
Improves ARMOR by 5
Increases DAM REDUC by 3% (Hero only)
Increases HITROLL by 2 (Hero only)
Improves RESIST ALL MAGIC by 2 (Hero only)

Item name: Eoric's Magnificent Orb
Item type: an armor you can wear
Item is: GLOW MAGIC ARTIFACT
Can be worn on: HOLD
Weight: 20, Value: 500,000, Material: Steel
Improves ARMOR by 13
Properties:
Increases CON by 3 (Hero Follower only)
Increases KNOWN SPELLS MASTERY by 3% (Hero only)
Increases MAXMANA by 34 (Hero Follower only)

Item name: Flesh Soultrap of Darkfire
Item type: something you can hold
Item will affect you as: SNEAK
Item is: HUM MAGIC ARTIFACT
Can be worn on: HOLD
Weight: 1, Value: 250,000, Material: Flesh
Properties:
Increases CON by 1
Increases ATTACK SPEED by 3% (Hero only)
Increases CRIT. HIT CHANCE by 2% (Hero only)
Mana Vortex

Item name: Steel Hammer of the Stonehaven God
Item type: a warhammer-like weapon
Item is: GLOW MAGIC !GOOD ARTIFACT
Can be worn on: WIELD
Weight: 40, Value: 1,000,000, Material: Steel
Weapon type: warhammer Damage dice: 9D6 Avg. damage: 34.0
Properties:
Increases DAMROLL by 5
Increases HITROLL by 5
Increases STR by 1 (Hero only)
Improves shadowstrike mastery by 7% (Hero only)
Autocasts earthquake

* Hero-generated artifacts will form one of the elements in our upcoming in-depth crafting system, with certain crafts being able to reproduce or further improve upon the most desirable heroic gear.

telnet://bedlam.gotdns.com:9000
telnet://bedlam.gotdns.com:23
03 Jul, 2012, Lyanic wrote in the 2nd comment:
Votes: 0
I posted a question to this post over on TMC. If I'd known you cross-posted it, I probably would have put the question here. This is a better forum for design discussion. Alas, I am too lazy to repost my question here. Feel free to reply to it on whichever forum, though.
03 Jul, 2012, plamzi wrote in the 3rd comment:
Votes: 0
Lyanic said:
Curious, how do you determine names for your random artifacts? I noticed you don't use the common '(adjective) (adjective) (thing)' combinatoric scheme. The names you give as examples seem unique. Is there merely a small pool of
names, and the random aspect pertains to stats/powers applied to them?


I just spent more time.

I created multiple classes of random elements which I wrote in a way that will not create redundancies (e. g. no "dragon armor of the dragons"). Then I defined multiple patterns:

<color> <material> <itemtype>
<someone's> <color> <itemtype>
<someone's> <itemtype> <of something>
<someone's> <generic adj> <itemtype>
<color> <itemtype> <of something>
<generic adj> <color> <itemtype>
<generic adj> <material> <itemtype>
etc.

There are probably 10-12 patterns in all. It's a bit hard to tell how many because I use randomness to decide whether to put material or color in certain positions. Mostly, I pick color because it creates more uniqueness (with an array of about 600 color names).

In addition, I look at some of the item's generated properties to see if I can make the name reflect that. For example, an item casting 'fireball' has a good chance of ending in 'of Fireball'. A weapon with double damage vs. undead will use "Demonbane Dagger" in the place of <adj> <itemtype>.

There are probably still cases where the name will not be ideal. But I'm not going for perfection because everything is stored in a standalone database where I can easily polish any odd names retroactively.
03 Jul, 2012, Lyanic wrote in the 4th comment:
Votes: 0
plamzi said:
I'm not going for perfection because everything is stored in a standalone database where I can easily polish any odd names retroactively.

That's a good approach to take. I take the same approach with all equipment (and many other things) in my game. No static objects exist. The values of them aren't saved with characters. Only an identifier of the piece of equipment is saved with the character, and the object is dynamically created based on attributes in the database when its pattern specification is invoked via a load routine. That means there's never any fear of imbalanced, bugged or aesthetically displeasing legacy objects hanging around.

I like your pattern idea, but I can definitely see cases where it would be less than ideal. I might borrow a modified version of that idea for my own use. Unfortunately, I do aim for perfection more often than not. I'd have little tolerance for cases with nonsensical or illogical names.

Is it all object-oriented C++ with the data in MySQL? How many classes/much code did it all take? Again, curiosity…trying to get a better idea of the scope of your implementation.

Also, "600 color names"?? That many colors exist? *counts on his fingers*
04 Jul, 2012, plamzi wrote in the 5th comment:
Votes: 0
Lyanic said:
I like your pattern idea, but I can definitely see cases where it would be less than ideal.


I don't think that from what I've shared you would be able to see those cases. Even when you look at the actual code and the actual range of values that each element can have, it's very difficult to tell. In testing, I had to generate several hundred names before I came across one that sounded a bit off (but still better than what you'd sometimes get in Diablo 3, for example). I think that's good enough for v1.0.

Lyanic said:
"600 color names"?? That many colors exist? *counts on his fingers*


http://en.wikipedia.org/wiki/List_of_col...
04 Jul, 2012, Lyanic wrote in the 6th comment:
Votes: 0
plamzi said:
I don't think that from what I've shared you would be able to see those cases. Even when you look at the actual code and the actual range of values that each element can have, it's very difficult to tell.

plamzi said:
I created multiple classes of random elements which I wrote in a way that will not create redundancies (e. g. no "dragon armor of the dragons").

Without seeing the data in your database tables, I would have no way of knowing whether possibilities for redundancy exist. However, since you stated the above, I'll take you at your word. Still, I spent some time thinking over possibilities based on permutations of examples you gave and hypothetical data that may be in your database. And there's this, for instance:

plamzi said:
For example, an item casting 'fireball' has a good chance of ending in 'of Fireball'.

A good chance, but not guaranteed. Can you state that there is a zero chance of it ending in 'of Frost' (or whatever equivalent term you have available)?

So yes, there is some hypothesizing on my part regarding what's in your database and how exactly your rules are structured for which data is available to feed into those patterns, but I guarantee that at least one of the numerous cases I thought up would exist in your system. This isn't criticism of your system, by any means. You already stated that it's not perfect. I'm just pointing out why I made the statement that I did.

Also, the color thing was obviously a joke and you ignored the serious question above it. :(
05 Jul, 2012, plamzi wrote in the 7th comment:
Votes: 0
Lyanic said:
Without seeing the data in your database tables, I would have no way of knowing whether possibilities for redundancy exist. However, since you stated the above, I'll take you at your word. Still, I spent some time thinking over possibilities based on permutations of examples you gave and hypothetical data that may be in your database. And there's this, for instance:

plamzi said:
For example, an item casting 'fireball' has a good chance of ending in 'of Fireball'.

A good chance, but not guaranteed. Can you state that there is a zero chance of it ending in 'of Frost' (or whatever equivalent term you have available)?


There is zero chance of it ending in 'of Frost'. To assume that it could is to assume that my generator is silly. In which case, there should be nothing for you to be (genuinely) curious about.

Lyanic said:
So yes, there is some hypothesizing on my part regarding what's in your database and how exactly your rules are structured for which data is available to feed into those patterns, but I guarantee that at least one of the numerous cases I thought up would exist in your system.


When I stated my system isn't perfect, I meant things a lot more subtle than the ones you have so far imagined. If you want to "guarantee" that based on some scattered examples you can spot holes in my system which I myself haven't spotted, you're going to have to have this conversation with your real-life confidante.

Lyanic said:
Also, the color thing was obviously a joke and you ignored the serious question above it. :(


I have no good way of determining which of your comments are jokes, but I do exercise judgment in deciding what to reply to. In this case, I picked the comment that gave me an occasion to post something useful. I'm not sure how useful it would be to tell people that I used MySQL or that my random name generator took XX lines of code in YY language.

Lyanic said:
That's a good approach to take. I take the same approach with all equipment (and many other things) in my game. No static objects exist. The values of them aren't saved with characters. Only an identifier of the piece of equipment is saved with the character, and the object is dynamically created based on attributes in the database when its pattern specification is invoked via a load routine. That means there's never any fear of imbalanced, bugged or aesthetically displeasing legacy objects hanging around.


Well, all I said was the random names can be easily fixed in the database. Actually, the storage system we've opted for is a lot less referential than what you're describing. Player-owned items load via their prototype/template, but almost all their properties can be overridden. We offer vanity item names, we have item-altering spells, and we'll have a lot more ways to modify items when our crafting system expands. Also, the built-in redundancies make everything more robust. Of course, you can store item properties referentially and still implement all these features–just not as easily.
06 Jul, 2012, Igabod wrote in the 8th comment:
Votes: 0
Correct me if I'm wrong please, but I detected a bit of anger at Lyanics questions. I didn't see any reason for anger, he wasn't insulting your work at all. He was simply asking questions based on problems he has experienced with similar systems and was trying to ask how/if you addressed them. And it could be very useful knowing whether you used mysql or just hard coding or some other method for anybody looking to do the same. If you did it a unique way, then that would be very interesting to see.

If I was mistaken about the detected anger then please forgive me and ignore this.

BTW, I understood the 600 colors comment as a joke because of the counting on his fingers bit. But I also know Lyanics personality a little so that could have assisted in the detection.
0.0/8