SummerOfCodeProposal 2011 LuaAI champ: Difference between revisions
No edit summary |
m link/heading cleanup |
||
| (7 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{ | {{SoC2011Student_2|champ|SoC_Ideas_LuaAI_2011}} | ||
==Description== | |||
=Description= | <h4>champ - Implement Multi-player Lua AI scripting security</h4> | ||
I plan to implement a secure mechanism on Lua AI scripting system.<br/> | I plan to implement a secure mechanism on Lua AI scripting system.<br/> | ||
The mechanism will be implement on C++ level and transparent to Lua AI scripts.<br/> | The mechanism will be implement on C++ level and transparent to Lua AI scripts.<br/> | ||
| Line 8: | Line 7: | ||
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== | ||
===IRC=== | |||
champ, MinXiang | |||
===Wesnoth forum=== | |||
= | |||
== | |||
champ | |||
MinXiang | |||
==Wesnoth forum== | |||
champ | champ | ||
==Gna id== | ===Gna id=== | ||
champ | champ | ||
==Mail== | ===Mail=== | ||
cff29546 (at) gmail.com | cff29546 (at) gmail.com | ||
=SoC Application= | ==SoC Application== | ||
[ | [http://www.google-melange.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 | Qusetionnaire is [[User:Champ/Questionaire|here]]. | ||
Latest revision as of 19:43, 5 May 2023
| 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 |
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
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.