[WIPz] NPC ACE - NPC Advanced Control Engine

Post » Tue Mar 29, 2011 11:24 pm

It will be great fun to see how it operates in practice! :D
User avatar
CSar L
 
Posts: 3404
Joined: Fri Nov 09, 2007 9:36 pm

Post » Tue Mar 29, 2011 10:41 pm

Thanks all, again.

DR6 implements the kind the kind of system I described here - it logs the player actions in combat, and weights the skill based success chances with the predictability of the action used. The motivation is to further encourage using all the different actions, but at the same time the end result is the same as we would get if we implemented a system that would attempt to predict the player actions and counter them.

What you are doing is pretty much what I was thinking when I wrote the comment: somehow the game reacting differently to each player style, which, in turn, encourages the player to be more flexible in order to get better results.

A question on how it works on a modding level. I assume the structure is something like: you input an actor and the activities you'd like (plus their parameters) into a StringMap (of sorts) and from there on the NPC will be guided by your engine? I know this is probably simplified alot and there's a good chance I'm mistyping the thoughts in my head.

Pretty much as you say.
There are arrays representing the actors, containing their specs, attributes and states
There are arrays representing the activities, containing their stages, durations, functions, etc
An actor array points to the activity arrays the actor is supposed to perform. (along with min & max counts)
(Although I did no do it, all these arrays could be initialized from .ini files)

With this data structure, the core of the engine is composed of just four functions:
ActorEval - handles and distributes events and processes return codes
ActorPickNextActivity - the aforementioned activity selection algorithm
ActorGotoNextStage - determines the next stage and calls the stage function (Start event)
ActorSetNextActivity - forces a new activity on the actor

Plus one function per stage (about 30) and, of course, a number of utility and 'subroutine' functions.


But this way, in theory it would be possible to replace the vanilla AI of the actors (lets say for the IC) and replace them with a list of activities corresponding to their vanilla AI packages. I know you mention that it was not designed with vanilla NPCs in particular but as soon as you remove their AI packages they'd be the same as any mod-added NPCs that are adapted for your engine, right?

Right. And thinking about it, maybe there would be no need to remove their original packages.
Provided the engine makes sure there is always an added package, the actor would never process his original list. Subject to a lot of tests, thou, as the game engine is full of surprises.


Also, in the OP you mentioned OnPackageStart/Done, does this mean the NPCs will (always) need to have a script attached to them? If so then the above might not be so simple (due to high incompatibility reasons).

Yes. The way it is now, the ACE engine is highly dependent on the events generated by OnPackageDone blocks.

But only for GoTo kind of packages, as all (?) other types of action end by other events (timeout mostly)

To get rid of the actor script, an alternative approach would be a token that keeps checking the actor<>destination distance and raises the proper event when the actor reaches destination.
This kind of goes against the no-gamemode goal, but, again, this is just an academic goal I set just for fun.

At first glance, it seems possible, but I wonder . . .
User avatar
Red Sauce
 
Posts: 3431
Joined: Fri Aug 04, 2006 1:35 pm

Post » Wed Mar 30, 2011 5:36 am

(Although I did no do it, all these arrays could be initialized from .ini files)
Just a very quick reply: how exactly would that be possible? Array(function)s cannot be used from the console, right? So that includes RunBatchScript too. Or did you mean it in a way like using dummy quest variables and an activator script to read and write those values in a single frame (so it can be used multiple times from the same ini)? :unsure:
User avatar
Chelsea Head
 
Posts: 3433
Joined: Thu Mar 08, 2007 6:38 am

Post » Wed Mar 30, 2011 12:54 am

so is the "The SimBlivions 4"? :lol:

seriously, this sounds awesome! i dont fully understand all of it, but from what i DO understand, its cool!
User avatar
Ana Torrecilla Cabeza
 
Posts: 3427
Joined: Wed Jun 28, 2006 6:15 pm

Post » Wed Mar 30, 2011 6:59 am

Oh! . . . I was thinking Pluggy ini files (or, hopefully, a future OBSE ini text file)
I've never looked much into RunBatchScript and I don't really know what can/cannot be done with it.


SimBlivions?!!!! Lol
User avatar
Katey Meyer
 
Posts: 3464
Joined: Sat Dec 30, 2006 10:14 pm

Post » Wed Mar 30, 2011 4:34 am

Wow, great work you are doing QQuix! :) It sounds fantastic, and very, very complicated! XD
User avatar
Lloyd Muldowney
 
Posts: 3497
Joined: Wed May 23, 2007 2:08 pm

Post » Tue Mar 29, 2011 11:23 pm

What you are doing is pretty much what I was thinking when I wrote the comment: somehow the game reacting differently to each player style, which, in turn, encourages the player to be more flexible in order to get better results.


Ah, well as said I was just thinking aloud - not really commenting on anything particular. :)



I have intentionally never touched the default combat style engine, so that DR stays compatible with mods that edit the combat styles defined in CS.


Now that DragoonWraith has made it possible to read and adjust the combat styles dynamically via scripts, I have still resisted the temptation to touch them at any point, so that if anyone takes on mission to, say, alter the NPC block chances via combat style changing scripts, or lower attack intensity when they are damaged, set temporarily attack chance to 0 when player already blocks, etc....

...there would be no compatibility problems with DR. I really hope someone else would start such a mod, a mod controlling purely the combat style parameters dynamically. It?s a very interesting opportunity, it would work with anything and I would personally use such a mod for sure. :)
User avatar
Alessandra Botham
 
Posts: 3440
Joined: Mon Nov 13, 2006 6:27 pm

Post » Wed Mar 30, 2011 5:29 am

Only for 1 special NPC "boss" to prove it could be done and that it is a much better way to make challenging combat than the usual jacking up of the hit points.

The mod is Hammer-Blade on TessNexus.



wow, just wow...

i think Duke Patrick did this in one of his mods. maybe "combat geometry"? i forget, but one might want to do a quick check on TESNexus

User avatar
Ebou Suso
 
Posts: 3604
Joined: Thu May 03, 2007 5:28 am

Post » Wed Mar 30, 2011 11:57 am

I am, like some other earlier posters inclined toward, wondering about the difference in processing drain between this and the normal radiantAI packages? The drain the AI system puts on the CPU seems excessive; one of the main concerns for me is how many NPC are getting processed, as too many makes gameplay a slideshow.

EDIT - Eh, well the real question was if there would be a gain to replace as much of the original packages as possible with this instead. END EDIT

Very interesting mod.

Cheers!
User avatar
Sami Blackburn
 
Posts: 3306
Joined: Tue Jun 20, 2006 7:56 am

Post » Tue Mar 29, 2011 11:31 pm

I too would really really like to see dynamically set combat styles (to include magic and stealth as well).

I've been a devoted user of Duke Patrick's SCA mods and so really love them. But it would be neat to meet an NPC who after initiating combat would sneak off and try to snipe me, or actually mix magic and melee - like my character would. Instead of an archer pulling out a dagger or whort sword when you get close but actually using a touch based offensive spell.

Different fighting styles for different races, factions, guilds. NPCs that could change AI even after combat started. Throw some curve balls - random behavior.

.... but not as cumbersomely loaded down as UV can be.

man that would be something.
User avatar
Fluffer
 
Posts: 3489
Joined: Thu Jul 05, 2007 6:29 am

Post » Wed Mar 30, 2011 7:13 am

Oh! . . . I was thinking Pluggy ini files (or, hopefully, a future OBSE ini text file)
I've never looked much into RunBatchScript and I don't really know what can/cannot be done with it.

Ahh yes ofcourse. That would make alot more sense. :facepalm: In theory it could work with RunBatchScript but each and every parameter would need (atleast) one (quest)variable. And with such a complex structure the practicle use is very low for this mod. :P

Anyways, a couple of questions:
#1. You mentioned the OnPackageDone blocks are required but it could also work with tokens (apart from the, awesome, no gamemode approach) and distance checks. Well I'd like to ask for such an option/alternative for scripts on NPCs.

#2. Forgetting the above, are the scripts that are added to the NPCs generic ones? With a couple of blocks for a couple of standard AI packages (for the various stages of each activity)? Or are the AI packages very specific to an NPCs? I'm guessing it's the former and that you are changing the destination of an AI package through script just before it's added to the NPC. I recall reading something about NPCs using/sticking with whatever the destination or target was when they were assigned the AI package, instead of switching/updating to the new target when you change it by script again.

#3. About the Voters, will it be possible to create new/extra voters put them on the list (I assume there is a list somewhere) of Voters the mod will use?

#4. From what I've read it will be relatively simple to create new types of activities? As each activity might be stored/defined as various stages?

#5. Something else which I seem to have forgotten.... :embarrass:

-kyoma
User avatar
Rhiannon Jones
 
Posts: 3423
Joined: Thu Sep 21, 2006 3:18 pm

Post » Tue Mar 29, 2011 11:08 pm

I won't comment on the Combat discussion because, as I said earlier, I have no Combat experience, not even as a player.

I am, like some other earlier posters inclined toward, wondering about the difference in processing drain between this and the normal radiantAI packages? The drain the AI system puts on the CPU seems excessive; one of the main concerns for me is how many NPC are getting processed, as too many makes gameplay a slideshow.

EDIT - Eh, well the real question was if there would be a gain to replace as much of the original packages as possible with this instead. END EDIT

What I am doing is superseding the vanilla mechanism of selecting AI packages with an external (scripted), more flexible one. My implementation is very light on CPU and I would bet that I could handle a couple of hundred NPCs without any performance effect. (not all in the same cell, of course)

On the other hand, I would guess that the original package selection algorithm is also very light on CPU, as it only runs when the NPC reevaluates his packages (not that often).
So, it should not be any difference in performance, either way.

I suppose that what really drains performance are the things mentioned by the http://cs.elderscrolls.com/constwiki/index.php/SetSceneIsComplex and its three companion functions.


Ahh yes ofcourse. That would make alot more sense. :facepalm: In theory it could work with RunBatchScript but each and every parameter would need (atleast) one (quest)variable. And with such a complex structure the practicle use is very low for this mod. :P

I suppose one could create one BatchScript file per NPC and run one to populate the quest variables, run a script to move the values to the NPC array, run the next BatchScript, and so forth. Not sure it is worth the trouble.


Anyways, a couple of questions:
#1. You mentioned the OnPackageDone blocks are required but it could also work with tokens (apart from the, awesome, no gamemode approach) and distance checks. Well I'd like to ask for such an option/alternative for scripts on NPCs.

I've been thinking about it and I think it will work. I will do some tests when I am done with this mod.
But, distance alone is not enough. E.g., when an NPC is following another (which is his 'destination') they may be within distance, but it needs some additional checks to see if the leader has reached his destination.


#2. Forgetting the above, are the scripts that are added to the NPCs generic ones? With a couple of blocks for a couple of standard AI packages (for the various stages of each activity)? Or are the AI packages very specific to an NPCs? I'm guessing it's the former and that you are changing the destination of an AI package through script just before it's added to the NPC. I recall reading something about NPCs using/sticking with whatever the destination or target was when they were assigned the AI package, instead of switching/updating to the new target when you change it by script again.

Yes, all actors share the same script. As it is now, it has 100+ onpackageend blocks.

While experimenting with ways of making the NPCs go here and there, I settled for two alternatives:
1) One Travel package per destination - many NPCs sharing the same package
2) One Travel package per actor - Destination being a reference that is moved to the desired spot

One factor for choosing one or the other is whether you have more destinations than actors or vice-versa.

I am using the second option. I have about 30 travel packages whose destinations are 30 different references (barrels scaled to .01 - I like barrels). When I want the actor to go to the Bar, I move the barrel to the bar and add the package to the actor. I have found that the game engine handles very well these 'moving targets'. Never had any problems.

Note that OBSE's SetPackageTarget function changes the package Target, not the Location. Travel packages use Location, not Targets, so this is not an option.

I also have 30 Find packages to the same 30 little barrels and 40+ Travel-to-NPC packages (used to make one NPC follow another)


#3. About the Voters, will it be possible to create new/extra voters put them on the list (I assume there is a list somewhere) of Voters the mod will use?

Very easily. The Activity Selection script has a number of Call lines calling each voter's function.
It is just a matter of writing a new voter function and adding a Call to the Activity Selection script.


#4. From what I've read it will be relatively simple to create new types of activities? As each activity might be stored/defined as various stages?

Yes. Here is a sample from the Activities initialization script:
;==============================let sName :=	zAcquirePartnerBar;==============================let arrActivities [sName] := ar_construct stringmaplet arrActivities [sName] [zStages] := arr := ar_construct arraylet arrActivities [sName] [zsLocation] := zBarlet arr [ar_size arr] := call zvBuildStage zGotoBar	 	20 	0 	0	zzActionGotoBar let arr [ar_size arr] := call zvBuildStage zAcquirePartner 	5	0 	0	zzActionAcquirePartnerlet arr [ar_size arr] := call zvBuildStage zProposeDrink 	5	0 	0 	zzActionProposeDrink

zvBuildStage is just a function to format, populate (with the arguments provided) and return the Stage array .
The arguments are: Stage name + Duration + Duration variation + Flag + Function that handles the stage.
Words prefixed with a single 'z' are strings (zBar = "zBar")
Stage functions may be used by more than one activity.

The hardest part is writing the Stage function, as some may require new AI packages, new NPC attributes, etc.
User avatar
Mark Hepworth
 
Posts: 3490
Joined: Wed Jul 11, 2007 1:51 pm

Post » Wed Mar 30, 2011 2:20 pm

I've been thinking about it and I think it will work. I will do some tests when I am done with this mod.
But, distance alone is not enough. E.g., when an NPC is following another (which is his 'destination') they may be within distance, but it needs some additional checks to see if the leader has reached his destination.
Checking for AI procedure '17' should do. From my testing, getCurrentAIProcedure returns 17, for a few frames, after the calling actor has completed his current procedure. Using that with getCurrentAIPackage will yield a fairly reliable method to check for completion.
User avatar
Jonny
 
Posts: 3508
Joined: Wed Jul 18, 2007 9:04 am

Post » Wed Mar 30, 2011 12:11 am

Good to know it is reliable.

I am using this test in one particular case: at some point during the tests, sometimes one of the AI packages did not run its OnPackageEnd block. So I added this test. It seemed to solve it, but I was not sure it was reliable.
User avatar
Jessie Rae Brouillette
 
Posts: 3469
Joined: Mon Dec 11, 2006 9:50 am

Post » Wed Mar 30, 2011 12:27 pm

nice work, im still trying to wrap my brain around it :embarrass: :bigsmile:

anyways i think it would be a great idea to add 'civil disputes' as in calling a breton something would call it to start a fight with that ai if the tensions are high enough
to add to these factors maybe 1-Drinking 2-Late Worknights 3- lack of social interaction

once you have this amazing thing sorted out, get a team created to implement this to vanilla npcs

oh yea, and keep it clean with the couples


:cookie: :thumbsup: :woot:
User avatar
Sara Lee
 
Posts: 3448
Joined: Mon Sep 25, 2006 1:40 pm

Post » Tue Mar 29, 2011 10:30 pm

Am I correct to assume that this is the successor of http://www.gamesas.com/bgsforums/index.php?showtopic=1005791 previously developed by Syclonix?

Reading from the description, it looks like a great leap forward on the AI.
User avatar
k a t e
 
Posts: 3378
Joined: Fri Jan 19, 2007 9:00 am

Post » Wed Mar 30, 2011 2:05 pm

once you have this amazing thing sorted out, get a team created to implement this to vanilla npcs


I am afraid not.
When I finish this mod I am using for development, I will resume my work on The Evolving Society, which will take, most likely, about six months until a Beta release. Then bug fixes, a stable version 1 release and an eventual version 2 will take the remaining of 2010.

I am willing to do the experimenting and developing necessary to make it work with vanilla NPCs (as a side project), but either somebody else takes the initiative to put a team together or we wait until 2011.


oh yea, and keep it clean with the couples

I am afraid I did not understand what you mean.


Am I correct to assume that this is the successor of http://www.gamesas.com/bgsforums/index.php?showtopic=1005791 previously developed by Syclonix?


From Syclonix' description, I don't think so.
He focuses on combat scenarios, while I am focusing on daily routine activities over time.

Many behaviors may be implemented, like the ones Spiderpig just suggested. Or neighbors quarrels, or cheating spouses. Or elections. Or anything else based on an improved NPC decision process.

My The Evolving Society project deals with a growing community, so most things I will do with this NPC engine will, directly or indirectly, affect production.

For example: NPC satisfaction with some aspects of the community, like Security, Health Care, Education, working hours and such will affect productivity. NPCs will have different preferences on these matters and each will react differently to the player's actions. Like, if the player builds, say, a Church, the farmer gets happier and produces more food.
User avatar
April D. F
 
Posts: 3346
Joined: Wed Mar 21, 2007 8:41 pm

Post » Wed Mar 30, 2011 6:36 am

I won't comment on the Combat discussion because, as I said earlier, I have no Combat experience, not even as a player.


What I am doing is superseding the vanilla mechanism of selecting AI packages with an external (scripted), more flexible one. My implementation is very light on CPU and I would bet that I could handle a couple of hundred NPCs without any performance effect. (not all in the same cell, of course)

On the other hand, I would guess that the original package selection algorithm is also very light on CPU, as it only runs when the NPC reevaluates his packages (not that often).
So, it should not be any difference in performance, either way.

I suppose that what really drains performance are the things mentioned by the http://cs.elderscrolls.com/constwiki/index.php/SetSceneIsComplex and its three companion functions.



I suppose one could create one BatchScript file per NPC and run one to populate the quest variables, run a script to move the values to the NPC array, run the next BatchScript, and so forth. Not sure it is worth the trouble.



I've been thinking about it and I think it will work. I will do some tests when I am done with this mod.
But, distance alone is not enough. E.g., when an NPC is following another (which is his 'destination') they may be within distance, but it needs some additional checks to see if the leader has reached his destination.



Yes, all actors share the same script. As it is now, it has 100+ onpackageend blocks.

While experimenting with ways of making the NPCs go here and there, I settled for two alternatives:
1) One Travel package per destination - many NPCs sharing the same package
2) One Travel package per actor - Destination being a reference that is moved to the desired spot

One factor for choosing one or the other is whether you have more destinations than actors or vice-versa.

I am using the second option. I have about 30 travel packages whose destinations are 30 different references (barrels scaled to .01 - I like barrels). When I want the actor to go to the Bar, I move the barrel to the bar and add the package to the actor. I have found that the game engine handles very well these 'moving targets'. Never had any problems.

Note that OBSE's SetPackageTarget function changes the package Target, not the Location. Travel packages use Location, not Targets, so this is not an option.

I also have 30 Find packages to the same 30 little barrels and 40+ Travel-to-NPC packages (used to make one NPC follow another)



Very easily. The Activity Selection script has a number of Call lines calling each voter's function.
It is just a matter of writing a new voter function and adding a Call to the Activity Selection script.



Yes. Here is a sample from the Activities initialization script:
;==============================let sName :=	zAcquirePartnerBar;==============================let arrActivities [sName] := ar_construct stringmaplet arrActivities [sName] [zStages] := arr := ar_construct arraylet arrActivities [sName] [zsLocation] := zBarlet arr [ar_size arr] := call zvBuildStage zGotoBar	 	20 	0 	0	zzActionGotoBar let arr [ar_size arr] := call zvBuildStage zAcquirePartner 	5	0 	0	zzActionAcquirePartnerlet arr [ar_size arr] := call zvBuildStage zProposeDrink 	5	0 	0 	zzActionProposeDrink

zvBuildStage is just a function to format, populate (with the arguments provided) and return the Stage array .
The arguments are: Stage name + Duration + Duration variation + Flag + Function that handles the stage.
Words prefixed with a single 'z' are strings (zBar = "zBar")
Stage functions may be used by more than one activity.

The hardest part is writing the Stage function, as some may require new AI packages, new NPC attributes, etc.


Wondering about implications for the future I note you have touched on ongoing behaviours and their processing take up outside the 'current' cell - are you aiming to create visible changes in 'landscape' and it's furniture to reflect the results of actions of groups of NPCs? Or is that going into 'The Evolving Society Territory?
User avatar
Milad Hajipour
 
Posts: 3482
Joined: Tue May 29, 2007 3:01 am

Post » Tue Mar 29, 2011 10:25 pm

- Pirate attack - a pirate may decide to attack town. Guards will defend. The outcome is calculated and, when the player returns, he will see the results.

Nooo ! :shakehead:
User avatar
Lil Miss
 
Posts: 3373
Joined: Thu Nov 23, 2006 12:57 pm

Post » Wed Mar 30, 2011 3:37 am

The present mod does not require it, as NPCs don't happen to change anything around them.

But the script engine supports this feature. Every single activity has a script controlling it, so it is just a matter of how much effort you want to invest on that script and how complex it becomes.

In T.E.S., my focus is macroeconomic, so I am not planning on investing too much on extreme micro realism, as NWJ or CraftyBits do. Not even if the cell is loaded.

The pirate raid example is one of the few that I plan on implementing as an after-the-fact visual indication, if technically possible. A few other situations may also be implemented, for one reason or another, but this is not the focus.

But, with this engine, I could, for example, do in such a way that if the player goes to the Sawmill in the morning, he sees, say, 4 logs at a corner. Returning at noon, he would see 2 logs and some planks. At the end of the day he would see just planks. (But T.E.S. probably won't even have a realistic sawmill interior, let alone the materials)

I mean, things WILL happen on unloaded cells, like materials will be removed from the warehouse inventory in the morning and products will be added at the end of the day. You just won't see them going back and forth around town.
User avatar
Ashley Clifft
 
Posts: 3468
Joined: Thu Jul 26, 2007 5:56 am

Post » Wed Mar 30, 2011 11:15 am

The present mod does not require it, as NPCs don't happen to change anything around them.

But the script engine supports this feature. Every single activity has a script controlling it, so it is just a matter of how much effort you want to invest on that script and how complex it becomes.

In T.E.S., my focus is macroeconomic, so I am not planning on investing too much on extreme micro realism, as NWJ or CraftyBits do. Not even if the cell is loaded.

The pirate raid example is one of the few that I plan on implementing as an after-the-fact visual indication, if technically possible. A few other situations may also be implemented, for one reason or another, but this is not the focus.

But, with this engine, I could, for example, do in such a way that if the player goes to the Sawmill in the morning, he sees, say, 4 logs at a corner. Returning at noon, he would see 2 logs and some planks. At the end of the day he would see just planks. (But T.E.S. probably won't even have a realistic sawmill interior, let alone the materials)

I mean, things WILL happen on unloaded cells, like materials will be removed from the warehouse inventory in the morning and products will be added at the end of the day. You just won't see them going back and forth around town.


Heh - so it a matter of choice :) Seems what you need now is for some bright 'packaging' spark to assemble it into something that modders can use without too much fuss.

Must say I like the idea that there would be visible scars from a pirate attack - vikings and pirates both tended to arson. I would also like to see damaged buildings being repaired. After all, experientially, what is the difference between NPCs wandering around aimlessly making fatuous and irrelevant comments and other NPCs busy with purposeful activity? So I want to see both nitwits and Mrs mop washing the family clothing in the stream then hanging them out to dry etc - that's what gives real atmosphere. Diversity of activity = Immersion.

So long as th eframerate is happy with it ;)
User avatar
Harinder Ghag
 
Posts: 3405
Joined: Wed Jan 17, 2007 11:26 am

Post » Wed Mar 30, 2011 2:04 am

So long as th eframerate is happy with it ;)

Which also makes me wonder, does "script" related activity really take that much resources? Not as much as graphic improvements stuff, I suppose.
User avatar
RAww DInsaww
 
Posts: 3439
Joined: Sun Feb 25, 2007 5:47 pm

Post » Tue Mar 29, 2011 10:26 pm

Seems what you need now is for some bright 'packaging' spark to assemble it into something that modders can use without too much fuss.

I any modder gets interested in using these scripts, I will be willing to work together to create any new 'packages' that may be required.


Must say I like the idea that there would be visible scars from a pirate attack

I've been thinking about this scenario a little and it may not be that simple.
In T.E.S, the player will choose the building architecture (and position). So there is no way to anticipate which buildings will be in town when the pirates attack, so, unless someone is willing to create a destroyed version of every single vanilla architecture mesh, I won't be able to do much to the buildings visuals.
Anyway . . . lots of time to think about until a solution is needed.


Which also makes me wonder, does "script" related activity really take that much resources? Not as much as graphic improvements stuff, I suppose.

Scripts are not significant on CPU load, compared to all the heavy stuff the game engine has to do every frame (graphics, collision, path decisions, line of sight, and such)
(within reaso, of course)
User avatar
dell
 
Posts: 3452
Joined: Sat Mar 24, 2007 2:58 am

Post » Wed Mar 30, 2011 2:27 pm

I have finished the mod used to develop this concept: Anvil Red Light District.
It is in Beta test and I will upload it to TES Nexus soon.

As a teaser, I created an http://www.youtube.com/watch?v=vROUU6I5XEE.

Everybody off stage is controlled by the main ACE engine.

The jugglers are controlled by what I described under "Alternative Event Control Sub-Engine" in the first post (the one I did not like).
User avatar
Theodore Walling
 
Posts: 3420
Joined: Sat Jun 02, 2007 12:48 pm

Post » Wed Mar 30, 2011 5:48 am

I have finished the mod used to develop this concept: Anvil Red Light District.
It is in Beta test and I will upload it to TES Nexus soon.

As a teaser, I created an http://www.youtube.com/watch?v=vROUU6I5XEE.

Everybody off stage is controlled by the main ACE engine.

The jugglers are controlled by what I described under "Alternative Event Control Sub-Engine" in the first post (the one I did not like).

That's pretty awesome. Now what we need are some new animations.
User avatar
Monika
 
Posts: 3469
Joined: Wed Jan 10, 2007 7:50 pm

PreviousNext

Return to IV - Oblivion