[ Login | Register ]

The Shining Source

Show Posts

Pages: [1] 2 3 4

1   Shining Force GameMaker Engine now on GitHub!
Hey guys, it's been a while.

For those of you who don't know me, years ago I started working on a Shining Force fan game using GameMaker. I spent the last year doing a total re-work of my engine, making things a bit more flexible, easier to work with, and adding a bunch of "Wish List" features. That said, I just finished porting the engine to the latest version of GameMaker (GMS2.3) and the project is now available via GitHub and my Google drive.

The engine itself is "Feature Complete" meaning you should have everything you need to create a complete SF game. Also included is the first 30 minutes of my game which should contain an example of everything so it can be reverse-engineered.

One final note. Just because I'm making the engine available, doesn't mean I'm totally done with it. I will still continue to update and improve it over time as well as make some tutorial videos for you guys (eventually). I just wanted to make it available since it's at a point where you can make a complete game with it.


Zipped GMS2 Project File:

GitHub Link:

GameMaker Studio 2 (It's free!):

2   Re: The Engine of Chaos (Gamemaker Shining Force Engine)
The answer is yes as always!

3   The Engine of Chaos (Gamemaker Shining Force Engine)
Hey all, it's Chaos here.

For those of you who don't know, I've been working on building a Shining style game of my own from the ground up for the past few years. I have finally reached a point in my project where, although there are still a few loose ends yet, the engine itself is basically feature complete. I have also spent the last few months porting the engine over from the old version of GameMaker to the newer GameMaker Studio.

In any case, I feel that the engine is finally complete and stable enough to share with everyone. Now before you go and download it, you should know that the engine itself is still a work in progress. There are a LOT of scripts and objects which is to be expected from a more complicated game such as SF, and as such it's easy to get lost. Especially since I don't have everything fully organized right now.

The other thing you should note is that I don't have any sort of tutorial for the engine just yet. I'll make a few tutorial videos down the line once I have everything organized, but for now, I've included the entirety of Chapter 1 of my game so that anyone who wanted to poke around and try to figure out how everything works can do so.

The download essentially contains my current project file (So you'll need GameMaker Studio to use it), and the 2 font files which you should install BEFORE opening the project for the first time. Otherwise it will try to load a non-existent font and default everything to Arial.

Anyways, have fun!


Here's a GameMaker Studio project file for a Shining Force game.
The engine is still in beta, so there may be bugs and organization problems
I don't have any tutorials right now, so you'll have to reverse engineer my Chapter 1 code stuff.
Install the fonts before you use it for the first time.

4   Re: The Legend of Syro (Shining Force Fan Game)
Updated Download link for LoS. This version fixes an issue that appears early on in the game.

5   Re: The Legend of Syro (Shining Force Fan Game)
Last I checked, there's a free version of GameMaker Studio 2 available on their website. As I mentioned earlier, it SHOULD contain GMS1 as well, but I'm not 100% sure as I haven't tested it myself.

Sometimes their free versions are the same thing, just with a "made with GameMaker" screen, other times there are resource limits. It usually depends on the version they are currently trying to promote lol.

6   Re: The Legend of Syro (Shining Force Fan Game)
Alright, I have 2 announcements today.

First off, I have a beta build available of the engine for anyone who has GameMaker 8.1 or GameMaker Studio. From what I hear, GameMaker Studio 2 comes with GameMaker Studio 1, so theoretically GMS2 users should be able to use it as well, but as I don't have it myself, I can't confirm that.

Some things to note before downloading the engine:
1. This is a beta build. Expect bugs, especially in the GMS version as I mainly use 8.1.
2. I don't have a tutorial or anything yet. This build is mainly for those with experience using GM so that I can get feedback on how to better optimize the codebase, and find bugs.
3. Both the 8.1 and GMS versions contain Chapter 1 of my game so you can reverse engineer it and see how it's done.
4. The GMS version has a small issue with Background Music that I haven't bothered fixing yet. 8.1 automatically stops the current BGM from playing if you start playing another. GMS requires you to manually shut off the current BGM before playing the next. Otherwise it starts playing both at the same time. I've yet to go through Chapter 1 and fix all the sound issues, but just be aware that they exist.
5. Map transitions need to be completely re-done for the GMS version as they removed the built in functions. The game still works as you'd expect, but the overworld transitions are instant rather than the SF2 style pan to the next room. I'll be updating those functions at a later date.

If you have access to GM 8.1 or GMS and want to take a look at the project file, shoot me a PM with your version of GameMaker and I'll send you the link.


I officially started working on Chapter 2.

I created a rough draft of the world map as well as some other smaller maps seen in chapter 2. The scripts for the first 2 cutscenes have also been written, though they still need a bit of a polish.

World Map:

7   Re: The Legend of Syro (Shining Force Fan Game)
Updated version with bug fixes.


8   Re: The Legend of Syro (Shining Force Fan Game)
New update for LoS: (Beta 1.0)
This was a huge quality of life update and much of the core code has been changed. If I could get a few people to test it out, that would be great! As always, let me know if you find any bugs.

This update contains all of Chapter 1, a 'Control Enemies' cheat, the 6vs66 challege map (Good luck! you're going to need it!), and my Debug Test room which contains some new spells for you to mess with (Quake and Summon). Chapter 1 aside, all other features are accessed via the 'Options' portion of the main menu.


9   Re: The Legend of Syro (Shining Force Fan Game)
Chapter 1 is now working again. Took a while to play through it and fix up all the bugs caused by re-coding half of the core code lol.

Oh right, the shop menu is completely done now too. Buy, sell, repair, deals, they all work. Items can also become damaged by using them in battle, break if you use them too much, drop from enemies, and get transferred to deals if a rare item drops that you don't have room for.

10   Re: The Legend of Syro (Shining Force Fan Game)
One down. 3 to go...

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

And NPC circuits have been added to the game.


12   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

13   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)

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

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

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

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

Pages: [1] 2 3 4

Powered by SMF 1.1.21 | SMF © 2013, Simple Machines