Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Submodding support #293

Open
ShizuhaAki opened this issue May 4, 2021 · 2 comments
Open

Submodding support #293

ShizuhaAki opened this issue May 4, 2021 · 2 comments

Comments

@ShizuhaAki
Copy link

ShizuhaAki commented May 4, 2021

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

  • Thorough code documentation & comments
  • Better function wrapping
  • Developers' manual or API reference

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
Copy link
Member

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
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Future Features
  
Awaiting triage
Development

No branches or pull requests

2 participants