-
Notifications
You must be signed in to change notification settings - Fork 48
Sample Constructive Rule Generator
Raluca D. Gaina edited this page Feb 12, 2018
·
1 revision
This generator depends on common knowledge about VGDL games. The problem is it generates a smaller set of games compared to other techniques as the generator have fewer options.
The constructive rule generator generate the game through multiple steps:
-
Generate Resources Interactions: Adds a
collectResource
interaction between the avatar and all the resources. -
Generate Immovable Interactions: Choose two immovable object at random. Consider the first one as collectible object. Based on that the generator adds
killSprite
withscoreChange
when the avatar collides with this immovable object. While the second one have a chance to be either harmful object or a better collectible object. Based on that the generator addskillSprite
either for the avatar if it is a harmful object or for the other object with a biggerscoreChange
than the first object otherwise. -
Generate NPC Interactions: Is the biggest step and it depends on the type of the NPC itself. If the NPC is
Fleeing
, the generator adds akillSprite
interaction between the NPC and whatever its running from. If the NPC isBomber
orRandomBomber
, the generator first adds akillSprite
between the avatar and the NPC. While the generated sprites either become collectible or harmful to the avatar. If the NPC isChaser
,AlternateChaser
orRandomAltChaser
, the generator makes it harmful for whatever its chasing. It will either kill it or transform it to be the same like itself. Finally, if the NPC isRandom
, the generator either make it harmful or collectible to the avatar. - Generate Spawner Interactions: The generator selects either to make the spawned objects harmful or collectible to the avatar.
-
Generate Portal Interactions: If the portal is defined as a
Door
, the generator will consider it as an exit and will add akillSprite
interaction when the avatar reach it. Otherwise if its aPortal
, the generator will addteleportToExit
interaction when the avatar collides with it. - Generate Movable Interactions: The generator selects either to make the remaining of the objects either harmful or collectible to the avatar.
- Generate Wall Interactions: The generator check if there is a wall objects. Wall is a sprite that surround the level and cover at most 50% of the map. Walls can be considered as normal walls where object can pass through them or as a firewall where everything that touch it dies.
-
Generate Avatar Interactions: If the avatar can shoot bullets or attack. The generator adds a
killSprite
interaction between the bullets and enemies. -
Generate Termination Conditions: The generator checks if there is a
Door
defined, it consider destroying the door is the winning condition. If there is no door, the generator checks for aFleeing
npc to make collecting all of them is the condition of winning. Otherwise, its time-based winning condition. For the loss condition, the generator attach it to avatar death.
-
GVG Framework
- Tracks Description
- Code Structure
- Creating Controllers
- Creating Multi Player Controllers
- Creating Level Generators
- Running & Testing Level Generators
- Creating Rule Generators
- Running & Testing Rule Generators
-
Forward Model and State Observation
- Advancing and copying the state
- Advancing and copying the state (2 Player)
- Querying the state of the game
- Querying the state of the game (2 Player)
- Information about the state of the Avatar
- Information about the state of the Avatar (2 Player)
- Information about events happened in the game
- Information about other sprites in the game
- Game Description Class
- Constraints
- Game Analyzer Class
- Level Analyzer Class
- Sprite Level Description Class
- Sprite, Termination, and Interaction Data Class
- Level Mapping Class
- Competition Specifications
- VGDL Language