GhengopelALPHA version(s)

637 views
Skip to first unread message

GhengopelALPHA

unread,
Nov 17, 2011, 1:16:01 AM11/17/11
to scrip...@googlegroups.com
Hey everyone! So some of you might know that I went off on a tangent with the program, and instead of going to the github versions, I added features and developed the old version found here. I'm pleased to say that I now would like to share my work with you all. Here's a link to a google docs folder with a zip file, which can be DLed and opened and run (executable). For the programers among us, I do have a main.cpp copy in that google docs folder that can also be grabbed. I encourage you each to take a look at it. Hopefully it works for everyone!
https://docs.google.com/open?id=0B0vPzbxDzfO3MGNmMDQ1NGEtMDcwYi00MTY0LTgwYjMtM2ZiNDU5ODg3ODJl

Dave Coleman

unread,
Nov 17, 2011, 1:25:51 AM11/17/11
to scrip...@googlegroups.com
I think a github fork would be more appropriate for sharing code than Google Docs. I generally don't trust .exe's, and I'm on Linux. I'd love to see your improvements though! What have you added?

GhengopelALPHA

unread,
Nov 17, 2011, 1:29:27 AM11/17/11
to scrip...@googlegroups.com
Oh boy, lots...
INTERFACE:
-Added new keyboard functions: "f" fills a random food cell; "e" spawns a new random bot; "r" removes the selected bot
-Added color-coded health bar. Green indicates healthy, yellow indicates inability to reproduce, and red indicates very low health
-Bot stat display rearanged, tries to avoid window edges. On idle, displays repcounter, age, and gencount. On selection, displays also health and stomach type
-Selected bot's stats appear yellow
-Pan ability added. Use the "w","s","a","d" keys to navigate. Alternatively, you can move your cursor to the edge of a scrollable side (one that isn't already up against the world edge)

ENVIRONMENT:
-Food cell size reduced
-Food cells given ability to slowly spread to neighboring cells
-Random food cell filling rate reduced considerably
-World size enlarged four-fold
-New object introduced: entities. They can be seen by bots, and have effects on the simulation
 -Food berries: pop up on randomly generated food cells and on food cells which succesfully spread to a neighboring cell
 -Poison: randomly (for now) produced by bots, decay over time, and injure bots that are in contact with them
 -Future possible entities: rocks - takes on the trajectory of a bot that is nearby; pheromones- left behind by bots and can be smelled and seen by other bots
-Bots that are too close to each other (i.e., overlaping more than a little bit) take damage. Not realistic, but is meant to discourage ignorant behavior

BOTS:
-Variable reproduction introduced. Random bots have a reprate in the range 2-16, and the trait is passed down to offspring with a chance of mutation
-Aging introduced: bots over an age of MAXAGE (see main.cpp) = 300 will lose health quickly
 -New input: age - represents the fraction of MAXAGE that the bot currently is (current_age/300; is capped)
-Crossover reproduction finished and is truely mating between two touching bots, but is disabled until a setting is added to bot definition
-Food sharing changed: range reduced and suicidal bots eliminated. Groups of bots with sharing output resemble cell colonies, and survive or die collectively
-Brain:
 -AND node + bias=0 issue reduced. When total randomness was allowed, nearly 50% of brain boxes were "dead" and would never change value. This has been fixed and the percentage of dead boxes has been reduced to about 2 to 10%
 -Aforementioned "dead" brain boxes are indicated by red dots on the selected bot's brain display
 -New mutation possibility: box copy. Very low chance, and will be the final mutation (all others following being canceled), and makes a perfect copy of another box
 -New brain output: force_mutation - periodically forces a mutation on the bot's brain while the output is active
-Third (back) eye removed
-Three touch sensors added. Have ability to be given an extra range of sense by a future bot attribute, hair
-Mutation recording (text based and bot-specific) disabled

MISC:
-Better balancing of boost and food growth. Includes a few from the Github version on 7/22/2011
-Report.txt refined and clarified. Can be used with Microsoft(R) Excel(R) to graph entire history of simulator
 -Many new details added to report.txt, such as number of cells more than half-filled with food, the number of bots in five age groups (0-10, 11-30, 31-50, 51-100, 101+), and a nearly accurate reporting of the number of distinguishable species present. This last one overestimates when the generations are low numbers, but further work should resolve the issue
 -Exact details of each tenth of an epoch in the report.txt:
  -Epoch number
  -Population (carnivorous, omnivorous, herbivorous, and total)
  -Number of food cells that are more than half filled
  -Top generation number (among carnivores, omnivores, and herbivores)
  -Number of mutations since last line of report
  -Population in five age groups (0-10, 11-30, 31-50, 51-100, 101+)
  -Number of species (overestimates when generation numbers are lower than 50)
-Some changes to background and food colors, and bot stat colors have been adjusted as necissary
-Simplified agent opps code to try and speed up the simulation

GhengopelALPHA

unread,
Nov 17, 2011, 1:31:10 AM11/17/11
to scrip...@googlegroups.com
I made a few videos showing off how it looks, and the basics: http://www.youtube.com/watch?v=bkpwmPWjnDc&feature=g-upl

Dave Coleman

unread,
Nov 17, 2011, 2:20:44 AM11/17/11
to scrip...@googlegroups.com
Ha, I love the sound track! Very mysterious. And the color scheme is cool too.

That's interesting the plant decay idea! I had already modeled plant growth (with uncertainty) and it makes for some interesting boom and bust cycles and the environmental resources are depleted. I hadn't tried decay though. Ultimately I decided the growth patterns were distracting to the overall evolution because entires species often died out when food was depleted. 

I'm disappointed in the lack of interesting behavior at the end of the video. I've watched the simulator enough hours to know what is typical :-)

I want to merge a lot of your features, like the reporting, into my fork. It sure would be easier if you had this on github...

GhengopelALPHA

unread,
Nov 17, 2011, 9:15:27 AM11/17/11
to scrip...@googlegroups.com
I'd have it on github, but my version is a "fork" from the time before the project moved to github, so I don't have modules, and all the complex coding and requirement programs that comes with it. I did include a main.cpp in that google docs folder, and marked all the changes I could remember (might have forgotten the food decay one; all I did for that one was make one of the variables for food negative... FOODGROWTH I think?)

The first video does have a lack of development; the next two are a bit more interesting, and I have lots more video to upload, just haven't found the time to edit them together and add text.

I suppose that now I have the features I want in this version, I could jump over to the github version and implement. The problem is that for me the process to run the program has become long and a bit complex, so I'm wary of testing these features in-program myself. If someone could help me better understand what I'm supposed to do with the files I get from github, I might consider joining and implementing my code.

GhengopelALPHA

unread,
Jan 8, 2012, 5:56:54 PM1/8/12
to scrip...@googlegroups.com
I have finally given in and adopted the use of github for my additions to scriptbots. Check it out here: GhengopelALPHA/scriptsbots

Changes/additions include:
- changed process keys into menu to allow right-click context menu. Added scroll for mouse movement near window edge. Removed right-click-move scroll ability (interference with context menu). To scroll, move the mouse near a window edge or use the 'w,a,s,d' keys.
+ Added "delete" function: press the delete key when a bot is selected and it will be removed.
- Changed color scheme (don't like the white and gray background) to dark background and green food.
- Fixed agent selection to get correct world x&y when following (still working on)
+ Added new reprate variable for bots, and is the number repcounter is reset to, with the fastest possible reprate defined by MINREPRATE. Is inherited.

Enjoy! Many additions remain, and I look forward to more experimentation!

GhengopelALPHA

unread,
Jan 8, 2012, 6:39:56 PM1/8/12
to scrip...@googlegroups.com
BTW, how do I go about merging other's forks with my own?

GhengopelALPHA

unread,
Jan 13, 2012, 1:29:04 AM1/13/12
to scrip...@googlegroups.com
Just pushed another version to github: this one with fixes for panning and selection, integrating other's ideas and code, and adding more of my own. See the changes.txt for the full details. GhengopelALPHA/scriptsbots

GhengopelALPHA

unread,
Feb 15, 2012, 9:06:12 PM2/15/12
to scrip...@googlegroups.com
New version soon to be put up on github, if anyone's interested. Features in bold are those I've found most interesting, and/or suggest to be added. Changes will include:
+ added spacebar input to bots, makes interesting, yet unlikely useful behaviour changes
+ New brain output, I call it Choice. Replaces the weight of the last connection of each box with a value in the range 0-2 based on this output. It is hoped that this will lead to more complex behaviours than ever before. Some runs thus far have developed bots which can radically change their outputs if just this one changes, as expected. Not many useful results, but study will continue.
+ added "follow highest generation" function: sim follows bot with highest gen count.
+ food spread introduced
+ food sharing indicator changed to temperature discomfort indicator: more orange means more health being lost
= Temperature preference now calculated with the square root of the distance from equator, rather than the square. Results are much better species zones, and bands of a single type of agents are frequent and can survive for longer periods.
= Temperature preference now more likely to match the location where a random agent is placed, to help start populations
= experimentation with a recursive weight system, where when a conn's val is above 0.6, its weight is increased. Conversely, when it's below 0.3, its weight is decreased, by about 0.000001 both ways. Strong random element to this process.
= balancing adjustments to plant food, namely growth and spread.
= optimizing of code and agent loops; mostly just experimentation.

GhengopelALPHA

unread,
Feb 15, 2012, 9:39:34 PM2/15/12
to scrip...@googlegroups.com
Version 2/15/12 of my branch is up; find it here.

GhengopelALPHA

unread,
Mar 8, 2012, 5:43:01 PM3/8/12
to scrip...@googlegroups.com
For those who are curious, I uploaded my (unfinished) save and load functioning main.cpp from the old project to Google Docs. This is from the version mentioned in the beginning this thread. Feel free to check it out and see what a horrible job I did.
Google Docs

GhengopelALPHA

unread,
Apr 15, 2012, 1:10:07 PM4/15/12
to scrip...@googlegroups.com
My new version is up on Github! Changes include collision correction, ranged food spread, brain changes, integration of the eye proximity sensors into the colors, a few fixes, and the much wanted load and save world feature! Now we can share worlds and keep them running for weeks on end! Get the code Here. Executable version may be in the near future, so keep an eye out for updates!

GhengopelALPHA

unread,
Apr 15, 2012, 1:17:14 PM4/15/12
to scrip...@googlegroups.com
I would like to state that in the near future I may bring in boost (to make it look much better), but for now, this should get the job done.

GhengopelALPHA

unread,
May 23, 2012, 1:14:57 PM5/23/12
to scrip...@googlegroups.com
A new version of my branch has been pushed to github! Take a look here.

Changes include (but are not limited to):
+ More graph features: total count (black) and hybrid count (blue) plots, erases on world reset & load.
+ Fixed the crossover function. Re-introduced sexual reproduction; works off same code for asexual reproduction.
+ Camera pan keystrokes now arrow keys, instead of "w,a,s,d" keys, which I plan to change into selected bot control
+ Food spread (seeding) range now settings.h variable
+ Improved and expandable cells array: replaces food layer, boasts a possible 3 additional layers (can be expanded) cells[LAYER][CELL_X][CELL_Y]; for [LAYER]: 0= plant food (meat, poison, water/land, light, temperature layers also possible with very little coding)
- Removed reprate agent variable. All agents must eat REPRATE amount of food in order to reproduce.
= Brain adjustments. Reactivated box gb - global weights (were disabled in some previous version)
= Metabolism now has primary control over agent's reproduction rate. Also, now effects rate of health loss (higher metabolism -> faster health loss)
= Changes to save-load function: remove reprate val, improved version checking (old versions may not behave as expected)
= Relocation of menu creating; look for glCreateMenu() function in GLView.cpp
= "Toggle closed world" menu option now represents correct open or closed state in-menu
= Rewrote player input code to something much more professional...
= Even more food balancing changes (including allowing any non-zero food cell to seed)

Julian Hershey

unread,
Nov 7, 2012, 8:06:23 PM11/7/12
to scrip...@googlegroups.com
Another new version has been pushed to my fork. Here's the run down of what's changed:
+ New hazard layer, harms bots, which deposit it as waste, and random events of max harming.
+ New bot ability: Jump. Makes bots move straight, and locks the state of boost, but it disconnects the bot from the world temporarily; no food is ingested, no waste deposited, no physics, and can't be attacked.
+ Debug mode: draws helpful stuff on screen and reports mouse movements to the command window.
+Major fixes to several bugs in the last version.
And more! Check it out here!


Julian Hershey

unread,
Dec 19, 2012, 1:59:39 PM12/19/12
to scrip...@googlegroups.com
Hey all, don't know if anyone still reads this thread, but I have a new concept I'm testing out. I've made a third type of synapse (on the MLP brain): memory freeze. When the connected output box is greater than 0.5, a memory freeze synapse will force its box to skip all processes concerning changing its value, effectively preserving its state. Running some experimental trials now with ~5% of all connections being memory freezing. Will upload to git (and perhaps compile) if it looks promising.

Max Viking Hansson

unread,
Jan 3, 2013, 1:29:03 PM1/3/13
to scrip...@googlegroups.com
i still check this occasionally, keep it up! been wanting to try your version but the compiling tutorial is too vague..

Ed

unread,
Apr 28, 2013, 12:41:10 PM4/28/13
to scrip...@googlegroups.com
You don't have an issue tracker on github, so I guess I should post this here? Your CMakeLists.txt is missing ReadWrite.cpp, so I get an undefined reference error when trying to compile.

Anyways, this is an interesting project. If I understand correctly, an agent's "brain" is just static, and the weights are chosen at reproduction? I.e. there is no learning going on within an agent, and something like genetic programming is used to search the space of all possible agents, where the fitness function is the amount of food gathered?

Andrej Karpathy

unread,
Apr 28, 2013, 2:05:39 PM4/28/13
to scrip...@googlegroups.com
Hey Ed, thanks for the heads up about cmakelists. Youre right about the brain except There is no fitness function. Usually fitness function is an abstraction that relates to some probability of survival, but here the entire lives of agents are simulated, and they simply die sooner or later (but yes, that's based on how much food they can collect). If later, they will get more chance to reproduce.
--
You received this message because you are subscribed to the Google Groups "Scriptbots" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scriptbots+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Julian Hershey

unread,
May 29, 2013, 12:06:04 AM5/29/13
to scrip...@googlegroups.com
Thanks for the alert about the RW module missing from CMakeLists. I'll fix it in the next version update.

I believe Andrej answered your question on the brain workings and selection process. I however am planning to introduce in the next version a method for altering brain weights after an agent's conception. Nothing major, but it has the potential to possibly offer them a way to learn by connecting similarly firing boxes. Still in the testing and tweaking phase of this tho.

-Julian

Max Viking Hansson

unread,
Jul 16, 2013, 5:15:57 AM7/16/13
to scrip...@googlegroups.com
is there a working executable for this? i lack the knowledge to compile it and the one julian provided gives me a side-by-side error. im using win7 x64

Julian Hershey

unread,
Oct 21, 2013, 6:28:47 PM10/21/13
to scrip...@googlegroups.com
Hi MAKC,

I'm back into development, and the long-overdue update in .exe form will be released as soon as I confirm it's stability, implement a settings.txt, and add an early attempt at movable sticks and walls. I haven't done any of this so far, so bare with me.

Julian H.

Julian Hershey

unread,
Dec 22, 2013, 3:26:07 PM12/22/13
to scrip...@googlegroups.com
Hello all,

Did you remember that next Wednesday will be Christmas? Did my bringing it up on this forum pique your interest? Did you think that I had forgotten about Scriptbots and its (little) community?

...
Message has been deleted

Julian Hershey

unread,
Dec 25, 2013, 3:19:06 AM12/25/13
to scrip...@googlegroups.com

Merry Christmas all! To celebrate, I'm here to release some updates! The list is long, and I checked it twice, and I think you will all be interested in what I've developed. First, let me start off by telling you what I was NOT able to include. The custom settings.txt feature that .exe users have long wanted was not finished, and I am sorry, because I am releasing an updated executable with this release. Sticks and walls are not included, but they are high on my list of things to try. These are two of the three big things I said I was going to do and I have not done them. I apologize. But, here to make up for it, is the feature list for this update. Enjoy!
Browse and fork the code at Github: https://github.com/GhengopelALPHA/scriptsbots
DL the .exe from this dropbox: https://www.dropbox.com/s/q1pfhvv34vuoe9h/Scriptbots_v14G.zip


The Big Features:

+ GLUI integration. Now, many functions of the program have been migrated to a gui, including world saving, loading, and resetting, simulation states (closed, paused, draw speed), visualization schemes (chose what layer is displayed, and now also what color agents display), and follow commands. There are some other features, and there is room for so much more.

+ Added land/water (environment of some kind). At world init, cells are determined to be 0 or 1 on a map layer, and agents now have an attribute, lungs, which must correspond to the environment type, otherwise health will be lost. Combined with temp differences, this should take speciation to a higher level. It is currently tuned that going from one environment to another is hard, but not impossible.

+ Added variable agent radius. Now agents can be big or small! The only effect now is in collisions; bigger radii will collide more often (probably) and will not bounce as much as smaller agents.
 
+ Changed hearing and sound sensors into "ears." Two dots represent where they are on an agent, and there are two by default. They have random, inherited positions on the agent's skin.

+ Brain changes:
   LiveMutate function: capable of mutating brain slightly while agents are alive.
   New mutations: Swap Inputs (Birth only), Hebb connecting (Live only), & Weight stimulating (Live only)
   New Connection Type: Memory. Freezes box if incoming value is > 0.5
   More boxes will connect directly to inputs (40%)
   Dampening made more likely and prominent.
   Health is now lost for rapidly changing synapses. It is very, very minor.

+ Added fruit. Agents can now eat from three possible sources, any two which cannot be used together too well (reduces efficiency of intake), giving Herbivores, Carnivores, and hopefully soon Frugivores. Fruit randomly populates like food used to, but only on cells with plants present. Replaces Temperature layer.

+ Metabolism now only effects the rate of reproduction and health loss, not food intake, as it was overwhelmingly choosing the faster rates. Now more variation in the rate and strength of agent blooms is observed.


Minor Changes:

Agent-Agent Interactions
Collisions damage agents if too violent.
Collisions do not count as a “spiked” event, thus reducing accidental standing colonies.
Collisions are also now softer and take the relative bot's radii into account (smaller bots get pushed more)
Give function of bots now activates only if target bot has less health than self.

Agent-Cell Interactions:
Agents now have two eye sense modifiers, one for seeing other agents, the other for seeing cells. Should help with the flooded green eye problem.
Carnivores now get same bonus as herbivores for moving slowly over their food.
Agent speed factor for food consumption switched from average to max of the speeds of the two wheels. (Agents which run at full speed will not get any food from any source now.)
Plant spread now directly related to fruit presence, which now requires 1/4 plant instead of 1/10
Poison/hazard hurts bots more (several runs were observed with localized speciation after this change)
Food balancing, as usual.

Reproduction of Agents:
Agents can no longer count down their reproduction counter if health below mothering health threshold (0.65 default, configurable).
Agents at max health will double the rate at which their reproduction counter decreases, speeding up reproduction and rewarding keeping full health.
Daughter bots should now spawn behind their mothers more.
Giving birth no longer takes health for sexual reproduction, and 0.4 for assexual

Agent Functions:
Jumping bugs fixed, and now a grace period is required before another jump can be initiated.

Aesthetics and Simulator Features:
(Mentioned above) Can now change how agents are visualized: have the program display their stomach type, temp discomfort, or sound volume by changing their appearance. Visual effect only. Can also disable bot drawing to speed up program.
Several minor color scheme changes, and changes to spike, eyes, and ears rendering to compensate for variable radii.
New follow type: Most Productive: the bot which has had the most number of children over its lifetime will be followed. (NOTE: this is not working fully yet and only follows oldest agents. Will fix in next update)
Max generation following will no longer select zero generation agents, meaning if there are only zero generation agents, the focus will not constantly change.

Recordkeeping:
Graph moved to left side of world area, to better fit wide-resolution screens.
Frugivore count tracked and reported on the graph and report files (instead of omnivores now).
Species count no longer reported.
Load/Save functionality for all added features. Can still load old saves, but I don’t recommend doing that because world constants may have changed and settings definitely have been.
Fixes to order of operations in loading world.


And that is about all I've got! The versionhistory.txt of course outlines more, so look there if you're curious what the process has been this last year.


If something does not work, please let me know via this thread, and don't junk up the main forum. Thanks!


Forgot some points on my first post, so I deleted it, in case you were wondering.

Julian Hershey

unread,
Jan 3, 2014, 6:27:42 PM1/3/14
to scrip...@googlegroups.com

Don't all give feedback at once, now...

I'm thinking of experimenting with openGL's blending function, and initial tests are looking very good. It got me thinking about aesthetic changes that would make the whole sim easier on the eyes. If you have any ideas or suggestions on the graphics, I'm listening.

Also, any kind of feedback on the just released version would be appreciated. Let me know if it works, if you like the direction I went in, or if it just plain won't start. As of now I only know it works on my two computers I have access to, and I've installed the randomest API's and programing tools on both that I have no idea if this program is missing anything essential not provided on basic machines.

Andrej

unread,
Jan 3, 2014, 6:40:05 PM1/3/14
to scrip...@googlegroups.com
Hey Julian, that looked like a huge update. I'd encourage you to record some interesting behaviors that you observe and upload them on YouTube for us to see, I think that would be nice!


--

João Roque

unread,
Jan 4, 2014, 12:10:04 PM1/4/14
to scrip...@googlegroups.com
Hi.
I was hoping to try it today, but encountered some problems.
Sciptbots.exe didn't run on wine for me so I tried to compile it.
After installing libxmu-dev, libxi-dev, freeglut3 and freeglut-dev I tried to cmake it and got the following errors:

/usr/bin/ld: CMakeFiles/scriptbots.dir/GLView.cpp.o: undefined reference to symbol 'glOrtho'
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [scriptbots] Error 1
make[1]: *** [CMakeFiles/scriptbots.dir/all] Error 2
make: *** [all] Error 2

I didn't install any opengl library because I think it is already installed and I also don't know which one is needed.

Can you help me on this?

Thanks!

Nicholas Peterson

unread,
Jan 4, 2014, 6:32:10 PM1/4/14
to scrip...@googlegroups.com
Hello Julian, thanks for the update and sorry I did not respond sooner, I have run into some problems. I am running Ubuntu 64bit. I am pretty sure I have openGL set up properly because my own programs that use it compile fine. 
$ make
Linking CXX executable scriptbots
/usr/bin/ld: CMakeFiles/scriptbots.dir/GLView.cpp.o: undefined reference to symbol 'glOrtho'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libGL.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [scriptbots] Error 1
make[1]: *** [CMakeFiles/scriptbots.dir/all] Error 2
make: *** [all] Error 2

When that didn't work I manually created a simple makefile and got a whole bunch of errors having to do with glui stuff not being declared. 
What are you using for development, OS, etc? 

Thank you.


--

Julian Hershey

unread,
Jan 6, 2014, 6:29:24 PM1/6/14
to scrip...@googlegroups.com
Hello immerfalsch & João Roque,

It seems to be a problem regarding my inclusion of GLUI, OpenGL's user interface library, but CMakeLists.txt has not been configured to build with that library. This is an error one of you guys could probably fix better than I can, because I have no clue how to use CMake as I use VC++ on Windows. If you know how to get CMake to add glui32.lib to the linker (as I did in VC++) or whatever relevant system CMake uses, that'd be what you need to do.

Let me know if that helps.

MAKC

unread,
Jan 11, 2014, 2:09:30 AM1/11/14
to scrip...@googlegroups.com
good to see you're back. it's still not working tho. after trying your latest version, it gave me a side-by-side error (win7 x64) so i got annoyed and checked event viewer and it says it's missing a VC90.DebugCRT which, according to my research, is a debug version of VC++ that isn't meant to be used for the end-user distributable. i don't have it and i haven't found a way to obtain it yet. can you help me?

Dave Clark

unread,
Jun 14, 2014, 7:18:12 PM6/14/14
to scrip...@googlegroups.com
I love this simulation and want to experiment with it. 

I am a beginning coder and am not very experienced. I would like to play around with your latest version but can not get it to run. If someone has found a way to make the exe run, that would be best. its will take me some time to figure out how to build it myself as I don't know about cmake, Git, open source anything or any of the other stuff to build it myself. 

Maybe Jilian Hershey can get an exe up and running. An exe would really make this thing accessible to more people. I am running windows 7 and windows xp.

ant help would be appreciated

Julian Hershey

unread,
Jun 27, 2014, 1:07:01 AM6/27/14
to scrip...@googlegroups.com
Dear MAKC and others:

I couldn't ever find a solution to the problems with my build. I switched my Visual C++ off debug mode and I got exactly what you got, and I have no idea how to build a complete release, as I'm only a hobbyist coder. Someone on GitHub did fork a copy off mine and made changes to cmake, so maybe that might fix some issues we're having? I have contacted this person and I'm working with him to hopefully fix the bugs in mine.

In other news, I've (finally) put together a video of a few neat things about that latest version. I will do my best to get this working so that you too can enjoy this on your own machines:
https://www.youtube.com/watch?v=Srt1Yw1QjCU&index=8&list=PLA128B2D43B94214D

Julian Hershey

unread,
Jun 29, 2014, 11:55:59 AM6/29/14
to scrip...@googlegroups.com
Hello Dave Clark,

I just noticed that you were asking for a exe in your last message. I have one built and available for download in the download section of my GitHub repository Wiki. Here's a link: https://github.com/GhengopelALPHA/scriptbots/wiki/Downloads

Please let me know if that produces any errors for you, and any details you might be able to find on such errors. I will be working on finding a way to fix a lot of the issues with the build instead of the exe if I don't know of any issues it produces.

Dave Clark

unread,
Jun 29, 2014, 2:12:24 PM6/29/14
to scrip...@googlegroups.com
Hello Julian

I have tried to run the exe, but i get a error about the side by side configuration. 

imconfusednow

unread,
Aug 28, 2014, 12:31:36 PM8/28/14
to scrip...@googlegroups.com
I had the same "side by side configuration" error dave got, when i tried to run the 25th dec version. Be great if you could fix this.

Julian Hershey

unread,
Mar 30, 2016, 4:06:41 PM3/30/16
to Scriptbots
Hello all,

I have recently pushed a major update to Github. There are new features, new graphics, and new fixes, so if you can, try and build it and report back with any errors. I can't promise I can fix them all, but with an updated version I should be better able to see if I've helped any.

PLEASE NOTE: there is Windows-specific code in "main.cpp" that must be changed based on the system you use. It creates directories for saves used by the program. If you know of a platform-neutral way to do this, I am interested.

GLUI may still not work for some, most, or all of you, so please let me know. My next goal with the GUI is to attempt building my own out of OpenGL only, and return to the old dependencies. But redesigning an interface is no small task, and I'm only a hobbyist.

Quick rundown of the major changes:

AGENTS:
  • Grabbing: agents can target and pull in other agents. Could take altruism to a new level.
  • Bitting: jaws on every agent can be used to cause instant localized harm, no need for fast speed. However, the jaws are only activated by rapid changes to the output, so it does have a limitation!
  • New Inputs: Cell smell, tells bots when they're surrounded by lots of food, hazard, or water. Random input: value that is changed over time by a random amount.
  • Two-way wheels have been re-enabled, doubling the number of outputs for the wheels to give agents much finer control of their movement. FIXED major bug where agents wouldn't drive straight at max wheel speeds.
  • Reproduction has been changed greatly. Crossover (sexual) reproduction requires a new output, Sexual Projection. Health reduction for asexual rep is now related to parent radius: too big and the parent may die from the event. Crossover now has a new feature: Brain Box Success Counting, labeled "seed", allows successful boxes to be preferentially selected over new boxes.
  • Num babies is now a bot variable, inheritable and mutable with only a lower bound of 1.
  • Newborn agents are grey

WORLD:

  • Introduced Oxygen: inspired from another Github user who's name I cannot find, automatically culls the population when high. Very adjustable, useful for low-end machines.
  • Hazard acts as fertilizer and will slow the decay of plant life.
  • Stats! Agents track how many babies they've had, how many deaths they've caused, and the cause of their death!
  • World food, hazard, mutation, collision, and other rates and constants changed. Hazard is a SIGNIFICANT danger to bots now.

SIM:

  • Graphics have been greatly improved: boost has new indicator (blur effect), volume has new sound wave "particle" effect (on proper viewing mode), a static display shows selected agent and its stats and details, blur effects have been put to great use with zoom, camera follows agents more closely with tighter zooms, FIXED major window resizing bugs. New features like grabbing and jaws have their own visualizations (grab is blue "spike" pairs, and bite is yellow)
  • Report.txt is way more informative: Now contains: Random Gen, Random Seed, Deaths, Death-cause list, terrestrial and aquatic agent counts and best generation, fruit count. Cleaned up writing code to be more readable.
  • Pressing "/" will heal selected agent
  • Following and selection code and structure completely overhauled. Now, you select a mode for selection, and you can toggle follow selected. Way more intuitive.
  • Code and settings.h changes to make easier understanding and implementing of new layers, agent inputs, outputs, food types, and selection (formerly follow) modes.

And many, many other changes. See Versionhistory.txt for full change log.


Again, I can give no guarantees that this will work on your machine. The code was built specifically on a Windows machine under debug, and I am only a hobbyist. However, if you can help me make a better program that runs on more platforms, I will gladly work with you!


Enjoy!

Julian Hershey

unread,
May 25, 2016, 2:31:55 PM5/25/16
to Scriptbots
Hello everyone!

Wow, it's so soon after the last update! I can come back later?...

Well later is now because still have a new update to share! Versionhistory.txt contains all you need to know, but here's a quick rundown expanded from the GitHub commit:

+ Eyes, 6 of them, now have to deal with night, where they are blind, and day, where there is a 0.5 light input min

+ Ears have tone sensitivity range (mutable), and vocalization has specific tone output. Only if your agent has an ear that includes the other agent's tone within its range will it hear the other agent's volume.

+ Clock 3, an output-defined frequency clock.

+ AUTOSAVING! Is an option with GUI attachment. Saves entire world like normal every epoch. Uses an AUTOSAVE.SCB file, which it overwrites. Best used to recover a long run simulation from unexpected crashes.

+ New visuals and debug info. Added a health visualization mode, debug DIST circles and cell smell range indicators, and labeled brain outputs and inputs.

+ Mutation rate changes to produce more of them. From studies on the origins of our own life, if an RNA world was the start, mutations were rampant, allowing a huge variety of attempts at survival.

+ Removed choice as a forced effect. Before, the last CONN of every box would be forced to incorporate this output into its value. This made it too easy for one output to effect every other output, and would more often than not result in detrimental "seizuring" bots evolving out of perfectly fine bots.

+ FIXED some agent lag and crash issues. Agent births still freeze the sim, just not as badly.

+ OLD SAVES ARE NOT SUPPORTED. On account of senses changes, loss of sound as an input and bot feature (hearing survives, as proper), and loss of choice, makes any old system that relied on them break. Old saves should technically still load, but your bot species will be more random than similar.

+ Optimizations. Nothing major. 300fps @ fast mode on i3 Win7.

It should once again be mentioned this version still only works on a Windows platform. Haven't tried under Wine, but the only reason is a little bit of code in main.cpp that makes sure some folder directories exist for saves. Changing this to whatever linux systems need should fix any potential issues. If anyone knows of a simple cross-platform way to do this, you can let me know and I'll use that instead.

Link just in case: https://github.com/GhengopelALPHA/scriptbots

Julian Hershey

unread,
Jul 15, 2016, 1:42:00 PM7/15/16
to Scriptbots
Update time! And I think a good number of Scriptbots enthusiasts will enjoy this one...

Config files! I have managed to write the code needed to allow .exe users to modify core settings, constants that before now were stored in settings.h, locked in the code. But now, I have managed to change that for many world constants.
Physical constants, like GRAVITYACCEL, REACTPOWER, BOTSPEED, INITFOODDENSITY, etc.
Healthlosses, like AGING, BUMP, BRAINUSE, etc.
DIST and other sense ranges.
REPORTS_PER_EPOCH and FRAMES_PER_EPOCH.
Cell constants like FOODINTAKE, FRUITREQUIRE, MEATDECAY, etc.

The file these are stored in is called "settings.cfg". It is regenerated if missing, with default values, and at every reset or world loading it is scanned and its values used.

But that's not all. A revision of the right-click context menu has been made, and saving and loading has returned, this time with better UI (actual GUI used with our tool window). Loading and creating worlds is more verbose, indicating how long the different processes are taking. The selected agent is visible at most zoom levels. The agent HUD displays wheel speeds, and a bug was fixed with its stim reporting.

Speaking of stimulant, it no longer is active below an output value of 0.5, hopefully reducing havoc while still letting bots chose to use it. In case you've forgotten, Stimulant pushes the weights of brain connections up if the outputs match. Since I haven't seen much activity utilizing this ability, I may however soon change this feature completely. I'm looking into "seed" counters as a better way to naturally select proper brain connections, and currently there is no feature to reward a parent who has reproduced but maintained consistent high health. Anyway, enough ramblings, you're here to read change notes!

Cell smell ranges were cut in half, concentrating the senses and making them more efficient at telling agents how many food or hazardous cells are nearby. Several default values for cell constants were changed based on feedback from long-period simulations.

Finally, a few issues were fixed, such as "q" not disabling the follow function, and "tab" being an easily tapped reset button.

To the fellow programmers who will likely look at my code for settings.cfg utilization, I'm sorry. I have built code that is probably so horrendous and inefficient that you'll be embarrassed to be in collaboration with me. I understand if you feel that way. The code is far from pretty, and I wish it didn't have to be stored in World.cpp, (since I have a module specifically written for Reading and Writing...) but it is all that I can figure out, and it works. Please do try and see if it can be improved. I really do dislike it. =/

Anyways, that sums up this notification of changes to this version. Enjoy!
Link to executable version: https://github.com/GhengopelALPHA/scriptbots/tree/release
Link to source code: https://github.com/GhengopelALPHA/scriptbots

Julian Hershey

unread,
Nov 22, 2016, 7:04:15 PM11/22/16
to Scriptbots
Hi all,

I'm getting ready to release a new version in the not-so-distant future. I've been hard at work (in my free time, mind you) on a bunch of features. I'm not going to go over them all right now, but here are some teasers for a few of them:

http://imgur.com/a/6tdem

The update is going to be a big one. Details will be revealed when I push to GitHub and make a release. I must stress that this latest version still requires GLUI and Windows, and I am very sorry about that, but it is a lot easier at this point for me to focus on what works for me (and very likely every other Windows user). If anyone wants to take a crack at building Linux support I welcome them to contribute to or fork the code.
Reply all
Reply to author
Forward
0 new messages