Difference between revisions of "SummerOfCodeProposal 2011 LuaAI champ"
m (→SoC Application) |
m (link/heading cleanup) |
||
Line 1: | Line 1: | ||
{{SoC2011Student_2|champ|SoC_Ideas_LuaAI_2011}} | {{SoC2011Student_2|champ|SoC_Ideas_LuaAI_2011}} | ||
− | + | ==Description== | |
− | =Description= | ||
<h4>champ - Implement Multi-player Lua AI scripting security</h4> | <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/> | ||
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= | + | ==Contact== |
− | + | ===IRC=== | |
− | ==IRC== | ||
champ, MinXiang | champ, MinXiang | ||
− | ==Wesnoth forum== | + | ===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] | [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/cff29546/1 SoC Application] | ||
− | =Project Detail= | + | ==Project Detail== |
===General Idea=== | ===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/> | *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/> | ||
Line 34: | Line 32: | ||
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. | 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 |
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
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.