login  Naam:   Wachtwoord: 
Registreer je!
 Forum

The Thirteenth Floor

Offline Ontani - 17/11/2011 16:04
Avatar van OntaniGouden medailleGouden medailleGouden medailleGouden medaille

-1
Geen idee of iemand de film "The Thirteenth Floor" ooit gezien heeft. Het gaat over een digitale wereld binnen een fysieke wereld. Een serverpark dat de mens gemaakt heeft waar er entiteiten in bestaan. Digitale simulaties die met elkaar kunnen communiceren en leven alsof het een echte wereld is. Allemaal kleine entiteiten met hun eigen artificiele inteligentie.

Ik was mij wat aan het vervelen en heb een .NET applicatie geschreven waarin een aantal entiteit gegenereerd worden die met elkaar kunnen communiceren.

Een flowchart van wat de applicatie op dit moment al doet: http://dl.dropbox.com/u/79192/AIFlowChart.pdf

Wat zouden jullie die entiteiten nog laten doen?

Alles probeer ik zo random mogelijk te maken zodat er op voorhand niets gedefinieerd is en er misschien wat onverwachte dingen uit de hoek komen.

33 antwoorden

Gesponsorde links
Offline Filip - 17/11/2011 16:11
Avatar van Filip IRC guru Je kan ze effectief iets laten maken om te kopen, bv drank of dergelijke en dat dan verkopen aan andere entiteiten, dus een poll maken of die bepaalde entiteit iets te koop heeft en zo verder 
Bedankt door: Ontani
Offline Ontani - 17/11/2011 16:12
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Hmmm, diensten en goederen laten verkopen geen slecht idee.
Offline Abbas - 17/11/2011 16:15 (laatste wijziging 17/11/2011 16:16)
Avatar van Abbas Gouden medaille

Crew .NET
Ziet er vet uit, heb je al een soort van demo? 

Je kan je entiteiten 'ziek' laten worden, dit kan bijvoorbeeld het verouderingsproces versnellen indien ze niet genezen.. 
Offline Ontani - 17/11/2011 16:17 (laatste wijziging 17/11/2011 16:37)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Het is gewoon een console applicatie, niks magisch nog niet.

Ziekte was inderdaad ook de bedoeling, ook levensverwachting van vrouwen hoger als die van mannen. Die van rokers lager als die van niet-rokers. En gewoon random badluck. *poef* dood.
Offline Koen - 17/11/2011 17:43
Avatar van Koen PHP expert
Citaat:
You were crushed by a piano. Too bad.


 
Offline Pieter - 17/11/2011 18:35
Avatar van Pieter Gouden medaille

SEO guru
Vanavond de film eens zien, zodat ik je ook een leuke kan verzinnen 
Offline Abbas - 17/11/2011 18:42
Avatar van Abbas Gouden medaille

Crew .NET
@Pieter: ik was hetzelfde van plan! 
Offline Ontani - 17/11/2011 18:46
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
je kan het vergelijken met "The Sims" maar dan volledig automated.
Offline Pieter - 18/11/2011 07:28
Avatar van Pieter Gouden medaille

SEO guru
Bij deze. Coole film.

Ik denk dat je het begin van een beschaving moet opbouwen door historisch te kijken en niet at random wat hedendaagse elementen erin te duwen.

Geloof, geld, politiek, macht, economie, gezondheid, sport... Je kan op vele vlakken starten, maar zorg dat de volgorde logisch is. 
Offline Ontani - 18/11/2011 08:42
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Inderdaad Pieter, het is wel de bedoeling dat alles autonoom draait zonder input van mij.

Keuze tussen school (uiteindelijk meer verdienen) of direct werken bijvoorbeeld was ik ook vanplan te implementeren.

Ik zal eerst eens zorgen dat de interactie tussen entiteiten op punt staat.

Misschien dat ik daarna de broncode wel online zet.
Offline Maarten - 18/11/2011 08:57
Avatar van Maarten Erelid Tof, ik heb onlangs ook op zoiets zitten denken, om een soort .NET "ding" te maken die volledig autonoom functioneert maar beïnvloed kan worden door personen a.k.a. een onbeperkt realistisch spel... maar dan heb je inderdaad zoiets nodig, tof dat gij tijd teveel hebt! 
Bedankt door: Abbas
Offline Pieter - 18/11/2011 11:18
Avatar van Pieter Gouden medaille

SEO guru
Nog een bedenking:

Je moet gevoelens (kwaad, blij, verdrietig, angstig,etc) gaan coderen en aan elkaar linken en er een vorm randomness insteken ook. Met heel veel actie/reactie.

Zelfde met de persoon zelf: gewicht, uiterlijk,... etc. er zit een logica in (genetica), maar toch moet er ook terug randomness inzitten. Iemand die vb niet sport en ongezonder eet wordt iets zwaarder, waardoor zijn kansen op een 'partner' (fysiek gezien) ook iets anders liggen.

Laat de verschillende entiteiten andere entiteiten krijgen (cfr geboorte!).

Zoveel psychologie zeg. Hoe krijg je dat ooit allemaal gefixt? 
Vind het wel een boeiend idee.
Offline Maarten - 18/11/2011 11:24
Avatar van Maarten Erelid
Citaat:
Laat de verschillende entiteiten andere entiteiten krijgen (cfr geboorte!).
Dat is pas 'communiceren' 
Offline Ontani - 18/11/2011 11:27
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Zijn inderdaad dingen waar ik ook al aan gedacht heb. Maar inderdaad, begin dat maar eens te programmeren 
Offline Pieter - 18/11/2011 11:35
Avatar van Pieter Gouden medaille

SEO guru
Stap per stap. Je zou kunnen beginnen met een aantal abstracte begrippen. Vb. woede
Iemand die vb. te lang blijft spreken (te lang = random volgens entiteit), zorgt voor irritatie. Laat ze er random mee omgaan. De ene kan er vlot tegen, de andere wordt ook kwaad, nog een andere loopt weg, nog iemand begint te vechten...  

...animo! 
Offline Maarten - 18/11/2011 11:40 (laatste wijziging 18/11/2011 11:42)
Avatar van Maarten Erelid Misschien kan je dit generieker krijgen door eigenschappen (karakter) toe te kennen aan die entiteiten.

Als je analoog gaat denken naar bv. The Sims - vraag me niet waarom ik dat weet, lol - heb je daar ook karaktereigenschappen, deels bepaald door sterrenbeeld.

Anders krijg je inderdaad het probleem van "tijd tot wanneer deze entiteit vindt dat een andere aan het zagen is", terwijl "Geduld" een generieke parameter kan zijn die voor veel zaken kan toegepast worden.

edit: voortgaand op bovenstaande: Weglopen is apatisch, erop kloppen is agressief.. zijn dingen die allemaal logische gevolgen zijn van een karakter. Die woede zou echter pas losbarsten als "de druppel" er is, dus dan zou je ergens moeten bijhouden hoe "pissed" die persoon is,die volgens een bepaald interval laten afbouwen, en naargelang interacties gaat die terug omhoog.. dus als de pissed-heid sneller omhoog gaat dan hij afneemt, en de persoon is nogal agressief, dan wordt erop geklopt. En als die andere entiteit dan een wuss is, zal die beginnen bleiten, als't even erg is klopt hij terug.

Jammer dat ge voor zo'n dingen te bedenken niet betaald wordt 
Offline Pieter - 18/11/2011 11:47
Avatar van Pieter Gouden medaille

SEO guru
En de randomness nog eens crosslinken met elkaar. Iemand die aggressief is en minder communicatief zal sneller beginnen kloppen. Misschien als het een onderdanige vrouwelijke entiteit is zal ze de kwade reactie zelfs leuk vinden (vrouwelijke entiteiten hé,... ah ah). Je kan beginnen met vrouwelijke entiteiten 1 keer per maand minder geduld te geven. 

Maw, heel wat algoritmes per acties..
Offline Maarten - 18/11/2011 12:02 (laatste wijziging 18/11/2011 12:02)
Avatar van Maarten Erelid @Pieter: LOL Niet te vergeten dat die 1x per maand ook random is bij bepaalde vrouwen... zo heeft mijn schoonmoeder er heel de maand lang last van 

Ik ga dat straks thuis als nieuw "naampje" voorstellen.. "mijn onderdanig vrouwelijk entiteitje... KUISEN!" 
Bedankt door: Abbas
Offline Ontani - 18/11/2011 15:27 (laatste wijziging 18/11/2011 16:08)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Ben nog een goeie timemultiplier aan't zoeken.

Bijvoorbeeld elke miliseconde in realtime is 10,5 seconden in The13ThFloor.

Ik wil niet dat het te snel gaat. Dat er elke dag een jaar voorbij gaat maar bijvoorbeeld 1 jaar elke 3 dagen ofzo.

Edit: 0.121666666666667 seconden toevoegen elke miliseconden ben ik dan juist aan het tellen:

0.121666666666667 * 1000 = aantal seconden toegevoegd elke seconde
0.121666666666667 * 1000 * 60 = aantal seconden toegevoegd elke minuut
0.121666666666667 * 1000 * 60 * 60 = aantal seconden toegevoegd elk uur
0.121666666666667 * 1000 * 60 * 60 * 24 = aantal seconden toegevoegd elke dag
0.121666666666667 * 1000 * 60 * 60 * 24 * 3 = aantal seconden toegevoegd elke 3 dagen.

0.121666666666667 * 1000 * 60 * 60 * 24 * 3 = 31,536,000

31,536,000 / 365 / 24 / 60 / 60 = 1
Offline Pieter - 18/11/2011 16:20
Avatar van Pieter Gouden medaille

SEO guru
Waarom wil je het zo snel laten lopen? Je hebt sowieso al veel rekenkracht nodig om alles uit te laten voeren vanaf er veel entiteiten zijn... Waarom dan alles nog versneld afspelen?
Offline Ontani - 18/11/2011 16:25
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Ik wil het allesinds sneller laten lopen. Of ge moet restricties gaan wegnemen. Al gaan werken vanaf 1 jaar. Al opa kunnen zijn na 4 jaar.

Zou jij het gewoon realtime houden?
Offline Abbas - 18/11/2011 16:28
Avatar van Abbas Gouden medaille

Crew .NET
Nee, ik zou het niet realtime doen en inderdaad elke realtime seconde is dan 121 virtuele seconden. Eventueel zou je met de omzetting nog wat kunnen spelen om het niet zooo snel te laten lopen. Bijvoorbeeld 1 seconde is 80 virtuele seconden.
Offline Ontani - 18/11/2011 16:36
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Een kleine aanpassing dat er 80 virtuele seconden lopen per seconden is kan wel. Dan duurd een jaar 4,5 dag.

Maar je moet denken natuurlijk dat je in generaties gaat tellen op den duur. een generatie gaat zo'n 75 jaar mee = bijna 1 jaar per generatie. ik had liever enkele generaties per jaar gezien.

Dus misschien zelfs 1 jaar per dag. Of 1 jaar per 2 dagen.
Offline Abbas - 18/11/2011 16:51
Avatar van Abbas Gouden medaille

Crew .NET
Dan kan je best inderdaad het proces versnellen naar 1jaar / 2 dagen. Dat komt dan neer op zo'n 182 virtuele seconden / seconde. Dit is vrij goed te doen dan denk ik.. 
Offline Ontani - 18/11/2011 16:53 (laatste wijziging 18/11/2011 16:56)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
is idd 0.182 seconde per miliseconde.

  1. While Running
  2. Threading.Thread.Sleep(1)
  3. Today = Today.AddSeconds(0.182)
  4. End While
Offline Abbas - 18/11/2011 17:01
Avatar van Abbas Gouden medaille

Crew .NET
De eerste stap in de automatisatie is gezet! 
Offline cx1213 - 18/11/2011 17:47
Avatar van cx1213 Lid dwarf fortress is al redelijk ver daar in.
Offline Stijn - 18/11/2011 17:54
Avatar van Stijn PHP expert Een leuke actie is voortplanting en we kunnen er rare entiteiten uit laten voort komen zoals homo's .
Offline Filip - 18/11/2011 18:25
Avatar van Filip IRC guru En elke homo krijgt dan de naam stijn<volgnummer>? 
Bedankt door: vinTage
Offline Pieter - 18/11/2011 20:18
Avatar van Pieter Gouden medaille

SEO guru
Is er een reden trouwens waarom je dit als .NET applicatie maakt?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s