Post-6.11 Plans
Posted: Wed Aug 18, 2010 9:59 pm
Now that 6.11 is all but out the door, I've started to think about the next few directions I want to take Ren'Py in. In no particular order:
Maintenance
The goal is to get maintenance releases of Ren'Py out on a monthly or bi-monthly basis, as necessary. I don't want another huge gap.
Open up the project
I'd like to start to get Ren'Py to the point where it's a more open project. Not being able to do so has been something of a problem of mine, as I'm not the best at working with other. But I think it's time that changes. I'm looking for people to contribute to the Ren'Py project in the following areas:
- Core Development - Helping with the core parts of Ren'Py, including speed optimizations and porting to new platforms.
- Displayables - There are several new displayables I'd like to add to Ren'Py, including draggable things.
- Themes/Interface designs - The default Ren'Py look could really use a facelift.
- Frameworks - Ways of helping users begin their projects.
- Tools - Like better editor support and so on.
- Documentation - We could always use documentation writers and editors.
And of course, please suggest anything else you're serious about working on. Core development is perhaps the hardest of these tasks, as the core isn't very well documented. But having someone work on it with me is the only way that will improve.
I've bumped this forum up to the top page to reflect this as a new priority.
Documentation & Tutorial
My goal is to write a section of documentation a week until the manual is entirely in the new format. I'd also like to finish updating the tutorial eventually.
Performance Improvements
Before I can port to mobile platforms, I want to increase the performance of several parts of Ren'Py. My current plan is to accomplish this by rewriting portions of the rendering code in cython. This should improve algorithmic efficiency and raw performance. I'd like to get things to the point where having a few hundred transforms is a sensible way of doing effects. This will also get normal-case rendering to the point where I'd feel happy with it on a mobile platform.
Automatic Update
I'd like a system that can automatically update Ren'Py, only downloading the files that have changed. As the previous thing will require compiling binaries for some otherwise-simple changes, I want to be sure there's a good way to get those on the system. (For 6.11, a lot of testers downloaded a lot of relatively large Ren'Py releases - I'd like to avoid that going forward.)
Of course, compression and cryptographic security will be a part of this. I did some work on this today, to the point where it works sans-gui.
SpriteManager
I'd like to implement a SpriteManager class, that provides a convenient way to manage a large number of Transforms, as they are used as sprites. This is intended for use as raw material for frameworks and the like.
AlphaDissolve
This will be a displayable that takes 3 displayables: Old, New, and Mask. Where mask is transparent, Old is shown. When it's Opaque, New is shown. The idea is to provide a tool that's similar to, but more general than, ImageDissolve, and one that can leverage ATL and the like.
Text
I need to eat my peas and rewrite Text, which is quite hairy right now, and needs some performance improvements.
Unique Persistent Names for Say Statements
This is a more obscure feature, but one I think will be useful to the top 10% folks. I'd like to give each say statement a unique identifier based on its text and the preceding label. When a say statement occurs, the character will be able to retrieve the identifier, and use it to control display.
Although it won't be enough on its own, this is a necessary bit of infrastructure to make things like automatic voicing and floating frame director-style vns a reality.
Website
The Ren'Py website needs a redesign, badly. We're working on it.
Anyway, these are my thoughts about where Ren'Py will immediately be going. Android is in the cards, as is native client when it comes out - but this is probably where I'll want to go before them.
Maintenance
The goal is to get maintenance releases of Ren'Py out on a monthly or bi-monthly basis, as necessary. I don't want another huge gap.
Open up the project
I'd like to start to get Ren'Py to the point where it's a more open project. Not being able to do so has been something of a problem of mine, as I'm not the best at working with other. But I think it's time that changes. I'm looking for people to contribute to the Ren'Py project in the following areas:
- Core Development - Helping with the core parts of Ren'Py, including speed optimizations and porting to new platforms.
- Displayables - There are several new displayables I'd like to add to Ren'Py, including draggable things.
- Themes/Interface designs - The default Ren'Py look could really use a facelift.
- Frameworks - Ways of helping users begin their projects.
- Tools - Like better editor support and so on.
- Documentation - We could always use documentation writers and editors.
And of course, please suggest anything else you're serious about working on. Core development is perhaps the hardest of these tasks, as the core isn't very well documented. But having someone work on it with me is the only way that will improve.
I've bumped this forum up to the top page to reflect this as a new priority.
Documentation & Tutorial
My goal is to write a section of documentation a week until the manual is entirely in the new format. I'd also like to finish updating the tutorial eventually.
Performance Improvements
Before I can port to mobile platforms, I want to increase the performance of several parts of Ren'Py. My current plan is to accomplish this by rewriting portions of the rendering code in cython. This should improve algorithmic efficiency and raw performance. I'd like to get things to the point where having a few hundred transforms is a sensible way of doing effects. This will also get normal-case rendering to the point where I'd feel happy with it on a mobile platform.
Automatic Update
I'd like a system that can automatically update Ren'Py, only downloading the files that have changed. As the previous thing will require compiling binaries for some otherwise-simple changes, I want to be sure there's a good way to get those on the system. (For 6.11, a lot of testers downloaded a lot of relatively large Ren'Py releases - I'd like to avoid that going forward.)
Of course, compression and cryptographic security will be a part of this. I did some work on this today, to the point where it works sans-gui.
SpriteManager
I'd like to implement a SpriteManager class, that provides a convenient way to manage a large number of Transforms, as they are used as sprites. This is intended for use as raw material for frameworks and the like.
AlphaDissolve
This will be a displayable that takes 3 displayables: Old, New, and Mask. Where mask is transparent, Old is shown. When it's Opaque, New is shown. The idea is to provide a tool that's similar to, but more general than, ImageDissolve, and one that can leverage ATL and the like.
Text
I need to eat my peas and rewrite Text, which is quite hairy right now, and needs some performance improvements.
Unique Persistent Names for Say Statements
This is a more obscure feature, but one I think will be useful to the top 10% folks. I'd like to give each say statement a unique identifier based on its text and the preceding label. When a say statement occurs, the character will be able to retrieve the identifier, and use it to control display.
Although it won't be enough on its own, this is a necessary bit of infrastructure to make things like automatic voicing and floating frame director-style vns a reality.
Website
The Ren'Py website needs a redesign, badly. We're working on it.
Anyway, these are my thoughts about where Ren'Py will immediately be going. Android is in the cards, as is native client when it comes out - but this is probably where I'll want to go before them.