Difference between revisions of "User:TsT"
(assume MMO goal) |
(cleanup + hua) |
||
Line 12: | Line 12: | ||
** Status : in progress | ** Status : in progress | ||
** Goal: Provide a Löve and LUBE compatible interface on server side to support (massively) multiplayer network games. | ** Goal: Provide a Löve and LUBE compatible interface on server side to support (massively) multiplayer network games. | ||
− | ** Require: | + | ** Require: |
− | ** server side : | + | *** server side : |
*** + nginx ([http://openresty.org openresty.org]) | *** + nginx ([http://openresty.org openresty.org]) | ||
*** + [http://openresty.org/#LuaNginxModule lua support] ([http://openresty.org/#LuaJIT luajit also supported]) | *** + [http://openresty.org/#LuaNginxModule lua support] ([http://openresty.org/#LuaJIT luajit also supported]) | ||
+ | *** + hua: my hardened modular lua approach | ||
*** + faked-cgilua-rpc-support | *** + faked-cgilua-rpc-support | ||
*** + lua-rpc-server [https://github.com/luaforge/json/blob/master/trunk/json/rpcserver.lua lua json rpcserver part] | *** + lua-rpc-server [https://github.com/luaforge/json/blob/master/trunk/json/rpcserver.lua lua json rpcserver part] | ||
*** + json support : [https://github.com/luaforge/json/blob/master/trunk/json/json.lua json in lua], [http://www.kyne.com.au/~mark/software/lua-cjson.php faster C json], [http://www.eharning.us/wiki/luajson/ lua json over LPEG] ... see also [http://www.json.org/ json.org] [http://www.kyne.com.au/~mark/software/lua-json-performance.html benchmarks] [http://www.kyne.com.au/~mark/software/lua-cjson-manual.html manual] | *** + json support : [https://github.com/luaforge/json/blob/master/trunk/json/json.lua json in lua], [http://www.kyne.com.au/~mark/software/lua-cjson.php faster C json], [http://www.eharning.us/wiki/luajson/ lua json over LPEG] ... see also [http://www.json.org/ json.org] [http://www.kyne.com.au/~mark/software/lua-json-performance.html benchmarks] [http://www.kyne.com.au/~mark/software/lua-cjson-manual.html manual] | ||
*** + love support [https://love2d.org/forums/viewtopic.php?t=230 LUBE server] | *** + love support [https://love2d.org/forums/viewtopic.php?t=230 LUBE server] | ||
− | **** over | + | **** over custom protocol ... |
− | ** server databases : | + | *** server databases : |
*** + redis (with [http://redis.io/commands/eval lua and json support]) | *** + redis (with [http://redis.io/commands/eval lua and json support]) | ||
− | ** client side : | + | *** client side : |
*** + ssl or https support (...) | *** + ssl or https support (...) | ||
*** + keep-alive support (...) | *** + keep-alive support (...) | ||
*** + love support [https://love2d.org/forums/viewtopic.php?t=230 LUBE client] | *** + love support [https://love2d.org/forums/viewtopic.php?t=230 LUBE client] | ||
− | **** over | + | **** over custom protocol ... |
− | |||
− | |||
− | |||
− | |||
− | |||
Line 41: | Line 37: | ||
* [http://love2d.org/forums/viewtopic.php?f=4&t=2883 fakelove] | * [http://love2d.org/forums/viewtopic.php?f=4&t=2883 fakelove] | ||
− | ** Status : | + | ** Status : frozen |
** Goal: Build a compatible lua environment in pure lua | ** Goal: Build a compatible lua environment in pure lua | ||
* luajail and lovejail | * luajail and lovejail | ||
− | ** Status : | + | ** Status : frozen |
** Goal: made a secure (jailed) environment for running löve's games. | ** Goal: made a secure (jailed) environment for running löve's games. | ||
** TODO: test the crack*.love attacks [http://love2d.org/forums/viewtopic.php?f=3&t=2541 see this thread] | ** TODO: test the crack*.love attacks [http://love2d.org/forums/viewtopic.php?f=3&t=2541 see this thread] | ||
Line 60: | Line 56: | ||
* gameconf (lib) | * gameconf (lib) | ||
− | ** Status : | + | ** Status : frozen |
** Goal: having easy function to manage game settings | ** Goal: having easy function to manage game settings | ||
** (FIXME: I don't remember what exactly but I have part of code about that...) | ** (FIXME: I don't remember what exactly but I have part of code about that...) | ||
* LUSE : Löve User Settings Enforcer | * LUSE : Löve User Settings Enforcer | ||
− | ** Status : | + | ** Status : frozen |
** Goal: always keep control! be able to choose and enforce my user settings, allow or deny change on resolution/input grabbing/window-or-full-screen mode/no sound/etc. | ** Goal: always keep control! be able to choose and enforce my user settings, allow or deny change on resolution/input grabbing/window-or-full-screen mode/no sound/etc. | ||
Revision as of 18:06, 23 October 2012
Contents
Introduction
Start playing with löve in 2009 (v0.5.0) Is back in 2011 on löve 0.7.1.
Projects is to rewrite my "jail" project (see [love-master project (jail, ...)])
My Projects
- LOWS : Löve On Web Server
- Status : in progress
- Goal: Provide a Löve and LUBE compatible interface on server side to support (massively) multiplayer network games.
- Require:
- server side :
- + nginx (openresty.org)
- + lua support (luajit also supported)
- + hua: my hardened modular lua approach
- + faked-cgilua-rpc-support
- + lua-rpc-server lua json rpcserver part
- + json support : json in lua, faster C json, lua json over LPEG ... see also json.org benchmarks manual
- + love support LUBE server
- over custom protocol ...
- server databases :
- + redis (with lua and json support)
- client side :
- + ssl or https support (...)
- + keep-alive support (...)
- + love support LUBE client
- over custom protocol ...
- LCE : Löve Callbacks Enforcer
- Status : released
- See : LCE forum thread
- fakelove
- Status : frozen
- Goal: Build a compatible lua environment in pure lua
- luajail and lovejail
- Status : frozen
- Goal: made a secure (jailed) environment for running löve's games.
- TODO: test the crack*.love attacks see this thread
- Goal: be able to allow/deny access of library or function (like os, io, require ...) for the LUA part, and some love functions for the LOVE part
- jailfs (lib)
- Status : in progress
- Goal: be able to filter that is allowed to read (and write) on file system access
- Feature: think about allow a way to load a case insensitive filename (usefull for stupid zip software that push upper case character... seen in some forum topics...)
- jailnet (lib)
- Status : nothing done yet
- Goal: like jailfs but with the network connections (filter the ip:port like simple firewall)
- gameconf (lib)
- Status : frozen
- Goal: having easy function to manage game settings
- (FIXME: I don't remember what exactly but I have part of code about that...)
- LUSE : Löve User Settings Enforcer
- Status : frozen
- Goal: always keep control! be able to choose and enforce my user settings, allow or deny change on resolution/input grabbing/window-or-full-screen mode/no sound/etc.
- love-master
- Goal: have a magic key (or sequence) to pause the game and got back to a safe environnement (like the love console?) to be able do ... what you want.
- For example:
- debugging (see memory usage, variable values, ...)
- profiling (see stats about most called function) see ProfilingLuaCode
- access to the safe menu to configure (simple-firewall, jailfs or others settings)
- Part of this project is to catch and lock the love callbacks ...
- launcher
- Goal: be bale to run my local love (with love-master, settings enforcement, etc.) have a way to choose what game is available. Run one of them in jail environnement.
- random lib
- Status : Done, not released yet
- A simple random generator with safe (re-)initialization.
- Inspired from http://love2d.org/forums/viewtopic.php?f=3&t=2748
- Idea: Using a seed with current random try.
- Sample: function init() math.randomseed(math.random()*os.time()) end
- Goal: You will be able to re-init it without predictability problem.
- Note: include it in the jail (and catch the randomseed to forbid re-init)
- love strict framework
- Goal: show warning or raise error when we do something ugly like :
- require("module.lua") --> must use require("module")
- use of draw functions outside of the love.draw (strict way = disable draw function outside of love.draw)
- abuse of global variables (Use strict module and declare global variables)
- use of module() deprecated use (recode your module!)
- use of file name with cases, prefer full lower case (rename your file!)
- use of creation of new object every frames. How detect that ?
- ...
- Goal: show warning or raise error when we do something ugly like :
- ACL lib
- Status: idea
- Goal: be able to use Access Control List configuration
- Usefull for lot of my security projects
ACL API of VLC :
local a = vlc.acl(true) -> new ACL with default set to allow a:check("10.0.0.1") -> 0 == allow, 1 == deny, -1 == error a("10.0.0.1") -> same as a:check("10.0.0.1") a:duplicate() -> duplicate ACL object a:add_host("10.0.0.1",true) -> allow 10.0.0.1 a:add_net("10.0.0.0",24,true) -> allow 10.0.0.0/24 (not sure) a:load_file("/path/to/acl") -> load ACL from file
Others idea projects
- love API patch (see love.screen ...)
- - newFrameBuffer internaly catch error (return nil on error).
- - add missing screen/graphics functions (getFsaa, getVsync, ...)
- - add missing filesystem functions (getIdentity)
- - and more ...
- input layout
- Goal: be able to manage keyboard : French, English, ... also maybe manage mouse with more than 3 ou 5 buttons.
- multi-love (lib)
- Goal: be able to run multiple (windowed) love program and link them together.
- Goal: be able to link (over network/LUBE?) multiple love program and share actions.
- input layer (lib)
- Goal: be able to virtualise inputs (to have more than one mouse, one keyboard) see multi-love.
Experimentation in Future
- AI project
- Play with simple Artificial Intelligence, see UnLöve: Zombie Survival
- drawing with z index (see Snippers Skip list and Skip list Drawing Order)
- collision with circular zone
- drawing only if in zone : defined a target zone, exclude outside objets from drawing process
- proof of concept of webradio player
My work done
- lovemake.sh
- Status : Done, released
- Description: script to package directory to .love file my lovemake.sh
- from ruby to lua or bash version, see http://love2d.org/forums/viewtopic.php?p=26001#p26001
Currently done (not yet released) :
- stringimprove (lib)
- Status : Aborted, strong is better.
- (released : here) finally prefer using the BlackBulletIV's strong.lua lib
- Goal: Like String_exploding string.explode(), be able to split string as separated arguments in table.
- Improved String exploding Snippet see http://love2d.org/wiki/String_exploding .
- New string.split and string.join functions
- Conflict: [String_exploding http://love2d.org/wiki/String_exploding String_exploding]
- Compatible: String_extensions
- glob (lib)
- Status : aborted (seems useless)
- Goal: be able to support a string matching with glob pattern (like "*.txt").
- tablesort (lib)
- Status : Done, not released yet (still buggy)
- Goal: be able to make a for loop with keys on arbitrary/custom order.
- bench (lib)
- Status : Done, not released yet
- Goal: a simple way (in pur lua) to run n times the same function and calculate the average time elapsed per iteration. Usefull to compare performance of 2 differents versions of the same function.
- chrono (lib)
- Status : Done, not released yet
- Goal: run a start, some code, stop, see the time between the start and stop (in microseconds, milliseconds, seconds, ...)
Others
- english-french translation of documentation/tutorials/...
Forum
My threads
- symlink support and require usefull hack : http://love2d.org/forums/viewtopic.php?f=4&t=2896
- API discuss : http://love2d.org/forums/viewtopic.php?f=4&t=2884
- love.screen : http://love2d.org/forums/viewtopic.php?f=4&t=2888
- SDL button x1 and x2 : http://love2d.org/forums/viewtopic.php?f=4&t=2758
- thrusted loader : http://love2d.org/forums/viewtopic.php?f=4&t=2758
- love built-in changes : http://love2d.org/forums/viewtopic.php?f=3&t=2922
Bookmarks
- strong lib : http://love2d.org/forums/viewtopic.php?f=5&t=2893
- inspect lib http://love2d.org/forums/viewtopic.php?f=5&t=2879
- memoize lib : http://love2d.org/forums/viewtopic.php?f=5&t=2867
- TLfres lib : http://love2d.org/forums/viewtopic.php?f=5&t=2900
- cron lib : http://love2d.org/forums/viewtopic.php?f=5&t=2882
- lquery lib : http://love2d.org/forums/viewtopic.php?f=5&t=2570
- debug way : http://love2d.org/forums/viewtopic.php?f=5&t=2473
- testing framework : http://love2d.org/forums/viewtopic.php?f=4&t=2744
- testsuite with telescope : https://github.com/norman/telescope
- module discuss : http://love2d.org/forums/viewtopic.php?f=3&t=2542
- ascii colors : http://love2d.org/forums/viewtopic.php?f=5&t=3061
- about music : http://love2d.org/forums/viewtopic.php?f=3&t=2910
wiki doc TODO list
- Image format supported : http://love2d.org/forums/viewtopic.php?f=4&t=2888
- SVG not supported : http://love2d.org/forums/viewtopic.php?f=4&t=2758
- love.load : http://love2d.org/forums/viewtopic.php?f=4&t=2758
- translate wiki doc : http://love2d.org/forums/viewtopic.php?f=4&t=2757
- tutorials for beginners : http://love2d.org/forums/viewtopic.php?f=3&t=2921
- tutorial for cameras : http://love2d.org/forums/viewtopic.php?f=4&t=2895
My steps to learn lua and love
Personal reminder
- repair my 2nd computer and run the test on windows and linux
- Status : in progress