[ Login | Register ]

The Shining Source

« previous next »
Pages: 1 2 3 [4] 5 Print
The Legend of Syro (Shining Force Fan Game)   (Read 12897 times)
Old Post November 04, 2017, 01:51:10 am
#46
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Today was a productive day. Town is now linked with the overworld / battle maps. I started work on fleshing out the town with searchables and NPCs, however the NPC's don't have any dialogue yet. I also added 8 '1 way door' objects to the game which I needed for ledges. And the final thing that was added today was the GameMaster cheat to the options menu. Essentially it allows you to control every unit on the map. I may make it so that it only becomes available if you have a save file from the end of the demo, but I'm not sure yet.



Old Post November 22, 2017, 05:12:23 am
#47
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
2100 lines of code into this 4 page long final cutscene. Halfway there!

Oh right, we also have a jump animation as well as overworld fireball and muddle animations.


Old Post November 24, 2017, 02:52:53 pm
#48
Ty
Administrator
Shining Sideburns *

Posts: 823

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Sounds like you're making some really good progress! Cutscenes are always a pain to build, especially once they get more complicated. Looking forward to seeing the finished result!


Old Post November 24, 2017, 06:56:34 pm
#49
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Chapter 1 is now available!

https://drive.google.com/file/d/1qA3gg_UN5AWZcL_9xkSDk3AniOnNY4Hd/view?usp=sharing

@Ty
Yeah... Cutscenes are a tedious pain lol. Especially this one (And I'm sure you'll see why when you play the demo).

Edit:
Updated the link to fix a few issues. Namely a crash if Jamie isn't with the party later on. The version is now 1.6.1


Old Post November 27, 2017, 07:52:33 pm
#50
Ty
Administrator
Shining Sideburns *

Posts: 823

Logged
Re: The Legend of Syro (Shining Force Fan Game)
I posted about the project one the homepage: The Legend of Syro – Chapter 1 released.

I'm really impressed with everything you've managed to squeeze in so far, it really feels like a Shining Force game! The cutscenes are great, and I love the little head shakes, shrugs and animations. The battles I've played so far were fun and just the right size and difficulty. The only part that caught me out initially was throwing everything at the viking archer only to find out I had to beat everyone. But I tend to do that a lot so maybe it's just me Smiley

You've done an amazing job!


Old Post November 30, 2017, 03:53:42 pm
#51
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Thanks for the shoutout. I Appreciate it!

It may be some time before we see Chapter 2 as I want to polish up some things and correct a bunch of minor issues that I've seen while making Chapter 1. I'm planning on taking most, if not every, remaining feature off of the checklist for the next update so hopefully the engine will be 'feature complete' soon.


Old Post December 03, 2017, 02:40:11 am
#52
Shining Star *

Posts: 55

Logged


Old Post December 12, 2017, 04:18:49 pm
#53
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
-Fixed a bug with level schemes. Darn typos lol.

The enemy death trigger is now added. Now if a certain enemy (or group of enemies) is wiped out, that can cause an update in AI for other units, cause currently hidden units to instantly reveal themselves, cause units to change teams or take poison damage, and so much more. Tyadran also requested the ability for relative spawning. In other words, if a slime mob dies, it can be split into several smaller slimes around that area.


Old Post December 15, 2017, 02:54:31 pm
#54
Ty
Administrator
Shining Sideburns *

Posts: 823

Logged
Re: The Legend of Syro (Shining Force Fan Game)
I like the relative spawning idea! Do the AI units have different goals? I noticed in the demo (the ship battle in particular) that certain enemies head to specific spots, so I'm guessing there's an SF2 style setup. In the past I've had AI just target the most powerful/most likely to die character, but that always seems a bit unnatural.


Old Post December 15, 2017, 04:41:47 pm
#55
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
AI works as follows:

First we have a switch for battle state which is updated based on the location of the player. If the player is near the start of the map, battle state is 1, and as they progress further, it is updated to a higher number. This is useful as it allows you to change a unit's AI based on player location. In the ship battle for example, some of their AI is set to move to a specific location until the player gets close enough to that area. Once the region updater gets triggered, so does their AI.

Within that switch, we have yet another switch which tests for a specific unit (so we can give each their own AI). Each unit has an ID which tells the game what type of monster they are, and a SubID which is used to tell individual groups or instances apart from one another. And finally, we get to the bit about how AI works.

I wrote a bunch of different AI action scripts that tell the character what to do. These are 1 liners that you can call to have a unit perform that action. For example, FindAttackableTarget will cause the enemy to attack a target in range, and AI_DoNothing will end that character's turn. Now, all of these scripts are basically 'attempts' for that character. In other words, if you call 'FindAttackableTarget' you're telling the character 'try to attack a target.' If that fails, it attempts the next action in the list. Here's an example:

AIDone = FindEnemyItemTarget(Character,14,'Normal',25,AIDone);//try to use a medical herb
AIDone = FindEnemyItemTarget(Character,15,'Normal',25,AIDone);//try to use a shining ball
AIDone = FindEnemyMagicTarget(Character,1,1,'Normal',25,AIDone);//try to cast heal level 1
AIDone = FindEnemyMagicTarget(Character,2,1,'Normal',25,AIDone);//try to cast blaze level 1
AIDone = FindAttackableTarget(Character,'Normal',AIDone);//attack target (if there is one in range)
AIDone = AI_MoveTowardsAttackableTarget(Character,10,15,AIDone);//walk closer to target

So this script here would cause the character to first attempt to use a medical herb on itself or an ally. If it cant find a target, or no one is in need of healing, then it tries the next thing on the list. Again, it tries to use a shining ball, if that fails, then it continues down the list and so on until something checks out.

Now to explain the arguments. First off, AIDone is used to quickly exit a script should one succeed. If a script succeeds, AIDone is set to true and at the start of each one of those scripts, if AIDone is true, then it exits as it already found an action to perform. Character is pretty much self explanatory, it's the guy performing the action.

Items:
FindEnemyItemTarget(Character,Item,ThreatScript,MinThreat,AIDone)
Item is the ID of the item that's being used. 14 is the ID for Medical Herb, 15 for Shining Ball, ect
ThreatScript is something that gives the user more control on target selection. Right now the only script I have is the 'Normal' one which basically picks the target that can either be dealt the most damage, or one that can be killed. Should you wish to make more advanced decisions like 'always go for the healer' or 'try to stand on 30%LE tiles' you can create your own threat script.
MinThreat is the minimum amount of threat that is needed for the script to succeed. So in the case of healing for example, you don't want them to cast heal or use a medical herb on someone who is only down 1 HP.

Magic:
FindEnemyMagicTarget(Character,SpellSlot,SpellLevel,ThreatScript,MinThreat,AIDone)
Magic works the same way as items. The only difference here is 'SpellSlot' which determines what spell slot they are casting from, and SpellLevel which determines what level it should be cast at.

Generic:
AI_MoveTowardsAttackableTarget(Character,Speed,MaxSearchDistance,AIDone)
In the case of NOT being able to act on a target, you have 2 other variables to worry about.
Speed is how fast you want that unit to move towards their destination. (in tiles)
MaxSearchDistance is how far from the unit are they going to search for a target. In other words, if this value is set to 15 and all targets are 16 or more spaces away, this script wont run.

===================

And this just scratches the surface with what you can do with AI. AI is one of those things that most people are concerned about when it comes to how it works and how flexible it is since that's the main part of any SF game. As such, I put in as much work as I could towards it to make it as easy to use and as flexible as possible.

So to answer your question, yes. AI units can have different goals.  Wink



Old Post December 17, 2017, 01:54:56 am
#56
Ty
Administrator
Shining Sideburns *

Posts: 823

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Wow, thanks for the detailed answer! There's a lot of things there I hadn't considered before, so it's given me a lot to think about.


New Post December 22, 2017, 08:16:23 pm
#57
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Merry Christmas everyone!
I added a nightmare challenge battle to the game which puts you up against all 66 enemies from chapter 1 all in a single battle royale. You can play this battle by setting 'Challenge Mode' to true in the options menu before starting a new game.

Best of luck! (You're going to need it)

(Version 1.6.2)
https://drive.google.com/file/d/1gJQsh2xI_R8HwE_QMU-tunq1SyP4e76H/view?usp=sharing


New Post February 01, 2018, 03:53:39 pm
#58
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Hey guys it's been a while since I posted an update. I've been working on code cleanup lately so I don't have too many new features to share. The main menu was re-done to give challenges, cheats, and game settings their own tabs to avoid clutter. There is also a placeholder for achievements as well.

Regarding Cheats:
Using them will disable achievements (when those are added) and challenges wont be marked as 'completed' if you beat them while using cheats.

Regarding Challenges:
These wont have anything to do with the main story and are there to give the hardcore players a true challenge. Your team, items, and levels are pre-determined and based on the challenge you face. Egressing cannot be used to farm for Exp and will simply restart the challenge.

There's also been a ton of elemental damages and resistances added to the game as well as the buff and debuff spells. Debuff effects also have individual resistance variables, so if you wanted to make someone immune to sleep, but not muddle, you can do so. Oh right, and as per usual, weapons, items, and character stats all have access to these variables Cheesy

I also re-did the camera system as GameMaker's default camera was giving me all kinds of problems. But on the bright side, we now have an option for both SF1 (Player is always on the center of the screen) and SF2 (Player can walk around a bit before the camera starts following) camera types. Oh and screen shake. That's working now too!

Characters now have an independent variable for the sprite they are using, so that's no longer tied to their ID and class. In other words, Max can now have that chicken form from SF1 lol.

Spells got an override script. So if a certain spell requires some custom tomfoolery, you can add that without breaking the main script.

AI controlled units now have an additional AI Trigger variable which can be manually set throughout the battle. Now they can look at both battle state (what region the player is in) and this variable as well. This makes things like 'oh, my friend died, I should probably run away now, or avenge his death' possible.

'Hit Chance' variable was added in anticipation for the addition of the muddle spell. (Muddle will be coming soonish...)

Movement Type can now be overwritten by weapons or items. Ever wanted a ring that switches your movement type to flying? Cheesy

Counter attack damage was fixed. You now do 50% damage as opposed to the 25% that it was set to prior.

================

Much more stuff to come though. I've got a few more things left on the To-do list yet, but hopefully I'll be feature complete within the next month or two.

================

Oh and if anyone's interested, a few of us who are working on fan games and rom hacks have set up a discord channel to chat, share our work, and bounce ideas back and forth. If you want to swing by and say hi, you're more than welcome to!

Discord: https://discord.gg/cHFzAed



New Post February 13, 2018, 03:31:49 pm
#59
Ty
Administrator
Shining Sideburns *

Posts: 823

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Fantastic work as always! Want me to put a link to the discord on the sidebar?


New Post February 16, 2018, 11:43:09 pm
#60
Shining Star *

Posts: 55

Logged
Re: The Legend of Syro (Shining Force Fan Game)
Yeah you can put the discord link on the sidebar if you want.

In other news...

New Spells not seen in Shining Force before...
https://youtu.be/SVc8xFH3tMk

And NPC circuits have been added to the game.
https://youtu.be/yvopi1coh8Y

Enjoy!


Pages: 1 2 3 [4] 5 Print 
« previous next »
Jump to:  

Powered by SMF 1.1.21 | SMF © 2013, Simple Machines