Story Telling with Unique Units - using Python Event System [ACCEPTED]

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,637
Location
Stuttgart, Germany
Hi guys,

some of you guys may know that I like story telling. :)

Sadly, although very possible it has not really been done yet in Civ4Col.
It is actually not even that difficult when you get a bit creative with the WTP Python Event System.

And yes, "Story Telling with Unique Units" is also a very old concept of mine.
(I have a nice set of those - but each of them is a bit of effort to configure and write texts.)

Thus as a "showcase" / "example" for other modders I will create a small set of Python Event Chains.
(Hoping to inspire others to create "Stories" / "Event Chains" of their own.)

----

Inspired by another modder's ideas I am now planning to create a small set of Python Event Chains to let the player play those stories:
  • "Life Debt": Story ( Event Chain ) about a Native Warrior
  • "He Who Rides With The Wind": Story ( Event Chain ) about a Native Scout
  • "The Last Mohawk": Story ( Event Chain ) about an Armed Native
----

Maybe we will even have to hire a "story writer" now for WTP. :think:
Problem is, that we would also need modders to implement them though ... ;)

----

The grapics for these "stories" I will create / adjust myself. :thumbsup:
(I have chosen stories where I already have graphics for.)

----

Guys, get creative and start modding yourself. :mischief:
Possibilities to do fun stuff are endless !!!

What I am going to demonstrate in this "showcase" is not "expert modders level". It is slightly above "beginners modders level".
Everybody being able to configure XML and program Python can easily do such stuff.
 
Last edited:

Attachments

  • 5ennHLZ.jpg
    5ennHLZ.jpg
    109.1 KB · Views: 323
Last edited:
@conjurer Dragon

I have nothing better ... :dunno:
And that graphic is actually great.

Also "The Last Mohawk" is just my inspiration for the story anyways. ;)
(Never said "I will create the full movie in WTP.")

Summary:
I will do it the way I can. :)
 
Another interesting Unit. :)
Maybe for a "lategame event that is a bit fictional" ... :mischief:

Graphics created by @MightyToad
 

Attachments

  • Blockaderunner.jpg
    Blockaderunner.jpg
    57.1 KB · Views: 226
I have searched and this is closest thread to an idea I had for a special story-based late-game event.
A special "pirate captain" commanding a promoted SOTL or even MoW, maybe start with a message warning of a rumor, "(legendary pirate name) is rumored to have stolen warship from (your king), heads toward new world to plunder colonial shipping." Maybe create conditions based on piracy where if you're a successful pirate, he might join you (ie, 5 privateers and 3 PF, have your pirates win 5 battles in next 20 turns) failure triggers ship to spawn as pirate near one of your cities. You then receive bounty offer from your king, hunt down and destroy or capture the legendary pirate. If you do, choice of various large rewards (elite troops and military FF points, two galleons and tax rate lowered, large cash plus political FF points, etc). complete failure, king relation penalty, if another nation defeats legendary pirate.

Thoughts? It needs to be late game so as not to be too unbalanced, but could be a neat story IMO
 
Thoughts?
Well sure, more events are alway nice. :)
They add to atmosphere and immersion.

All it needs is somebody that volunteers to do the work.
So if you are interested to give this a try, I see no reason that speaks against it. :thumbsup:

----

Comment:
If you want to create such an event you may have to either / or
(That adds on top of the about 4 hours to implement the general Python Event Setup.)
  1. Create / Find a Unique Unit (in XML with Unique graphics so it can be identified) --> effort 2h if you create it, 0 hours if you find it
  2. Implement a new functionality in DLL / Python for "flagging Units" as "Quest Objectives" (of a specific Quest) --> effort 20h
2 is definitely the preferable solution, because it can be used by many more events, but it definitely needs a skilled programmer.

----

Summary:

Depending on the solution you chose, you may end up somewhere between 4h to 24h of effort.
 
Id definitely prefer the path that helps us more overall going forward. You know my current modding stage, but this might be a good cutting-teeth task after I get basic function down. I'm adding it to my personal agenda notes, as long as no one objects to the concept
 
The whole marking a unit as objective could be used for a /lot/ of events. Hunt down a wolf terrorizing a town, hunt down escaped slave who stole masters wife's jewels, target an enemy great general or admiral.... loads of opportunity once I figure out how to implement that.
 
... as long as no one objects to the concept
There is generally hardly any reason against:

1. Adding functionality of a System (in this case "Python Event System2)
2. Small flavour additions (Events, Achievements, ...)

As I said, the only thing is "effort" and "motivation" - meaning to find a volunteer.
But once somebody volunteers the effort discussion is over as well.
(Each of us is free to chose his own tasks or projects he wants to work on.)
 
Well then I'll do it, soon as I'm able. May need to seek advice/review once I think I've got it, and it won't exactly be done in the next week, but ill get it done
 
The whole marking a unit as objective could be used for a /lot/ of events.
Sure, definitely. :)

The idea is also not new. It was simply never high priority. :dunno:
Thus it was simply never implemented due to lack of a modders.

There are 1 million great things we could do if we had more modders that wanted to do it. :)
 
Well then I'll do it, soon as I'm able. May need to seek advice/review once I think I've got it ...
Sure. :)

Those are the basics you need to even get started.
(You can ask other modders for help and advice of course.)

Step 1: Setup your development environment (Visual Studio + GIT + Notepad++)
Step 3: Learn how to compile a DLL (Because that logic will need to be placed in DLL for performance)
Step 2: Learn how to add a new XML attribute (you will need it for flagging the Unit in XML and expanding XML of Python Events)

After that, we talk about actual implementation of the Python Event Feature logic the addition is calling. :thumbsup:
But you really simply need to get started with the basics of programming.
 
Top Bottom