Recent Posts

Pages: 1 ... 8 9 [10]
Your scripts / Re: [Big Layer] Solarus-online
« Last post by Christopho on January 21, 2018, 01:04:18 am »
Wow this is insane :D
Really impressive work. We can finally answer "this is possible" instead of "this is theoretically possible" to one of the most frequently asked questions :P

I tried the demo and it works nice :)
A small remark: LuaJIT is needed because of ffi stuff in Vector.lua. I don't know if you were aware of that but it might be a limitation on some systems. It should be mentioned in the readme if this is normal.

Anyway… this is a big step for Solarus :D
Your scripts / Re: Character Selection Screen
« Last post by Diarandor on January 21, 2018, 01:00:08 am »
You should change the tunic sprite with hero:set_tunic_sprite_id(sprite_id), and not the level of the tunic (that is an ability for the defense, if I am not wrong). You can have as many tunic sprites as you want.
Your scripts / Re: [Big Layer] Solarus-online
« Last post by Diarandor on January 21, 2018, 12:54:43 am »
This is awesomly awesome!!!  ;D
Development / Re: Receptacle
« Last post by Christopho on January 21, 2018, 12:37:13 am »
Solarus 1.6 n'est pas encore sorti. Tu utilises donc une version de développement, et je voudrais savoir de quand elle date exactement. Car j'ai corrigé un bug similaire il y a quelques semaines.
Your scripts / Re: Character Selection Screen
« Last post by MetalZelda on January 21, 2018, 12:11:12 am »
You can make as many tunics you want, tunic1 ... 3 is only used for MoS DX, game:set_ability("tunic", x) does not have limits I guess
Your scripts / Re: [Big Layer] Solarus-online
« Last post by MetalZelda on January 21, 2018, 12:09:28 am »
Oh wow so lan multiplayer is now a thing
Development / Re: Receptacle
« Last post by MetalZelda on January 21, 2018, 12:06:58 am »
Non, je parle de ton code, celui de ton item

Code: Lua
  1. local item = ...
  2. local game = item:get_game()
  4. function item:on_created()
  5.   self:set_shadow(nil)
  6.   self:set_sound_when_picked(nil)
  7.   self:set_sound_when_brandished("get_heart_container")
  8. end
  11. function item:on_obtaining(variant, savegame_variable)
  13. end
  15. function item:on_obtained(variant, savegame_variable)
  16.   game:add_max_life(4)
  17. end
Development / Re: Receptacle
« Last post by Lucifer on January 20, 2018, 09:22:41 pm »
Solarus 1.6
Game art & music / Re: Original art
« Last post by Diarandor on January 20, 2018, 08:19:54 pm »
You are gonna love this video: testing the custom shield. A shield like the one in Link's Awakening!!! Hurray!!!! ;D
Your scripts / [Big Layer] Solarus-online
« Last post by stdgregwar on January 20, 2018, 04:50:20 pm »
Hello everyone!

As I promised to Christopho and others during his live on Monday. I'm unveiling my work of the few past months: Solarus-online.  8)

Demo footage :

This is basically a set of lua scripts that uses luasocket and a small server to synchronise clients across the network.


  • server
  • fully working 'async' networking
  • asymetric mob simulation
  • symetric map,object simulation
  • movement replication primitives
  • api adaptation for multiplayer aware ennemies
  • network synchronised states and actions

In practice the following engine entities are synchronisable :

  • hero
  • ennemies
  • npcs
  • destructibles
  • maps

But this require light to heavy modifications in the enemy,map,object code!

Code is not bigger, thank to a reconstruction of an api similar to solarus one. But it's different.


A small demo serve as template on my github:

You can launch it as any solarus quest, provided that you have 'luasocket' and 'luajson' in your lua5.1 path. and Solarus 1.6 (dev version)

The save selection screen serve as a server selection screen. You can edit data/scripts/serverlist.lua to replace the three default servers.

There is more details in the readme.

Demo server opened h24 for a while

A demo server is open from know on at, the server is already in the provided serverlist.

I strongly encourage you to test this on this server. As it is not very demonstrative if there is no other one on screen.

It is also more fun if you use a proper pseudo (not like on the screen  ::) ).

Be aware the server might crash, after all this is an alpha and I never tested all of this with more than two clients, so it's probable that everything breaks. If
this is the case, put a message here or ping me on github.

I might post some video footage in a week or so


If enough people are interested in this I could make a tutorial on how to use it. Or at least develop a nice wiki to explain what it implies in terms of code.


There is still plenty to do to really make this usable. The movement replication part is still in a very early stage and suffer when ping is too high.

Please contact me if you want to contribute.


You can ask me anything about the way this works and what are the limitations. As well as proposing any improvement, ideas.


I don't know if this is really the multiplayer mode that everyone was waiting for. But it's a light solution in terms of engine modification (2 pull-request) and
can be extended to make anything.
Pages: 1 ... 8 9 [10]