Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Final Fantasy VI SDK - Going Social!

Hello Everybody!

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. :smile:
 
Here's a little update:

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!
 
Dargor,

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

Best of luck.

-- CB
 
Hello guys!

@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.

Take care!
- Dargor
 
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.
 
Hello everbody!

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. :)

Sdkimg.png


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:
Sdkimg.png

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.
Sdkimg.png


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
 
Hello!

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
 
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!

— CB
 
@clockworkbutterfly

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.

Have a good day!
- Dargor
 
Hello again!

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!

Download: http://www.mediafire.com/?tipk7rvf619cm11

FF6_Map_Exporter.png


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
 
Me again,

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.

That's it for now!
- Dargor
 
Ugh, I missed so much!

This is amazing progress, Dargor! And I agree with KiddUniverse; I actually thought it was a snapshot of FFVI! :grin: 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
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top