I agree things should be set up such that reloading is useless, I actually thought the current system already worked that way (with the seed for the randomizer being stored in the savegames), but I could be wrong about that.
The thing about Volcanos that's so interesting that it's up to the player to decide if he settles next to one or not: do you want to take the risk of having a city there for the bonus resources or do you stay away from it to avoid damage? That's hardly arbitrary if you ask me, that's entirely free will.
Some random thoughts on ideas for random events:
Negative
Flood: every turn x tiles (where x depends on mapsize and g.eventchance, default on normal map could be 1) are flooded. Floods can only occur on low land tiles (Plains, Grassland, Swamp, etc) bordering the sea or with a river on it. If a flooded tile has no city on it, there will be no effect. Otherwise, resource collection is reduced by y% (where y depends on g.eventintensity, default could be 20). Floods can be countered by City Walls (offers say 50% reduced chance of being affected by a flood if it strikes and reduce damage done by 50% when it does) and Battlements (same as City Walls, only 25% (cumulative)). Floods can often been predicted and people can evacuate and board up in time, so the only effect of floods would be in lost productivity.
Fire: every inland and non-river city has a x% chance of being hit by fire (where x depends on city size and g.eventchance, default could be something like 0.2 per pop). Fire can kill at most y% of the pop in a city and destroy at most y% of the buildings (where y depends on g.eventintensity, default could be 5). The chance of a fire hitting and the damage done could be prevented by an Aquaduct and something like a Sewer System (each 50% less chance of being hit, 50% less damage (cumulative)). Great city-wide fires are rare in present times so 100% prevention rate should be possible in modern times. Also, cities near rivers or coastal areas have a natural protection against fire, though in reality this isn't always 100% as I'm proposing here (notable example: London).
Earthquake: every turn there's an x% chance of an earthquake occuring somewhere on the map (where x depends on mapsize and g.eventchance, default on normal map could be 20). A random mountain/hill square is picked for the earthquake: the tile itself (epicenter) and all surrounding tiles (radius of 1) are affected. Units in the epicenter would get at most 4*y% damage, units in the radius at most 2*y% (where no units should ever be killed and y depends on g.eventintensity, default could be 5). If there's a city at epicenter, at most 2*y% of the pop can be killed and at most 2*y% of the buildings destroyed. For a city in the radius the same applies, only with y%. The effects of an earthquake can be fought with technology: for every advance in the Construction branch, the damage in cities is reduced by 10%. Hospitals reduce the population damage by another 20%. Units inside fortresses and cities with Barracks (and/or City Walls) are get 50% less damage.
Drought: every turn there's a x% chance of a civ being struck by a drought (where x depends on g.eventchance, default could be 0.5). If a drought occurs, food production will be reduced empire-wide by y% for at most z turns (where y and z depend on g.eventintensity, defaults could be 10 and 4). Droughts can be fought with technology: for every advance in the Agriculture branch, there's a 0.05% less chance of a drought occuring. Granaries and Food Silos reduce the effects of the drought for individual cities by 5% each.
Mixed
Meteor strike: every turn there's an x% chance of a meteor strike occuring somewhere on the map (where x depends on mapsize and g.eventchance, default on normal map could be 10). A random square is picked for this. If it's a Beach or Shallow Water tile, all tiles within a radius of 2 experience floods. If it's a land tile, the tile undergoes the same effects as the epicenter of an earthquake (surrounding tiles remain unaffected though). Regardless of location, the tile gets a bonus production of +y for z turns (where y and z depend on g.eventintensity, defaults could be 50 and 3), which comes from the minerals of the meteor.
Volcano: pretty much as The Big Mc described, there would be a small chance of a volcano erupting (say 0.5% on default -- and always at least 20 turns apart) but the surrounding terrain would be extra fertile (say +5 for all resources). The effects would be double that of an earthquake (except that units *can* be killed), where the volcano tile itself is the epicenter. The number of volcanos per map should always be rare and AIs should never settle on the volcano tile itself.
Positive
Resource Discovery: every turn, there's a x% chance of the possibility that new trade good is discovered (where x depends on map size and g.eventchance, default on a normal map could be 2). A random tile is picked, if it already has a trade good than nothing happens. Otherwise, if it falls within someone's border, there's a 2*y% chance of a new trade good appearing, if it falls outside everyone's border threre's a y% chance (where y depends on g.eventintensity, default could be 25). If the good is indeed created and it falls within either the borders or the line of sight of a human player, the player is notified of the discovery.
Ruin Discovery: same as Resource Discovery, except it always take place on land tiles and they create a goody hut rather than a trade good.
Baby Boom: every turn, every city has a x% chance of being struck by a baby boom (where x depends on g.eventchance, default could be 0.01%). If this happens, the city gets a 1 free extra pop point per turn for y turns (where y depends on g.eventintensity, default could be 2), as long as a city has a positive growth rate.
Rally: every turn, every city has a x% chance of witnessing an inspiring speach by a powerful leader figure (where x depends on g.eventchance and happiness, default could be 0.01% + 0.005% for every point above neutral happiness). If this happens, the resource collection in that city rises by y% for z turns (where y and z depend on g.eventintensity, default could be 30 and 3).
Years of Plenty (for lack of a better name): same as a Drought, except that the food production is increased rather than decreased. Is unaffected by technology and city improvements.
There are plenty of other ideas that could be added here (most notably Disease, but MrBaggins already provided a nice example on how to do that). Note that the chances of events happening are always low and the effects small (will of course need lots of playtesting).
Note that it would probably be best to disable random events for the first 20-50 turns altogether, as a setback so early on would be a definite game-killer (just as with Barbarians).
The thing about Volcanos that's so interesting that it's up to the player to decide if he settles next to one or not: do you want to take the risk of having a city there for the bonus resources or do you stay away from it to avoid damage? That's hardly arbitrary if you ask me, that's entirely free will.
Some random thoughts on ideas for random events:
Negative
Flood: every turn x tiles (where x depends on mapsize and g.eventchance, default on normal map could be 1) are flooded. Floods can only occur on low land tiles (Plains, Grassland, Swamp, etc) bordering the sea or with a river on it. If a flooded tile has no city on it, there will be no effect. Otherwise, resource collection is reduced by y% (where y depends on g.eventintensity, default could be 20). Floods can be countered by City Walls (offers say 50% reduced chance of being affected by a flood if it strikes and reduce damage done by 50% when it does) and Battlements (same as City Walls, only 25% (cumulative)). Floods can often been predicted and people can evacuate and board up in time, so the only effect of floods would be in lost productivity.
Fire: every inland and non-river city has a x% chance of being hit by fire (where x depends on city size and g.eventchance, default could be something like 0.2 per pop). Fire can kill at most y% of the pop in a city and destroy at most y% of the buildings (where y depends on g.eventintensity, default could be 5). The chance of a fire hitting and the damage done could be prevented by an Aquaduct and something like a Sewer System (each 50% less chance of being hit, 50% less damage (cumulative)). Great city-wide fires are rare in present times so 100% prevention rate should be possible in modern times. Also, cities near rivers or coastal areas have a natural protection against fire, though in reality this isn't always 100% as I'm proposing here (notable example: London).
Earthquake: every turn there's an x% chance of an earthquake occuring somewhere on the map (where x depends on mapsize and g.eventchance, default on normal map could be 20). A random mountain/hill square is picked for the earthquake: the tile itself (epicenter) and all surrounding tiles (radius of 1) are affected. Units in the epicenter would get at most 4*y% damage, units in the radius at most 2*y% (where no units should ever be killed and y depends on g.eventintensity, default could be 5). If there's a city at epicenter, at most 2*y% of the pop can be killed and at most 2*y% of the buildings destroyed. For a city in the radius the same applies, only with y%. The effects of an earthquake can be fought with technology: for every advance in the Construction branch, the damage in cities is reduced by 10%. Hospitals reduce the population damage by another 20%. Units inside fortresses and cities with Barracks (and/or City Walls) are get 50% less damage.
Drought: every turn there's a x% chance of a civ being struck by a drought (where x depends on g.eventchance, default could be 0.5). If a drought occurs, food production will be reduced empire-wide by y% for at most z turns (where y and z depend on g.eventintensity, defaults could be 10 and 4). Droughts can be fought with technology: for every advance in the Agriculture branch, there's a 0.05% less chance of a drought occuring. Granaries and Food Silos reduce the effects of the drought for individual cities by 5% each.
Mixed
Meteor strike: every turn there's an x% chance of a meteor strike occuring somewhere on the map (where x depends on mapsize and g.eventchance, default on normal map could be 10). A random square is picked for this. If it's a Beach or Shallow Water tile, all tiles within a radius of 2 experience floods. If it's a land tile, the tile undergoes the same effects as the epicenter of an earthquake (surrounding tiles remain unaffected though). Regardless of location, the tile gets a bonus production of +y for z turns (where y and z depend on g.eventintensity, defaults could be 50 and 3), which comes from the minerals of the meteor.
Volcano: pretty much as The Big Mc described, there would be a small chance of a volcano erupting (say 0.5% on default -- and always at least 20 turns apart) but the surrounding terrain would be extra fertile (say +5 for all resources). The effects would be double that of an earthquake (except that units *can* be killed), where the volcano tile itself is the epicenter. The number of volcanos per map should always be rare and AIs should never settle on the volcano tile itself.
Positive
Resource Discovery: every turn, there's a x% chance of the possibility that new trade good is discovered (where x depends on map size and g.eventchance, default on a normal map could be 2). A random tile is picked, if it already has a trade good than nothing happens. Otherwise, if it falls within someone's border, there's a 2*y% chance of a new trade good appearing, if it falls outside everyone's border threre's a y% chance (where y depends on g.eventintensity, default could be 25). If the good is indeed created and it falls within either the borders or the line of sight of a human player, the player is notified of the discovery.
Ruin Discovery: same as Resource Discovery, except it always take place on land tiles and they create a goody hut rather than a trade good.
Baby Boom: every turn, every city has a x% chance of being struck by a baby boom (where x depends on g.eventchance, default could be 0.01%). If this happens, the city gets a 1 free extra pop point per turn for y turns (where y depends on g.eventintensity, default could be 2), as long as a city has a positive growth rate.
Rally: every turn, every city has a x% chance of witnessing an inspiring speach by a powerful leader figure (where x depends on g.eventchance and happiness, default could be 0.01% + 0.005% for every point above neutral happiness). If this happens, the resource collection in that city rises by y% for z turns (where y and z depend on g.eventintensity, default could be 30 and 3).
Years of Plenty (for lack of a better name): same as a Drought, except that the food production is increased rather than decreased. Is unaffected by technology and city improvements.
There are plenty of other ideas that could be added here (most notably Disease, but MrBaggins already provided a nice example on how to do that). Note that the chances of events happening are always low and the effects small (will of course need lots of playtesting).
Note that it would probably be best to disable random events for the first 20-50 turns altogether, as a setback so early on would be a definite game-killer (just as with Barbarians).
Comment