Downloads
Here you can get some versions of the "Kart simulator" as a windows installer (a pure windows Win32 executable, you can run it from windows 95 up to windows 10 from a USB memory) as well as the source code of some of the versions.
Source code is released under LGPL, meaning that you can get the exe and the source code for free, modify it, compile and use even on commercial software without making available your own source code, as long as you cite me somewhere in the documentation, site and source code.
Sorce code compiles originally on Delphi 7, but should do in any other Delphi versions and also in FreePascal using Lazarus (a free version of delphi for windows or linux, in short).
It is plain object pascal (except for the front end form that uses pure delphi visual components) easy to follow and to convert to any other object oriented languaje of your choice.
I made every effort to write legible code and added lots of comments.
Slides and documentation:
-Slides (spanish) from the talk "Emotional Entroipic Intelligence for Video Games", Murcia University: Inteligencia Emocional para Video juegos 19-11-2014.pdf. The PDF has embeded the original LibreOffice document, so if you download it and open on LibreOffice, you will be able to edit and save the slides on any format. If you just open it on a PDF reader, it will show as a standar PDF. Feel free to use.
-Slides (English) from the talk "Emotional Entroipic Intelligence for Video Games", Murcia University: Emotional Intelligence for video games 19-11-2014.pdf. The PDF has embeded the original LibreOffice document, so if you download it and open on LibreOffice, you will be able to edit and save the slides on any format. If you just open it on a PDF reader, it will show as a standar PDF. Feel free to use.
Excel version:
Raúl Perez contacted me via twitter (@raulperezrpm) to send me a "pixelized" version of the kart simulation in excel VBA, it uses the entropic version (without fractal paths) using the speed to score the futures (like in this post):
Excel Entropic AI test
Windows versions:
Karts V2.0 : http://www.hcsoft.net/sergio/karts/Karts_V2.0.zip (01/12/2014).
-Many changes, a lot of old code deelted, internal refactoring so variable and procedure names match the new "emotional" naming. Basically, emotional intelligence is now properly implemented, but it is still not 100% complete as it still lack: New cooperation code using a 4th feeling, and the multi-layer version. It also would need a change to use all cores in the PC, actually it only use one (but the code is clearer this way).
Karts V1.2 : http://www.hcsoft.net/sergio/karts/Karts_V1.2.zip (19/09/2014).
Karts V1.2 : http://www.hcsoft.net/sergio/karts/Karts_V1.2.zip (19/09/2014).
-Added a checkbox for "Evolution mode". In this mode, full energy charged players divide in two players, with new one have slighty different goal strengths. As players dies and new ones appear, the population tends to the best set of goal strengths possible given the environment. A nice graphic showing all players goal strength as lines is also added.
-Added visual feedback to the new GoalMouse so you know exactrly ehre the player is going and also you can record it on video.
-New "AI level 8" that autoadjust the "sensitivity" of the joystick as the situation needs more smoothness (delicately landing) or being rude (scaping form mouse).
-Reductive goales (energy and health) now are a mix of positive and reductive goals at the same time, giving a more stable behaviour.
-Added some goals as "Keep away from others", "Follow the mouse" and "Avoid the mouse". Competitive and collavorative goals modified, still not really ok, but work somehow.
Karts V1.0 : http://www.hcsoft.net/sergio/karts/Karts_V1.0.zip (14/04/2014).
This is really a great improvement. You can add, take or modify the player and team goals, make a team goal to work in "colavorative" or "competitive" mode (boolean values but can be converted to "65% cooperative" easily), and the "goal mixing" correct method is finally implemented (and work) (correspond to video 26 on the Youtube play list).
I can't remember what was new in V0.9, nothing too important sure, test that lead to dead end basically.
V0.8 introduces "TGoals", you can have a goal assigned to a single player or to an entire team of players.
Karts V0.7 : http://www.hcsoft.net/sergio/karts/Karts_V0.7.zip (25/02/2014).
This V0.7 version is the first after a total rewrite of the code, now it is well object oriented, but contains a bug on the desing of TListOfFutures (fixed on V0.8) so it is slow and sometimes not so smart.
Karts V0.6 : http://www.hcsoft.net/sergio/karts/Karts_V0.6.zip.
Karts V0.5 : http://www.hcsoft.net/sergio/karts/Karts_V0.5.zip.
Karts V0.4 : http://www.hcsoft.net/sergio/karts/Karts_V0.4.zip.
Karts V0.3 : http://www.hcsoft.net/sergio/karts/Karts_V0.3.zip.
Karts V0.2 : http://www.hcsoft.net/sergio/karts/Karts_V0.2.zip.
Source code:
Karts V2.0 : http://www.hcsoft.net/sergio/karts/Karts_V2.0_source_code.zip (19/09/2014).
Karts V1.2 : http://www.hcsoft.net/sergio/karts/Karts_V1.2_source_code.zip (19/09/2014).
Karts V1.1 : http://www.hcsoft.net/sergio/karts/Karts_V1.1_source_code.zip (11/05/2014).
Karts V0.7 : http://www.hcsoft.net/sergio/karts/Karts_V0.7_source_code.zip (25/02/2014).
Hi!
ReplyDeleteAs I see the links to versions 8 of exe and sources, are linked to 7 version of them.
Very nice articles!
Ops! It is now fixed Gronfo, thanks for the advise.
ReplyDeleteAditionally I have added a "brand new V1.0" to the list, it improves it all quite nicely!
Can you post simple vb or vba code sample? Thanks.
ReplyDeleteHi Bud, short answer s no. But if you do it your self, I can help you.
DeleteI don't use VB in any of it forms, nor I want to do it, and coding a simple example is not simple, you need a whole system being simulated in the soft before you go into the AI part, so strart by chosing something to simulate, then code it, and from that point we can go further.
So you need to define a system on paper, its params, witch one will be free, and give a function simulate(A, t) where A is the actual system state (an array with the value of all system params, float numbers usually) and t a delta of time. The result must be B, the final system state. Also coding a visual ouput of the system state (like the track with the karts on it in my example) would be necessary to see it all working, but you can use a plain text log as outpt too, if it fits your needs.
With that previous work done, I can guide you through the AI implementing phase, as long as you make preliminary and final code freely available... or you pay me for the work!
BTW what is the purpouse of your work?