• ### Remove ads and support GameDev.net for only $3. Learn more: The New GDNet+: No Ads! • # Game Intelligence Design Game Design and Theory  Game Intelligence Design [Up] [Map] [Prior] [Robot Wisdom home page] IF, AI, and the confabulating-arranger model of interactive fiction by Jorn Barger (jorn@mcs.com) September 26, 1994 Abstract: One plausible design-paradigm for interactive fiction might be to supply IF authors with an extensive library of intelligent objects that 'know' how to interact realistically, including a rich model of human behavior. Doug Lenat's Cyc project is already attacking this task from a traditional AI perspective, but for IF this knowledge may be more simply collected in the form of stories-- in fact, a new mailinglist on the Internet is devoted to compiling such a story-library. If this library also tags all the most interesting possible plot-lines, the computer's task might be extended to "confabulating" the player's reality, on the fly, simultaneously arranging both past and future so as to open as many interesting plot-directions as possible. A couple of issues ago (IED 7.4), Chris Crawford discussed the basic known 'topologies' for interactive fiction (IF)-- each of which he showed to contain intractable fatal flaws. Basically, interactivity implies that the user is making choices, which implies that the story is branching into a tree-like topology. But Chris showed that storytrees must either be folded back on themselves in a very limiting way, or have most of their branches trimmed to (violent) dead-ends. If they don't, they'll necessarily expand exponentially... so consequently, within these design paradigms, even high-budget efforts are doomed to produce only simplistic and uninvolving games.... The fantasy for the distant future, of course, is that the computer should offer an infinitely-various Virtual Reality, full of objects and characters whose behavior mimics 'real life' in great detail. In the ideal future, one should be able to step into the pages of a Dickens or Tolstoy novel and interact with its characters as freely as in 'real' life.... But how do we get there from here What sorts of design strategies might make these new forms of IF possible? Certainly, one step in the right direction will be to teach computers the basic laws by which real objects interact, which is one of the traditional challenges of artificial intelligence (AI). In this article, I'll first explore the AI-world's leading contender for a truly intelligent program-- the Cyc project. Then I'll look at how Cyc's models overlap with those of traditional text-adventure games. I'll discuss a potentially-simpler strategy for compiling a 'Cyc' for IF, using a text format called a "meta-story", and offer some examples of how these can capture knowledge in an intuitive way. And finally I'll explore a new paradigm for IF-- the confabulating-arranger model. The Cyc project as a universal knowledgebase The last thirty years of academic AI research have produced very little that computer-game designers would find useful. The problems they've chosen to research have been too limited, and the programming structures they seem to favor are impossibly slow for realtime gameplay. So the world of gaming has pretty much had to invent its own styles of AI, as it's needed them. But for the last ten years, a highly ambitious (and surprisingly low-profile!) effort has been underway in Austin, Texas, to spell out the entire range of human commonsense knowledge. The goal of this Cyc (for enCYClopedia) project is a program that can read a newspaper, and 'understand' what it has read, well enough to detect violations of common sense, just as human readers can. But to the extent that it succeeds at this, it should be equally useful, at least in theory, for maintaining internal consistency in a virtual world.... The Cyc team, led by Doug Lenat, has been trying to break down human understanding into thousands of subdomains that they call "micro-theories", like ailments, food-preparation, communication, and corporate behavior, and then trying to translate the basic 'rules' of each such domain into the language of symbolic logic. When they need to say, "If someone is asphyxiating, they cannot breathe," for example, they write: (LogImplication (LogAnd (allInstancesOf$AIL Asphyxiation)
(bodilyInvolved $AIL$AGT))
(holdsIn $AIL (LogNot (behaviorCapable$AGT Breathing bodilyInvolved))))

where $AIL and$AGT are the variables for ailment and agent,
LogAnd, LogNot, and LogImplication are simple logical connectives
and "holdsIn" defines the context within which this 'axiom' holds.

According to the Cyc model, if an adventure game needed to know
what-happens-next at any particular point-- say, when a person drops a
delicate vase-- it would send a query to Cyc and in a matter of seconds,
Cyc should return with the news that vases dropped on hard surfaces usually
shatter...

Unfortunately, if you multiply that plausible retrieval-time times the
thousands or hundreds of thousands of deductions that would be needed to
keep an interactive fiction realistic from moment to moment, you're forced
to the conclusion that Cyc just isn't going to be fast enough to support
IF, anytime soon.

Probably the worst problem here is that Cyc-- unlike any other largescale
project in history-- didn't evolve by starting with a simpler version of
the whole, and gradually filling in the less-important details. Rather, Cyc
is being built by the much riskier strategy of accumulating detailed
subsections, one by one, with no known overall pattern... and later
streamlining it down to a "core knowledge base". To make that streamlined
enough for IF may turn out to be the hardest challenge of all!

So Cyc offers a good startingpoint for IF-theory, with regard to the
knowledge it hopes to embody, but perhaps not so good a model with regard
to the performance constraints of realtime IF. But we know for certain that
some level of realtime IF is possible-- Zork and Hitchhiker's Guide (etc)
have proven that! But is there a way to build an "IF engine" that includes
something more like Cyc?

The enduring popularity of text adventures, especially the Infocom games of
the early 1980s, has led a number of talented enthusiasts to create
programming languages especially for text-adventure development. Many of
these are available free on the Internet, where the newsgroup
rec.arts.int-fiction supports a thriving subculture of text-adventure
designers working in these formats. (The newsgroup has its archives at
ftp.gmd.de in /if-archive/.)

probably the most popular environment, because games created in TADS can be
run on almost every major hardware platform. TADS offers a modest range of
predefined object-types that have at least a minimal level of intelligence
about their own behavior. Containers and vehicles, for example, understand
that objects placed within them will move with them, and will be invisible
unless the container or vehicle is transparent. Characters automatically
grow hungry if they don't eat, and even eventually die.

TADS is object-oriented, with the objects themselves containing most of the
code embodying such "story elements":

class openable: container
contentsReachable = { return( self.isopen ); }
contentsVisible = { return( self.isopen ); }
isopenable = true
ldesc =
{ caps(); self.thedesc;
if ( self.isopen )
{ " is open. ";
pass ldesc;}
else " is closed. "; }
[etc]

The TADS object-hierarchy is firmly grounded in story-telling pragmatics:

Thing
Item: vehicle, surface, lightsource, key, food, container, clothing
FixedItem: switch, dial, button, decoration, actor, chair
Room

Cyc, by contrast, offers at the highest level the following, rather less
pragmatic, partial object hierarchy:

Thing
Intangible
IndividualObject
Event
Stuff
Process
SomethingExisting
TangibleObject

The Wisdom-FAQ mailinglist

to the full extent targeted by Cyc, this would surely be a major step
towards better IF. So with this in mind, a group of us from
rec.arts.int-fiction (and elsewhere) have spun off a new mailinglist to
investigate the possibility of building a sort of public-domain 'Cyc' for
IF.

The name for the mailinglist-- Wisdom FAQ-- is derived from the Internet
condense, into the most accessible format possible, all the most useful
information on any given topic. The "Wisdom FAQ" can be seen as a (rather
grandiose!) image of a FAQ that tries to contain all the wisdom of the
world, on every topic... starting, of course, with those truths most useful
for interactive fiction. (To subscribe to the list, send me a request at
wisdom-request@mcs.com. The accumulated archives can be ftp'd from
ftp.mcs.com in mcsnet.users/jorn/wisdom/. If you need me to email them to
you, let me know how many kilobytes your emailbox can handle at once.)

The mailinglist is grappling simultaneously with the task of simply
accumulating 'story elements' or axioms, and the more difficult task of
agreeing on a standardized way of expressing them. Because the latter task
is more technical and less interesting to many people, it will likely be
spun off into a second list of its own sometime soon.

The task of enumerating story-elements, though, is not so much a question
of technical as of storytelling expertise. For this reason, the Wisdom-list
eagerly welcomes non-technical contributors who nevertheless have a knack
for spinning out plotlines, or a gift for clever plot twists...

Every object tells a story... don't it?

The obvious way to keep these collections of story-elements organized is
according to which objects in the object-hierarchy they require. It's not
that hard, for any object in a game (or in the world), to rattle off the
basic rules of its behavior. One strategy for 'priming your pump' might be

* Where does this object come from?
* How does a person come into relationship with it?
* How might the person use the object?
* How might they change it?
* How might they be changed by it?
* How might their relationship with it end?
* How might it cease to exist?

One convenient format for compiling the answers to these questions might be
called a "meta-story":

The food meta-story: A person tended a garden or farm raising plants or
animals to eat or sell. They harvested the food when the time was right and
sold it or preserved it or prepared it and ate it or fed it to friends or
family. If it was well-prepared, their hunger was satisfied and they were
happy. The food travelled thru their intestines and had to be excreted. If
they didn't get enough good food, they got thin and died. Maybe the person
preparing the food put poison in it to injure the person who ate it. They
might have to disguise the flavor of the poison. Maybe they prepared it

The bottle meta-story: A person heated up some sand in an oven and blew air
into it with a straw until it became a bottle. When it cooled, they could
pour liquids into it and put a cork or cap on it to keep the liquids from
spilling or evaporating. They could also fill it by dipping it into a
larger body of liquid. When they took the cork out they could pour out the
liquids, or drink from the bottle. Two or more people could pass the bottle
around and share the drink. If they dropped the bottle on something hard,
it probably broke, and any liquid in it spilled out. The broken glass could
cut a person when they touched it, if they weren't careful. It could make a
car tire flat. If a barefoot person stepped on it they would get cut. The
broken base might act like a lens to focus light and start a fire, or
magnify something tiny. (The bottle with clear liquid in it might also be a
lens.) The person could knock someone unconscious by breaking the bottle
over their head. They could use the bottleneck to make their guitar play
better. They could roll dough flat by using the bottle like a rollingpin.
(etc)

So one approach the Wisdom-list may use could be to accumulate a sort of
'children's encyclopedia' of these meta-stories, elaborating each of them
to whatever level of detail our creativity allows.

But simply enriching the supply of intelligent objects won't necessarily
make the IF-author's job easier. For one thing, the more pre-existing
behavior that's been supplied for the game's objects, the harder it will
become for the author to anticipate every possible solution to the game's
puzzles. In fact, the farther we move in this direction, the less
attractive the whole idea of puzzle-oriented IF begins to seem...

IF and 'psychology objects'

Cyc has been circling closer and closer to the task of representing human
dramas, and claims already to have a working model of emotions and
motivations, but the Wisdom-list won't stand a chance if it doesn't
directly confront the problem of encoding literary plots.

The classic analysis of literary plots is George Polti's "Thirty-Six
Dramatic Situations". Polti analysed a huge range of classic plotlines in
literature, and declared these to be the basic ones: Supplication,
Deliverance, Revenge, Vengeance by Family upon Family, Pursuit, Victim of
Cruelty or Misfortune, Disaster, Revolt, Daring Enterprise, Abduction,
Enigma, Obtaining, Familial Hatred, Familial Rivalry, Murderous Adultery,
Madness, Fatal Imprudence, Involuntary Crimes of Love, Kinsman Kills
Unrecognised Kinsman, Self Sacrifice for an Ideal, Self Sacrifice for
Kindred, All Sacrificed for Passion, Sacrifice of Loved Ones, Rivalry
Between Superior and Inferior, Adultery, Crimes of Love, Discovery of
Dishonor of a Loved One, Obstacles to Love, An Enemy Loved, Ambition,
Conflict with a God, Mistaken Jealousy, Faulty Judgement, Remorse, Recovery
of a Lost One, Loss of Loved Ones

Only a few of these will normally turn up in the course of applying the
meta-story approach to story objects, because the most important 'objects'
in literary plots tend to be psychological ones, like emotions and
motivations.

The meta-story approach can still work fine as a way of accumulating
story-elements, though, even if you choose a totally arbitrary
startingpoint (for example, hypnosis), so long as you're comfortable with
the storytelling aspect of things:

The 'hypnosis' meta-story: Once a person learned they could control others
by hynosis. So they hynotized others into giving away their money and power
and their health and their self-respect. And these people didn't even
realize what had happened to them. Eventually things got so bad they were
desperate to discover the source of their situation. Then one person got a
glimpse of the truth, and then lost it, and then saw it again, and tried to
tell others, and got dismissed as crazy, and attacked, but finally figured
out how to lead others to see the truth, and they rose up together and
overthrew their oppressors.

The intuitive familiarity of the story-format allows almost any topic to be
productively explored...

Reverse-engineering emergent-behavior

While the artificial-life theorists have been hoping to discover a few
simple laws that will result in a vast payoff of interesting stories, via
the principle of 'emergent behavior', the meta-story approach might be
thought of as an attempt to outdo them by 'cheating'-- first you spell out
the stories you want to see 'emerge', and only then do you analyse them and
try to 'reverse engineer' the set of simpler laws that will produce them.

So even something as simple as Maslow's hierarchy of needs (physiological,
safety, belongingness and love, esteem, cognitive, aesthetic, and
self-actualization needs), which might seem like a plausible startingpoint
for a simple set of a-life laws, leading to emergent behavior, reveals some
extremely inobvious patterns (at least from a mathematical point of view),
when analysed for meta-stories:

The physiological-needs meta-story: Every so often, a person gets a craving
to consume food and drink. They usually arrange to have a source of these
nearby, that they can rely on for purity. They may prepare the food and
drink, cooking things, cutting them up, mixing them together, adding
flavorings to make the experience pleasant. Or maybe they expect another
person to do that for them. Usually, a group of people who live together
will sit down together to eat, at a table with plates and silverware and
glasses. Afterwards, someone must clean up. Sometimes they may eat at
restaurants, or in a vehicle as they travel. They may carry a container of
water to drink (perhaps flavored or mixed with nutrients or stimulants or
intoxicants), or stop at a vending machine or drinking fountain or coffee
machine. If a person's daily calories consumed don't equal their calories
burned, they lose weight. If they consume more, they gain weight. If they
lose too much weight, or fail to drink enough, they can die.
Water-plus-wastes is excreted by urination, food-after-nutrient-absorption
by defecation.

The safety-needs meta-story: A person felt unsafe, and they didn't like it.
Maybe there were other people or animals around, untrustworthy ones, and
their home wasn't secure. Maybe they had to leave the safety of their home
during the day, and risked being attacked. Maybe it was nature that
threatened them, in the form of high cliffs, deep holes, quicksand,
dangerous bodies of water, weather that's too cold, hot, or violent, etc.
Maybe it was poorly maintained technology that was the danger. The person
changed the environment or changed their behavior so that the danger was
lessened and they felt safer.

The belongingness-and-love-needs meta-story: A person felt lonely. They
sought out others' company and acted charming so they would be welcome. Or
they acted domineering so that others would be afraid to reject them. Or
they acted hurt so that others pitied them.

The esteem-needs meta-story: A person felt that no one respected or
appreciated them. So they tried to do something admirable, and then made
sure that others knew about it. Or maybe they lied about doing something

The cognitive-needs meta-story: A person needed to know something, or was
just curious. They sought out a book and read it, or a teacher and took a
class or asked them questions. Or they just observed the thing they didn't
understand, and thought deeply about it, maybe doing experiments. If they
discovered something new they probably published their findings.

The esthetic-needs meta-story: A person was oppressed by a boring or ugly
environment, so they made or acquired or sought out objects that were
pleasing to their senses. Maybe they recorded the process of creation, so
that it could be reexperienced later, by others. Maybe they positioned
these creations within their environment so they could experience them
often. Maybe they grew bored with them after a time.

The self-actualization-needs meta-story: A person had everything they
needed, but didn't feel fulfilled. So they looked within themselves to
discover what their heart wanted most, and followed their bliss...

"SimNormal"

Given the ambitious scope of the Wisdom list, there's a serious risk of
getting bogged down in such a mass of story-content, that one loses any
sense of a startingpoint, and so also any chance of actually building a
working IF program!

One way to keep these meta-stories somewhat 'grounded in reality' is to
visualize them as being acted out on a computer screen, using even the
fairly primitive existing standard for graphics adventures like King's
Quest and its ilk. If your stories are too abstract for this technology,
you probably haven't thought them through in enough detail!

I like to imagine a sort of SimCity-like environment where a community of
little NPC's go through their daily routines of life, in a completely rote
fashion, with no emergent behavior expected or desired. (In honor of
Normal, Illinois, I call this world "SimNormal".)

Looking again at the belongingness-needs meta-story above, it's clear that
before you can visualize it as a SimNormal animation, you have to break it
down further, according to certain typical patterns of how these needs are
satisfied:

The casual-acquaintance meta-story: A person gets to know another by being
introduced, or by introducing themselves, or by crossing paths
occasionally. When they meet they exchange mild greetings and smalltalk
about weather, news, gossip, entertainment they've seen. If nothing
divisive turns up, they may gradually open up and trust each other more.

The simplest way to encode this might be to give each person an
intimacy-level toward each other one. Zero would mean total strangers, but
each time they noticed a given person it might increase by one. When it
reached five, say, they'd shift to casual-acquaintance mode, and greet each
other. If they're introduced, on the other hand, they might reach five
right away. As this number continues to grow, their greetings should become
more extended in time, stopping to chat if they're not in a hurry. (There
could be a chatting animation that's designed to be cycled continually, for
whatever duration they've reached.) Discovering common interests may cause
the intimacy-level to skyrocket. Discovering incompatibilities, or failing
to see each other for a long time, can cause the intimacy-level to drop.

The best-friend meta-story: A person gradually gets to know someone else,
and enjoys spending time with them. (Or maybe it's a sudden strong
connection.) They arrange to spend time together, do things together, maybe
talk on the phone. They tell each other their private worries, and try to
help each other. These exchanges make them feel better. Sometimes they
fight, and reconcile or not. Maybe one of them gets an S.O. and that causes
them to break apart. Maybe it just stops being so fun, and they drift
apart.

A person may maintain a 'short list' of those with the highest intimacy
rating, and when they're bored or upset they'll look to these for support.
A person-soothes-person2 story could be very simple-- time is consumed and
person2 feels better. (Person1 may or may not feel worse-- if they do, it
bodes ill for the friendship!) There may be a certain potential for
conflict at each point, which should depend on the sorts of personalities
they are, and whether they're in competition for scarce resources.

The pals meta-story: A person has one or more best friends, and that group
grows larger as others are allowed to join their get-togethers. Maybe
they're invited or maybe they just show up and tag along. If someone
doesn't like them they may be driven off. Several times a week, at least,
they arrange to meet together. Maybe there's a power struggle between two
who both want to lead. Maybe one by one they drop out; maybe others take
their places.

The planning-logistics of getting a group of free-thinking individuals
together are a lot more complex than for just two. Maybe any of them can
invite the others-- there'll need to be be a 'get-together meta-story' to
handle this.

The housemates meta-story: A person moves into a living-place with one or
more housemates, sharing common areas. Usually, the housemates play the
role of friends to some degree, listening to each others' daily stories.
Some housemates are neater than others, and this will lead to conflicts.
When bills arrive, they sometimes have to be split up unevenly and this may
cause tensions. One person is probably the most responsible, signing the
checks, etc. Each probably has one or more annoying traits that try the
patience of the others. Maybe one by one they move away, and are replaced
by others, or maybe they all leave at once.

The co-workers meta-story: A person gets a job at a workplace, with others.
Some of these become friends, others maybe casual acquaintances. Some
become enemies. Even when they fight, they still have to work together, or
quit, or ask for a transfer. Their enemies may try to make them look bad to
their bosses.

The confabulating-arranger model of IF

So if we continue to pursue these directions of research, what sorts of IF
might become possible? How do you give the player an infinite world, and
still keep enough control to involve them in especially interesting
stories?

If the computer 'knows' all the most interesting sorts of dramas in
literature, one strategy could have it be continually, unobtrusively
revising the virtual world behind the scenes, so as to open up as many
interesting plotlines as possible.

So the game might open with a person in their apartment, waking up in the
morning, and if they go outdoors they may be presented with a series of
neighbors whose dramas they can become involved in... but none of these
dramas needs to have been worked out in detail beforehand. Rather, the
computer will continually improvise new possibilities based on the player's
choices, and the view of reality they've been allowed thus far. If the
player chooses not to follow up any given opening, that's no problem...
there will be many other options to explore.

This way, the past is as undetermined as the future, and can be molded to
any extent, limited only by what the player has already been shown and
told. So the computer is actively arranging that new developments will be
as interesting as possible-- "confabulating" reality, to use a psychiatric
term.

And in this, the "confabulating-arranger" model perhaps most closely
resembles the activity of the brain, during dreams...!
---------------------------------------------------------------------------

Bibliography

* Chris Crawford, "Flawed Methods for Interactive Storytelling" IED 7.4,
April 1994.
* Douglas B. Lenat and R.V. Guha, "Building Large Knowledge-Based
Alto, High-Energy Software, 1992.
* George Polti, "The Thirty-Six Dramatic Situations" Boston, The Writer,
1977 (originally published 1900).

Some journal references for more on Cyc:

* "CYC" AI Magazine 7(1), 1986
* "When will machines learn?" Machine Learning, Dec 1989
* "Cyc: Toward Programs With Common Sense" CACM, Aug 1990
* "Knowledge and Natural Language Processing" CACM, Aug 1990
* "Common Sense and the Computer" Discover magazine, Aug 1990
* "Cyc: A Mid-Term Report" AI Magazine, Fall 1990
* "The commonsense reviews" Artificial Intelligence, 61(1), 1993
* "CYC-O" Wired magazine, Apr 1994
* "Enabling agents to work together" CACM, 37(7), 1994

[BACK] Back


Report Article

## User Feedback

There are no comments to display.

## Create an account

Register a new account

• 0
• 0
• 1
• 1
• 3

• 12
• 9
• 17
• 19
• 9
• ### Similar Content

• Hey, I just finished a new episode of "Game Audio Lookout"! This time it's about musical sound effects in the Super Mario series. Here's the link to the video on YouTube:
--
Musical Sound Effects in the Super Mario Series | Game Audio Lookout
We’ll have a deeper look at musical sound effects in the Super Mario series in this episode of "Game Audio Lookout".
I guess everybody has heard the sounds of the Super Mario series before. But I believe most of us don’t exactly know how these were constructed and what efforts were taken in later instalments of the series to produce sound effects that even harmonise with the game’s music.
--
Feel free to let me know what you think
Alex

• Hello there!
I’m the creator and producer of an upcoming visual novel / video game.
My team and I are looking for artists (character and background), writers (experienced in writing relatable characters and witty dialogue), and programmers (familiar with unity and creating mini games).
Our team is a group of close friends looking to break the mold of the traditional visual novel and create something new and positive. This game will be highly promoted and be a great portfolio piece. Rates are negotiable!

• Hello!

I have spent the last year and a half developing a game in my spare time in Unity! I am releasing it soon on Steam. Ant Empire is a strategic remake of some older games. It is influenced by games such as Ant Empire and Civilization.

I am currently doing a kickstarter to help fund an AI before launch.

I have attached some images (tried some gifs but they were too large) to show the current stage of Ant Empire, which is nearly completed.

• So, initially I was planning to create a base class, and some inherited classes like weapon/armour/etc, and each class will have an enum that specifies its type, and everything was going ok until I hit "usable items".
I ended up with creating UsableItem class, and tons of inherited classes, like Drink/Apple/SuperApple/MagickPotato/Potion/Landmine/(whatever that player can use) each with unique behaviour. I planned to store items in the SQLite database, but I discovered that there are not many ways of creating variables(pointers) with type determined at runtime (that preferably get their stats/model/icon/etc from DB). So, I think that I need to use some variation of the Factory pattern, but I have no idea how I should implement it for this particular case (giant switch/case 😂 ).
It would be really nice if you guys can give me some advice on how I should manage this kind of problem or maybe how I should redesign the inventory.
Inventory storage is an array of pointers. I'm working with CryEngine V, so RTTI can't be used.
Example code:
namespace Inventory { enum ItemType { Static, Building, Usable, Weapon, Armour }; class InventoryItem { public: virtual ~InventoryItem() = default; virtual ItemType GetType() = 0; virtual string GetName() = 0; virtual string GetIcon() = 0; virtual void Destroy() { //TODO: Notify inventory storage delete this; } }; class UsableItem : public InventoryItem { public: struct Usage { int Index; string Use_Name; }; virtual CryMT::vector<Usage> GetUsages() = 0; virtual void UseItem(int usage) = 0; }; class TestItem : public UsableItem { int Counter =0; ItemType GetType() override { return ItemType::Usable; } string GetName() override { return "TestItem"; } string GetIcon() override { return "NULL"; } CryMT::vector<Usage> GetUsages() override { CryMT::vector<Usage> Usages; Usages.push_back(Usage{1, "Dec"}); Usages.push_back(Usage{2,"Inc"}); Usages.push_back(Usage{3,"Show"}); return Usages; } void UseItem(int usage) override { CryMT::vector<Usage> uses = GetUsages(); switch (usage) { case 0: for (int i =0; i<uses.size(); i++) { CryLog(uses[i].Use_Name); } break; case 1: Counter--; CryLog("Dec"); CryLog("%d", Counter); break; case 2: Counter++; CryLog("Inc"); CryLog("%d", Counter); break; case 3: CryLog("%d", Counter); break; default: CryLog("WRONG INDEX"); break; } } }; }

• Effekseer Project develops "Effekseer," which is visual software for creating open source games; on September 13,
I released "Effekseer 1.4," which is the latest major version release.
Effekseer is a tool to create various visual effects used in games and others.
With Effekseer, you can easily create various visual effects such as explosion, light emission, and particle simply by specifying different parameters.
Effekseer's effect creation tool works on Windows and macOS.
The created visual effects can be viewed on Windows, macOS, Linux, iOS, Android and other environments with DirectX, OpenGL and so on.
In addition, there are plugins / libraries for game engines such as Unity and UnrealEngine4 to view visual effects.
Effekseer 1.4 is an updated version of Effekseer 1.3 released in November 2017.
This update contains the following changes:
The renewal of UI. Support the tool for macOS. Addition of a function to read FBX with animation. Addition of parameters to protect collied effects and objects. Addition of parameters for easier control of the effects. In addtion I improve plugins/libraries for Unity, UnrealEngine4 and Cocos2d-x.
Besides that, more than 40 new sample effects have been added and many bugs have been fixed.
Effekseer 1.4 is available on the project website.
Effekseer
http://effekseer.github.io/

Github
https://github.com/effekseer/Effekseer
﻿
Sample Effects.
Tool Demo

View full story
×

## Important Information

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!