I haven't tried flare, but it looks to me like its modding is currently limited to data: adding item/unit types, and changing configuration parameters. That's always a good start for a modding API, but either your modders are limited in how much they can change actual behavior/logic, or you end up with some abomination like Wesnoth Markup Language [1].
What would really help in cases like this would be to embed a real scripting language. MiniScript [2] was designed for just such embedding. There is a C++ implementation of MiniScript [3] that would be very easy to integrate with flare, and then modders could use a simple, elegant, Unicode-savvy, fully-featured programming language to script the game.
Who should I contact to explore this possibility further?
Oops, I thought I had selected the same license but you're right, I missed. I've corrected that now and also copied the attribution instructions. Thanks!
Mini Micro was designed for exactly this sort of thing. You would use a TileDisplay, which allows you to simply set the tile index (i.e. which picture to show, from a tile sheet) for any cell (position on screen) of the display.
Tile displays support scaling and scrolling very easily. They also support transparency and can be layered, so more likely you would use *two* tile displays, one for the environment and another for the player and monsters (and possibly a third, in between, for items lying on the ground).
Mini Micro has a small but active and very supportive community. If you decide to go this route, you can count on lots of support from me and other Mini Micro users. Mini Micro runs on Mac, Windows, Linux, and the web, and you can package your game for all those (there are already over a dozen Mini Micro games on itch.io, for example). Also, it is free. Give it a try!
In that case, I'd rather make a color change tool. The app does not currently have any concept of restricting other tools to a selection; selections are used only for copy/paste.
I know restricting tools to a selection is often a very handy feature, but I think it's just out of scope for this project.
But a color change/replace tool is something I could easily add. It's basically like the paint bucket, but instead of applying only to the connected blob of color you click, it applies to all pixels of that color (connected or not).
Hmmm, that requires me to support non-rectangular selections.
Let me ask: if there are TWO unconnected blobs of the same color, and you click one of them with this tool, does it select both? Or just the one you click (like a paint bucket fill)?
And just so I understand: what do you use this for? I've never had such a tool and I'm having trouble thinking of use cases for it.
Those are all reasonable points, but... have you looked at Mini Micro? It was designed for exactly this purpose. The language has a clean syntax (FWIW, I wrote to Garry this morning and he agrees!), and like Love2d, it supports all the needed graphics, audio, networking etc. APIs, as well as building to Windows, Mac, Linux, and WebGL.
I'm not trying to disrespect anybody's favorite tool. But I do hope you'll give Mini Micro a look too! :)
I was also a fan of Lua, once. You can read this blog post for some the reasons I then created MiniScript (used by Mini Micro) instead. Or check out this post from the creator of Garry's Mod instead (though he recommends JavaScript, but then MiniScript didn't exist yet when that post was written).
I haven't tried flare, but it looks to me like its modding is currently limited to data: adding item/unit types, and changing configuration parameters. That's always a good start for a modding API, but either your modders are limited in how much they can change actual behavior/logic, or you end up with some abomination like Wesnoth Markup Language [1].
What would really help in cases like this would be to embed a real scripting language. MiniScript [2] was designed for just such embedding. There is a C++ implementation of MiniScript [3] that would be very easy to integrate with flare, and then modders could use a simple, elegant, Unicode-savvy, fully-featured programming language to script the game.
Who should I contact to explore this possibility further?
[1] https://wiki.wesnoth.org/AdvancedConditionalWML
[2] https://miniscript.org
[3] https://github.com/JoeStrout/miniscript/tree/master/MiniScript-cpp
These are really well done!
Oops, I thought I had selected the same license but you're right, I missed. I've corrected that now and also copied the attribution instructions. Thanks!
Awesome! I'm going to remix these for a "treasure hunt" game in my upcoming book, Learn to Code in 30 Days!
Hmm, I was thinking straight-on rather than rotated 45°, but those are adorable. Maybe I'll change my plans! Thanks for the tip.
Mini Micro was designed for exactly this sort of thing. You would use a TileDisplay, which allows you to simply set the tile index (i.e. which picture to show, from a tile sheet) for any cell (position on screen) of the display.
Tile displays support scaling and scrolling very easily. They also support transparency and can be layered, so more likely you would use *two* tile displays, one for the environment and another for the player and monsters (and possibly a third, in between, for items lying on the ground).
Mini Micro has a small but active and very supportive community. If you decide to go this route, you can count on lots of support from me and other Mini Micro users. Mini Micro runs on Mac, Windows, Linux, and the web, and you can package your game for all those (there are already over a dozen Mini Micro games on itch.io, for example). Also, it is free. Give it a try!
https://joestrout.itch.io/mini-micro
Ah, I see!
In that case, I'd rather make a color change tool. The app does not currently have any concept of restricting other tools to a selection; selections are used only for copy/paste.
I know restricting tools to a selection is often a very handy feature, but I think it's just out of scope for this project.
But a color change/replace tool is something I could easily add. It's basically like the paint bucket, but instead of applying only to the connected blob of color you click, it applies to all pixels of that color (connected or not).
Hmmm, that requires me to support non-rectangular selections.
Let me ask: if there are TWO unconnected blobs of the same color, and you click one of them with this tool, does it select both? Or just the one you click (like a paint bucket fill)?
And just so I understand: what do you use this for? I've never had such a tool and I'm having trouble thinking of use cases for it.
Those are all reasonable points, but... have you looked at Mini Micro? It was designed for exactly this purpose. The language has a clean syntax (FWIW, I wrote to Garry this morning and he agrees!), and like Love2d, it supports all the needed graphics, audio, networking etc. APIs, as well as building to Windows, Mac, Linux, and WebGL.
I'm not trying to disrespect anybody's favorite tool. But I do hope you'll give Mini Micro a look too! :)
I was also a fan of Lua, once. You can read this blog post for some the reasons I then created MiniScript (used by Mini Micro) instead. Or check out this post from the creator of Garry's Mod instead (though he recommends JavaScript, but then MiniScript didn't exist yet when that post was written).
Of course tastes vary and your mileage may vary.
Pages