FreeOrion

Forums for the FreeOrion project
It is currently Wed Jun 19, 2013 4:39 pm

All times are UTC




Post new topic Reply to topic  [ 176 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 12  Next
Author Message
 Post subject: Re: A few simple things to make FO more playable
PostPosted: Fri Aug 12, 2011 1:40 am 
Offline
Space Krill

Joined: Fri Aug 05, 2011 6:43 pm
Posts: 10
Bigjoe5 wrote:
That could potentially be interesting, but I think the main purpose of this thread is to consider things that are easily doable with FO's current code, so we can make the game fun and attract more contributors now.

Good point.

Then we can build biomes with vegetable life forms. Fauna could "see" the vegetables and tend to move towards them. "Clearing" the vegetables would then make you somewhat safe from fauna -- or, simply settling in areas where there isn't significant vegetables.

The level of danger an area would have could be described by the type of vegetables.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Fri Aug 12, 2011 3:42 pm 
Offline
Designer and Programmer
User avatar

Joined: Tue Aug 14, 2007 6:33 pm
Posts: 1812
Location: Orion
Regarding Krill:

I think "Hives" might be a good concept for Krill. That is, instead of populating the galaxy with small krill swarms, the galaxy could be populated with Krill Hives which have something like a 3% chance of spawning a small Krill Swarm, and remain stationary for the whole game.

Also, we could have a planetary special that on the first turn, turns a planet into a Huge Mineral Rich Gaian planet and creates a powerful stationary space monster, similar to MoO2's space monsters.

_________________
Warning: Antarans in dimensional portal are closer than they appear.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Fri Aug 12, 2011 6:22 pm 
Offline
Space Krill

Joined: Fri Aug 05, 2011 6:43 pm
Posts: 10
More thoughts:

Asteroids can have Solar Forests. Gas Giants can have Spore Colonies. (Traditional) Planets can have Star Fungus. These are called "ecologies".

All of these are "hives", in that they spawn mobile space critters. Clearing one of these hives out takes a significant amount of time or technology.

3 kinds of mobile critter for each of the above biomes.

Seeds are a kind of critter that travels to nearby systems and grows a new biome there. Seeds travel mostly randomly. Some seeds risk "infecting" a colony or outpost, which can be harmful. Some kind of seeds might attack ships.

Herbivores have a vision range, and tend to move into areas where there are more of the same biome when they move. The largest Herbivores are not very aggressive, but dangerous if attacked. Herbivores tend to flee their predators.

Carnivores also have a vision range. They tend to follow Herbivores, but are more likely to move randomly than Herbivores, and are most likely to attack ships.

The ecology produces a biome -- an environment that sustains and attracts -- for herbivores. Herbivores produce the biome for carnivores.

So if you see lots of a particular ecology, you will expect the corresponding herbivore. If you spot the corresponding herbivore, you expect the carnivore. And if you see the carnivore, you run! Clearing out a given ecology keeps herbivores away. Clearing out the herbivores keeps the carnivores away.

All of this is an attempt to reduce the amount that these are "random events", as in "a space monster wandered over your homeworld. Too bad, so sad." with nothing you could do about it.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Fri Aug 12, 2011 9:25 pm 
Offline
Design & Graphics Lead
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3707
Location: USA — midwest
Yakk wrote:
Herbivores have a vision range...

BigJoe, Geoff, is that easily do-able?

Yakk wrote:
All of this is an attempt to reduce the amount that these are "random events", as in "a space monster wandered over your homeworld. Too bad, so sad." with nothing you could do about it.

I agree that could be a problem. In my monster write-ups i've tried to deal with it by making the powerful monsters not move around much, or not stay in one place for long. If the Dread Bandersnatch has the power to destroy an early to mid-game homeworld, but generally keeps on moving before completing the destruction, he's really no worse than a medium level monster you can reliably defeat -- and he's a lot more exciting.

Bigjoe5 wrote:
Regarding Krill:

I think "Hives" might be a good concept for Krill. That is, instead of populating the galaxy with small krill swarms, the galaxy could be populated with Krill Hives which have something like a 3% chance of spawning a small Krill Swarm, and remain stationary for the whole game.

That would make Krill functionally very similar to the Abandoned Drone Factory: weak enemy generated from a stationary factory/hive.

Bigjoe5 wrote:
Also, we could have a planetary special that on the first turn, turns a planet into a Huge Mineral Rich Gaian planet and creates a powerful stationary space monster, similar to MoO2's space monsters.

Is our Gaian special actually used? I can't recall finding one in several years of testing.
Other means to the same end: the high-level, really valuable specials have an X% chance of generating a "guardian" or "sentinel" monster. Though it would really rot if you were on the tip of an arm and the only way to the rest of the galaxy was through the Guardian.

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Fri Aug 12, 2011 9:42 pm 
Offline
Programming, Design, and De Facto Lead
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 8058
Location: Vancouver, BC
eleazar wrote:
Yakk wrote:
Herbivores have a vision range...
BigJoe, Geoff, is that easily do-able?
Moster movement is done with an effect (defined as part of their body, which is internally a hull type), which uses a condition to select the destination. Conditions can by arbitrarily complex, and distance or starlane jumps tests can be used.

Current monsters use something similar to this to move:
Code:
    effectsgroups =
        EffectsGroup
            scope = And [
                Fleet
                Stationary
                Contains Source
            ]
            activation = Random probability = 0.3
            stackinggroup = "MONSTER_FLEET_MOVE_STACK"
            effects = SetDestination destination = And [
                System
                WithinStarlaneJumps 1 Source
                Not Contains Source
            ]

The relevant condition for selecting where to move is the one after destination =. This condition can include anything from this list, assuming it's been updated recently and correctly. In this case, it selects systems that are starlane-adjacent to the monster's current system (within 1 jump away, but not the system that currently contains the monster).

However, doing a lot of WithinStarlaneJumps tests with large jumps limits, or doing many WithinDistance not after other very restrictive conditions, is generally not a good idea because it can slow down turn processing significantly.

Note also that monster movement could be made dependent on the locations of player-controlled or non-player-controlled buildings or ships, or what focus a planet is using, or star type, or the monster's health. Other things could also be made usable on request, such as monster age in turns.

Quote:
Is our Gaian special actually used? I can't recall finding one in several years of testing.
Not by the engine. It can be added by effects, or could be moved from specials.txt into planet_specials.txt if it was desired to randomly appear on planets.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Mon Aug 15, 2011 2:17 pm 
Offline
Design & Graphics Lead
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3707
Location: USA — midwest
Can someone please provide example script for converting monster X into monster Y?

Geoff the Medio wrote:
What would be good to add now, IMO, is some benefit to players to having the monsters around. This could be similar to bonuses for killing barbarians in Civ games, but perhaps something more interesting could be arranged.

Perhaps you collect X minerals or more dubiously X science points for killing a monster.

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Mon Aug 15, 2011 3:11 pm 
Offline
Designer and Programmer
User avatar

Joined: Tue Aug 14, 2007 6:33 pm
Posts: 1812
Location: Orion
eleazar wrote:
Can someone please provide example script for converting monster X into monster Y?


Code:
EffectsGroup
    scope = Source
    activation = <insert activation condition here>
    effects = [
        CreateShip <insert new space monster here> Source.Owner Source.Species
        Destroy
    ]

That should do the trick, though I didn't actually test it. It's possible that you'll have to put the Destroy effect in a different effectsgroup, but this should work. Also, I don't really know how ship's species are handled for space monsters. This is under the assumption that creating a new space monster works the same way as creating a ship, so Geoff can correct me if that's a bad assumption. I guess space monsters that you don't want to appear at the start of the game should go into premade_ship_designs.txt.

Geoff the Medio wrote:
What would be good to add now, IMO, is some benefit to players to having the monsters around. This could be similar to bonuses for killing barbarians in Civ games, but perhaps something more interesting could be arranged.
If we could attach an effects group to killing a monster, then we could use "GiveTechToOwner" to unlock a prerequisite for a series of techs related to that space monster. Perhaps each time a space monster of a particular type is killed, a new theory is unlocked that gives the player access to more powerful weapons/ship systems themed around that space monster.

_________________
Warning: Antarans in dimensional portal are closer than they appear.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Mon Aug 15, 2011 3:32 pm 
Offline
Programming, Design, and De Facto Lead
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 8058
Location: Vancouver, BC
Bigjoe5 wrote:
I don't really know how ship's species are handled for space monsters.
Species on a space monster won't do anything unless the species has an effect that works on ships. I suspect that using Source.Species might fail if the source has no valid species, because CreateShip probably assumes there is a valid species and may abort if one isn't provided. So, just specify a species name as a string constant, not a Source reference. I'll need to tweak the CreateShip effect to better handle monsters and not require a species to be specified...

Quote:
This is under the assumption that creating a new space monster works the same way as creating a ship
It should, although there might also be a problem with creating a ship with no owner that I'll need to fix...

Quote:
I guess space monsters that you don't want to appear at the start of the game should go into premade_ship_designs.txt.
If you do that, then they won't be considered space monsters. The consequence of that is mostly that they will have the wrong icon on the map, and may appear in the wrong place in the encyclopedia.

Edit: In SVN there's now a variant of CreateShip available where just the design name needs to be specified, which will create the ship with no owner and no species, which is suitable for monsters. I've tested it by making a species spawn krill every turn, and it seems to work. /Edit


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Mon Aug 15, 2011 11:07 pm 
Offline
Designer and Programmer
User avatar

Joined: Tue Aug 14, 2007 6:33 pm
Posts: 1812
Location: Orion
Geoff the Medio wrote:
Quote:
I guess space monsters that you don't want to appear at the start of the game should go into premade_ship_designs.txt.
If you do that, then they won't be considered space monsters. The consequence of that is mostly that they will have the wrong icon on the map, and may appear in the wrong place in the encyclopedia.

OK, so how can space monsters that should be present at the start of the game be distinguished from those that should appear only later on? Probably just a flag in the space monster's description, specifying whether or not it should spawn at the start of the game would be appropriate.

_________________
Warning: Antarans in dimensional portal are closer than they appear.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Tue Aug 16, 2011 2:53 am 
Offline
Programming, Design, and De Facto Lead
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 8058
Location: Vancouver, BC
Bigjoe5 wrote:
OK, so how can space monsters that should be present at the start of the game be distinguished from those that should appear only later on? Probably just a flag in the space monster's description, specifying whether or not it should spawn at the start of the game would be appropriate.
A more useful solution would probably be to have a condition for determining where and when monsters should spawn. This would be tested on all objects every turn, and used to decide where and when to create monsters - not just at the start of the game. I'm not sure where best to put such a condition though...


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Wed Aug 17, 2011 5:25 pm 
Offline
Designer and Programmer
User avatar

Joined: Tue Aug 14, 2007 6:33 pm
Posts: 1812
Location: Orion
Geoff the Medio wrote:
Bigjoe5 wrote:
OK, so how can space monsters that should be present at the start of the game be distinguished from those that should appear only later on? Probably just a flag in the space monster's description, specifying whether or not it should spawn at the start of the game would be appropriate.
A more useful solution would probably be to have a condition for determining where and when monsters should spawn. This would be tested on all objects every turn, and used to decide where and when to create monsters - not just at the start of the game. I'm not sure where best to put such a condition though...

In general, I think objects that are going to be spawning space monsters in the middle of the game can have their own effects groups to deal with that. A location condition in the monster's description should be adequate for determining where it spawns at the start of the game.

_________________
Warning: Antarans in dimensional portal are closer than they appear.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Wed Aug 17, 2011 6:11 pm 
Offline
Design & Graphics Lead
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3707
Location: USA — midwest
I don't know how easy this is, but i'd like to see a tag to make certain types of monsters rarer at universe generation, and/or to prevent it from being placed more than once.

A similar/identical function would be nice for species and specials too.

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Wed Aug 17, 2011 7:11 pm 
Offline
Programming, Design, and De Facto Lead
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 8058
Location: Vancouver, BC
eleazar wrote:
I don't know how easy this is, but i'd like to see a tag to make certain types of monsters rarer at universe generation, and/or to prevent it from being placed more than once.

A similar/identical function would be nice for species and specials too.
Those wouldn't be especially difficult.

I'm wondering if something like starting_fleets.txt would be a better method for both though...

There would be a starting_monster_fleets.txt which would contain lists of monster types that would spawn together (or could be a list of one monster type), and would have a location condition and some sort of frequency setting. This would be convenient for me as there wouldn't be any need to change the definition of monsters - which are currently just a ship design - to also have extra fields that aren't used in some cases.

There would also be a starting_neutral_planets.txt which would contain a species, perhaps a list of buildings, and a frequency setting.

What would really be nice, though, would be an interface for Python scripting universe generation, which might be less useful for non-programmers, but would allow completely arbitrary galaxy setups to be scripted.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Thu Aug 18, 2011 2:07 pm 
Offline
Designer and Programmer
User avatar

Joined: Tue Aug 14, 2007 6:33 pm
Posts: 1812
Location: Orion
Geoff the Medio wrote:
I'm wondering if something like starting_fleets.txt would be a better method for both though...

There would be a starting_monster_fleets.txt which would contain lists of monster types that would spawn together (or could be a list of one monster type), and would have a location condition and some sort of frequency setting. This would be convenient for me as there wouldn't be any need to change the definition of monsters - which are currently just a ship design - to also have extra fields that aren't used in some cases.
That does rather sound more useful. Something like this?
Code:
Space Monster Fleet
    name = "FM_KRILL"
    ships = "SM_KRILL"
    location = Or [
        And [
            Contains Planet type = Asteroids
            Not WithinStarlaneJumps 1 Capitol
            Random .2 // Represents the chance of this fleet appearing at any system with an Asteroid Belt that is not within 1 starlane jump of a Capitol, modified by //galaxy setup life-frequency option.
        ]
        And [
            Contains Planet type = Gas Giant
            Not WithinStarlaneJumps 1 Capitol
            Random .05
        ]
    ]


Quote:
There would also be a starting_neutral_planets.txt which would contain a species, perhaps a list of buildings, and a frequency setting.
And an EP and starting focus would be nice as well.

Quote:
What would really be nice, though, would be an interface for Python scripting universe generation, which might be less useful for non-programmers, but would allow completely arbitrary galaxy setups to be scripted.
Could such a thing eventually be used to create custom galaxies for campaign scenarios?

_________________
Warning: Antarans in dimensional portal are closer than they appear.


Top
 Profile  
 
 Post subject: Re: Making Space Monsters Cooler
PostPosted: Thu Aug 18, 2011 8:27 pm 
Offline
Programming, Design, and De Facto Lead
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 8058
Location: Vancouver, BC
Bigjoe5 wrote:
Something like this?
Maybe. I'm not sure that the Random probability condition is so easy to interpret though, as there is also the galaxy setup setting for life frequency that will have some influence.

Quote:
Quote:
...an interface for Python scripting universe generation, which might be less useful for non-programmers, but would allow completely arbitrary galaxy setups to be scripted.
Could such a thing eventually be used to create custom galaxies for campaign scenarios?
Presumably, yes... you could make a script that exactly specifies everything in the universe. For a scenario though, I'd expect that a saved game would be easier. The idea of a universe creation script is to be an alternative random map generator.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 176 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 12  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group