BucketMan: I know there are several people who want an alchemy system similar to that of T2. I happen to be one of them. But, I don't really want to write it. If I do it, it will take twenty, thirty hours of pain, agony and general frustration, while I know there are several of you out there who could pop it out in a couple hours. Plus, if I build it, it will be thouroughly customized to do exactly what i want it to do in Dragonball T, and all of you who try to adapt it would have to go through all the painful agony of tweaking my code to make it do what you want. Whereas if one of you build it, it will be clean, and nice, and simple, and already be pretty much what everyone else wants, and I'll be the only one who has to do any major tweaking.
So...strictly in the interest of the greatest public good...let's say there are six of us who want an alchemy system. if I build it, that's thirty horus of personal agony, plus, say...two hours of agony for each of the other five trying to adapt my version. That's forty hours of agony. But, if one of you build it, that will be say, three hours of joy, and happiness and blessed fulfilment, experiencing the wonders of creating something that will benefit all of mankind and usher in a new era of peace and joy worldwide, plus another two hours spent by me adapting it for my own use...and I'm sure it will only take me that long because I will be spending so much time in absolute awe of the majestic power and beauty of the master work of code brought to us by your talented hands.
Plus, let us not forget that the God of Programming will be so impressed with your work that he will immediately send two dozen beautiful, affectionate, and emotionally stable virgins to forever love and serve you.
So...forty hours of agony, experienced by six people, or joy and love to all of mankind, and two dozen virgins as yoru personal reward? Yes, I think it's very clear that one of you who wants us to have an alchemy system should get started on it right away.
DarkGod: Dozens of young docile virgins ? Send half first and it's a done deal!
Well I can not really do it myself, except if you want T-Engine3 to actually never reach beta&stable states
But I saw quicksilver lurking aounrd, he looks unbusy enough .. naturally should he accept I get half the virgins anyway, right(preferably the redheads if you do not mind) ?
IngeborgNorden: My coding skills are nowhere near as strong as those of the original ToME devteam. Still, if a future module happens to include a working re-creation of the old system (something I could split into Enchantment, Alchemy and Magesmithing)...I'd be glad to include it in my own game and give the original programmer full credit in the docs.
P.S. I wouldn't be interested in the personal reward you mentioned...two dozen friendly, huggable creatures would seem more appropriate for me.
CosmicGerbil: Can you send me the male young virgins?
BucketMan: Ahh...well, I'd definiately like the engine to make beta, so looks like I'll have to negotiate with the ladies. Hmm. I don't know any male virgins, but I'm sure I could ask around on craigs list and find several for you. As to huggable creatures, I'm sorry, I can't email myself...but I just added housecats to Dragonball T, will that work? What about Oolong? He's the cuddly sort.
I've just heard a few poeple express interest in an alchemy system over the past month or two, and I was hoping with a little prompting I wouldn't have to be the one to build it. Any takers?
DarkGod: I'll stabilize the new AI system and release alpha6 I think, I do not see much that needs doing for a beta of the engine then, apart from the bugfixes.
NeilStevens: I'd hold off on beta. ToME itself will be the most complete test of the T-Engine featureset. Until ToME is feature complete, I'd keep it in alpha.
CosmicGerbil Lol, thanks BucketMan
I don't actually think I'd be much help, cos I'm still learning to program under the T Engine 3 and I'm still really inexperienced. However if there is stuff I can help you with, then I'll be glad to do so.
BucketMan: Ok...I decided the virgins was enough incentive, so I started on it last night. So far I have the basic data structure in place, and you can dismantle/extract things, but not view recipes or build anything. I don't think it will be ready with the next DBT release, but probably by the next one after it. For those possibly interested in using it...it's looking ilke it will end up a bit different from T2 Alchemy: no 'essences' but rather any item can be set as an ingredient simply by making your recipe point to it, recipes may optionally be randomized at game start, and recipes may contain up to four different types of ingredients.
On a related note...in the interest of making it a subsystem that is friendly and compatible with everyoen else's modules...could somebody tell me a 'heathly' way to feed a function a TVAL, and retrieve from it the kind number of a random SVAL of that type?
DarkGod: local k_idx = lookup_kind(tval, sval) And do I understand correctly that you want to find a random valid sval for a tval ? What for ? Usualy it is better to identify objects by some flags than tval/sval, it is more flexible
BucketMan: lookup_kind() will give me a k_idx if I feed it a specific TV and SV...but how would I get a random k_idx from only a TV?
Here's the current plan for technomancy: Recipes are defined by flags which a module writer attaches to whichever items they choose, via one of two ways: they can either specify an exact k_idx, or they can specify a TVAL, and in either case they then specify a fixed or random number of that type of item in the recipe. For example, in Dragonball T, I have TVALS for circuitry, chemistry, bulk materials and high tech. So, someone might create a hypothetical recipe as follow:
INGRED1_WHAT = lookup_kind(TV_DRINK, SV_WATER) INGRED1_QTY = 2 INGRED2_WHAT = -TV_CHEMISTRY INGRED2_QTY = rng(2,4)
During the initializiation process of every new game, technomancy goes through the all 'possible' item recipes and turns them into 'actual recipes' and stores them in an array. The first ingredient is simple: two waters, no matter what. The second in distinguished from the first because it is negative, and as a TVAL, technomancy init then goes through the range of all TV_CHEMISTRY items, and chooses one randomly. QTY is also randomized, so will vary from game to game. In one game, the above recipe may turn out to be two waters and 2 ounces of sodium permanganate. The next game it could be two waters and four ounces of assorted hydrocarbons. Etc.
So...yes, lookup_kind() will give me a k_idx when I already have a TV/SV combination, but how do I get a random SV of a given TV in a way that will continue to work for modules other than mine? What I'm doing now is hard coded, and asummes the DBT TVals and number of assoicated SV's.
As to flags...yes, it might be nice to be able to do something like:
INGRED1 = FLAG_METAL
Which could then be attached to every metal object, regardless of it being a weapon, armor, vehicle, etc. Something like this might be useful for Norseband, for example, because it would quickly and easily allow the system to be adopted to smelting and reforging items. But, the same end result could be accomplished using the system as it stands, simply by attaching to each metal item ingedient specifications like so:
INGRED1 = lookup_kind(TV_METAL, SV_BRONZE)
So, she then smelts her sword, and gets bronze ingots, with which she can then forge anything constructed of bronze ingots. But, even in Norseband, she might want to be able to forge items for which the ingredients vary from game to game, and just specify:
INGRED1 = TV_METAL
One game it might be copper, iron in the next, etc.
So that's the current plan. Any thoughts?
BucketMan: Dragonball T Technomancy is now basically functional. If any module makers out there would like to steal it, please feel free. A few cautions:
- I tailored it to Dragonball T. It is NOT a recreation of 2.x alchemy. It does many extremely similar things, but it makes drastically disimilar sasumptions, and may require some significant adaptation to do what you want. The most obvious example being that it completely ignores 'ego items'.
- When I first started working on it...I kenw a lot less than I know now. But I haven't gone back and re-made anything. In particular the data structure is all original design...and the thinking process behind it may not be intuitive for anyone. For example...the entire 'recipe' structure is stored in a single dimenisonal array.
- The menuing cannot handle more than 26 entries. That's not an issue for Dragonball T. It will probbaly be an issue to everyone else.
- It's not done, and there are still some bugs. But, all the basics are in place. You can dismantle items, extract ingredients, learn ne recipes, and new items from components parts.
If anyone would like to mail me some virgins, (huggable is fine) my mailing address is...
ToME Wiki