Thank you very much for all the support, I'm glad to see people are still eagerly waiting for this! But unfortunately, I have bad news... I tried very hard to have everything ready for today but unfortunately the SDK, in its current state, does not meet the quality I expected it to have by now. So I won't be releasing anything for the moment. I am truly sorry for letting you down on this. I know some of you had high hopes and I failed to met them.
However, as I have always said, I will keep on working on this and I will never stop until I'm entirely done! The current plan is to make the SDK as stable as possible and then release what I have made until now. It will not be complete, but it will at least prove that I have been working very very hard in the past months. :) I will do the same for the editor (which also fails at publishing properly through Visual Studio some some reasons).
Since I promised you something, I will at least offer you a sneak peak of the new editor. I know it's not a lot, but it's the best I can do for now. Note that the map (and every other maps you see on the left) are all imported directly from the ROM thanks to a modified version I made of the open source FF6LE. If possible, the feature will be implemented in the final version of the editor.
Once again, I'm sorry I was not able to deliver what I wanted to show you, but please don't lose hope because I'm still working very hard on this project (even right now as I am writing this!) and I will be able to finish this sooner or later! :)
Thank you so very much for all the amazing support you gave me through the years. I will be back soon! - Sasha
While it is unfortunate you could not meet your own deadline, do not worry. It is better to do something well than on time. Keep at it, Dargor, and I know that when you do finish it, it shall be grand.
Still working on stability issues, there's a crash when a battle ends but I'm pretty sure how I can fix this. Besides that I'm almost done implementing all the battle commands! I've recently implemented Control which was a lot of fun to do. I've also finally managed to have the glow effects for battle status working! The color changing function is done in C++ since doing it in pure Ruby is way to slow. The same feature can be used to replace colors for other effects such as Poison, Zombie, Berzerk, etc. (without the glow effect of course!) However, only a single color can glow, but you can replace as many colors (that do not have to glow) as you want. :)
The build is getting more and more stable, I hope I'll have something solid soon! - Dargor
I understand that, from what I know about the battle engine, getting those colors to work right is probably one of the most difficult things to implement (graphically at least). So kudos, Dargor, it sounds like you're making good progress on it!
I may not have posted in awhile, but rest assured, I'm still lurking around these parts. :-)
Thanks for continuing to work on the SDK. As PsychoKiller said, it's far better to have a quality product than to rush something out to meet a deadline. Part of me is also happy that the SDK is taking its time. The longer it takes, the more time I have to think of great game ideas for it. So far, I'm up to three. :-D
@KiddUniverse I felt that way to this morning so here's an update!
I've been working a lot on the editor lately and keeping on working on the game scripts too. The Actor editor is almost done. I try to complete 1 data editor a week (data being Skils, Battle Commands, Monsters, Items, etc.) but some might require more work so those could take up to two weeks to complete. Anyway, working on the Actor editor made me realize that actors in FF6 have only 2 parameters constantly change with levels, HP and MP. Unlike RPG Maker, FF6 parameters such as attack, defense, etc. only change with equipment and/or espers, so I had to redo some code to fix that.
Basically, there won't be any "curve" editor for Vigor, Speed, Stamina and Magic Defense. Only base values. Also, I got rid of the Class class (class-ception!). In the context of FF6, it's now irrelevant. I moved the properties into the Actor class. Besides that I got a couple of old annoying bus fixed. Nothing I've talked about earlier but it helps!
It's not a pretty big update but that's all I've got for now. I'll be back with more in a couple of weeks.
Hi, I created this account just to say that I am anxiously awaiting the final release of this, and have been following for years! I had to create the account just to let you know that I appreciate all the work you are doing. I'm sure for every 1 person that comments on this forum about your work, there are likely 10 more following along and just not commenting. So please keep up the good work! I recently downloaded your alpha release and it has me very excited to use the finished product.
A little update. I just finished implementing the slot system 10 minutes ago! It took me most of the day to make it work properly, way more than expected, but it works very well. Almost every aspects is easily customizable with a little intervention in the script editor. You can have as many slot wheels, slot symbols and combinations as you want. Each slot wheel is independent and can have its own array of slot symbols. Here's a little screenshot. :)
That's all for now, I'll try to bring more news soon! - Dargor
Time for another update! *WARNING: THIS IS GOING TO BE A LONG AND TECHNICAL READ!*
I'm on fire today! I spent the day implementing almost all of the remaining battle commands (SwordTech, Throw, Morph and Revert). Only Leap is missing, I really don't know how I will be implementing it... But that's not the point! While implementing these commands, I have faced a couple of interesting problems and challenges and today I will be talking about that.
1) Throw By default, in RPG Maker, there are 3 item types; Items, Weapons and Armors. Technically, in the context of the Throw command, any items can be thrown at a target as long as the item's throw flag is set to True. However, while looking into the algorithm, I noticed that the battle power used to calculate the damage is the item's battle power. The problem was that only Weapons had this property. This lead to a crash when trying to thrown anything that was not a weapon. So now, every items in the game have the battle power property, set by default to 0. If you want to throw a hat, you can!
2) Morph and Revert These are very specific commands that only Terra can use. If I was making a game and not an SDK & editor, I would have hard-coded the behavior of these commands. But what if YOU want the Morph command to be used by anybody? You don't want Strago to turn into Esper Terra if he was able to use this command, would you? But handling such conditions that would alter the effects of the command would be really hard to do without directly programming it... Or using events!
Some of you might remember that some time ago I talked about using the event system more than just in maps and battles. The event system has now replaced the Enemy Behavior editor; it's possible to script an enemy's behavior in the event editor. So I tried to do the same thing but with states! States now have 2 event types, State_Added ans State_Removed. When a state is added to a battler, it triggers a common event that you can specify in the State editor (just like you can do with items).
So in a nutshell, the Morph command actually makes a battler cast the Morph skill, which inflicts the Morph status on the target. With State Events, as soon as this state is added on a target, it fires a custom event that looks like this:
This common event simply changes Terra's character graphic and replaces its Morph command by the Revert command. The Revert common event does the opposite and triggers when the Morph state is removed.
This system could be implemented to anything in the game. For example, you want an even to trigger when you sell Atma Weapon or you want an event to trigger when you are fully equipped with Imp stuff, well with this system you can! More power to the user!
3) SwordTech The command itself was pretty easy to implement. The interesting part was, again, how can it be easily customizable? Having more numbers in the SwordTech window was not a problem, the real challenge was how to make it so the progress bar can adapt to different sizes. Originally, progress bars like that or the ATB had their own images and behaviors and it was not possible in the code to simply say:
"create a progress bar with this size and monitor these values".
Everything was hard-coded. But now I have created a unified system that ca do that. If you are a programmer and want to add lets say a Limit Break bar, you can easily do it without having to create a new class and a new image file.
In the screenshot below, I simply tell the command to show only 4 SwordTech skills.
You can have as many SwordTechs as you want as you wan,t but more than 9 will cause the second digit to be hidden by the next number on its right. So I don't recommend more than 9.
Well, I think I said everything I had to say! I'll be back with more soon. - Dargor
I spent the last few days trying to improve and finalize the character animation system and I wanted to share my progress with you. This is not final yet and suggestions are more than welcome!
First of all, what is the character animation system? Well it's pretty self-explanatory; It is the system that defines how the characters are animated. Note that in the context of the FF6SDK, a monster is not a "character", unless you specify that this monster actually acts like an actor. Kefka is made like that in a couple of situations.
I have created 2 new classes. The AnimationSet and AnimationSettings. The AnimationSettings class is a set of rules that defines how an animation is played. In this class you can customize things like the animation id, the way it loops, the start frame, etc. The AnimationSet class is a big container. It contains animation settings for all the basic animations and also for user created/custom animations.
The way basic animations are triggered is hard coded. In the list below you can find the details on these animations and how they are triggered. The custom animations are there to give you more freedom over this system. You can add as many custom animations in an AnimationSet as you want, and then later on in a map or in battle use the "Play Animation" event command to play your own custom animation! Or any basic animation if you wish so.
* Map * - Idle Down: Animation when the character is facing down and not moving. - Idle Left: Animation when the character is facing left and not moving. - Idle Right: Animation when the character is facing right and not moving. - Idle Up: Animation when the character is facing down up not moving. - Walk Down: Animation when the character is facing down and is moving. - Walk Left: Animation when the character is facing left and is moving. - Walk Right: Animation when the character is facing right and is moving. - Walk Up: Animation when the character is facing up and is moving.
* Battle * - Idle: Plays when nothing is going on with this character - Weak: Plays when the character's HP < MaxHP / 8 - Dead: Plays when the "Wounded" state is applied. - Hit: Plays when the character is taking damage. - Hand Left: The Left Hand Attack animation, plays when the actor is using the weapon from its left hand. - Hand Right: The Right Hand Attack animation, plays when the actor is using the weapon from its right hand. - Action Waiting: Plays when the pending action is not yet ready to be executed. - Action Starting: Plays as soon as the pending action is ready to be executed. Think of this as the intro animation. - Action Executing: Plays as soon as the "Action Starting" animation is done playing. This is where the character actually performs the action. - Action Ending: Plays as soon as the "Action Executing" animation AND all special FX such as spell FXs are done playing. this is the outro animation. - Escaping: Plays when an actor is trying to escape - Victory: The victory animation.
In the actor editor, you can specify which actor is using which AnimationSet. Usually you will want the playable characters to share the same AnimationSet but if you want an actor to have lets say a different Idle Down animation, you can.
These basic animations can all be overridden by different things such as Items, Skills, States and Battle Commands. Most of the time, the override happens in battle.
Step 1) The script will check if the state with the highest priority has been told to overwrite a basic animation. If that's the case, it will. Step 2) If not, then the script will check if the current action (Skill or Item) has been told to overwrite a basic animation. If that's the case, it will. Step 3) If not, then the script will check if the battle command being used has been told to overwrite a basic animation. If that's the case, it will. Step 4) If not, then the script will fall back to the character's default animations in its AnimationSet.
The overrides will also have a priority property. Lets say you have a state and a skill that both change the "Action Waiting" but you want to give priority to the "Action Waiting" animation of the skill you're trying to cast. Then you could give the state animation a lower priority and your skill animation a higher priority. The script will choose the one with the highest priority.
I'm also trying to figure out how to make this work for vehicles, but vehicles are not my priority now so it will wait a little while.
Now I think I've said enough for today, see you later! :) - Dargor
Sounds great! I don't know if you have an animation for it yet, but don't forget about how every battle begins with certain characters "jumping" into battle. For example, when most battles start, Relm waves at the screen and then "jumps" to her place in the lineup as the battle begins. I think Mog does something similar, but I could be wrong.
Keep up the good work. I look forward to the first beta!
Thanks for the reminder! Yes I took that into consideration, I call that the battle intro animation. Monster also have that but executed differently; Dropping from the ceiling, coming out of water, etc. I haven't implemented it yet since I'm not entirely sure under what circumstances these animations are triggered. It doesn't seem to happen all the time.
I'm here tonight with more news, and this time it should be a little more exiting than the last few posts! I have already mentionned that I was working on a map exporter that would convert maps from the FF6 ROM to RPGXP/FF6SDK format. Well, I am now ready to share it with you guys! Before I start explaining the details, here's a screenshot and the download link!
Now, allow me to tell you a bit more about this application.
First of all, this is a modified version of the FF3LE, Version 20090101_193500 made by Omega45889 & giangurgolo in 2008-2009. So most of the credits goes to them and everybody else in the credits section of the application. Hello Imzogelmo! :) These guys are super awesome, and they gladly offered the source code to the world.
The exporter you will find in this application can export maps, tilesets and tileset images to RPG Maker XP and the FF6SDK. The name of the exported files is "MapXXX" where XXX is the ID of the exported map. The exported data for a given map share the same name, meaning that if you export map 16, then your Map, Tileset and Tileset image will be named Map016.
To export maps, you simply need to load a ROM, open the level editor and then go to File > Export > To FF6 SDK... Clicking this button will open the exporter window. In here you have to browse for a project. By default it will look for a .ff6proj but you can also choose to open a RPGXP project file (*.rxproj). For the moment you have to choose *.rxproj.
Then, You can select the tileset format. For now choose RPG Maker XP. This will convert the tileset image to a format that is compliant with RPG Maker XP. Later when the SDK editor will be released, you could choose the Final Fantasy VI Format, which is basically a scaled up version of the tilesets found in the ROM.
Right below you have the option to choose which maps to export. It is always a range of maps, but try not to export to many maps at the same time as the process can be very long. The more maps you export, the longer it will take.
After that you have the optional ID Offset. Changing this value will offset the ID of the exported maps and tilesets with the value you have selected. This is useful if you want to export the maps in an existing project and you don't want to overwrite the existing data.
Finally, click the Export! button and let the exporter work its magic!
NOTE: This the first version and there are a couple of bugs, most of them will be fixed eventually. - World Maps (ID 0 to 2) are not exported properly. You can export them and have the right tilesets, but the tilemap will be filled with tile ID 0. - Tile layering issues. Some tiles that should be on layer 1 might appear on layer 2 and vice & versa. This is somewhat normal for FF6, but not for RPG Maker. - Some tile priorities are not exported properly. They should appear above the characters but are staying below. - Closing the application, reopening it and reexporting to the same project will cause the application to crash. Something about the Ruby Marshal version...
There are a few more minor bugs and probably others that I'm not aware of, but this version should be good enough for now.
Try it out and tell me what you think about it! - Dargor
It didn't took me much time to figure out how to fix some of the issues mentioned above. Here's a more complete list of issues as of v1.0 and their resolution status.
Missing Features - [Will not Fix] Unable to export animated tiles. Tiles that should be animated will be static. - [In Progress] Does not export tile directional passages properly. - [In Progress] Does not export tile "bush" property (semi-transparency for forests, etc.). - [Not Started] Does not export tile "counter" property. I'm not even sure there is such a thing in FF6. - [In Progress] Does not export tilemap for World Maps (WoB, WoR, Serpent Trench)
Known Bugs - [FIXED!] Data ID Offset not applied. - [FIXED!] Tile layering issues. Some tiles are not drawn on the right layer and/or do not have the right priority in the tileset. - [FIXED!] Closing and reopening the exporter window will result in a crash. - [Not Started] Closing the application, reopening it and reexporting to the same project will result in a crash. Something to do with Ruby Marshal version.
This is amazing progress, Dargor! And I agree with KiddUniverse; I actually thought it was a snapshot of FFVI! As for the battle animations, I think they happen randomly. I've noticed that when they do happen, I'm fighting monsters that are a little less common than others. But that could be just a coincidence.
Good luck Dargor, can't wait for more updates!
Oh, and thanks for sharing the updates with us, and the screenshots! :D
Another update regarding the exporter; I just can't let go of it. :)
It is now able to export the world maps, but more importantly, it can also export the tiles passage flags! The exported maps are becoming more and more accurate. And by digging deeper into the source code, I'm also pretty sure that I could export more than just the tilemaps and tilesets.
Here's a list of things I will try to export in the next few days: - Map Name: At least try to give a meaningful name to the exported map - Battle Background: Set the right battle background ID to use by default in the exported map. - Treasure Events: Any GP jars, item chests, monster in a box, etc. - Transfer Events: Will transfer you to the right position to the right map. - I could also try to assign music to the map but that would required the songs to have an ID in their filename like "012-BattleTheme.ogg", and then telling the map to use song ID 012.
You can expect another version of the exporter to be released soon. :) (... I guess i'm a little crazy!) - Dargror
@rey meustrus, Hades714: thank you very very much! :)
@Amy: I don't mind with it staying in Programming. It does make sense since it's a Programming project. :) Completed Games would not make sense simply because it's not completed yet. If you see any benefits in having it in the Projects forum then sure, why not. Thanks for the offer!
Version 1.4 fixed many issues and introduces new features. Here's the complete feature list: - Exports both World and Standard maps along with their tilesets. - Exported maps have more significant names. They have the same name as in the FF3LE. - Exported maps now have the right size; Fixed a bug with them always exporting with a size of 256x256. - Exports tile priorities and directional passage more accurately. - Exports both Short and Long Exits. This feature will create events with a Transfer Player command in it, leading you to the right maps. - Exports Treasures. This feature will create different events depending on the Treasure Type. It exports Item Treasures, GP Treasures and Monster-in-a-box. - Exports dummy NPCs and other Events. This feature exports events containing only a Comment specifying the more complex event offset. It's still very incomplete and will most likely remain like that for a while.
Just so you know, I tried exporting all the 415 maps with all their events and the process took almost exactly an hour on my PC. Before you do the same, make sure you have something else to entertain you! Also, in the screenshot below you can see more export options but these are still in progress and/or not available for RPG Maker XP. Oh and don't mind the 114%, a little calculation bug. :)
This will probably be the last exporter update before I release the Editor. Except maybe for a few bug-fix. It already does a lot more that what I originally expected. Later, I will try to integrate it straight into the SDK Editor and it will come with more features. That's why there's a "Final Fantasy 6" export format. :)
Note that at the moment, this exporter will only export maps and tilesets data, nothing more. But it should be good enough for now!
Hades714's comment is what I'm thinking right now, so I'm tempted to just repeat his comment.
Your work is very impressive Dargor, especially your level of dedication to the project. I cannot wait to see this finished, mostly because it will be an amazing project! I am here to wish you luck yet again though, as that's all I can offer.
Thank you very much MagitekElite! It is always appreciated. :)
Here's a small update on the status of the Final Fantasy VI SDK Editor: (✔) Basic Map Editor (✔) Basic Scripting Tool (Event editor) (✔) Ruby Code Editor
All of these features have been implemented with their basic functionalities. And that means that I am now 100% independent from RPG Maker XP! :D Well, lets say 95%. I'll reserve 5% for the RGSS Player and Library. :)
As of now, my goal is to refrain from opening RPG Maker as much as possible, in favor of my own editor. Doing this will ensure that if something is not working, I won't have much choice but to fix it! I'll be posting more about the editor in the next few days.
Hey Dargor, if you'd like some help with that 5% for the RGSS Player and Library, I've developed a wrapper to play RGSS games with GOSU. It doesn't perform well in some situations (particularly when handling text) and some features are missing (like unified MIDI support and transitions). But I'd be glad to provide it for you. You could even work around some of the imperfections by changing the way the game code works, or you could simply use the wrapper as a base to understand GOSU and gradually convert the code to use GOSU primarily with some of what I've written remaining as helper functions. Tell me if you're interested and I'll send you the code.
I am kinda lost here. Am I missing the link to the project or something. I go to the main website for this and the latest update I see there is back in like 2011? sorry if I am missing the obvious. thank you for your attention to this cause I would love to be able to use this if possible.