sergiomb2 / pinball

The Emilia Pinball Project , last code available and 2 new tables
Other
12 stars 5 forks source link

Script table logic instead of using C++ #5

Open moleculext opened 7 years ago

moleculext commented 7 years ago

Hello,

after reading this comment from @sergiomb2, I agreed that it's not convenient to have to rebuild pinball to add new tables. Despite tables are dynamic libs, this means that it must be compiled for each platform.

So I would like to be able to avoid the C++ part of table creation. I propose to replace it by a scripting language like LUA.

I've started to prototype this idea on my repo. You can checkout the branch lua_tables: I've cloned the Tux table to a TuxLua table and reimplement the logic in LUA for the proof of concept. At this time it works, you can play the TuxLua table. The LUA version is 5.3.

The code needs some refactoring and some methods not used in Tux table have to be registered for LUA. Once it's done I can pull request the feature if you're interested.

Feebacks are welcome 😃 Thanks

moleculext commented 7 years ago

2 month after, no update? Maybe this is not the official repo?

What about the pull requests I've opened on the pinball-pinedit repo? https://github.com/sergiomb2/pinball-pinedit/pull/2 https://github.com/sergiomb2/pinball-pinedit/pull/3

Thanks

sergiomb2 commented 7 years ago

hello @moleculext please reply to https://github.com/sergiomb2/pinball-pinedit/issues/1 , basically have you tested it ? if yes where ? how ? , I'm just trying keep project alive and organize the lastest sources that pop up on internet . Your contribution is more than welcome , tell me what to do , pinball-pinedit is in the middle of one migration from qt3 to qt4 ... Sorry for the delays , Thanks

sergiomb2 commented 7 years ago

You haven't pull request https://github.com/sergiomb2/pinball/compare/master...moleculext:lua_tables ? what is the relationship with pinball-pinedit ? , should we merge pinball-pinedit to this project too ?

moleculext commented 7 years ago

Hi @sergiomb2,

I haven't pull request the branch because it's not ready: I've just wrapped the minimal number of method to re-implement the Tux table with logic in a lua script instead of a C++ files.

This issue is just to emphasize and propose a system to create new tables more easily. Using script without need of compiling C++ should let more people to create new tables.

What do you think?

sergiomb2 commented 7 years ago

Hi @moleculext , in reply of first comment , hopefully computer does not complain about too many work , so the question if we must recompile all every time that we change one comma , I don't care . I'm not going waste my time, to avoid recompilation of all source , the question in my comment was about the license of the tables , if they have to be spitted , because they have different licenses, but rzr haven't reply so I think we don't have any license problem so we may have all source in same repo . About your approx with lua , "to re-implement the Tux table" what do you mean ? I haven't finish the merge of all code of the tables because I hadn't time , but if you propose do all tables again with lua , it is welcome . we may do a branch . What do you propose ?

I merged all pr that you send to me, big Thanks

moleculext commented 7 years ago

@sergiomb2 About "to re-implement the Tux table" I meant that I've cloned the original Tux table and I've moved the c++ logic to a LUA script: data/tux/ModuleTux.cpp became data/tuxlua/tux.lua

I think we can keep the two systems (c++ logic and lua logic) in order to keep legacy tables, and then add new tables with lua scripting. I don't see the point to do all tables again with lua. I rather propose to develop new tables with lua scripting, hoping that other people would find this more easy than to recompile the whole software.

I haven't finish the merge of all code of the tables because I hadn't time

Where are these tables? In rzr repo?

sergiomb2 commented 7 years ago

All tables are in https://github.com/sergiomb2/pinball/tree/master/data but I have not finish the organization , many things are dispersed I still got https://github.com/sergiomb2/pinball/pull/1 to finish ...

sergiomb2 commented 7 years ago

Where are these tables? In rzr repo?

rzr repos have 2 branches or something like at least have 2 packages https://github.com/sergiomb2/pinball/tree/pinball-data-extra , I merged all in master .

rzr commented 5 years ago

I am fully supportive on this, it would help for https://github.com/rzr/pinball/issues/4

jgengelhardt commented 2 years ago

Packaging new tables separately makes it easier to test and share new tables, which is attractive for designers more interested in game design and contributing new tables than maintaining and improving the underlying engine.

rzr commented 2 years ago

Any preference on scripting engine ?