Author Topic: Improving AI - what are the priorities?  (Read 23333 times)

0 Members and 2 Guests are viewing this topic.

Offline ete

Re: Improving AI - what are the priorities?
« Reply #30 on: February 19, 2013, 11:24:11 AM »
Okay, got something for you. Worker placement. And perhaps a better solution than hardcoding forming stuff in, assuming the forming code was/is linked to the square preference code. Basically, I think the AI has too strong a preference for Nutrients, which means that even if they are forced to plant forests they may not use them, and forcing them to plant forests may remove their original flexibility (I think there was some old thread which had AI planting fungus with enough fungal bonuses?).

This seems more important than I thought. The problem lies in faction differences in treating worker placement, as the code shows. The value of nutrients/minerals/energy can be vastly different, depending on AI priorities. The most problematic is the treatment of minerals, where certain factions can see double value compared to others.

The formula uses as a factor:
Minerals value factor = (6 + ai_wealth + ai_fight + ai_power - ai_tech)


If you compare it with the list of classic SMAC factions, one faction has MVF = 9, while another three have MVF = 5. That's quite a gap in valoration and a sign of concern. The identities of the faction are telling as well: the former with the highest MVF is Hive, while the latters are University, Gaians and Peacemakers.

I am unfamiliar with SMAX factions, but if there is one with ai_tech=1 and ai_fight= -1 and ai_wealth and ai_power = 0, it will have MVF=4 and will probably fail to prioritize minerals, in a self-damaging way.
aha! Could you post the current formula for energy and nuts? And would you like suggestions on what the new one should be? Because, I'd think making it MUCH more consistent, and primarily based on the stage of the game (min/nut focus very early, with energy being phased in as almost equal after not too long so long as AI uses energy decently) would be of great help. Did the original terraforming function rely on this/something like this when weighing up the value of improvements?


As far as movement is concerned:

1) AI should create and move in stacks. This was finally solved in Civ4 (where AI has literally tens of units per stack) and I liked it, or at least it's the best approach you can give it. In SMAX, as in other Civ games, in 99% situations big stack = good stack. And too often you can win with just a handful of attackers against a cloud of undeveloped units, arranged and moving in no discernible pattern.
Even with collateral damage? I've found the AI moving in stack at chokepoints to be laughably easy to kill. I agree mostly with your other points though.

Offline kyrub

Re: Improving AI - what are the priorities?
« Reply #31 on: February 19, 2013, 12:37:54 PM »
You mean this?  ;)

Code: [Select]
NUTRI VALUE

(4+ai_growth) * (modiNutriSqProd)
-----------------------------------------------------
[IdleWorkersLeft - Size/3 + nutriSurplus] - 1


MINERAL VALUE

(6+ai_wealth+ai_aggr+ai_power-ai_tech) * BaseSize * (modiMineSqProd)
---------------------------------------------------------------------------------------------
                             mineralSurplus


ENERGY VALUE

(2*ai_tech + ai_wealth +1) * BaseSize * (modiEneSqProd)
--------------------------------------------------------------------------
              2*  TotalEnergyProd


where
(modiNutriSqProd) =
a) 200% NutriSquare IF   NutriProd + IdleWorkersLeft/2 >= NutriNeeded
b) 200% (NutriSquare+2) IF   NutriProd + IdleWorkersLeft >= NutriNeeded
c) 400% (NutriSquare) IF   NutriProd + IdleWorkersLeft < NutriNeeded

(modiMineSqProd) = 200% MineSquare
(modiEneSqProd) = 200% EneSquare

AND

IF (mineSquare) =0 AND massiveNutriSurplus (see a) above)
THEN double (modiMineSqProd)

AND

IF TotalNutriProd < BaseSize + NutriNeeded  AND NutriSquare = 0
THEN (modiMineSqProd) and (modiEneSqProd) are halved
Voila. It's a bit simplified, negligeibly.
The last line is terrible programming, by the way. This is THE victim of 1-0-0 chosen over a borehole 0-6-6 square.

Offline Kirov

Re: Improving AI - what are the priorities?
« Reply #32 on: February 19, 2013, 01:53:45 PM »
Quote
stacks... that's unlikely, I am afraid.

In that case, any step towards forces amassing or maybe protecting assault units with defenders could be helpful.

Quote
air attacks on bases... hopefully, this should be possible.

Could that be tied to drop units and their more extensive use? I see that in some scenarios AI can check for empty bases and take them with airborne. And in one game I saw Morgan cleaning bases with choppers followed by drop intrusions ('he thinks he's people!'). That would be wonderful.

Quote
Notes on diplomacy are interesting. AI works more with might ranks, than actual might assessment. It has some "humble pie" situations, but these are often bound to "being 7th in might". Maybe with faction elimination, this stops to work.
(I will make a thread on diplomacy)

I was thinking about and let me put it in a more general way - AI doesn't know it's dead. Very often it behaves like that Dark Knight from 'Holy Grail'. When you invade and take two bases, AI says it'll be pleasure to vivisect you. You take two more and AI demands huge cash for letting you live. Next two bases and AI can let you go for free this time, albeit bitterly. When its death is imminent, it offers you 50 bucks for peace. And when it's on the brink of extinction, it slowly dawns on AI that this war may be lost after all and it's time to surrender.

What I'd like to see more is that after the first base it offers some kind of arrangement and after the second base it offers huge pile of resources (on par with all techs and cash) but wants its bases back. Something along these lines. But it won't cut it if AI compares only ranks not actual mights. Is there any variable for 'score'?

Quote
Quote
2) Is it possible for you to fix the base trade bug? Can we teach AI to assess the value of bases? Is this feature non-existent or just flawed?

Yes. In fact I did already.

Great to hear that! However, we'll need more details how it exactly works if we are ever to amend the house rule on non-trading bases with AI.

EDIT: typo
« Last Edit: February 19, 2013, 02:39:18 PM by Kirov »

Offline Kirov

Re: Improving AI - what are the priorities?
« Reply #33 on: February 19, 2013, 02:21:34 PM »
Even with collateral damage? I've found the AI moving in stack at chokepoints to be laughably easy to kill. I agree mostly with your other points though.

Well, it would be nice if it wasn't so absurdly easy to take out AI units with air. Which is why I'd like to at least protect its units with several defenders. If we can throw AAA in the mix, this should at least give you some attacking damage before you win the battle anyway. That or give AI more interceptors. I think the AI knows that air power is useful, it just lags behind so much with tech that it's too late anyway.

And although I have never followed the AI movement patterns, I have never been able to discern any as well. In general, I have this impression (I can be wrong) that when AI attacks you, it's very self-conscious and nervous about it and doesn't really push the frontline as much as it could/should. A couple of infantries here, a lone rover there, some poor artillery yonder, God-knows-why. It should focus more on that one nearby base. But maybe I'm wrong, I didn't have any reason to study AI behaviour for a long time.

I wonder why some AI can be so aggressive even in the very first turns of the game. Like you meet Sven's foil and he declares Vendetta right off the bat, although he could benefit from trade or treaty. And of course he doesn't backs his words with any assault. AI shouldn't declare war when it's not intent to send any units in.

I know it's about terraforming, but before I forget - AI tends to build bunkers, whose only function seems to be that you waste a turn for capturing them. Maybe some airbases instead? And hiding air units in them so that you don't see them even after infiltration and it may counter attack from such airbase? Just a thought.

Offline Yitzi

Re: Improving AI - what are the priorities?
« Reply #34 on: February 19, 2013, 02:25:16 PM »
I am unfamiliar with SMAX factions, but if there is one with ai_tech=1 and ai_fight= -1 and ai_wealth and ai_power = 0, it will have MVF=4 and will probably fail to prioritize minerals, in a self-damaging way.

Consider, though, what that ai priority means: It is a fairly pacifist faction (ai_fight=-1), with no interest in "conquer" or "build", but with a substantial technological focus.  The only example of such in SMAX is the Cyborgs.  And when you get right down to it, the Cyborgs probably do have a lot more use for energy than for minerals.

Offline ete

Re: Improving AI - what are the priorities?
« Reply #35 on: February 19, 2013, 02:56:23 PM »
Interesting kryub, good to see base size is a significant factor in nutrient priority (small bases need much less nuts per extra worker, so having nuts to grow is great, but when a base is big already other resources are often much more valuable so long as you're keeping your population fed). And yea, if I'm understanding it right the AI never stops attempting to force base growth due to that last line, even when sacrificing huge amounts of energy and minerals to attempt to force that growth. That's a huge base management issue.

Also, energy value seems like it is even more dependent on ai priorities than minerals?
"(2*ai_tech + ai_wealth +1) * BaseSize * (modiEneSqProd)"
With a constant of only one, the ai_tech/ai_wealth are going to be having a massive impact.. I bet that's part of why some factions fall quite so spectacularly behind on research in the mid/late game when there's more choice of useful squares so more ability to neglect energy.

@Kirov: The AI does try and assault one base/amass units, perhaps encouraging it to do so a bit more would be good, but holding back too much is not necessarily positive. Stacking more does help against air, but.. not all that much given that most AI units have armor anyway, and until they get good AAAs mixed into attack forces stacking more would just make them MUCH more vulnerable to rover counterattacks. Even with AAA, the best counter to air is usually more air/anti air air units in my experience.

And.. I really like the way the AI fights. If it surrendered quicker, a human would easily be able to bully AIs into submission without having to take their empire, then if they wanted the AI's bases they could just probe/be annoying until the AI wanted to fight again, but now the human has all their tech and money. I would perhaps like it if they surrendered, but it's not entirely wrong for some foes to have a fight to the death mentality. Just the messages feel strange when they're losing, ideally there would be a "we may be losing, but we'll do everything we can to hurt you" type message, but making them always surrender is not positive imo.

And Yitzi, the Cyborgs still desperately want all their multiplicative facilities running asap, so they want minerals almost as much as anyone else. I don't think there should be that much variation between factions resource priorities. They all want to grow small bases fast and get the facilities up fast, then mid-large bases which should have plenty of multiplying facilities to do with energy (network node, energy bank, hologram theater, later on Fusion Labs and Tree Farms) want to bring energy in (but still support their population and have a good amount of minerals, either for war or construction).

Offline Yitzi

Re: Improving AI - what are the priorities?
« Reply #36 on: February 19, 2013, 03:23:44 PM »
I bet that's part of why some factions fall quite so spectacularly behind on research in the mid/late game when there's more choice of useful squares so more ability to neglect energy.

That would seem to be mainly the factions that are programmed to not care so much about tech, though.

Quote
Even with AAA, the best counter to air is usually more air/anti air air units in my experience.

Yeah; changing that would require changing a few rules (make defense 4-6 available a bit earlier, make AAA priced like ECM so it's free for defensive units.)

Quote
And Yitzi, the Cyborgs still desperately want all their multiplicative facilities running asap, so they want minerals almost as much as anyone else. I don't think there should be that much variation between factions resource priorities. They all want to grow small bases fast and get the facilities up fast, then mid-large bases which should have plenty of multiplying facilities to do with energy (network node, energy bank, hologram theater, later on Fusion Labs and Tree Farms) want to bring energy in (but still support their population and have a good amount of minerals, either for war or construction).

So maybe the best approach is to set ai_tech and ai_build overrides for small and underconstructed bases (if the base lacks most of the available multiplying facilities, it treats ai_tech as 0 and ai_build as 1.)

Offline ete

Re: Improving AI - what are the priorities?
« Reply #37 on: February 19, 2013, 03:37:35 PM »
Well.. All factions need to care about tech to some degree. Just like the most aggressive faction needs to be able to build once it's stolen someone's empire otherwise it stagnates, every faction needs to start paying significant attention to research in the mid/late game or they will fall too far behind in tech to even provide slight resistance to a higher tech foe.

Yep, but I'm mostly okay with battles moving mostly into the skies after a certain point so long as the AIs understand that. It keeps the pace up because air units are a whole lot faster, and allows much more rearrangement, as well as being quite realistic (taking the air in a real world war is huge, land units are primarily for holding ground or siege while air provides the agile firepower and intel).

And that would help, but even the cyborgs want to value minerals a fair amount for the whole game. Even after early facilities are in, minerals=advanced facilities, and more formers/crawlers, and long term more energy. I guess that's just pushing for all AI to want to build more. So perhaps yours would be a fitting way to deal with it, and preserve more difference between AIs. And probably have some very positive effects in general, getting AI building facilities early on.

Also kryub, have you looked at:
Quote
; Base Facilities
;
; Name, Cost, Maint, Preq, Free, Effect, (for SPs only) ai-fight, ai-mil, ai-tech, ai-infra, ai-colonize
;
; Name  = Name of facility type
; Cost  = Construction cost in minerals (x Minerals multiplier in RULES)
; Maint = Maintenance cost in energy per turn
; Preq  = Technology prerequisite (see TECHNOLOGY)
; Free  = No longer supported.
; Effect= Brief description of effect

....

Recycling Tanks,               4, 0, Biogen,  EcoEng2,  Bonus Resources
Perimeter Defense,             5, 0, DocLoy,  Disable,  Defense +100%
They were planning to make facilities free at certain techs. Perhaps there are still pointers to there, and those could be re-purposed as AI importance flags for facilities?

Offline kyrub

Re: Improving AI - what are the priorities?
« Reply #38 on: February 19, 2013, 11:56:35 PM »
@ete
Pretty good point about the Energy equation being even more biased on ai_personnalities. I agree with Yitzi that some of ai personnalities difference should be conserved in the game as well. This is how SMACX was built. I'm for a compromise here, to conserve AI personnalities' influence, but make it less decisive in the equations.

Back to the job itself:
In my opinion, the whole Energy equation is suspect. 2* TotalEnergyProd in the denominator seems harsh, compared to Minerals' 1*(mineralSurplus). Early in the game, the mineralSurplus may be = TotalEnergyProd. But later, when AI builds lots of units, it loses focus on energy. It should be the reverse, no? Earlier, produce massively, later, a bit more energy.

And: what if AI runs Free Market? Every square gets +1 energy, so far so good, but the denominator (TotalEnergy) increases dramatically, so suddenly the energy loses 1/3 to 1/2 of its value compared to nutrients and minerals. Not sure about it, though it may end up working right.

Interesting kryub, good to see base size is a significant factor in nutrient priority (small bases need much less nuts per extra worker, so having nuts to grow is great, but when a base is big already other resources are often much more valuable so long as you're keeping your population fed).

The trouble is, that the - (BaseSize/3) in NutriValue denominator, makes Nutrients popular for large bases. A 15 size base with +6 nutrients has the denominator = 1 for the last IdleWorker, so it's quite likely to push for extra nutrients, which seems like a sub-par decision. Compare it with EnergyValue, where the factor is  * BaseSize / TotalEnergy, e.g. maybe something like * 15/22, rounded to * 3/4. So nutrients win, probably.

I understand that larger bases need more Nutrients to actually grow, but I would try to scale down the factor to - (BaseSize/5). This would make AI seek hungrily for a minimum of
+ 2 nutrients for bases with size 1-4   (but +3 nutrients halves the NutriValue already)
+3 nutrients for bases 5-9    (but +4 nutrients etc.)
+4 ..............................10-14  etc.

Code: [Select]
IF TotalNutriProd < BaseSize + NutriNeeded  AND NutriSquare = 0
If I understand this line correctly, it focuses on conserving growth at a base, under all conditions (like running FM, being Hive with massive focus on minerals, having many boreholes squre etc.). The trouble is how it works for bases > 4 size.

Personnally, I would put there either simple
Quote
IF TotalNutriProd < 2 + NutriNeeded AND NutriSquare = 0
or more sophisiticated
Quote
IF TotalNutriProd < BaseSize/8 + 2 + NutriNeeded  AND NutriSquare = 0

I'm inclined to test the simpler solution. Only +2 nutrients are the level for absolute nutrient priority.

Offline kyrub

Re: Improving AI - what are the priorities?
« Reply #39 on: February 20, 2013, 12:07:00 AM »
@Kirov
Lol at the Dark knight comparison, I enjoyed that paragraph. Yeah, I remember it from the AI and I'd like to see more realistic offers, that make sense and can be actually chosen by the HP.
AI Diplomacy needs more attention but I am leaving that for now. Note taken about early aggressivity, that should be easy to tone down for factions not on your continent.

As far as Base exchange goes, I had a look and I think I did not correct it, in fact, sorry for misinformation (my insight in the game has radically deepend in the meantime).
The basic price is:

(1000 + bigger_energy_reserve) * base_size
------------------------------ ---------------------------
(modified_distance_HQ + 4)

where modified_distance_HQ is distance changed by your bases on continent (-1) and his bases on continent (+1). There are a lot of other modifiers to the result and I will look into it properly once I have a bit more time. I promise.

Offline ete

Re: Improving AI - what are the priorities?
« Reply #40 on: February 20, 2013, 12:28:41 AM »
Compromising between ideal choice and faction character seems sane, just gotta make the faction character unable to influence the AI to the point where it makes terrible choices.

Agreeing with 2* TotalEnergyProd being probably too harsh, and more importantly, not very relevant to how much you want energy. Unlike nuts and mins which are pretty much all per base, trying to produce more than you use, to work out when you want energy more you want things like "how much am i going to lose to inefficiency" and "how many multiplicative facilities are in place", if functions are in place to figure those out. And yes, in mid-late game looking to focus more on energy is generally good for a human. But other than research (which is admittedly pretty key) the AI's only going to benefit from more energy if they're rushbuying intelligently (not sure of their current status) and making good use of probes in combat (maybe you've improved, but SMAX probe use is poor even for supposedly probe focused factions).

Right, I see that issue with nuts and base size.. yea, a large base should basically never be pushing for more than slightly positive nuts (and unless you're popbooming, 0 incoming nuts is often fine). Valuing them over energy or mins which are effectively always useful (the exceptions being mins spent on dead weight units, and heavy inefficiency) is not good. The change you outlined seems like it may make a significant difference.

Reading how the AI thinks is great, it'd be very cool if you post something similar to this with terraforming showing how it started and what your current setup does when you get to the terraforming thread.

Offline Yitzi

Re: Improving AI - what are the priorities?
« Reply #41 on: February 20, 2013, 12:56:34 AM »
Back to the job itself:
In my opinion, the whole Energy equation is suspect. 2* TotalEnergyProd in the denominator seems harsh, compared to Minerals' 1*(mineralSurplus). Early in the game, the mineralSurplus may be = TotalEnergyProd. But later, when AI builds lots of units, it loses focus on energy. It should be the reverse, no? Earlier, produce massively, later, a bit more energy.

Well, what it's essentially saying is "minerals used on support don't count toward reducing the importance of having a decent amount of production", which makes a lot of sense.  I'd say a better way to deal with it is:
1. Teach the AI to not produce so many non-clean units.
2. Have a factor in there based on the number of facilities that it would like to build (i.e. don't count command centers if it is peaceful wouldn't build them anyway) but has not yet built.  That's the real reason for the shift from production to energy (early on there's a lot to build, later on the main limitation on facilities is getting the techs), so the most logical way would probably be to use that factor directly.  (You will want something so that militant factions building a lot of units and few facilities don't shift away from minerals for that reason, though; the best bet is probably just to have a faction that wants a lot of military units ignore the facility-based factor.)

Quote
And: what if AI runs Free Market? Every square gets +1 energy, so far so good, but the denominator (TotalEnergy) increases dramatically, so suddenly the energy loses 1/3 to 1/2 of its value compared to nutrients and minerals. Not sure about it, though it may end up working right.

I think it will, actually; they've got energy to spare, so they care more about the other stuff.  (Of course, those factions most likely to go Free Market are also going to have the most use for energy, but that's where the 5 main ai variables come in.)

Quote
The trouble is, that the - (BaseSize/3) in NutriValue denominator, makes Nutrients popular for large bases. A 15 size base with +6 nutrients has the denominator = 1 for the last IdleWorker, so it's quite likely to push for extra nutrients, which seems like a sub-par decision. Compare it with EnergyValue, where the factor is  * BaseSize / TotalEnergy, e.g. maybe something like * 15/22, rounded to * 3/4. So nutrients win, probably.

Worse: Couldn't you end up with a 0 denominator?

Offline BFG

Re: Improving AI - what are the priorities?
« Reply #42 on: February 20, 2013, 03:48:27 PM »
In my opinion, the whole Energy equation is suspect. 2* TotalEnergyProd in the denominator seems harsh, compared to Minerals' 1*(mineralSurplus). Early in the game, the mineralSurplus may be = TotalEnergyProd. But later, when AI builds lots of units, it loses focus on energy. It should be the reverse, no? Earlier, produce massively, later, a bit more energy.
For what it's worth, I suspect this denominator is due to the standard exchange rate between minerals and energy (i.e. 2 energy = 1 mineral).

I'd think a stronger approach would involve deprioritizing AI settings in favor of current situations at the base, or within the faction.  Something like:
1.  As the first-level minimum, require +0 Nutrients at expense of all others.
2.  As the second-level minimum, require +0 Minerals at the expense of all others.
3.  As the third-level minimum, require +0 Energy at the expense of all others.
4.  Next, require Nutrients, Minerals and Energy SURPLUS to match Basesize.  For example, a base size of 4 requires +4 Nutrients, +4 Minerals and +4 Energy.  These three are prioritized according to AI priorities (i.e. a Wealth faction would achieve +4 Energy before attempting +4 Nutrients or +4 Minerals.)
5.  Next, if a Secret Project or defensive unit is being produced, maximize Minerals.
6.  Next, if the faction is in a Vendetta and producing a combat unit or defensive facility, maximize Minerals.  Also prioritize Energy above Nutrients.
7.  Finally, additional resources are prioritized according to AI settings.  For example, an AI with Build = 5 and Wealth = 4 would want 125% as many Minerals (over the third-level minimum) as Energy.

Keep in mind I'm just a casual player, so this may not make much sense to others - or may not be feasible in programming.  It's just an idea.

Offline Yitzi

Re: Improving AI - what are the priorities?
« Reply #43 on: February 20, 2013, 03:52:39 PM »
For what it's worth, I suspect this denominator is due to the standard exchange rate between minerals and energy (i.e. 2 energy = 1 mineral).

That's true when trading energy for minerals (though multiplier facilities can equalize or even reverse that.)  When trading minerals for energy, it's the other way around.

Offline kyrub

Re: Improving AI - what are the priorities?
« Reply #44 on: February 20, 2013, 10:41:47 PM »
I want to thank all last contributors, as every one of you have mentioned something that seems important.

@ete
I definitely like the idea of mixing Inefficiency into the denominator, a bit. A base with massive inefficiency should not prioritize energy too much! Besides, such a base is somewhere on the borders and it should produce minerals to defend itself, rather than focus on adding a few +energy.

@Yitzi
The idea about facilities number is quite original. Frankly, I forgot about the late game problem in SMAC. I am quite lazy and I dislike making too complicated changes, so unless I find a proper variable in the player data, I will not go this way. My personal feeling, however, is, that there will be something to hang upon.

(The less-unit-produced change is under-way, it was rather easy. But in my opinion, and in my AI experience from elsewhere, it cannot be too restrictive. AI needs a lot of units. It is unable to guess a HP attack, it is probably unable to fake attack somewhere and catch HP by surprise. Or it is unable to do these regularly. So it needs numbers on its side to defend or attack properly... Changing the army behaviour into a sophisticated model is out of the scope of my patch.)

@BFG
Hey, you're thinking in algorithms! Nice. Keep them coming.
The whole change would require a lot of my energy and I won't be doing it (but it is very interesting and it gives me a bunch of ideas). I have some doubts as well, but I won't discuss them now. Part of your way of thinking is even present in current code (AI searching minimum levels of nutrients).
Quote
5.  Next, if a Secret Project or defensive unit is being produced, maximize Minerals.
6.  Next, if the faction is in a Vendetta and producing a combat unit or defensive facility, maximize Minerals.  Also prioritize Energy above Nutrients.
This I find inspiring. - No 5. is already in the code, a base going for SP is hungry for minerals. I would love to add No 6., under defense the base will make minerals priority. It should be relatively easy as well.

 

* User

Welcome, Guest. Please login or register.
Did you miss your activation email?


Login with username, password and session length

Select language:

* Community poll

SMAC v.4 SMAX v.2 (or previous versions)
-=-
24 (7%)
XP Compatibility patch
-=-
9 (2%)
Gog version for Windows
-=-
103 (32%)
Scient (unofficial) patch
-=-
40 (12%)
Kyrub's latest patch
-=-
14 (4%)
Yitzi's latest patch
-=-
89 (28%)
AC for Mac
-=-
3 (0%)
AC for Linux
-=-
6 (1%)
Gog version for Mac
-=-
10 (3%)
No patch
-=-
16 (5%)
Total Members Voted: 314
AC2 Wiki Logo
-click pic for wik-

* Random quote

Richard Baxton piloted his Recon Rover into a fungal vortex and held off four waves of mind worms, saving an entire colony. We immediately purchased his identity manifests and repackaged him into the Recon Rover Rick character with a multi-tiered media campaign: televids, touchbooks, holos, psi-tours? the works. People need heroes. They don't need to know how he died clawing his eyes out, screaming for mercy. The real story would just hurt sales, and dampen the spirits of our customers.
~Morgan Stellartots Keynote Speech 'Mythology for Profit'

* Select your theme

*
Templates: 5: index (default), PortaMx/Mainindex (default), PortaMx/Frames (default), Display (default), GenericControls (default).
Sub templates: 8: init, html_above, body_above, portamx_above, main, portamx_below, body_below, html_below.
Language files: 4: index+Modifications.english (default), TopicRating/.english (default), PortaMx/PortaMx.english (default), OharaYTEmbed.english (default).
Style sheets: 0: .
Files included: 45 - 1228KB. (show)
Queries used: 42.

[Show Queries]