Greetings to all!
I'm glad to announce that the campaign (A Classic Fairytale) is pretty much finished. Anyone who doesn't wish to wait until the next release, or wants to help in hunting down bugs is welcome to try it out via the clone set up at http://code.google.com/r/szabibibi-campaign/
There are 4 endings in total, none of them are good or bad, and 9 and a half missions (9 actual missions and an ending cinematic). So, for the more curious individuals out there, the campaign gains some replay value. The story is mainly influenced by the choices made, not so much by the performance (although the latter does have minor effects).
Should any bugs be found, please describe them as thoroughly as possible in the comment section and I'll make sure to fix them.
That's it, I hope you'll like it!
UPDATE: the campaign is now available in the official repository. Also, the clone has been moved here: http://code.google.com/r/szabibibi-campaignn/
Another milestone has been reached, so it's time for an update.
About half of the campaign is finished (with small modifications taking place continuously). The campaign (which currently consists of 4 missions) can be tried out via a clone set up at http://code.google.com/r/szabibibi-campaign/.
It is aimed at newcomers (though it might be a bit challenging for them), so veterans may find it too easy...
As promised, decisions taken and performance on certain missions affects the story/game mechanics.
I hope you'll like it!
The first milestone in the campaign creation phase is over, so it's time for an update.
The first step in creating a campaign was allowing certain variables to be passed between missions so that the story could modify based on the action taken/decisions made on previous missions. It is now possible to save and request these variables from within a Lua script by calling SaveCampaignVar and GetCampaignVar. The first function takes two arguments, the variable's name and its value, and creates/modifies an entry in the selected team's ini file, in the section corresponding to the campaign. GetCampaignVar takes a single argument, the name of the variable and returns a string value, so it is up to the creator of the script to convert it to whatever type necessary. It is also required that the progress is modified if it is the case.
In order for a new campaign to be added to the game, a directory with the name of the campaign needs to be added in Data/Missions/Campaign. In this directory there has to be a campaign.ini file and scripts for each mission. campaign.ini has to contain the following lines:
ResetRetry=1 or 0 // whether the progress should be reset in case the player decides to retry a previous level
In addition to these, there needs to be a section for each mission, containing its name and the name of the script (Name and Script).
Name=Ultimate Hedge Mission
The next step was creating a frame for the story of the campaign. The story in its current state can be found at the links below. Suggestions are welcome!
Greetings to all!
My name is Szabolcs Orbán, also known as belphegorr on IRC, I come from Romania (Transylvania more specifically) and I am one of the students who got a chance to work on the game.
I will be working on a new campaign for Hedgewars. At the moment, the only options for a player eager to play against the computer offline are quick game and some (training) missions. What I will try to achieve are introducing support for interrelated missions (campaigns) and creating an introductory campaign that would also teach newcomers how to play.
A result of my work would be that performance/decisions made on a mission will be able to affect the behavior of future levels, thus allowing the creation of somewhat more complex stories, with multiple endings, surprises and nigh infinite drama!
I'd like to thanks the developers for giving me the chance to improve the game and mikade for mentoring my work! I'd also like to apologize in advance to all the mentors I will be bugging as I chew my way through the source code!