LinuxQuestions.org
Go Job Hunting at the LQ Job Marketplace
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices

Reply
 
Search this Thread
Old 02-02-2013, 04:42 AM   #1
alsaf
Member
 
Registered: Mar 2009
Distribution: Lubuntu 13.10
Posts: 40

Rep: Reputation: 0
FOSS Games that could use AI


I've got an idea for a library that implements simple behaviour-based Artificial Intelligence. It's only at the idea stage and I've managed to work on some of the finer details of it and, at the moment, I can't see there being any problem using it with either software or hardware based systems.

I'm being realistic and I realise, due to other commitments in my life, that I will have little time to write the library and will find it hard to create something that I could use to test this library. I think the best solution is to use a pre-existing game that could use AI, for instance board games like chess. Most games already have an element of AI and it means having to go through the code and taking that out. I was wondering, is there any games that would be easy to rewrite or could could be used with the library that I am looking to create?

The only other alternative I could think is is that I create a 'client' for the library to use as localhost when playing a network game. I'm not sure if that is possible?

As the language of the game, I would prefer if it was written in Python.
 
Old 02-03-2013, 04:45 PM   #2
kbp
Senior Member
 
Registered: Aug 2009
Posts: 3,758

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
I'm not sure about the ease of removing/replacing the existing AI, but Armagetron Advanced could be a nice entry level game due to its simplicity - just collision detection/avoidance.
 
Old 02-05-2013, 02:06 PM   #3
alsaf
Member
 
Registered: Mar 2009
Distribution: Lubuntu 13.10
Posts: 40

Original Poster
Rep: Reputation: 0
thanks kbp.

As I mentioned, I don't really have much time to spend on this and frankly during the week after coming in from work I find it hard to wind down and can't really be bothered so it's only at the weekend that I can get time to look at it and when I get a 'brainstorm', I just try to get as much done as possible which sometimes putting the cart in front of the horse where I haven't even started the program yet but I'm thinking about how to test it in a real life situation!!

Given it some more thought, it isn't going to be a library but a standalone program, like an interpreter, that takes high level instruction from another program, breaks them down into lower level instructions or 'actions' that is used by another program via rules or as I like to call them skills. In the game you citied, an input and output interface would have to be created to communicate with the game and could act like a network bot. I'm trying to write the program using my understanding of Unix philosophy principles which is the reasoning for this and I intend it modularise it as much as possible into smaller programs that do one thing good. There is of course fold knowledge into data where these rules/skills and actions are stored in databases (I also hope to come up with simple learning where a new version of rules/skills is created using a series of problem solving i.e. says the AI program is used for a robot and it encounters a light switch, it has rules/skills for traditional light switches, dimmers, push etc but what if it comes against a different version of a switch? It tries a number of actions in order to try and operate it, if successful create new version or rule else go back to human operator which is very much like us humans when we encounter a technical problem we can't solve and goto somebody with more experience for assistance).

In theory, the same thing could be done with robotic automation, system administration and even chat bots with natural language. Whether this will happen in practise in another thing but it is a scratch I have been wanting to itch for a while and if it doesn't work, at least I knew that I have tried!

Last edited by alsaf; 02-05-2013 at 03:44 PM.
 
Old 02-06-2013, 01:57 AM   #4
kbp
Senior Member
 
Registered: Aug 2009
Posts: 3,758

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
I looked at expert systems a long time back, the problem is that they're usually tied to a specific problem domain and that they need to be trained with test data. Is this what you're thinking of?
 
Old 02-06-2013, 11:28 AM   #5
dugan
Senior Member
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 4,771

Rep: Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468Reputation: 1468
Quake could always use more bots...
 
Old 02-06-2013, 02:07 PM   #6
alsaf
Member
 
Registered: Mar 2009
Distribution: Lubuntu 13.10
Posts: 40

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by kbp View Post
I looked at expert systems a long time back, the problem is that they're usually tied to a specific problem domain and that they need to be trained with test data. Is this what you're thinking of?
This is exactly what I am thinking about.

My original intention was to try and use as little code as possible. All the work would be done using the interpreted data and external programs much like sed is used on the command line used in a pipe to translate data from one program to another. In theory, the AI should be easy to code but the implementation on how it takes high level instructions from the start, breaks them into rules and with these rules create the low level instructions will be the hard part.

To take an example of a robot that is told to walk across the room:

High level command : Walk to box

Rules: locate box, move to box. These are the two simple commands but there will be conditional rules where robot has to deal with obstacles and possibly locate a light source if lighting is not good enough to see (this may involve physically finding a light switch or maybe remotely turning the light source on).

Low level commands: programs that control the various parts of the robot ie movement, GPS, sensors etc.

Of course, rules and the high level commands will need to be created to allow the robot to do basic functioning but maybe if functionality for self learning could be created, more versions of the basic rules could be created to deal with situations that don't work this basic rules?

This all sounds good in theory but will it work in practice? Maybe it could only work for simple applications like game bots that have limited functions to do and where data would be analysed i.e. the bots actions in game is stored and modified rules could be created from them?
 
Old 02-06-2013, 06:10 PM   #7
kbp
Senior Member
 
Registered: Aug 2009
Posts: 3,758

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Maybe start with a targeted expert system so you have a working base then try to expand it
 
Old 02-07-2013, 01:00 PM   #8
alsaf
Member
 
Registered: Mar 2009
Distribution: Lubuntu 13.10
Posts: 40

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by kbp View Post
Maybe start with a targeted expert system so you have a working base then try to expand it
I've been looking at this from a point of view of using logic as the basis of AI. While this should be sufficient for the actual operation of AI, will it be enough for self-learning? It sounds similar to left and right brain hemispheres, the left being logical and analytical, the right intuitive and creative. The question is who do you program for example institution and creativity? As you say, start small.
 
Old 02-07-2013, 05:01 PM   #9
kbp
Senior Member
 
Registered: Aug 2009
Posts: 3,758

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
I don't think it's enough for self-learning, a system that can learn will require guidance the same as humans do. We learn by mimicking others to start, then also by experience once we start to gain mobility and spacial awareness. Just because we have a framework to process situations doesn't mean we'll make good decisions, we still need parents and teachers to provide guidance (hurting small animals is bad .. etc).

In the same way, an expert system / AI will need some guidance until it reaches a satisfactory capability level - pure logic won't be enough to take it from infant to adult IMHO.
 
Old 02-10-2013, 04:07 AM   #10
alsaf
Member
 
Registered: Mar 2009
Distribution: Lubuntu 13.10
Posts: 40

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by kbp View Post

In the same way, an expert system / AI will need some guidance until it reaches a satisfactory capability level - pure logic won't be enough to take it from infant to adult IMHO.
There is no doubt that the expert system/AI will need guidance but it has to be as little as possible in order to make it useful in the real world and to cut down in human error which will inevitably creep in. Och well, that's something that only to be needing to worry about down the line.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: TLWIR 32: Open Sparks Fly, FOSS Players Give Open Advice, and FOSS Petition Gets Key Endorseme LXer Syndicated Linux News 0 02-06-2012 11:21 AM
LXer: Linux Games Participating in Independent Games Festival, 2012 (Part 1) LXer Syndicated Linux News 0 11-24-2011 07:31 PM
LXer: The Problem with FOSS Software on an FOSS Operating System LXer Syndicated Linux News 0 02-23-2010 09:10 AM
LXer: Most FOSS users don't contribute to FOSS? No problem! LXer Syndicated Linux News 0 12-12-2009 04:51 AM
fleet-command style FOSS games CoderMan Linux - Software 2 04-17-2009 01:32 PM


All times are GMT -5. The time now is 07:45 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration