Difference between revisions of "User:TsT"
(assume MMO goal) |
m (style change) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
− | + | I started to play with LÖVE in 2009 (with the v0.5.0) | |
− | + | ||
+ | I was back in 2011 on löve 0.7.1. | ||
+ | |||
+ | I done a new break until the end of 2014. | ||
+ | We are now in 2015, I'm back again! (v0.9.1). | ||
+ | |||
+ | Enjoy ! | ||
+ | |||
+ | |||
+ | = My 2015 Projects = | ||
+ | |||
+ | I released some work done on [https://github.com/tst2005/ my github account]. | ||
+ | * [https://github.com/tst2005/dragoon-framework/ dragoon-framework] | ||
+ | ** my Lua Framework (with LÖVE support) | ||
+ | * [https://github.com/tst2005/lua-minimal/ lua-minimal] The bootstrap of my framework. | ||
+ | ** [https://github.com/tst2005/lua-newmodule/ lua-newmodule], https://github.com/tst2005/lua-provide/ lua-provide] and [https://github.com/tst2005/lua-minimal/blob/master/pathfix.lua pathfix]) | ||
+ | * [https://github.com/tst2005/lua-classcommons2/ lua-classcommons2] | ||
+ | * [https://github.com/tst2005/lua-jsoncommons2/ lua-jsoncommons2] | ||
+ | * ... and more! [http://xkcd.com/537/ \_o<] | ||
+ | |||
+ | |||
+ | |||
+ | = My 2011 Projects = | ||
Projects is to rewrite my "jail" project (see [[http://love2d.org/forums/viewtopic.php?f=5&t=733 love-master project (jail, ...)]]) | Projects is to rewrite my "jail" project (see [[http://love2d.org/forums/viewtopic.php?f=5&t=733 love-master project (jail, ...)]]) | ||
− | |||
− | |||
* LOWS : Löve On Web Server | * LOWS : Löve On Web Server | ||
** 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/#LuaNginxModule lua support], better: [http://openresty.org/#LuaJIT luajit support] |
− | *** + faked-cgilua-rpc-support | + | *** + hua: my hardened modular lua approach |
− | *** + lua-rpc-server [https://github.com/luaforge/json/blob/master/trunk/json/rpcserver.lua lua json rpcserver part] | + | *** + faked-cgilua-rpc-support (TsT) |
+ | *** + lua-rpc-server [https://github.com/luaforge/json/blob/master/trunk/json/rpcserver.lua lua json rpcserver part] (modified version) | ||
*** + 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 (...) see [[https://github.com/brunoos/luasec/ LuaSec] ([https://github.com/brunoos/luasec/blob/master/samples/ samples], [https://github.com/brunoos/luasec/wiki/LuaSec-0.4.1 ssl options], ...)] |
− | *** + keep-alive support ( | + | *** + http keep-alive support (TsT) |
*** + 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 ... |
− | ** | + | *** both : |
− | *** | + | **** UTF-8 support (maybe usefull) |
− | *** | + | |
− | *** | + | |
− | *** | + | * UTF-8 support for lua (in pure lua) |
+ | ** Status: released | ||
+ | ** URL: [https://love2d.org/forums/viewtopic.php?f=4&t=11656 forum] [https://github.com/tst2005/lua-utf8 github] | ||
+ | |||
+ | * bit64 : 64bits bit-wise emulation for Lua 32bits environment | ||
+ | ** Status: Done, not released yet | ||
+ | ** URL: ... | ||
+ | |||
+ | |||
+ | * crypto.akiss3-1 : random generator algorithm named AKISS v3.1 | ||
+ | ** Status: Done, not released yet | ||
+ | ** URL: [https://github.com/tst2005/akiss3 github] | ||
+ | ** Deps: require bit64 | ||
+ | ** Orig: http://besides.us/posts/5 (dead link) | ||
+ | |||
+ | |||
+ | |||
+ | * lova ; Love API | ||
+ | ** Desc: provide a layer to abstract the love primive | ||
+ | ** Goal: provide an easier interface, fix bug, manage alternative | ||
+ | ** Sample: | ||
+ | *** - lova.random(*) -- I just want random things ! without thinking about seed and bug -- never re-seed() ! [http://www.cigital.com/papers/download/developer_gambling.php sample of security break due to reseed] | ||
+ | *** - lova.class(*) -- I just want a class ! ... don't care about what class implementation | ||
+ | *** - lova.screen* -- a simple way to change settings ! | ||
+ | *** - lova.sound* -- sound manager ! | ||
+ | *** - strict | ||
+ | *** - lova.gui -- ! | ||
+ | *** - lova.debug | ||
+ | *** - lova.require(*) -- the require() to use for love modules ! | ||
+ | *** lovapi.module.load("alternatives") -- like require("alternatives") | ||
+ | *** lovapi.module.unload("anothermodule") -- remove and clean a module | ||
+ | *** lovapi.module.load("lova.import"):init() | ||
+ | *** lovapi.module.init("lova.import") | ||
+ | *** lovapi.provide("import", lovapi.module.get("import")) | ||
+ | *** lovapi.configure("class", require("class-commons")) | ||
* LCE : Löve Callbacks Enforcer | * LCE : Löve Callbacks Enforcer | ||
− | ** Status : released | + | ** Status : released (obsolete?) |
** See : [http://love2d.org/forums/viewtopic.php?f=4&t=3113 LCE forum thread] | ** See : [http://love2d.org/forums/viewtopic.php?f=4&t=3113 LCE forum thread] | ||
* [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 115: | ||
* 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. | ||
Latest revision as of 17:13, 9 February 2015
Contents
Introduction
I started to play with LÖVE in 2009 (with the v0.5.0)
I was back in 2011 on löve 0.7.1.
I done a new break until the end of 2014. We are now in 2015, I'm back again! (v0.9.1).
Enjoy !
My 2015 Projects
I released some work done on my github account.
- dragoon-framework
- my Lua Framework (with LÖVE support)
- lua-minimal The bootstrap of my framework.
- lua-newmodule, https://github.com/tst2005/lua-provide/ lua-provide] and pathfix)
- lua-classcommons2
- lua-jsoncommons2
- ... and more! \_o<
My 2011 Projects
Projects is to rewrite my "jail" project (see [love-master project (jail, ...)])
- 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, better: luajit support
- + hua: my hardened modular lua approach
- + faked-cgilua-rpc-support (TsT)
- + lua-rpc-server lua json rpcserver part (modified version)
- + 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 (...) see [LuaSec (samples, ssl options, ...)]
- + http keep-alive support (TsT)
- + love support LUBE client
- over custom protocol ...
- both :
- UTF-8 support (maybe usefull)
- bit64 : 64bits bit-wise emulation for Lua 32bits environment
- Status: Done, not released yet
- URL: ...
- crypto.akiss3-1 : random generator algorithm named AKISS v3.1
- Status: Done, not released yet
- URL: github
- Deps: require bit64
- Orig: http://besides.us/posts/5 (dead link)
- lova ; Love API
- Desc: provide a layer to abstract the love primive
- Goal: provide an easier interface, fix bug, manage alternative
- Sample:
- - lova.random(*) -- I just want random things ! without thinking about seed and bug -- never re-seed() ! sample of security break due to reseed
- - lova.class(*) -- I just want a class ! ... don't care about what class implementation
- - lova.screen* -- a simple way to change settings !
- - lova.sound* -- sound manager !
- - strict
- - lova.gui -- !
- - lova.debug
- - lova.require(*) -- the require() to use for love modules !
- lovapi.module.load("alternatives") -- like require("alternatives")
- lovapi.module.unload("anothermodule") -- remove and clean a module
- lovapi.module.load("lova.import"):init()
- lovapi.module.init("lova.import")
- lovapi.provide("import", lovapi.module.get("import"))
- lovapi.configure("class", require("class-commons"))
- LCE : Löve Callbacks Enforcer
- Status : released (obsolete?)
- 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