Gwyneth Llewelyn
|
9dbc01dcbb
Changed to get the engine NOT to start by default. This allows some testing to be done in-world without getting the engine running. This will very likely change soon.
|
7 years ago |
Gwyneth Llewelyn
|
0acbb0287c
Added information regarding placing Sensorama.lsl in the cubes; explained that the config file is automatically re-read if it’s saved.
|
7 years ago |
Gwyneth Llewelyn
|
1fdcf11191
Added detection for NPC sitting on cube and informing engine it’s time for recharging this agent!
|
7 years ago |
Gwyneth Llewelyn
|
0eec09c4b9
Found out that the garbage collector is too aggressive: if something does not reply to the ping command, it immediately excludes the item from the database (including agents). I included a timer which ought at least to contact the server every hour with a new PermURL.
|
7 years ago |
Gwyneth Llewelyn
|
9a1b4b7c34
Start preparing stuff for dealing with cubes changing money/energy/happiness
|
7 years ago |
Gwyneth Llewelyn
|
1c8fea6a38
Attempted to make web sockets a bit more persistent, but this eventually crashes the system; ideally, either they work, or it’s worthless waiting for them to work again, it’s better just to exit the loop and wait until the client calls our functions again…
|
7 years ago |
Gwyneth Llewelyn
|
85feb19961
Fixed some bugs, now the same bot should not be run
|
7 years ago |
Gwyneth Llewelyn
|
2f6391252a
Implementing the engine’s main loop as an endless loop, where each time a new agent is selected for running. This will allow agents come in and go away (as well as master controllers!). I’m also trying to implement a method for avoiding that the same avatar gets picked over and over again.
|
7 years ago |
Gwyneth Llewelyn
|
4eb1c759de
The HTML2TEXT pretty-printifier breaks on the tables, so the tables are sent as simple lines of text - not so nice, but at least it doesn’t break down!
|
7 years ago |
Gwyneth Llewelyn
|
449949c3b6
Added a pretty-printifier for the log output when it includes HTML…
|
7 years ago |
Gwyneth Llewelyn
|
4269c79f2a
Added support for colourful output in the logs. It’s silly but looks great! :)
|
7 years ago |
Gwyneth Llewelyn
|
42938b3b86
Trying to fix angles, and calculating smoothness, even though we aren’t using it, since somewhere we have a few math errors…
|
7 years ago |
Gwyneth Llewelyn
|
14a49b0c22
When calculating angles, why was I using ABS()? This will almost always return zero, since angles are in radians…
|
7 years ago |
Gwyneth Llewelyn
|
7228956748
Corrected a tiny bug when a message to change an htmlControl had the wrong subtype ‘false’ instead of ‘disable’.
|
7 years ago |
Gwyneth Llewelyn
|
8912ea025c
Fixed a terrible bug when converting the bot’s current position, it came out as 0,0,0, thus the move to origin. Right now, with several bots, they seem to walk each one step at the time. This should be more in parallel, and that might come from the blocking messaging queue.
|
7 years ago |
Gwyneth Llewelyn
|
b03326b810
There is some faulty logic here, as the ‘bot needs to go to the FIRST point in the path (it was being sent to ALL the points) since the path will be recalculated anyway at each point. Currently, there is a huge problem in the scattering of the population, it’s always close to the origin (0,0,Z) instead of being around the current position (?). Needs further checking!
|
7 years ago |
Gwyneth Llewelyn
|
db24abf2dd
When checking if the command has a valid NPC key, exclude special commands osNpcCreate (which will *generate* that key) and ping (which does not require a NPC key)
|
7 years ago |
Gwyneth Llewelyn
|
1c70cb5137
Seems that we get some errors with the defer rs.Body.Close() … added some error checking before that.
|
7 years ago |
Gwyneth Llewelyn
|
b934acdfd6
The current solution does not deal gracefully with agents that die or newly appear; added some comments for implementing a new solution which looks up the Agents table every cycle and picks one Agent randomly for running. This is not perfect since some Agents might never get a chance to run again, so it needs careful thinking.
|
7 years ago |
Gwyneth Llewelyn
|
da5fef96d9
Fixed some bugs with the garbage collector; also, if the main engine cannot find any master controller, instead of panicking, it gives 10 seconds for the user to fix that (usually resetting the master controller in-world is enough)
|
7 years ago |
Gwyneth Llewelyn
|
4ce8e00122
Fixed minor bug on the SQL query dealing with checking for phantom objects.
|
7 years ago |
Gwyneth Llewelyn
|
0c77d78be8
To draw the map better, exclude from Obstacles any phantom objects (usually cubes) which will not be seen by the GA anyway, and avatars/NPCs, since we have other colours for avatars and cubes.
|
7 years ago |
Gwyneth Llewelyn
|
50e6d61805
First try for a complete Garbage Collector which runs every 4 hours, deletes all active objects which do not reply to the “ping” command, and deletes all passive objects which are older than 4 hours.
|
7 years ago |
Gwyneth Llewelyn
|
6e28923ba9
Added missing code for remotely calling the gobot app to delete the agent from the database if it is removed.
|
7 years ago |
Gwyneth Llewelyn
|
6f1678fdb4
Cleaned up some duplicated messages, making sendMessageToBrowser also log messages if they are of a subtype that matters (info, success, warning, error)
|
7 years ago |
Gwyneth Llewelyn
|
3109218af5
Cleaned up GA feedback by adding Agent’s Name everywhere; this is necessary because we are possibly running many Agents in parallel (or almost).
|
7 years ago |
Gwyneth Llewelyn
|
c8efc9fe0d
Adding initial code skeleton to call the Garbage Collector as a goroutine.
|
7 years ago |
Gwyneth Llewelyn
|
afa8b8151a
Skeleton for Garbage Collector.
|
7 years ago |
Gwyneth Llewelyn
|
ee35407460
Deal with the issue of sending an invalid NPC key for an Agent that does not exist any more (because the database still does not reflect reality). Right now, I just skip dealing with that invalid Agent, but the whole engine infinite loop has to be rewritten to deal with Agents popping in and out.
|
7 years ago |
Gwyneth Llewelyn
|
48190dfc96
Minor changes in error messages when saving best path etc. to the database (they were copy & paste from elsewhere and not really obvious).
|
7 years ago |