Post #1 · Posted at 2011-11-29 06:35:33am 12.4 years ago
Lirodon | |
---|---|
Member | |
813 Posts | |
Reg. 2009-01-14 | |
"canadian red-haired ninja" |
Okay, since I've practically started a fascination with theming in SM5, I have prepared a sort of "beginner's guide" for moving to theming with it. Once you figure it all out, you'll see that it's a lot more flexible than the 3.9 series ever was.
Note, this is intended more as a starter for those who are more familiar with the system used with 3.9, ways to get started without going completely complex yet. However, 5.x theming still sorta has a slightly steeper learning curve, so watch out.
Things that haven't changed
You still use metrics. You still use BGanimations. You still use commands. You can still use the .sprite/.actor method for more complex graphics (however, while the concept remains, you still do it a little differently)
Things that have changed
Firstly, if you've poked around at 3.95/4.0 CVS/5 themes, you may have seen stuff like SCREEN_LEFT+400/SCREEN_CENTER_X-20/etc. To facilitate the widescreen support, SM now supports relative positioning. How you use it will depend on how you want your theme to behave in widescreen. Plus the relative positioning is good to have on its own too.
Secondly, there's LUA. It would probably take several tutorials to completely explain how its used in SM. But essentially, you can use LUA coding to create more advanced scripts and behaviours in themes. It's very powerful. this is the list of LUA bindings/variables in the current SM5 build. LUA is primarily used in BGanimations and actors. While you still use commands/stuff like that, how you call them is different, and thanks to LUA, they can also be nested as well. You can also dynamically generate objects as well.
Thirdly, much like ITG/the like, we use a Fallback theme now instead of the default to specify default metrics. Its very barebones, but it provides a good place to start.
These are the two main files you need to start a new theme:
Obviously, you need metrics.ini of course
and then there's themeinfo.ini, which lets you set a display name and author for ScreenInit and the options menu
Fourthly, we also have a way of generating colored strokes in commands. Unfortunately, the stroke generator in the texture font generator is rather crappy.
And the fifth major change, you obviously can't use INI/XML files in themes. Sorry, no backwards compatibility here.
So now what
The best way to learn this is to ask questions, and poke around. See how your other themes do things, and see what you can do. Any questions?
tl;dr you need a bit more understanding in programming to make SM themes now.
Note, this is intended more as a starter for those who are more familiar with the system used with 3.9, ways to get started without going completely complex yet. However, 5.x theming still sorta has a slightly steeper learning curve, so watch out.
Things that haven't changed
You still use metrics. You still use BGanimations. You still use commands. You can still use the .sprite/.actor method for more complex graphics (however, while the concept remains, you still do it a little differently)
Things that have changed
Firstly, if you've poked around at 3.95/4.0 CVS/5 themes, you may have seen stuff like SCREEN_LEFT+400/SCREEN_CENTER_X-20/etc. To facilitate the widescreen support, SM now supports relative positioning. How you use it will depend on how you want your theme to behave in widescreen. Plus the relative positioning is good to have on its own too.
Secondly, there's LUA. It would probably take several tutorials to completely explain how its used in SM. But essentially, you can use LUA coding to create more advanced scripts and behaviours in themes. It's very powerful. this is the list of LUA bindings/variables in the current SM5 build. LUA is primarily used in BGanimations and actors. While you still use commands/stuff like that, how you call them is different, and thanks to LUA, they can also be nested as well. You can also dynamically generate objects as well.
Thirdly, much like ITG/the like, we use a Fallback theme now instead of the default to specify default metrics. Its very barebones, but it provides a good place to start.
These are the two main files you need to start a new theme:
Obviously, you need metrics.ini of course
[Global]
FallbackTheme=_fallback
FallbackTheme=_fallback
and then there's themeinfo.ini, which lets you set a display name and author for ScreenInit and the options menu
[ThemeInfo]
DisplayName=Theme Name
Author=Author
DisplayName=Theme Name
Author=Author
Fourthly, we also have a way of generating colored strokes in commands. Unfortunately, the stroke generator in the texture font generator is rather crappy.
And the fifth major change, you obviously can't use INI/XML files in themes. Sorry, no backwards compatibility here.
So now what
The best way to learn this is to ask questions, and poke around. See how your other themes do things, and see what you can do. Any questions?
tl;dr you need a bit more understanding in programming to make SM themes now.
Post #2 · Posted at 2011-11-29 11:10:41am 12.4 years ago
bmhedgehog | |
---|---|
Banned+ | |
3,136 Posts | |
Not Set | |
Reg. 2008-07-13 | |
"BANNED" |
maybe just maybe, if I started learning how to do this, I could try to port SSR (Sonic Sonic Revolution) theme to SM5. though I might have to ask permission for doing so and I might to ask for a little bit of help with this.