Skip to content

wingykick/ThingThingThing

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About The Project

ThingThingThing

ThingThingThing explores open source software development’s potential as a framework for generative narrative made collectively.

ThingThingThing is a zero-player game. The artists and contributors jointly determine its evolution by setting an initial seed state of each Thing, which later requires no further human control. Viewers interact with ThingThingthing by navigating a giant eyeball and observing how the world evolves. ThingThingthing is an unending, three-dimensional system of instantiations, each of which is populated by an individual contributor. ThingThingthing’s aggregation algorithm copies individual avatars into an upstream account, enabling them to interact with each other.

The artists have been hosting a series of workshops, enabling anyone from students, designers to technologists to quickly build creatures with intelligence and interaction. One can also contribute remotely through ThingThingthing’s online development environment. ThingThingthing is not perfect. Anyone can make a Thing, with its unique glitches, awkwardness, and clumsiness. Once creators send off their code, they walk away from the keyboard and computer screen, let their Things take on a life of its own in the universe of ThingThingthing.

Prior ThingThingthing collaborations also include

  • Macy Art Gallery, Teachers College Columbia University;
  • Creative Tech Week(CTW) New York;
  • Asia Art Archive in America.

Past Events

  • Saturday, April 14 and Sunday, April 15, 1:00-5:00pm | Asia Art Archive in America | 43 Remsen Street, Brooklyn, NY 11201

Steps for participants:

Google Doc Link 石墨文档


Technical Document

Properties/Fields For You To Get

//Environment
float TOD_Data.main.TimeNow; //e.x. 3:30PM will be represented as 15.5
bool TOD_Data.main.IsDay;
bool TOD_Data.main.IsNight;
bool inWater; //if is in water now
int NeighborCount; //how many neighbors do you have currently

Events You can Use to Fill Code Inside

protected override void OnSunset(){}
protected override void OnSunrise(){}
protected override void OnMeetingSomeone(GameObject other){}
protected override void OnLeavingSomeone(GameObject other){}
protected override void OnNeighborSpeaking(){}
protected override void OnNeigborSparkingParticles(){}
protected override void OnTouchWater(){}
protected override void OnLeaveWater(){}

Settings of your Thing you can change

//value is the default setting
settings.cameraOffset = 15;
settings.acceleration = 4;
settings.drag = 1.8f;
settings.mass = 0.2f;
settings.chatBubbleOffsetHeight = 2; //!important! chat bubble offset on Y axis, adjust to avoid chat bubble being blocked by your model
settings.getNewDestinationInterval = 5;
settings.newDestinationRange = 40;
settings.alwaysFacingTarget = true;
settings.myCubeColor;

Ready to Use Methods

//movement
SetTarget(Vector3 target);
StopMoving();
StopMoving(float forHowManySeconds);
RestartWalking();
RandomSetDestination();//get a new random target
ResetPosition(); //change position to spawn point

//shape and form
SetScale(Vector3 newScale);
ChangeColor(Color newColor); //change color, might not work well if you have more than one renderer or more than one material
ResetColor(); //reset to original color

//social
Speak(string content, float stayLength);
Speak(string content);
Mute(); //Speak no longer works
DeMute(); //regain ability to Speak again
Spark(Color particleColor, int numberOfParticles);
PlaySound(int soundEffectId); // Range: 1 ... 102
PlaySound(string soundFileName); //if you want to play your own sound. but pls make your sound short!!!
CreateCube(); //throw a cube on the small ground

Tips


How to keep your cloned repository up to date

Only do this once

git remote add upstream https://github.com/ZZYW/thing-thing-thing.git

Do this to update

git pull upstream master

Where to put my files

Where to put my prefabs:

Resources/Things/[here]

Where to put my materials and scripts

CREATORS/[your name]/[put here]

Where to put my own sound files

Resources/Sounds/[here]

How to use your own sound files

Find a sound file that is one of the formats below

  • .Aif.
  • .wav.
  • .mp3.
  • .ogg.

Compress it if necessary, make sure its file size is smaller than 2 MB, and move it into Resources/Sounds folder.

Use PlaySound(“filename”) to play your sound, no extension name needed.

Some Basic about C# Programming

If Else Statement AND For Loop

OR

Everything Else About C#

Some useful methods from Unity

//Print things to Console for debugging
print(object message);

//Invokes the method methodName in time seconds.
Invoke(string methodName, float time);

//Invokes the method methodName in time seconds, then repeatedly every repeatRate seconds.
InvokeRepeating(string methodName, float time, float repeatRate);

//Cancels all Invoke calls on this MonoBehaviour.
CancelInvoke();

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 52.9%
  • HLSL 23.6%
  • ShaderLab 15.1%
  • Smalltalk 7.9%
  • GLSL 0.5%