taisei-project / taisei

A free and open-source Touhou Project fangame
https://taisei-project.org/
Other
940 stars 88 forks source link

Submodding support #293

Open ShizuhaAki opened 3 years ago

ShizuhaAki commented 3 years ago

Currently, taisei is not made for submodding. However, it is one of the few, if not only, Touhou clone that runs elegantly on GNU/Linux, so I think it would be nice if it supports submodding well.

So, the following work needs to be done

Now stages are implemented in plain C, I think it would be necessary to have a scripting language of our own (or just steal BulletML's idea) in order for submodders unfamiliar with C, SDL or OpenGL to code.

This is of course of low priority.

StarWitch commented 3 years ago

In terms of documentation, I do have this documentation branch available here, which is currently being written: https://github.com/taisei-project/taisei/tree/new-documentation/doc

That should certainly cover your first and third points of manuals and documentation. There's also more work being done in terms of function wrapping when it comes to the stage rewrites for v1.4.

As for scripting language, it's certainly not an easy feat. Many of the available scripting languages out there (such as Lua) are a pain to integrate with, and aren't as performant as C. Additionally, we've already gone through the effort of re-writing the majority of the stage content into the our new C macro system, and rewriting them again right now would be a bit much. We have toyed with the idea of implementing a scripting language of some sort, and one candidate is Lily.

One thing I've been thinking about is potentially allowing for the live-development of danmaku patterns by being able to tweak certain variables and parameters within patterns themselves while the game is still running, allowing you to see your changes in real-time. That would certainly help with development and modding, while not necessarily needing its own entire scripting language.

Beyond that, modders will still need to know a little bit of OpenGL so they could write their own shaders, to give their game a sense of "uniqueness." There's nothing wrong with continuing to use our shaders, of course, but I'm sure many modders would prefer having their game look a little bit different in the end. There's no easy way to script your way out of writing GL shaders - if there were, demoscene artists would be out of work.

Either way, thanks for the feedback. Just so it's clear, we're definitely not against scripting language support, it's just not something we've got the time for right at this moment. Once v1.4 is released (which is going to be an absolutely massive update, with nearly the entire game being rewritten), we'll be looking at potentially "genericizing" the engine for modders.

ShizuhaAki commented 3 years ago

Lily is a generic scripting lang, would it be too complex to support it? I think perhaps a decent function wrap (danmaku library) should work for most developers.