Battles are a plan! Thinking more Pokemon/Final Fantasy styled instead of Zelda overworld style enemies. But who knows, this is an engine so if I implement it one way, someone may fork it and make it their own
UPDATE: So I've scrapped the original design of the launcher for something i think will work out alot better..
I assume that making Pokemon/FF-esque battles would be much more difficult than Zelda style, but if you could pull it off that'd be really cool! Also, I'm really digging the new launcher theme! It really pops. Way better than that old drab one you had.
Well I'll start with random encounters for now. I need to have my artist design me some monsters now. Maybe I'll go a full on Pokemon style and only have one enemy appear at a time. Haven't decided yet.
Luigifan2010 wrote:Battles are a plan! Thinking more Pokemon/Final Fantasy styled instead of Zelda overworld style enemies. But who knows, this is an engine so if I implement it one way, someone may fork it and make it their own
UPDATE: So I've scrapped the original design of the launcher for something i think will work out alot better..
Vyvuto wrote:I assume that making Pokemon/FF-esque battles would be much more difficult than Zelda style, but if you could pull it off that'd be really cool! Also, I'm really digging the new launcher theme! It really pops. Way better than that old drab one you had.
Not necessarily. Making a bunch of menus that decide an animation and a mathematical algorithm that equals how much damage sounds a lot more simpler than an overworld where you have to code collision data for whatever weapon you're using every time you swing it, while keeping a good framerate by not causing memory leaks from the constant checks made each frame the animation for attacking is made.
Pokemon/FF is derived from the text-based RPG's, whilst Zelda is more visual based.
Vyvuto wrote:I assume that making Pokemon/FF-esque battles would be much more difficult than Zelda style, but if you could pull it off that'd be really cool! Also, I'm really digging the new launcher theme! It really pops. Way better than that old drab one you had.
Not necessarily. Making a bunch of menus that decide an animation and a mathematical algorithm that equals how much damage sounds a lot more simpler than an overworld where you have to code collision data for whatever weapon you're using every time you swing it, while keeping a good framerate by not causing memory leaks from the constant checks made each frame the animation for attacking is made.
Pokemon/FF is derived from the text-based RPG's, whilst Zelda is more visual based.
So technically Pokemon/FF would be simpler.
And if you remember the original thread, I mention starting this project by porting a text based RPG I wrote in C#
So what started off as me just coding a simple player class to test animations then turned into player movement which turned into the camera locking on the player...nice. Again, LibGDX has improved my quality of life. Now it's even more Minicraft like though. Please excuse the Final Fantasy filler characters, but reminder that Terraria did it also
Luigifan2010 wrote:So what started off as me just coding a simple player class to test animations then turned into player movement which turned into the camera locking on the player...nice. Again, LibGDX has improved my quality of life. Now it's even more Minicraft like though. Please excuse the Final Fantasy filler characters, but reminder that Terraria did it also
ShyGuy37 wrote:
It's looking really good! Just a question- will we be able to make our own characters or are there going to be pre-made ones?
Oh, yeah, and will it be available for Mac OS X?
if you look earlier in the thread...
anyway as for customisable characters, part of this depends on my artist and if she's willing to draw a bunch of stuff. at the very least colored shirts shouldn't be a problem or other basic customisations like that.
I haven't done anymore work on the game, besides random encounters. But I have been developing Luigibot, which is now active in the IRC. So please, leave your suggestions for Luigibot here and I will do my best to add them
I picked up LunaLua today, missed the death counter, made my own.
So how does it work?
Using the player memory offsets supplied to me by Kevsoft (this whole script was done with some help from Kevsoft, mostly syntaxing and other misc. tweaks). I tried using PC+0x13C (which is player death state) but it appears to constantly be set to 0. So thus, I used the PC+0x13E (death animation timer) offset. This offset remains at zero until of course, you die. Then it increments up to about 200. That's not important though, what's important is the increase. I check to see if this value is > 0. If so, then set a boolean true so we don't keep incrementing and increment the death counter up one. The death count is saved to a DATA_WORLD variable that's on a per save basis.
The downside: the lunaworld.lua has to be implemented on a per world basis. This is sadly a limitation of LunaLua right now. But I tried to make it easy. In theory, you could copy and paste a lunaworld.lua with a single line into all of your episodes (unless they already have one) and you'd be good to go.
I've put some thought into this over the past couple of days, but I still need a few more statistics for it.
Enter newcomer:
LunaLua Module Manager
Essentially, the idea will work similar to the SMBX Episode Manager, except for the fact that it will instead manage LunaLua Modules.
So excuse me if I have the name wrong, but these are what I interpret LunaLua modules as:
The "API" scripts. But LunaLua API Script Manager doesn't sound as cool.
Because I understand that LunaLua can be run on not only Windows, but also now Linux with a bit of tweaking, I want to develop the tool using Gtk# and Mono.
Instead of having a seperate file for each script with its metadata, I want to add the metadata to the head of each file, for example in my death counter:
I plan to keep it strict as in __title is always the first line, __url is always the last. I believe this is all the metadata I'll need.
In addition, dependency management is something I plan to incorporate. For example, if my death counter depended on cinematX for some reason, I would want that to be downloaded if it doesn't exist.
On the server side, I want to incorporate the installation of the script, but also simple usage examples built into the manager for use.
This is where I need a few things:
I need to know: is this something anyone would use/contribute to?
I need help getting the metadata for these bundled scripts
I need help getting usage/examples for each of these scripts.
Please, let me know in this thread if you want to see this and I will begin the work.
Luigifan2010 wrote:
I need to know: is this something anyone would use/contribute to?
Well if it works good then I will bundle it up to the LunaLua download page.
I don't know C# (the programming language you will use, right?) a lot but I can help if you get into any issues.
Luigifan2010 wrote:
I need help getting the metadata for these bundled scripts
That's pretty dangours, because you export these fields to the global enviroment. If you want to keep it hidden and only use it local then add the "local" keyword for every field:
Reading the metadata isn't hard, I just need help getting the proper metadata for each script. Keeping them local would probably be better, you're right. That page helps alot btw, thank you!
In the meantime, I've just finished up work on my level timer.
Of course, this wouldn't be a dev thread without me detailing how I did it.
The most pain in the ass part was timing.
I first started with a simple frame counter overloading the onLoop() method. This counts the amount of frames. To my knowledge, SMBX updates its frames ~60 times per second (at least it tries to). So, if I divide the frames passed by 60 and get 1, then one second has passed.
From there, once I got all of the counting up bugs down, I set a few variables for level time, player variable, UI elements, where to draw them, etc. And then I'm good to go. One challenge was where to put it. I ultimately decided that below the 1-UP counter looked best, but then what if we had stars? I do a simple check to see if our star counter > 0 (that means we have stars and the star counter will be shown) and adjust the drawing position as necessary:
if((secondsleft - timeelapsed) <= 100) then
if(warnedPlayer == false) then
warnedPlayer = true;
playSFXSDL(resPath .. "\\warning.wav");
end
end
And of course finally, implementing the timer in your level is super simple because I've done all the hard work for you and I've implemented it as an API script. In your lunadll.lua, you just have to put this:
--This can go in your lunaworld.lua (if you wanted to set a constant time for each level) or in your
--lunadll.lua file if you wanted it on a per level basis.
--Usage is SIMILAR to the death counter, a little more is needed though
--We declare an instance of the timerApi, like the death counter
timerApi = loadAPI("leveltimer");
function onLoad()
--But now in the onLoad override, we set a few values
timerApi.setSecondsLeft(300);
--For one, we need to set the timer value. No greater than 999
timerApi.setTimerState(true);
--Then, we need to make sure we enable it. It's not enabled by default
end
Easy peasy. And yes, this works in conjunction with the death counter really well.