Jump to content

[Campaign] Gallic Wars


Radagast.
 Share

Recommended Posts

- Weakened the Gauls. (Removed some heroes that were spawned twice. The heroes are still pretty strong, but you can loose them if you don't pay attention.)

- Dealt with stalling attacks (idle units).

- Centurio didn't hide after having a look at the Gallic village.

- Tweaks to attack intervals. The constant Roman enemy attacks in the Defend-Village-Phase now are less long, resulting in more action.

If you have performance issues,

a) Lower graphics settings. (HQ Water off, Unit silhouettes off, Shadows off, ...)

B) We should think about replacing some trees with actors in the Gallic\ Wars.xml (not using Atlas as this is heaps of work).


The heroes wouldn't be too much of a problem to remove (stuff needs some balancing anyway).

The heroes were too much work to remove? Why not make it a mod, hey we have a mod launcher!


Without heroes we have problems because the Gauls are too weak. There is no better solution currently because The interval Trigger Re Registering not really works. So the Roman attack interval stays constant.


(But unit count of an attack still increases and decreases according to if the centurio is alive or not.)

Have fun with finding the Centurio.

Link to comment
Share on other sites

[...]

B) We should think about replacing some trees with actors in the Gallic\ Wars.xml (not using Atlas as this is heaps of work).

The heroes were too much work to remove? Why not make it a mod, hey we have a mod launcher!

[...]

Replacing trees with actors doesn't enhance performance.

I just wanted to state that removing heroes is not a huge problem if we want to make it Alpha 17 compatible. The code is a deal breaker, the heroes aren't.

Link to comment
Share on other sites

Replacing trees with actors doesn't enhance performance.

Tree templates define an obstruction and an obstruction means the pathfinder has to consider it. => Performance issue. That's what Philip criticizes from time to time too: too many tree entities (though I love those trees and thus I want to only replace them with actors which don't have obstructions but are purely visual.).

Link to comment
Share on other sites

I just wanted to state that removing heroes is not a huge problem if we want to make it Alpha 17 compatible. The code is a deal breaker, the heroes aren't.

Generally not even the code is a deal breaker, but as the 0AD team had to review it, that's the deal breaker and will take months. It's 2000+ lines + heaps of helper functions which belong somewhere else.

The technology meanwhile has been replaced by a code solution.

The shieldbearers also had to be removed.

The solution I envision can be to try to spawn those entities and provide the additional entities as a mod.

=> If you have the mod downloaded + enabled, then you'll have more starting Gauls. Otherwise the map is still playable. But meh, I don't know, we have the configurator.

And we really should use the time for different things. There are heaps of work to be done but noone working, only talking (me included), so let's go back to work.

Link to comment
Share on other sites

Tree templates define an obstruction and an obstruction means the pathfinder has to consider it. => Performance issue. That's what Philip criticizes from time to time too: too many tree entities (though I love those trees and thus I want to only replace them with actors which don't have obstructions but are purely visual.).

What if replace single tree entities with large forest entities with multiple trees? Example, clumps or groves of trees together as one thing instead of many things. This would reduce pathfinding?

Edited by wowgetoffyourcellphone
Link to comment
Share on other sites

I realized that (you can also see it on the minimap), but still at times units penetrate into the forrest and then it's fun. If the pathfinder still makes problems we could shorten the way attacking Romans have to go until they reach the village.

Doesn't the pathfinder performance depend on the number of obstructions? And the current pathfinder is O(n^3), but n here probably denotes entities' count and not obstructions, but that's somewhat equivalent (as each entity has an obstruction).

So if we had 100 units + 100 trees instead of 100 units + 1000, then we'd have

time_ratio = (100 + 100) ^3 / (100 + 1000) ^3 = [ (100 + 100 ) / (100 + 1000) ] ^3<=> time_ratio =  [ 100 * (1 + 1 ) / 100 * (1 + 10) ] ^3<=> time_ratio =  [ (1 + 1 ) / (1 + 10) ] ^3<=> time_ratio =  [ 2 / 11 ] ^3 = 0.18... ^3  = 0.006<=> time_100trees / time_1000trees = 6 / 1000=> speed up of factor 1000.

where factor means magnitude and 1000 = 10^3

Link to comment
Share on other sites

  • 3 weeks later...

Oh, this looks quite interesting! I will certainly play with it when alpha 17 is out.

One question: is the scenario's storyline intended to describe a particular historical event, or? I looked at the triggers file, and the messages (as far as I saw) mentioned only that Gaul had been conquered by Caesar, and that our village was a sort of last hope for Gaul (in a way reminiscent of Asterix, which is reinforced by the names of the hero unit files).

Link to comment
Share on other sites

No, it isn't really historical based. It is just mostly experimental trigger-work. This map is actually the first one to be such trigger driven. There are some maps that demonstrate the usage of trigger (survival of the fittest and Gallic Field) but it doesn't match the amount of code and complexity of our map. (Currently is has over 2000 lines of trigger code compare to Survival of the Fittest's 200 lines.)

With Alpha 17 will probably do a release of this map so that users only have to download it and play. It could however use some play testing and the release with Alpha 17 is likely not the final one.

Edited by niektb
Link to comment
Share on other sites

No, it isn't really historical based. It is just mostly experimental trigger-work. This map is actually the first one to be such trigger driven. There are some maps that demonstrate the usage of trigger (survival of the fittest and Gallic Field) but it doesn't match the amount of code and complexity of our map. (Currently is has over 2000 lines of trigger code compare to Survival of the Fittest's 200 lines.)

With Alpha 17 will probably do a release of this map so that users only have to download it and play. It could however use some play testing and the release with Alpha 17 is likely not the final one.

Ok, thanks for the answer :)

Link to comment
Share on other sites

  • 2 weeks later...

Do you think, shieldwolf, you and me can tackle Shieldwolf's map or perhaps shieldwolf wants to reserve this right for himself as the creator of this beautiful map? Once triggers are editable in Atlas?

In any case, I'll first outsource all common parts of the trigger code within Gallic Wars and introduce a message buffer to spread the messages more evenly.

Do you think that message buffer is useful or should the message still appear when it is triggered (as it currently is)?

I might also try to spread the evaluation of the storyline machine evenly across the CYCLE TIME. This way, we'd not need that message buffer and still could prevent those messages popping up all at once as it currently is.

Link to comment
Share on other sites

I think Shieldwolf (I'm not sure though) wants to wait till he has more time so he can actively participate in directing the development of the triggers in the map. Another reason could be that he ha(s/d) some issues with SVN.

The bad side of a message buffer is that players could lack important info (as GUI messages should contain only important info) when they actually need it because they get the message too late.

Maybe the static objectives shouldn't be shown in the same box as the messages but in a different screen / window / place?

Is it possible to color the message text?

Think of a conversation between 2 storyline units (that doesn't really happen in our scenario, but what if). What would happen? It would probably look better / be more readable if we would implement a similar approach as the chat messages players can send to each other.

Edited by niektb
Link to comment
Share on other sites

I think Shieldwolf (I'm not sure though) wants to wait till he has more time so he can actively participate in directing the development of the triggers in the map. Another reason could be that he ha(s/d) some issues with SVN.

Hi guys! It's nice to hear you are up to helping me out. I'm open in having you, Rada, implement the triggers (I can learn from that, by the way!). I just need to coordinate things. Like Niek said, I have issues with SVN, but with the release of A17 almost here, I'd wait and have another go with it.

I hope A17 will finally be out and there will be no issues. With it come so impressive new features. I can hardly await until the community can test triggers and see stackable entities in action, or having a look at the Council's + Enrique's RoTE work. Keep it up.

Listening to the Council's trigger master's guidance in his epic map will be a pleasure and probably a hard time too. But I'm willing to learn.

The bad side of a message buffer is that players could lack important info (as GUI messages should contain only important info) when they actually need it because they get the message too late.

Let's use the 2nd approach then and try to spread the storyline event evaluation evenly across the cycle time then. I hope the timers don't mind having to hop around wildly in the code.

Maybe the static objectives shouldn't be shown in the same box as the messages but in a different screen / window / place?

Definitely. We need to add such a panel somewhere at the side. Perhaps in the top right corner? Do you also think it should be toggable?

Is it possible to color the message text?

Theoretically yes. We have to figure it out if there is a nice and flexible way to add it.

Think of a conversation between 2 storyline units (that doesn't really happen in our scenario, but what if). What would happen? It would probably look better / be more readable if we would implement a similar approach as the chat messages players can send to each other.

I fully agree.
Link to comment
Share on other sites

  • 2 weeks later...

Hi folks! I'm new around here and its my reply in this forum.

I've been waiting for a long time for campaigns in 0 A.D. and seeing this campaing and the new trigger systems it's great news for me!

I tested Gallic Wars in 0 A.D. alpha 17 and it's throwing some errors. I think they are related to the trigger system and the "enemy respawn" mechanism. As soon as i get home i will post the errors.

Here are the errors from mainlog.html:

<p class="error">ERROR: Error in timer on entity 1, IID 83, function DoAction: ReferenceError: cmpRangeMan is not defined
Trigger.prototype.SpawnEnemyAndAttack@maps/scenarios/Gallic_Wars.js:1559
Trigger.prototype.DoAction@simulation/components/Trigger.js:269
Timer.prototype.OnUpdate@simulation/components/Timer.js:100
</p>

Cheers.

Edited by frcaton
Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

Thanks for reporting. Forgot to push a commit.

Though I think it's not worth playing anymore, the performance commit didn't make the experience better because we removed some waypoints which makes hte attacks work less nice - and Niek's forrest wall also has gone, so I tend to revert this (2nd-last) commit.

The only play-worthy of the map are the visuals by shieldwolf and Niek, the coding isn't so nice, I have some trigger render improvements + text-to-speech in the works for 0 B.C., then hopefully the story will feel much more realistic than those text messages.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...