Re: [Cel-main] AI Project For GSoC

2009-04-02 Thread smd501
Having found a post in the google group about multiple proposals to one
organisation being ok, I have submitted my second proposal. I hope this is
not too much of a nuisance for the CS team.

My final proposal is listed below and I would greatly appreciate any final
comments anyone may have. I would also like to take this time to quickly
say thank you to everyone who has helped in this discussion and I
genuinely hope that this work will be able to begin soon.

Kind Regards,
Sam.


My Project Proposal.

The A* algorithm currently used within CEL for pathfinding is, despite
being an optimal solution for finding the shortest path, a slow and often
unrequried detail in pathfinding within a game environment. When used in a
game scenario it can lead to delays in responsiveness due to agents
calculating the whole route before moving and inefficiant as by the time
the full path is calculated and performed the dynamic nature of the
environment often leads to the final segments of the route never being
performed.

To fix these general faults and to overcome the performance issues of the
CEL implementation (recently discussed in the CEL mailing list) I propose
to implement a HA* algorithm. For a more detailed explanation of HA*
please see This Paper and for a nice overview please see This Description.

Also raised during my recent discussion on the CEL mailing list and in
this update within the SVN (Revision 3391) it has been noted that the
current steering implementation is still a work in progress. Currently not
all of the behaviours work correctly, the performance is bad and a more
complete implementation of Craig Reynolds' work is desired.

To solve this I first intend to work with the current cel-graph
implementation to improve the integration between steering and cel-graph.
This may also require some work within the body of CS to implement the
ability to change colliders for navigation. Once performance is
satisfactory I will look to implement the full body of behaviors presented
by Craig Reynolds.

Finally, deadlines permitting (this may need to become a personal project
after GSoC) I would like to look into the code previously worked on for
the automatic generation of navigation meshes. This would be a very useful
tool when combined with the new improved pathfinding and steering property
classes allowing for some very complex, believable and interesting AI
agents.

Taking into consideration my other commitments during the first week of
implementation my proposed timeline of deliverables is:

   1. Pathfinding
 1. Implement a HA* algorithm more applicable to games than the
standard A* solution
- June 21st

   2. Cel-Graph
 1. Improve integration with pathfinding and steering to remove
current performance issues
- July 8th

   3. Steering
 1. Implement all Craig Reynolds' example steering behaviors
- July 19th

 2. Document all behaviors and create example/tutorial programs
- July 22nd

   4. Automatic Navigation Mesh Generation
 1. Collate existing work and document current faults
- July 26th

 2. Begin development on improving and finalsing navigation mesh
generation tool
- Remainder of project




--
___
Cel-main mailing list
Cel-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cel-main


Re: [Cel-main] AI Project For GSoC

2009-04-01 Thread smd501
Taking into consideration Jorrit's latest email with regards to submitting
proposals, I have submitted my first draft and included it here. If anyone
has any further comments please let me know.

Also can anyone confirm wether it is ok for me to submit two proposals to
CS? As I have currently leaned towards the Quest/BT proposal but would
also be happy to work on the A*/Steering proposal.

Thank you to everyone for their support in this application and I hope to
start work of these topics soon.
Regards, Sam.




About Me.
My name is Sam Devlin, I am a fifth year computer scientist student about
to be awarded a first class MEng in Computer Systems in Software
Engineering and beginning a PhD in Reinforcement Learning in October. I
have a fond interest in game AI and am looking for a project where I can
exert a continuous effort in practical AI throughout my time researching
theoretical AI.

I have no current experience working on open-source projects but am keen
to learn about this field hence my application to GSoC. I do however have
over a years industry experience working on a range of projects for BAE
System's. Development during this time was predominantly with C++ using
MSVC++.

I have also completed two internships during my undergraduate degree, one
of which was within the challenging environment of a major investment
bank. The most relevant of which, however, was within the computer science
department at the University of York, UK. During this time I worked with a
large commercial API  to implement modifications, again in C++, to a
military simulator. I also gained working experience with Python in the
automation of a number of minor tasks.

I am familiar with the OpenGL API having worked with it both during a
computer graphics module of my course and in the development of a project
for BAE Systems. My experience in AI, however, is more substantial, having
focussed a large number of my module choices into this area. I have always
excelled in these subjects and as a result was selected to perform my
final year project within the AI group. This project involved the use of
reinforcement learning under partial observability to make agents play the
soccer subgame keepaway. The successful results of my research have been
submitted to the IAT'09 conference and have helped me land a DTA
scholarship for my PhD research.

With regards to other summer plans, I have one module that overlaps with
the first week of development time and so will be limited slightly by this
but will be able to then commit full time to the project throughout the
remainder of the project time. I currently have no intention to apply to
other projects within the GSoC.


Crystal Space Questions.
I first heard about Crystal Space around February this year when I began
researching projects I would like to be a part of for GSoC. Although I
have not yet contributed to the project, I have gained an understanding of
the project through lurking on the irc channel and questioning those with
experience on the AI systems available within CEL.

As previously mentioned, I am keen to begin a working relationship in the
community through the GSoC programme. I see this as a great opportunity to
become an established part of the active CS development community and
begin to work on AI systems that I want to expand, not just during GSoC
but, throughout my PhD studies.

Over the past couple of months I have successfully set up a working
environment for both CS and CEL in MSVC++. I have worked through the user
manuals of both and believe I am forming a strong understanding of the CEL
architecture within which the majority of my project work will be. Also as
required I have checked out the source code from subversion and introduced
myself on the CEL mailing list.


My Project Proposal.

Given the current complications and issues with the Quest system
(Highlighted at Quest Improvement Proposals, Quest Editor-See Bottom Of
Page and my recent discussions on the CEL mailing list.) A number of ideas
have been discussed as beneficial to the project and a refactor suggested
that removes triggers and rewards from the Quest system and makes them
standard property classes available throughout CEL.

In doing this future systems can be designed to take advantage of these
powerful tools. An example of this that I propose to implement is behavior
trees. Behavior Trees provide similar functionality to FSMs but are
considered more intuitive, and make logic more reusable. (For a more
detailed argument of Behavior Trees please see: A Behavior Tree Overview)

It has also been argued repeatedly that FSMs are becoming obsolete in
industry (For example: FSM Age is Over). If you agree or not, it is
important that CS/CEL provide tools for all developers. For those wishing
to stick with FSMs the refactored Quest system will be available, and for
those who have moved on to behavior trees the new implementation will be
available. By implementing Behavior Trees and 

Re: [Cel-main] AI Project For GSoC

2009-03-31 Thread smd501
Thank you for the link Pablo, there are some interesting problems in there
that I could attempt to fix as part of a refactor of quest. I like your
idea of using a behaviour tree implementation as a focus for the project
and a reason for the refactor.

One question, however, in your other email you mentioned the interpolation
system of Quest. What is this? I do not recall mention of this anywhere.

And also as you seem familiar with the Quest system could you explain the
sequence rewards? It seems to me that they are simply a combination of
rewards performed sequentially but from the last reading it seems implied
that one can apply several rewards to one trigger and therefore the
sequence seems redundant.

In light of these suggestions the new proposal for the 2nd project would be:

-Quest Refactor
** Freeing the triggers  rewards from within Quest so that access to them
is available throughout CEL.
** Standardise the Quest, Trigger and Reward properties so that they can
access constraints, property values and message each other (Fixing the
last three problems on https://b2cs.delcorp.org/dev/wiki/QuestEditorNG)
** Allow for nesting FSMs
** Example Program / Tutorial

-Behaviour Tree Implementation
** Implementation
** Documentation
** Example Program / Tutorial

As always thank you for your time,
Sam.

 smd...@student.cs.york.ac.uk wrote:

 To anyone else still reading, could you please post any interest in
 either
 of the following projects:

 1.) Pathfinding And Steering
  -Move the current A* implementation to a HPA* implementation to improve
 performance
  -Fully implementing the steering examples from Craig Reynolds work
  -Improving the interaction between steering and nav-meshes to provide
 usable performance

  2.) Refactoring Quest
 -Standardise the quest system to fit the current standards for property
 classes.
 -Allow for nesting FSMs, direct linking of CEL properties to Quest
 properties
 -Freeing the triggers from within Quest so that access to them is
 available throughout CEL where they may find other uses in future
 expanisions (I.e Behaviour Trees.)
 -Explore the potential of inspiration from the UML techniques
 highlighted
 by Pablo



 They both sound good to me. I do think that the second approach can be
 put together with the behaviour tree implementation though, as it should
 be trivial given the quest has been refactored, it would be the proof
 that it actually works and give focus (but i might be overly optimistic,
 so feel free to ignore the suggestion :)).

 With the proposals as they are, i would probably favour 1) by heart,
 because it would be just so nice to have the steering examples
 implemented, plus the perfomance issues solved. If the second proposal
 was to include behaviour trees, and some interesting examples, i would
 have a much more difficult time choosing though.

 And as I am trying to expand my knowledge of the existing quest system,
 could anyone point me in the direction of documentation regarding this
 that I may have missed. I have already read the CEL User documentation,
 browsed the source code and the CEL diagram that I found very useful
 inside the Developers Whiteboard.



 A document about current quest editor in b2cs, how it relates to
 traditional fsm and some problems.

 https://b2cs.delcorp.org/dev/wiki/QuestEditorNG

 Also, its important to know the message system and component systems
 where refactored, to merge property classes with behaviours (not sure it
 is evident), so for example, the red elements in the cel diagram, are
 basically gone (they are still there for backwards compatibility -there
 are a lot of legacy behaviours out there-, but no other reason to use
 them).


 Greetings

  Pablo



 --
 ___
 Cel-main mailing list
 Cel-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/cel-main




--
___
Cel-main mailing list
Cel-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cel-main


Re: [Cel-main] AI Project For GSoC

2009-03-31 Thread Jorrit Tyberghein
Yes, I haven't fully read the thread yet but as such that sounds like
a useful idea.

Greetings,

On Tue, Mar 31, 2009 at 1:28 PM,  smd...@student.cs.york.ac.uk wrote:
 Thank you for the explanation Jorrit, I understand the difference now. Do
 you agree with the ideas on this thread that seperating triggers and
 rewards from quest so that they could be used by future systems (such as
 the proposed behaviour tree) is beneficial to the project?

 Kind Regards, Sam

 No, a sequence is not a combination of rewards. A sequence represents
 some kind of animation. One of the rewards that you can have in
 response to a trigger is to fire off a sequence. Such a sequence can
 be to open a door. You don't want the door to go open in one frame.
 You want to open it slowly. For that you use a sequence. The quest
 system is integrated with this sequence system so that you can also
 have triggers that fire when a sequence has finished executing.
 Example:

 - Initial state: door is closed. Trigger waits for player to click on
 the door with the mouse.
 - The player clicks on the door and the trigger fires. There are two
 rewards that are executed:
     - The first reward fires off the sequence to animate the opening
 of the door.
     - The second reward switches the quest to the state 'opening'.
 - The state 'opening' has a single trigger. It is a trigger that waits
 until the door has
   finished opening (i.e. until the sequence is done). The reward for
 this trigger is to go
   to the 'open' state.
 - The sequence is finished and thus the trigger fires. And so the
 quest goes into the 'open'
   state.
 - In the 'open' state the quest can again listen for the mouse clicks
 so that the door
   can close again.

 This is a basic example.

 Greetings,

 On Tue, Mar 31, 2009 at 12:32 PM,  smd...@student.cs.york.ac.uk wrote:
 Thank you for the link Pablo, there are some interesting problems in
 there
 that I could attempt to fix as part of a refactor of quest. I like your
 idea of using a behaviour tree implementation as a focus for the project
 and a reason for the refactor.

 One question, however, in your other email you mentioned the
 interpolation
 system of Quest. What is this? I do not recall mention of this anywhere.

 And also as you seem familiar with the Quest system could you explain
 the
 sequence rewards? It seems to me that they are simply a combination of
 rewards performed sequentially but from the last reading it seems
 implied
 that one can apply several rewards to one trigger and therefore the
 sequence seems redundant.

 In light of these suggestions the new proposal for the 2nd project would
 be:

 -Quest Refactor
 ** Freeing the triggers  rewards from within Quest so that access to
 them
 is available throughout CEL.
 ** Standardise the Quest, Trigger and Reward properties so that they can
 access constraints, property values and message each other (Fixing the
 last three problems on https://b2cs.delcorp.org/dev/wiki/QuestEditorNG)
 ** Allow for nesting FSMs
 ** Example Program / Tutorial

 -Behaviour Tree Implementation
 ** Implementation
 ** Documentation
 ** Example Program / Tutorial

 As always thank you for your time,
 Sam.

 smd...@student.cs.york.ac.uk wrote:

 To anyone else still reading, could you please post any interest in
 either
 of the following projects:

 1.) Pathfinding And Steering
  -Move the current A* implementation to a HPA* implementation to
 improve
 performance
  -Fully implementing the steering examples from Craig Reynolds work
  -Improving the interaction between steering and nav-meshes to provide
 usable performance

  2.) Refactoring Quest
 -Standardise the quest system to fit the current standards for
 property
 classes.
 -Allow for nesting FSMs, direct linking of CEL properties to Quest
 properties
 -Freeing the triggers from within Quest so that access to them is
 available throughout CEL where they may find other uses in future
 expanisions (I.e Behaviour Trees.)
 -Explore the potential of inspiration from the UML techniques
 highlighted
 by Pablo



 They both sound good to me. I do think that the second approach can be
 put together with the behaviour tree implementation though, as it
 should
 be trivial given the quest has been refactored, it would be the proof
 that it actually works and give focus (but i might be overly
 optimistic,
 so feel free to ignore the suggestion :)).

 With the proposals as they are, i would probably favour 1) by heart,
 because it would be just so nice to have the steering examples
 implemented, plus the perfomance issues solved. If the second proposal
 was to include behaviour trees, and some interesting examples, i would
 have a much more difficult time choosing though.

 And as I am trying to expand my knowledge of the existing quest
 system,
 could anyone point me in the direction of documentation regarding this
 that I may have missed. I have already read the CEL User
 documentation,
 browsed the source code and the CEL diagram 

Re: [Cel-main] AI Project For GSoC

2009-03-31 Thread smd501
Thank you for the explanation Jorrit, I understand the difference now. Do
you agree with the ideas on this thread that seperating triggers and
rewards from quest so that they could be used by future systems (such as
the proposed behaviour tree) is beneficial to the project?

Kind Regards, Sam

 No, a sequence is not a combination of rewards. A sequence represents
 some kind of animation. One of the rewards that you can have in
 response to a trigger is to fire off a sequence. Such a sequence can
 be to open a door. You don't want the door to go open in one frame.
 You want to open it slowly. For that you use a sequence. The quest
 system is integrated with this sequence system so that you can also
 have triggers that fire when a sequence has finished executing.
 Example:

 - Initial state: door is closed. Trigger waits for player to click on
 the door with the mouse.
 - The player clicks on the door and the trigger fires. There are two
 rewards that are executed:
 - The first reward fires off the sequence to animate the opening
 of the door.
 - The second reward switches the quest to the state 'opening'.
 - The state 'opening' has a single trigger. It is a trigger that waits
 until the door has
   finished opening (i.e. until the sequence is done). The reward for
 this trigger is to go
   to the 'open' state.
 - The sequence is finished and thus the trigger fires. And so the
 quest goes into the 'open'
   state.
 - In the 'open' state the quest can again listen for the mouse clicks
 so that the door
   can close again.

 This is a basic example.

 Greetings,

 On Tue, Mar 31, 2009 at 12:32 PM,  smd...@student.cs.york.ac.uk wrote:
 Thank you for the link Pablo, there are some interesting problems in
 there
 that I could attempt to fix as part of a refactor of quest. I like your
 idea of using a behaviour tree implementation as a focus for the project
 and a reason for the refactor.

 One question, however, in your other email you mentioned the
 interpolation
 system of Quest. What is this? I do not recall mention of this anywhere.

 And also as you seem familiar with the Quest system could you explain
 the
 sequence rewards? It seems to me that they are simply a combination of
 rewards performed sequentially but from the last reading it seems
 implied
 that one can apply several rewards to one trigger and therefore the
 sequence seems redundant.

 In light of these suggestions the new proposal for the 2nd project would
 be:

 -Quest Refactor
 ** Freeing the triggers  rewards from within Quest so that access to
 them
 is available throughout CEL.
 ** Standardise the Quest, Trigger and Reward properties so that they can
 access constraints, property values and message each other (Fixing the
 last three problems on https://b2cs.delcorp.org/dev/wiki/QuestEditorNG)
 ** Allow for nesting FSMs
 ** Example Program / Tutorial

 -Behaviour Tree Implementation
 ** Implementation
 ** Documentation
 ** Example Program / Tutorial

 As always thank you for your time,
 Sam.

 smd...@student.cs.york.ac.uk wrote:

 To anyone else still reading, could you please post any interest in
 either
 of the following projects:

 1.) Pathfinding And Steering
  -Move the current A* implementation to a HPA* implementation to
 improve
 performance
  -Fully implementing the steering examples from Craig Reynolds work
  -Improving the interaction between steering and nav-meshes to provide
 usable performance

  2.) Refactoring Quest
 -Standardise the quest system to fit the current standards for
 property
 classes.
 -Allow for nesting FSMs, direct linking of CEL properties to Quest
 properties
 -Freeing the triggers from within Quest so that access to them is
 available throughout CEL where they may find other uses in future
 expanisions (I.e Behaviour Trees.)
 -Explore the potential of inspiration from the UML techniques
 highlighted
 by Pablo



 They both sound good to me. I do think that the second approach can be
 put together with the behaviour tree implementation though, as it
 should
 be trivial given the quest has been refactored, it would be the proof
 that it actually works and give focus (but i might be overly
 optimistic,
 so feel free to ignore the suggestion :)).

 With the proposals as they are, i would probably favour 1) by heart,
 because it would be just so nice to have the steering examples
 implemented, plus the perfomance issues solved. If the second proposal
 was to include behaviour trees, and some interesting examples, i would
 have a much more difficult time choosing though.

 And as I am trying to expand my knowledge of the existing quest
 system,
 could anyone point me in the direction of documentation regarding this
 that I may have missed. I have already read the CEL User
 documentation,
 browsed the source code and the CEL diagram that I found very useful
 inside the Developers Whiteboard.



 A document about current quest editor in b2cs, how it relates to
 traditional fsm and some problems.

 

Re: [Cel-main] AI Project For GSoC

2009-03-31 Thread Henry Daniel
Hi again everyone,

I submitted my application to GSoC, with the first point that Sam mentioned,
about building and improving the pathfinding algorithms and steering
behaviour. This is not my final application, but I wanted to keep it updated
because the deadline is coming, I think I'm going to edit it in order to
complete the requirements that you requested and, of course, I want to be
sure which of the to proposals that I liked is better. I think that the
pathfinding and steering is better to the project, but I want to hear
opinions. If you have comments about it or whatever, please let me know.

Henry

2009/4/1 Jorrit Tyberghein jorrit.tybergh...@gmail.com

 Yes, I haven't fully read the thread yet but as such that sounds like
 a useful idea.

 Greetings,

 On Tue, Mar 31, 2009 at 1:28 PM,  smd...@student.cs.york.ac.uk wrote:
  Thank you for the explanation Jorrit, I understand the difference now. Do
  you agree with the ideas on this thread that seperating triggers and
  rewards from quest so that they could be used by future systems (such as
  the proposed behaviour tree) is beneficial to the project?
 
  Kind Regards, Sam
 
  No, a sequence is not a combination of rewards. A sequence represents
  some kind of animation. One of the rewards that you can have in
  response to a trigger is to fire off a sequence. Such a sequence can
  be to open a door. You don't want the door to go open in one frame.
  You want to open it slowly. For that you use a sequence. The quest
  system is integrated with this sequence system so that you can also
  have triggers that fire when a sequence has finished executing.
  Example:
 
  - Initial state: door is closed. Trigger waits for player to click on
  the door with the mouse.
  - The player clicks on the door and the trigger fires. There are two
  rewards that are executed:
  - The first reward fires off the sequence to animate the opening
  of the door.
  - The second reward switches the quest to the state 'opening'.
  - The state 'opening' has a single trigger. It is a trigger that waits
  until the door has
finished opening (i.e. until the sequence is done). The reward for
  this trigger is to go
to the 'open' state.
  - The sequence is finished and thus the trigger fires. And so the
  quest goes into the 'open'
state.
  - In the 'open' state the quest can again listen for the mouse clicks
  so that the door
can close again.
 
  This is a basic example.
 
  Greetings,
 
  On Tue, Mar 31, 2009 at 12:32 PM,  smd...@student.cs.york.ac.uk
 wrote:
  Thank you for the link Pablo, there are some interesting problems in
  there
  that I could attempt to fix as part of a refactor of quest. I like your
  idea of using a behaviour tree implementation as a focus for the
 project
  and a reason for the refactor.
 
  One question, however, in your other email you mentioned the
  interpolation
  system of Quest. What is this? I do not recall mention of this
 anywhere.
 
  And also as you seem familiar with the Quest system could you explain
  the
  sequence rewards? It seems to me that they are simply a combination of
  rewards performed sequentially but from the last reading it seems
  implied
  that one can apply several rewards to one trigger and therefore the
  sequence seems redundant.
 
  In light of these suggestions the new proposal for the 2nd project
 would
  be:
 
  -Quest Refactor
  ** Freeing the triggers  rewards from within Quest so that access to
  them
  is available throughout CEL.
  ** Standardise the Quest, Trigger and Reward properties so that they
 can
  access constraints, property values and message each other (Fixing the
  last three problems on https://b2cs.delcorp.org/dev/wiki/QuestEditorNG
 )
  ** Allow for nesting FSMs
  ** Example Program / Tutorial
 
  -Behaviour Tree Implementation
  ** Implementation
  ** Documentation
  ** Example Program / Tutorial
 
  As always thank you for your time,
  Sam.
 
  smd...@student.cs.york.ac.uk wrote:
 
  To anyone else still reading, could you please post any interest in
  either
  of the following projects:
 
  1.) Pathfinding And Steering
   -Move the current A* implementation to a HPA* implementation to
  improve
  performance
   -Fully implementing the steering examples from Craig Reynolds work
   -Improving the interaction between steering and nav-meshes to
 provide
  usable performance
 
   2.) Refactoring Quest
  -Standardise the quest system to fit the current standards for
  property
  classes.
  -Allow for nesting FSMs, direct linking of CEL properties to Quest
  properties
  -Freeing the triggers from within Quest so that access to them is
  available throughout CEL where they may find other uses in future
  expanisions (I.e Behaviour Trees.)
  -Explore the potential of inspiration from the UML techniques
  highlighted
  by Pablo
 
 
 
  They both sound good to me. I do think that the second approach can be
  put together with the behaviour tree implementation though, as it
  

Re: [Cel-main] AI Project For GSoC

2009-03-30 Thread Scott Johnson
Hi Again Sam:
 Hello Again,
 I would like to start by apologising for the delay in my response to this
 thread, but as previously stated I had a holiday booked which
 unfortunately coincided with the GSoC application time frame. I will
 attempt now to cover all the issues raised in my absence, and thank you
 for your patience in what could be a very long post.

   
No worries. We're pretty patient here at CS. :)
 To Scott,
 Thank you for taking the time to direct me to specific files. I have not
 yet looked into these since my initial review of the code, but I have set
 aside some time tomorrow morning to look into them in more detail, it is
 getting late now and I am very tired from the journey home so it would be
 unproductive to focus my attention there now at this time.

   
I understand. I don't have a ton of experience with these files, but I 
might be able to help you if you have questions on the overall structure 
of the projects of Crystal Space and CEL.
 However, I have a small initial query in reference to your post here and
 elsewhere in the mailing lists. You suggested to Henry Daniel that the
 GSoC “is more geared toward implementing new features, rather than simply
 adding support for additional ready-to-use libraries.”and as you and the
 others have identified there does already exist implementations of A*,
 steering, neural networks and FSMs. However, it seems from the
 conversations here that there are complaints with some of these features
 and so my query is would the projects suggested involving improving
 current implementations be less appropriate for a GSoC project than say a
 proposal to implement a brand new behaviour tree plugin?
   
Ah, this is a good question. Basically, what I meant was that our 
primary objective with the summer of code is to have new features 
integrated successfully into CS. I didn't mean that we don't like having 
new libraries incorporated into the codebase, with successful wrappers 
and such added into CS. I merely meant that pointing out that Library X 
would work with CS pretty well, and proposing to integrate it into the 
codebase of Crystal Space probably wouldn't be a good idea for a project 
for the summer. It's not enough work, probably, and to be honest, I 
think that it wouldn't be challenging for most students to do this. On 
the other hand, proposing Library X would take care of problem Y in the 
Crystal Space problem set, and I propose to add features 1, 2, and 3, 
possibly 4, in order to better setup Crystal Space for integration with 
this library would be a better project. Does this make sense?
 Specifically, I am currently thinking that the following current grouping
 of ideas could each constitute a full GSoC project.

 1.) Pathfinding And Steering
 -Move the current A* implementation to a HPA* implementation to improve
 performance
 -Fully implementing the steering examples from Craig Reynolds work
 -Improving the interaction between steering and nav-meshes to provide
 usable performance

   
Yes, I think this sounds reasonable.
 2.) Refactoring Quest
 -Standardise the quest system to fit the current standards for property
 classes.
 -Allow for nesting FSMs, direct linking of CEL properties to Quest properties
 -Freeing the triggers from within Quest so that access to them is
 available throughout CEL where they may find other uses in future
 expanisions (I.e Behaviour Trees.)
 -Explore the potential of inspiration from the UML techniques highlighted
 by Pablo

   
Yes, definitely a good idea.
 3.) AI Code Review
 A more general project inspired by Pablo's comments and the apparent lack
 of cohesion between and knowledge of AI systems within CEL. It has
 recently been raised by Piotr Obrzut that there is a need for a unified
 tool chain for AI, physics and animation but for this to be possible each
 subcomponent must be complete first. That does not appear to be the
 current state of affairs, and so as I see my commitment to AI within CEL
 as a long term project perhaps the use of GSoC time would be best spent
 collating the current systems implemented, adapting them to the standard
 property classes, ensuring there correct inter-system functionality
 through standard CEL mechanisms (messages, actions and properties) and
 then documenting the collation with interesting examples that could serve
 as tutorials to expand the communities knowledge of the tools available.

   
Hm, this one might be a little shaky. The reason I say this is that it 
would be difficult to adequately propose what you actually wanted to do 
(within reason) in the code base. You might get into it and find that 
things are a complete mess, and that a 100% refactor is necessary. In 
this case, it would be WAY too much work for a summer of code project. 
On the other hand, you could get into it and find that all that's really 
required is documentation. In that case, the summer of code becomes a 
more summer of documentation, which is not appropriate in the eyes of 

Re: [Cel-main] AI Project For GSoC

2009-03-30 Thread Henry Daniel
Hi! I'm fully interested on the first point, I posted a thread about AI too,
I'm not sure if you read about it, my name is Henry. Anyway, I want to work
on it, I think I can improve this implementation and add new features too.
I'm going to check this carefully this week. If you have any question or
comment please let me know.

Henry

2009/3/31 smd...@student.cs.york.ac.uk

 Thank you Scott that clarifies my queries and I can now appreciate why the
 vagueness of the 3rd project makes it unnacceptable. My concern now is
 that I find it hard to choose between the other two projects as I am very
 keen to pursue both. Is it acceptable to submit two proposals to crystal
 space? As I am happy to work on whichever is more desired by the CS
 community. Or should I try to gauge interest on this thread and submit one
 formal proposal for one of the two projects?


 To anyone else still reading, could you please post any interest in either
 of the following projects:

 1.) Pathfinding And Steering
  -Move the current A* implementation to a HPA* implementation to improve
 performance
  -Fully implementing the steering examples from Craig Reynolds work
  -Improving the interaction between steering and nav-meshes to provide
 usable performance

  2.) Refactoring Quest
 -Standardise the quest system to fit the current standards for property
 classes.
 -Allow for nesting FSMs, direct linking of CEL properties to Quest
 properties
 -Freeing the triggers from within Quest so that access to them is
 available throughout CEL where they may find other uses in future
 expanisions (I.e Behaviour Trees.)
 -Explore the potential of inspiration from the UML techniques highlighted
 by Pablo


 And as I am trying to expand my knowledge of the existing quest system,
 could anyone point me in the direction of documentation regarding this
 that I may have missed. I have already read the CEL User documentation,
 browsed the source code and the CEL diagram that I found very useful
 inside the Developers Whiteboard.

 Kind Regards,
 Sam.



 --
 ___
 Cel-main mailing list
 Cel-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/cel-main

--
___
Cel-main mailing list
Cel-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cel-main


Re: [Cel-main] AI Project For GSoC

2009-03-30 Thread Pablo Martin
smd...@student.cs.york.ac.uk wrote:
 Hello Again,
 I would like to start by apologising for the delay in my response to this
 thread, but as previously stated I had a holiday booked which
 unfortunately coincided with the GSoC application time frame. I will
 attempt now to cover all the issues raised in my absence, and thank you
 for your patience in what could be a very long post.

 --

 Firstly to Pablo,
 It is my interpretation that you are suggesting the use of the previously
 mentioned paper as inspiration to standardise the method of communication
 between FSMs as opposed to the current non-standard Quest methods.
 However, the fixing of the current Quest system to apply to these
 standards to then be replaced by behaviour trees seems redundant. Would it
 not be more beneficial for the project to move on from the complicated FSM
 of Quest, to a new implementation of behaviour trees that abides by the
 standards for property classes? Or would you, and anyone else reading,
 prefer to have a fully functioning, traditional FSM implementation that
 meets these standards?
   


Well, note the ideas i proposed where basically everything i could think
of, doesn't mean i thought how everything would fit, but i do think that
behaviour trees and fsm can be orthogonal, not that behaviour trees
would replace fsm... although maybe they're just different ways of
viewing the same concepts. Other than that, since we already have a form
of fsm, it can be beneficial to work in other approaches, but then
again, a few things in the fsm are annoying if you start working on
other things, since you will be missing some basic pieces of
functionality which are now integrated into the quest implementation
(like the triggers, interpolation system, the rewards..).

 Pablo

--
___
Cel-main mailing list
Cel-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cel-main


Re: [Cel-main] AI Project For GSoC

2009-03-21 Thread Scott Johnson
Hi Sam:

A couple of thoughts that I have:

Neural networks seem to have an existing implementation, albeit I assume
it's not where we want it right now.  Check out:
/cel/trunk/include/propclass/neuralnet.h under the cel trunk.  Also,
I've looked in the past at the pathfinding implementation, and
currently, it's an A* implementation, iirc.  I know that a year or so
ago, there was a big drive to try and make it faster, because the
original implementation was quite slow.  However, I don't currently see
the same commenting in the source files (check out
cel/trunk/plugins/propclass/pathfinder/pathfinderfact.h/.cpp in the
repos) as previously.  This leads me to believe that the implementation
has been cleaned up somewhat.

But, anyway, it might be a good place to start if you want to look into
the code a little and see what's all there.

~Scott


Thus Spoke smd...@student.cs.york.ac.uk:
 Hello again group,
 Sorry to double post, but I wanted to make sure it was on here that I am
 unfortunately going to be away from my computer for just over a week now.
 This obviously is unfortunate time with the GSoC application period
 beginning next week, but it could not be avoided.

 Please can anyone with any further points or queries regarding AI in CEL
 keep posting, I will be very interested to hear everyone's opinion upon my
 return and will look to apply everyone's thoughts and wishes in my final
 application.

 Kind Regards,
 Sam,


   
 2009/3/19  smd...@student.cs.york.ac.uk:
 
 Hello Group,
 This is my first post to the group but I have been following the project
 for the past month or so and have discussed with some of you already the
 potential for this project.

 My name is Sam Devlin, and I post in your forum and irc channel as SamD.
 I
 would like to undergo a project in AI as part of the Google Summer of
 Code. I think this is a great opportunity to begin a development role
 within crystal space.

 I believe that a basic AI implementation should provide the following:

 1.) A* Pathfinding
 2.) A Finite State Machine
 3.) Steering

 With these a good AI developer can produce a vast range of behaviours.
 Please comment if you think anything should be added to this list.

 As far as I am aware previous projects have looked to implement A*,
 steering and a navigation mesh. If anyone can provide details on how far
 these projects went I would be very appreciative as I have been advised
 this could be a good place to start work.

 To summarise, my questions are:

 1.) What interest does the group have in AI development for CEL?
 2.) Does anyone want anything not included in this list?
 3.) Can anyone provide information regarding previous CEL AI work?
 Source
 code, brief comments and detailed explanations welcome.

 Thank you for your time.
 Kind Regards,
 Sam.


 --
 Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
 powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
 easily build your RIAs with Flex Builder, the Eclipse(TM)based
 development
 software that enables intelligent coding and step-through debugging.
 Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
 ___
 Cel-main mailing list
 Cel-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/cel-main

   
 --
 Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
 powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
 easily build your RIAs with Flex Builder, the Eclipse(TM)based development
 software that enables intelligent coding and step-through debugging.
 Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
 ___
 Cel-main mailing list
 Cel-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/cel-main

 



 --
 Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
 powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
 easily build your RIAs with Flex Builder, the Eclipse(TM)based development
 software that enables intelligent coding and step-through debugging.
 Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
 ___
 Cel-main mailing list
 Cel-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/cel-main
   

--
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through 

Re: [Cel-main] AI Project For GSoC

2009-03-20 Thread Carlos Diógenes
Hi Sam,

Is there anyway to follow, and maybe contribute, in your development?

Best regards,
Carlos.

--
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
___
Cel-main mailing list
Cel-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cel-main