Difference between revisions of "SummerOfCodeProposal 2011 LuaAI champ"
(→Description) |
|||
Line 7: | Line 7: | ||
Make player-unaccessible resource also unaccessible for Lua AI scripts. (For example: If fog is on, units covered by fog for current player should not accessible to Lua scripts initiated by current player.)<br/> | Make player-unaccessible resource also unaccessible for Lua AI scripts. (For example: If fog is on, units covered by fog for current player should not accessible to Lua scripts initiated by current player.)<br/> | ||
Make player-read-only resource also read-only for Lua AI scripts. (For example: Lua scripts should be able to access the coordinate for a player-owned unit, but should not be able to modify it directly.)<br/> | Make player-read-only resource also read-only for Lua AI scripts. (For example: Lua scripts should be able to access the coordinate for a player-owned unit, but should not be able to modify it directly.)<br/> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=Contact= | =Contact= | ||
Line 31: | Line 25: | ||
=SoC Application= | =SoC Application= | ||
[https://socghop.appspot.com/gsoc/proposal/review/google/gsoc2011/cff29546/1 SoC Application] | [https://socghop.appspot.com/gsoc/proposal/review/google/gsoc2011/cff29546/1 SoC Application] | ||
+ | |||
+ | =Project Detail= | ||
+ | ===General Idea=== | ||
+ | *Use both user access control and token access control to manage player based resources and terrain based resources.<br/>Each resources have a owner(player or the game), some resources require tokens. lua may only read resources it owned or it belongs to a token owned.<br/>when a Lua script is submitted to interpretor, use submittor as user. check every lua accessed data. <br/> | ||
+ | *Check the accessiblity at the C++ object level, make the check transparent to Lua.<br/> | ||
+ | *Provide a data structure (which can be a dupication of existing one) to allow Lua to make moves virtually or virtually hypothesis so that AI script can evaluate certain cases.<br/> | ||
+ | |||
+ | ===Implement Additional Function=== | ||
+ | <u>Make Virtual Read-Write resource</u><br/> | ||
+ | As the units status and position can not be changed by Lua scripts due to Multi-player Lua AI scripting security, some advanced Lua AI which need 'Table-top exercises' requires virtual private data structure (For instance, a virtual battlefield) to perform trial actions and to evaluate certain status on it.<br/>In this scheme a data structure of virtual in game resource should be able to create, either from a copy of the real resource or from definitions in creating script.<br/>This virtual resource should be fully controlled by the creator, which means the creator can view/add/remove/alter units on the virtual battlefield.<br/>It is good to make it possible using the same operation the real resources use for these virtual resources. | ||
=Questionnaire= | =Questionnaire= | ||
Qusetionnaire is [http://wiki.wesnoth.org/User:Champ/Questionaire here]. | Qusetionnaire is [http://wiki.wesnoth.org/User:Champ/Questionaire here]. |
Revision as of 03:52, 8 April 2011
This page is related to Summer of Code 2011 |
See the list of Summer of Code 2011 Ideas |
This is a Summer of Code 2011 student page |
Project: SoC_Ideas_LuaAI_2011 |
Contents
Description
champ - Implement Multi-player Lua AI scripting security
I plan to implement a secure mechanism on Lua AI scripting system.
The mechanism will be implement on C++ level and transparent to Lua AI scripts.
Make player-unaccessible resource also unaccessible for Lua AI scripts. (For example: If fog is on, units covered by fog for current player should not accessible to Lua scripts initiated by current player.)
Make player-read-only resource also read-only for Lua AI scripts. (For example: Lua scripts should be able to access the coordinate for a player-owned unit, but should not be able to modify it directly.)
Contact
IRC
champ
MinXiang (alternative)
Wesnoth forum
champ
Gna id
champ
cff29546 (at) gmail.com
SoC Application
Project Detail
General Idea
- Use both user access control and token access control to manage player based resources and terrain based resources.
Each resources have a owner(player or the game), some resources require tokens. lua may only read resources it owned or it belongs to a token owned.
when a Lua script is submitted to interpretor, use submittor as user. check every lua accessed data. - Check the accessiblity at the C++ object level, make the check transparent to Lua.
- Provide a data structure (which can be a dupication of existing one) to allow Lua to make moves virtually or virtually hypothesis so that AI script can evaluate certain cases.
Implement Additional Function
Make Virtual Read-Write resource
As the units status and position can not be changed by Lua scripts due to Multi-player Lua AI scripting security, some advanced Lua AI which need 'Table-top exercises' requires virtual private data structure (For instance, a virtual battlefield) to perform trial actions and to evaluate certain status on it.
In this scheme a data structure of virtual in game resource should be able to create, either from a copy of the real resource or from definitions in creating script.
This virtual resource should be fully controlled by the creator, which means the creator can view/add/remove/alter units on the virtual battlefield.
It is good to make it possible using the same operation the real resources use for these virtual resources.
Questionnaire
Qusetionnaire is here.