I made a breakthrough the other day on some of the background and plot details for a significant dramatic turn in my RPG that occurs later in the game, past where I've done most of my work so far. I got some great dialogue written down for a confrontation that I'm really excited about. I wish I could finish working on this game already so I could show it to you. But it's a behemoth of a project. I'm finding that, as much as I can piece together some pretty neat maps, it's such a task and a chore, and more often than not it's the thing that's holding me back from making faster progress on my game. Simply put, I wish I could hire a mapper - somebody to take leads from me, but with a talent (and more of an enjoyment, rather than dread), for putting together game worlds of this sort. But, there's no point in wasting time complaining - I just gotta get it done, like it or not.
And on that subject, I've been thinking about world maps lately. I really want to put my world map together. I have a pretty strong idea of everything I want to be on there (even if I haven't mapped out the interiors of all the towns and dungeons yet), but it's such a colossal task, putting a whole world together, tile by tile. I can't decide whether it'd be better to work top-down as my instinct suggests (i.e., get a general idea of where everything sits and then fill in the details), or from the bottom up, piecing some tiles together here and there and seeing where they end up fitting together (not really my style). But one of the problems is that I'm not 100% sure where I want everything to go, especially in relation to everything else. I've sketched out the different areas - call them "countries" - on paper several times, and shuffled them around. But some of the game details, like how you get from A to B, and when you need to have access to C, will affect where things should be placed, and I guess I'm still not 100% confident about all of that.
Still, I've come to the realization that you can't expect yourself to be good at something the first time you've ever done it. And mapping is one thing, but creating world maps provides its own unique challenges. So I've decided that I should start out by practicing putting some world maps together, using some of the maps from the very games that serve as my primary inspiration (i.e., classic, 2D VG RPGs such as Final Fantasy and Dragon Quest/Warrior). At this point, it's just a copy job, so I'm not getting any practice using my creativity and imagination, but it's like starting out learning guitar by playing other people's songs. And copying huge 256 tile square maps is a daunting task (although I find it strangely relaxing - I could go in a trance and map like this for hours). But I think that digging in and getting my hands into the nitty gritty, examining these maps literally tile by tile, and seeing how the experts do it, will help me to build something of a muscle memory, and hone my instincts on what works well and what doesn't. So that when it comes time to design my own world map, it won't feel so much like I'm jumping out of a plane without a parachute.
So here's what I've completed so far, using RPG Maker MV's native tiles. Fans of the real old school RPGs will surely recognize them (hint, they're from games I've already reviewed right here on this blog). I haven't decided yet whether I'm going to do more or leave it at that (it takes a lot of time, but then I've drawn lots of inspiration from the SNES-era Final Fantasies, and they have some great world maps - especially FFV). It's tempting to just copy these games start to finish, because I love them so much, but while that would be good practice for putting an RPG together, it would be kind of pointless, as those games already exist... Ah well. here's this:
Can you name these worlds? :-3
Friday, September 22, 2017
World Mapping
Wednesday, January 18, 2017
Positive Progress
In keeping with the positive spirit of progress, here are a few more things I've accomplished on my RPG lately:
1) I think I've filled out one of my character's skill lists - with a full window of 16 skills - which is a big (albeit early) step toward conceptual completion (and it's pushing me toward completing the other characters' skill lists). I've also pulled off a neat little trick in the course of implementing some of those skills - using states, and a plugin to change the default Attack command that appears in battle. I'm aiming for some amount of variety across the seven playable characters in my game - I don't want them all to feel the same. I haven't worked out all the details yet - because they're narrative characters (like in FFIV) and not figureheads (like in FFI) - but I'm hoping to give the player some choice in the ultimate lineup of their final team.
This particular character is an archer, and I don't want to spoil all the surprises, but her fighting style is heavily influenced by the Ranger profession in Guild Wars. I've successfully implemented a couple of "stances", and a few "preparations" (e.g., poison arrow, fire arrow). Instead of one-off special attacks, these are technically states that can be applied to temporarily modify this character's regular attack for a limited number of turns. It's a fun way to fight, and it gives her a unique playing style that hasn't been duplicated by any other characters in my game so far.
2) As irreversibly enmeshed into the MV iteration of RPG Maker as I am now, I could still rant at length about the things that irritate me about it, mostly tied to its dedication to mobile gaming - which requires streaming resources, and often results in sloppy gameplay, with the tradeoff of having to live with either a lot of jerkiness or loading screens. Thankfully, the Preload Manager + WebAudioCache combination of plugins has solved (to an acceptable extent) the BGM Delay issue I was having; although there is still no (and will probably never be) a solution to the not-so-"instantaneous" map transfer delay problem that's been particularly hounding progress on my other game, Ascension.
But I was becoming frustrated with even the regular screen fade transitions, when I loaded up VX Ace, and having used MV exclusively for a long time, the consistency and reliability of the smooth transitions in the older program absolutely amazed me. After some testing, I discovered that out of the box, MV's post-transition screen fadeins are often jerky, while using the Preload Manager (which is mandatory for syncing the BGMs in your game) causes the transition to pause a little bit between maps while the game does its loady thing. But what's annoying is that the game doesn't actually pause, it just hangs for about half a second, and then, as if trying to catch up, completely skips the fadein more often than not.
Perhaps a casual player wouldn't even notice it, but as a developer and lead tester, it began to drive me crazy. Is it too much to ask for a program that doesn't look buggy when you play it? Anyway, I found a workaround, even if it meant redoing all the map transfers in my game. In case you're interested, all you have to do is give up on the fade that's built in to the Map Transfer event command. Use a manual Fadeout before the transfer, and a Fadein after, but stick a 30 frame Wait command between the transfer and the Fadein to give the game time to catch up, before it moves on to the fade. Give it a try. The result is consistent and reliable fades. As somebody with OCD, it makes me much happier.
3) In my game, I have two skills planned that are based on the Warp and Exit spells from the first Final Fantasy. The difference between them is that Warp will send you back one floor, while Exit will send you all the way to the start of the dungeon you're in. They're good "quick escape" skills, also useful as a way to transport the player out of a dungeon once it's completed, without having to backtrack all the way to the entrance, and in lieu of thematically-appropriate dungeon-end teleports (as encountered in some dungeons in Final Fantasy). And, in the spirit of Dragon Quest's inclusion of skills that are useful outside of battle, I also want them available as shortcuts for use in towns and potentially on the World Map as well.
The Exit skill was easy enough to implement, by storing map and location info in variables every time the player enters (or exits) a town or dungeon. The Warp skill was a little trickier, however, as it needs to trigger on each floor, and I also want the player to be able to "stack" warps to travel multiple floors (if they have the resource points) - so the game needs to remember where the player has been and in what order. And rather than allocating a specific number of variables, I figured it would be more versatile to resort to storing an array inside a game variable, like I did in the course of implementing my Wardrobe Manager - although it involves more trial and error since I have to access the contents of the variable using script calls. But it's working!
4) On the subject of clever implementations involving skills useful outside of battle (although these ones are directly related to battle), I've just completed another challenge. One of the foundational skills in my game is a skill called Hunt, which gives the player the ability to force a random encounter (provided one is possible on whatever tile the player is standing on). This may not sound like the funnest skill, but I intend for it to dovetail with my game's encounter system - I'm just not sure exactly how...yet. In any case, it can be used to save the ambitious player time and embarrassment walking around in circles, should they want to fight enemies to boost their characters' levels, or collect special item drops.
Anyway, I have a couple of other skills planned that are in that family, one of which is directly inspired by the Repel skill from Dragon Quest, which reduces the random encounter rate (in that game, primarily to avoid wasting time fighting enemies below your level). But the one I'm most excited about is the one I've just programmed, which is a "Bait" skill. In many Final Fantasys, there are certain rare enemy encounters - especially in late-game dungeons - that promise valuable rewards for the persistent adventurer. The prestige awarded by these encounters (going all the way back to WarMech, if not earlier) makes them alluring, but I've never been fond of having to play the odds.
To wit, the best player could walk up and down the bridge in Sky Castle, battle 60 troops of enemies, and not encounter WarMech once, all on account of bad luck. This might be justifiable in a multiplayer online game, where you have a sort of players' economy, but at a certain point you have to just throw your hands up and say, "come on, already!" That's why, although I think these encounters should still be earned (which is why the Bait skill will be a late-game acquisition), I think there should be a point where the game says, "ok, you've earned this." And that's where Bait comes in.
Bait works just like Hunt - by forcefully initiating a random encounter - but not before performing a tricky bit of code math. I already had to add in some new functions related to the game's back-end encounter variables for the Hunt skill, in order to determine when the Hunt skill should be able to be used. But for Bait, I went even further, by taking the list of applicable encounters on any given tile (as determined by the developer on the map properties) and reversing the probability "weights" of each troop, so that when you initiate the next encounter, the common enemies will become rare, and the rare enemies will become common. You'll have to excuse me if I think that's just brilliant! And it works! Hey, I'm pretty excited.
(Now, if I could just pick up the slack in the mapping department...)
1) I think I've filled out one of my character's skill lists - with a full window of 16 skills - which is a big (albeit early) step toward conceptual completion (and it's pushing me toward completing the other characters' skill lists). I've also pulled off a neat little trick in the course of implementing some of those skills - using states, and a plugin to change the default Attack command that appears in battle. I'm aiming for some amount of variety across the seven playable characters in my game - I don't want them all to feel the same. I haven't worked out all the details yet - because they're narrative characters (like in FFIV) and not figureheads (like in FFI) - but I'm hoping to give the player some choice in the ultimate lineup of their final team.
This particular character is an archer, and I don't want to spoil all the surprises, but her fighting style is heavily influenced by the Ranger profession in Guild Wars. I've successfully implemented a couple of "stances", and a few "preparations" (e.g., poison arrow, fire arrow). Instead of one-off special attacks, these are technically states that can be applied to temporarily modify this character's regular attack for a limited number of turns. It's a fun way to fight, and it gives her a unique playing style that hasn't been duplicated by any other characters in my game so far.
2) As irreversibly enmeshed into the MV iteration of RPG Maker as I am now, I could still rant at length about the things that irritate me about it, mostly tied to its dedication to mobile gaming - which requires streaming resources, and often results in sloppy gameplay, with the tradeoff of having to live with either a lot of jerkiness or loading screens. Thankfully, the Preload Manager + WebAudioCache combination of plugins has solved (to an acceptable extent) the BGM Delay issue I was having; although there is still no (and will probably never be) a solution to the not-so-"instantaneous" map transfer delay problem that's been particularly hounding progress on my other game, Ascension.
But I was becoming frustrated with even the regular screen fade transitions, when I loaded up VX Ace, and having used MV exclusively for a long time, the consistency and reliability of the smooth transitions in the older program absolutely amazed me. After some testing, I discovered that out of the box, MV's post-transition screen fadeins are often jerky, while using the Preload Manager (which is mandatory for syncing the BGMs in your game) causes the transition to pause a little bit between maps while the game does its loady thing. But what's annoying is that the game doesn't actually pause, it just hangs for about half a second, and then, as if trying to catch up, completely skips the fadein more often than not.
Perhaps a casual player wouldn't even notice it, but as a developer and lead tester, it began to drive me crazy. Is it too much to ask for a program that doesn't look buggy when you play it? Anyway, I found a workaround, even if it meant redoing all the map transfers in my game. In case you're interested, all you have to do is give up on the fade that's built in to the Map Transfer event command. Use a manual Fadeout before the transfer, and a Fadein after, but stick a 30 frame Wait command between the transfer and the Fadein to give the game time to catch up, before it moves on to the fade. Give it a try. The result is consistent and reliable fades. As somebody with OCD, it makes me much happier.
3) In my game, I have two skills planned that are based on the Warp and Exit spells from the first Final Fantasy. The difference between them is that Warp will send you back one floor, while Exit will send you all the way to the start of the dungeon you're in. They're good "quick escape" skills, also useful as a way to transport the player out of a dungeon once it's completed, without having to backtrack all the way to the entrance, and in lieu of thematically-appropriate dungeon-end teleports (as encountered in some dungeons in Final Fantasy). And, in the spirit of Dragon Quest's inclusion of skills that are useful outside of battle, I also want them available as shortcuts for use in towns and potentially on the World Map as well.
The Exit skill was easy enough to implement, by storing map and location info in variables every time the player enters (or exits) a town or dungeon. The Warp skill was a little trickier, however, as it needs to trigger on each floor, and I also want the player to be able to "stack" warps to travel multiple floors (if they have the resource points) - so the game needs to remember where the player has been and in what order. And rather than allocating a specific number of variables, I figured it would be more versatile to resort to storing an array inside a game variable, like I did in the course of implementing my Wardrobe Manager - although it involves more trial and error since I have to access the contents of the variable using script calls. But it's working!
4) On the subject of clever implementations involving skills useful outside of battle (although these ones are directly related to battle), I've just completed another challenge. One of the foundational skills in my game is a skill called Hunt, which gives the player the ability to force a random encounter (provided one is possible on whatever tile the player is standing on). This may not sound like the funnest skill, but I intend for it to dovetail with my game's encounter system - I'm just not sure exactly how...yet. In any case, it can be used to save the ambitious player time and embarrassment walking around in circles, should they want to fight enemies to boost their characters' levels, or collect special item drops.
Anyway, I have a couple of other skills planned that are in that family, one of which is directly inspired by the Repel skill from Dragon Quest, which reduces the random encounter rate (in that game, primarily to avoid wasting time fighting enemies below your level). But the one I'm most excited about is the one I've just programmed, which is a "Bait" skill. In many Final Fantasys, there are certain rare enemy encounters - especially in late-game dungeons - that promise valuable rewards for the persistent adventurer. The prestige awarded by these encounters (going all the way back to WarMech, if not earlier) makes them alluring, but I've never been fond of having to play the odds.
To wit, the best player could walk up and down the bridge in Sky Castle, battle 60 troops of enemies, and not encounter WarMech once, all on account of bad luck. This might be justifiable in a multiplayer online game, where you have a sort of players' economy, but at a certain point you have to just throw your hands up and say, "come on, already!" That's why, although I think these encounters should still be earned (which is why the Bait skill will be a late-game acquisition), I think there should be a point where the game says, "ok, you've earned this." And that's where Bait comes in.
Bait works just like Hunt - by forcefully initiating a random encounter - but not before performing a tricky bit of code math. I already had to add in some new functions related to the game's back-end encounter variables for the Hunt skill, in order to determine when the Hunt skill should be able to be used. But for Bait, I went even further, by taking the list of applicable encounters on any given tile (as determined by the developer on the map properties) and reversing the probability "weights" of each troop, so that when you initiate the next encounter, the common enemies will become rare, and the rare enemies will become common. You'll have to excuse me if I think that's just brilliant! And it works! Hey, I'm pretty excited.
(Now, if I could just pick up the slack in the mapping department...)
Monday, January 2, 2017
On The Bright Side
You'll be pleased to hear that one of my New Year's resolutions is to get back into working on my RPG in earnest. I've been thinking about it a lot. The details of the final dungeon are beginning to form more clearly in my head (which is not to say that everything leading up to it is finished :-p), and it's one of the many things about my game that I'm very excited about. I've been studying some of the more sinister dungeons from Final Fantasy IV - namely the Towers of Zot and Bab-il - for inspiration (I love that the Tower of Bab-il is so tall, that not only does it connect the Underworld to the Overworld, but it actually consists of two major dungeons in the game - one going up from the bottom, and another coming down from the top!). FFVI may be my favorite Final Fantasy, but I've been drawing a lot of inspiration for my RPG from the games that preceded it; especially the first one (because it's always good to start with the basics), and the fourth - which has an appealing balance of simple mechanics and a good, dramatic storyline.
You know, when I started working with RPG Maker, I had thought that more people would be using the program as I assume it was primarily intended - to create Dragon Quest/Final Fantasy-style classic RPGs. I love those old games, and I regret that technology has pushed us forward into the 3-D, polygonal, massively multiplayer paradigm of modern RPGs. I'd rather Square release another SNES-era Final Fantasy - with a new story and characters (not one of those lame-o 3-D portable sequels) - than give us more of the innovation we've been getting since FFVII and onward, that increasingly pushes us away from that classic gameplay style. Now, if Square won't do it, I'd take an amateur substitution. Enter RPG Maker. But it seems to me that most serious developers (i.e., the ones who actually complete their games, and are any good) are interested in using the engine to develop unique gaming experiences (often not even in the RPG format, and with an original graphical style). I mean, in terms of creating original content, and building your brand and reputation as a game designer, this is the way to go. But what I really want to see is a fan community like, say, the one Doom has, which spends its time creating new content entirely in the style of the classics, for all the fans who liked the game just the way it was way back when, but would love to have new things to experience within that realm.
Ah well. If I ever finish my RPG (and I do hope I will), I'll be contributing to that at least. It's easy to get daunted by the task of single-handedly putting together a classic 2-D RPG, not to mention surmounting the many obstacles RPG Maker MV insists on throwing one's way. But I was surprised to remind myself of some of the things I've already accomplished. The Wardrobe Manager is pretty much complete, and working entirely as intended. It's a mainly superficial mod to the game - the ability to give your characters alternate outfits - but one that is nevertheless very important to me, because I think dressing your character up in alternate outfits (and picking the one you like best) is a lot of fun. I was having problems implementing it in VX Ace, if you recall, but I found a plugin for MV that basically single-handedly makes it possible, by using "placeholder" graphics that are replaced on the fly. It's ingenious! Of course, I still had to do a lot of work to get the manager running - including the clever usage of an in-game variable as a multidimensional array (accessed exclusively via script calls). But it's running!
I've done a little coding, too. Nothing on the level of last spring's Peep skill (which was a landmark for me), but in lieu of waiting for a plugin to be ported from VX Ace to MV, I found a far more complex alternative and reverse-engineered it to do just the thing I wanted it to do (which is allow for a conditional check before using items - so that, for example, the game won't let you use a Tent when you're not on the overworld map, or other designated spaces). I've also just completed a new modification to the encounter system, partially inspired by the Repel skill in the original Dragon Quest, which causes the random encounter rate to gradually reduce to zero as your characters level up to a point beyond the local average (determined by my usage of Region ID) - so that you're not constantly being hounded by weaklings (e.g., level 1 Slimes) that aren't even worth spending the time to squash under your boot. I'm still not 100% decided on all the details of how I want the encounter system in my game to run, but having this capability puts me one step closer to figuring it all out. :-)
You know, when I started working with RPG Maker, I had thought that more people would be using the program as I assume it was primarily intended - to create Dragon Quest/Final Fantasy-style classic RPGs. I love those old games, and I regret that technology has pushed us forward into the 3-D, polygonal, massively multiplayer paradigm of modern RPGs. I'd rather Square release another SNES-era Final Fantasy - with a new story and characters (not one of those lame-o 3-D portable sequels) - than give us more of the innovation we've been getting since FFVII and onward, that increasingly pushes us away from that classic gameplay style. Now, if Square won't do it, I'd take an amateur substitution. Enter RPG Maker. But it seems to me that most serious developers (i.e., the ones who actually complete their games, and are any good) are interested in using the engine to develop unique gaming experiences (often not even in the RPG format, and with an original graphical style). I mean, in terms of creating original content, and building your brand and reputation as a game designer, this is the way to go. But what I really want to see is a fan community like, say, the one Doom has, which spends its time creating new content entirely in the style of the classics, for all the fans who liked the game just the way it was way back when, but would love to have new things to experience within that realm.
Ah well. If I ever finish my RPG (and I do hope I will), I'll be contributing to that at least. It's easy to get daunted by the task of single-handedly putting together a classic 2-D RPG, not to mention surmounting the many obstacles RPG Maker MV insists on throwing one's way. But I was surprised to remind myself of some of the things I've already accomplished. The Wardrobe Manager is pretty much complete, and working entirely as intended. It's a mainly superficial mod to the game - the ability to give your characters alternate outfits - but one that is nevertheless very important to me, because I think dressing your character up in alternate outfits (and picking the one you like best) is a lot of fun. I was having problems implementing it in VX Ace, if you recall, but I found a plugin for MV that basically single-handedly makes it possible, by using "placeholder" graphics that are replaced on the fly. It's ingenious! Of course, I still had to do a lot of work to get the manager running - including the clever usage of an in-game variable as a multidimensional array (accessed exclusively via script calls). But it's running!
I've done a little coding, too. Nothing on the level of last spring's Peep skill (which was a landmark for me), but in lieu of waiting for a plugin to be ported from VX Ace to MV, I found a far more complex alternative and reverse-engineered it to do just the thing I wanted it to do (which is allow for a conditional check before using items - so that, for example, the game won't let you use a Tent when you're not on the overworld map, or other designated spaces). I've also just completed a new modification to the encounter system, partially inspired by the Repel skill in the original Dragon Quest, which causes the random encounter rate to gradually reduce to zero as your characters level up to a point beyond the local average (determined by my usage of Region ID) - so that you're not constantly being hounded by weaklings (e.g., level 1 Slimes) that aren't even worth spending the time to squash under your boot. I'm still not 100% decided on all the details of how I want the encounter system in my game to run, but having this capability puts me one step closer to figuring it all out. :-)
Thursday, December 15, 2016
Modular Programming
Modular programming is like taking an algorithm, shattering it into a thousand pieces, and then burying each piece in a different location. Maybe it's more efficient. Maybe it's more versatile. I don't know. I imagine that it would make it harder for a hacker to copy/steal the code. But in RPG Maker's case, the user is intended to go in and fiddle with the code to make the program do what the user needs it to do, and this modular programming approach makes it extremely difficult to figure out how anything works. It's like a million tiny functions that look so simple, you can't imagine them accomplishing anything; but you know that together, somehow, they power a complex and robust program. But good luck finding the handful of grains in that sandbox that perform the behavior you wish to modify...
Sunday, May 8, 2016
Dragonfaith (MV) Alpha 2.0 - Greendale
My last release for Dragonfaith on RPG Maker MV contained little more than the prologue - which isn't much, but you gotta start somewhere. This release adds in the first town, which is fully explorable. I've renamed it "Greendale Village" in honor of my favorite album from one of my favorite bands, to give it a little more personality. The first town in my RPG is thematically inspired by many classic video games whose first stages are green, grassy stages (Super Mario Bros. 3 is one of the more prominent and memorable examples). The idea is to start the game off somewhere calm and unthreatening, before throwing the player into progressively more intimidating locales (e.g., forest, cave, mountain, desert, volcano, tundra). Greendale also represents the protagonist's hometown - a gentle, welcoming village to fight for and dream of returning to later on - and subtly introduces the player to a prominent theme of the game - the importance of nature and the conflict between living with it, and becoming victim to it. So, go ahead and explore!
I actually have a bit more of the game done already, but as I think I've explained before, getting the combat working is putting a hold on me releasing that just yet. I think I'm going to eventually have to just live with releasing parts of this game in a more and less unfinished capacity, just to get things moving along, because I'm not going to be able to fit all the pieces together neatly like a puzzle until I have the whole thing from start to finish at least storyboarded and constructed in some kind of outline format. I tell you, my OCD and perfectionism is wreaking havoc with my productivity on this project, but I'm trudging forward, however slowly at times. If you have the time and the inclination to check out this latest release, as always, let me know your impressions, if there are any bugs, and any comments or suggestions you might have. It's a work in progress, and there's always room for improvement.
Dragonfaith (MV) Alpha 2.0
Sunday, April 3, 2016
Dragonfaith (MV) Alpha 1.0 - Prologue
Here is my first release of Dragonfaith for RPG Maker MV. To temper your expectations, it's pretty much just the prologue. But we gotta start somewhere, right? I actually have a bunch more stuff done already, but it's not presentable just yet. Actually, I'm finding that the limitations of the combat (which is one aspect I'm having considerable trouble with, given that the default numbers are so out of wack, and there's so much to account for that I'm not sure I'll even have a clear plan of attack until the skeleton of the game has been put together) is keeping me from putting more of the game together for release.
I just don't know how much sense it makes to give you demos of an increasingly greater portion of the game before I've added any real combat in. You'll already be bored of the locations and the story by the time I need you to test the combat balance, which is an important (and conceivably tedious) aspect of the testing process. On the other hand, it could be years (I don't want it to take that long, but I'm trying to be realistic here) before I even get some semblance of the combat working, assuming I devote my time and effort to the other stuff I feel needs to be in place first, and I'd really hate to go that long without showing you any of what I do accomplish (you'd be forgiven for thinking I've given up on the game, although that most certainly is not the case).
I'll either have to think of a non-standard way of showcasing those aspects of the game, or else just suck it up and live with the idea of releasing it in a very non-polished format (which is bound to drive my OCD and perfectionism bonkers, although we are dealing with early alphas here (as sad as it is to call them "early" given that the game has already been in development for two years - although that has everything to do with having to upgrade it to the newest version of RPG Maker released just at the end of last year)).
Anyhow, without further ado, here is the first release of Dragonfaith for RPG Maker MV:
Dragonfaith (MV) Alpha 1.0
Download (~130 MB): [check sidebar for newest release]
I just don't know how much sense it makes to give you demos of an increasingly greater portion of the game before I've added any real combat in. You'll already be bored of the locations and the story by the time I need you to test the combat balance, which is an important (and conceivably tedious) aspect of the testing process. On the other hand, it could be years (I don't want it to take that long, but I'm trying to be realistic here) before I even get some semblance of the combat working, assuming I devote my time and effort to the other stuff I feel needs to be in place first, and I'd really hate to go that long without showing you any of what I do accomplish (you'd be forgiven for thinking I've given up on the game, although that most certainly is not the case).
I'll either have to think of a non-standard way of showcasing those aspects of the game, or else just suck it up and live with the idea of releasing it in a very non-polished format (which is bound to drive my OCD and perfectionism bonkers, although we are dealing with early alphas here (as sad as it is to call them "early" given that the game has already been in development for two years - although that has everything to do with having to upgrade it to the newest version of RPG Maker released just at the end of last year)).
Anyhow, without further ado, here is the first release of Dragonfaith for RPG Maker MV:
Dragonfaith (MV) Alpha 1.0
Saturday, March 5, 2016
My First Serious Plugin - Peep Skill (MV)
(Download at bottom of post).
I'm happy to report that I've pretty much gotten the hang of scripting in RPG Maker MV. Doesn't mean that any problem that crops up will be easy to solve, or that I will be able to solve any and all problems I encounter (especially the more complex ones, although the fact that there is a nice community of even better scripters than I working on commonly desired features helps a lot), but it means my abilities to get what I want out of this program (and my confidence in being able to do so) are stronger than ever.
I'm fairly confident coding in JavaScript by now - which isn't to say that I know the language back and forth, but I know the basic syntax, and figuring out how to do specific things is as easy as typing a question into Google and surveying the answers. The hardest part remains diving into the - as I said - tens of thousands of lines of code that make up RPG Maker MV, and a) finding the code you need to modify to get the results you want and/or b) trying to understand not so much the JavaScript, but how the actual program RPG Maker has been designed to function.
On the other hand, I haven't had this much of an opportunity to program since I finished my schooling (the barrier of learning a foreign language is surprisingly intimidating, even if most of the logic behind computer programming is the same no matter what language you're using), and I had forgotten just how much fun it is to code (barring all those frustrating times that your code fails, and you assume you've screwed up the logic, when it so frequently ends up being nothing more than a parenthesis or a semicolon out of place). It's the thrill of problem-solving. Some people like to fix things with their hands. Computer programming is the same, except you're using your mind - and that's always been my strongest tool.
So over a couple of weeks I pretty much absorbed myself into programming, and worked out a nice little plugin that I'd like to offer up to the community. It started out with me trying to figure out how to create an enemy that mirrors the player's stats, no matter what they happen to be when the battle is initiated. I couldn't find a way to preload those stats into the enemy's properties in the database, so I opted to run an event at the start of the battle that reads the player's current stats and then feeds them into the enemy (to do this, I made all the enemy's base stats 1, and then added the player's stats minus 1 on top of them).
It was an adequate solution, but in the process of working on it, I wanted to have a nice way to read the enemy's stats in-game to make sure they were what I wanted (and expected) them to be. So I embarked on creating something of a skill akin to the Peep command in Final Fantasy IV (since, to my knowledge, RPG Maker comes with nothing like it by default). It's probably come up in other places (although that's the first one that came to my mind), but basically it's a skill you can use in battle to investigate an enemy's stats (HP, MP, etc.) as well as its strengths and weaknesses (e.g., strong against fire, weak against poison, immune to sleep).
So this plugin started out very basic and functional, but as I went along, I realized how well it presented itself to user customization, and I decided to use it as an opportunity to learn a lot of valuable techniques in scripting for MV - like proper aliasing, utilization of plugin parameters, as well as plugin commands (although I finally opted for notetag functionality over plugin commands, in order to bypass the extraneous step of having to call a common event). It started out as pretty much one big function that did everything I needed it to do, but then I decided to split it up and write it in the format of the rest of RPG Maker's code, which is very modular and method-based.
The end result is a fair-sized monster of a thing (by my standards, that is - it's tiny next to some of those professional-level plugins you can find). And even though I still consider myself to be a beginner - or beginner-intermediate, at best - scripter, it's something I'm pretty proud of. I can't claim that it will be compatible with any and all other plugins, but I don't anticipate it having any significant problems (most of it is contained within a brand new class that I've written). So, if you get a chance to try it out, please tell me how you like it, and if there are any bugs you encounter.
Now, let me briefly describe what my Peep Skill plugin can do. (The plugin itself is fully annotated, so you should be able to figure out how to work it just by reading the description at the top of the file, or through RPG Maker's Plugin Manager). After the plugin is installed, all you gotta do to use it is type <peep> alone or with arguments (see the file for details) in the note box of the skill or item that you want to execute the peep skill when used in battle. When you use it, if successful, it will display on screen a list of the target enemy's properties. You can fully customize which properties are displayed and in what order, choosing from the following options:
Enemy's Name
Current and Max HP and MP
Basic Parameters (Attack, Defense, Magic Attack, Magic Defense, Agility, Luck)
Current States applied (e.g., sleep, poison, mute)
Current Buffs (attack up, agility down, etc.)
Elemental and State strengths, weaknesses, and immunities (all according to the enemy's traits listed in the Database)
Enemy's worth in both experience and gold
Potential drops (with probabilities)
As I said, you can choose any or all of these to be displayed, and you can even format them by adding in blank lines. The plugin is designed to wrap lines that exceed the length of the text box (you have to input the max character limit if you're not using the default font and size). And all of the text prefixes and terminology is modifiable. Plus, you can add the tag <peep:no> to the note box of any enemies that you don't want the player to be able to read the stats of, and even customize the failure message that is displayed! All in all, I'd like to think it's a pretty robust plugin. It does have a few limitations (it only works on enemies, and not actors; it only works on one enemy at a time; and it only works in battle), but hopefully it will be useful for whatever your specific purposes are!
Download: Peep Skill Plugin (for use with RPG Maker MV)
I'm happy to report that I've pretty much gotten the hang of scripting in RPG Maker MV. Doesn't mean that any problem that crops up will be easy to solve, or that I will be able to solve any and all problems I encounter (especially the more complex ones, although the fact that there is a nice community of even better scripters than I working on commonly desired features helps a lot), but it means my abilities to get what I want out of this program (and my confidence in being able to do so) are stronger than ever.
I'm fairly confident coding in JavaScript by now - which isn't to say that I know the language back and forth, but I know the basic syntax, and figuring out how to do specific things is as easy as typing a question into Google and surveying the answers. The hardest part remains diving into the - as I said - tens of thousands of lines of code that make up RPG Maker MV, and a) finding the code you need to modify to get the results you want and/or b) trying to understand not so much the JavaScript, but how the actual program RPG Maker has been designed to function.
On the other hand, I haven't had this much of an opportunity to program since I finished my schooling (the barrier of learning a foreign language is surprisingly intimidating, even if most of the logic behind computer programming is the same no matter what language you're using), and I had forgotten just how much fun it is to code (barring all those frustrating times that your code fails, and you assume you've screwed up the logic, when it so frequently ends up being nothing more than a parenthesis or a semicolon out of place). It's the thrill of problem-solving. Some people like to fix things with their hands. Computer programming is the same, except you're using your mind - and that's always been my strongest tool.
So over a couple of weeks I pretty much absorbed myself into programming, and worked out a nice little plugin that I'd like to offer up to the community. It started out with me trying to figure out how to create an enemy that mirrors the player's stats, no matter what they happen to be when the battle is initiated. I couldn't find a way to preload those stats into the enemy's properties in the database, so I opted to run an event at the start of the battle that reads the player's current stats and then feeds them into the enemy (to do this, I made all the enemy's base stats 1, and then added the player's stats minus 1 on top of them).
It was an adequate solution, but in the process of working on it, I wanted to have a nice way to read the enemy's stats in-game to make sure they were what I wanted (and expected) them to be. So I embarked on creating something of a skill akin to the Peep command in Final Fantasy IV (since, to my knowledge, RPG Maker comes with nothing like it by default). It's probably come up in other places (although that's the first one that came to my mind), but basically it's a skill you can use in battle to investigate an enemy's stats (HP, MP, etc.) as well as its strengths and weaknesses (e.g., strong against fire, weak against poison, immune to sleep).
So this plugin started out very basic and functional, but as I went along, I realized how well it presented itself to user customization, and I decided to use it as an opportunity to learn a lot of valuable techniques in scripting for MV - like proper aliasing, utilization of plugin parameters, as well as plugin commands (although I finally opted for notetag functionality over plugin commands, in order to bypass the extraneous step of having to call a common event). It started out as pretty much one big function that did everything I needed it to do, but then I decided to split it up and write it in the format of the rest of RPG Maker's code, which is very modular and method-based.
The end result is a fair-sized monster of a thing (by my standards, that is - it's tiny next to some of those professional-level plugins you can find). And even though I still consider myself to be a beginner - or beginner-intermediate, at best - scripter, it's something I'm pretty proud of. I can't claim that it will be compatible with any and all other plugins, but I don't anticipate it having any significant problems (most of it is contained within a brand new class that I've written). So, if you get a chance to try it out, please tell me how you like it, and if there are any bugs you encounter.
My plugin in action.
Now, let me briefly describe what my Peep Skill plugin can do. (The plugin itself is fully annotated, so you should be able to figure out how to work it just by reading the description at the top of the file, or through RPG Maker's Plugin Manager). After the plugin is installed, all you gotta do to use it is type <peep> alone or with arguments (see the file for details) in the note box of the skill or item that you want to execute the peep skill when used in battle. When you use it, if successful, it will display on screen a list of the target enemy's properties. You can fully customize which properties are displayed and in what order, choosing from the following options:
Enemy's Name
Current and Max HP and MP
Basic Parameters (Attack, Defense, Magic Attack, Magic Defense, Agility, Luck)
Current States applied (e.g., sleep, poison, mute)
Current Buffs (attack up, agility down, etc.)
Elemental and State strengths, weaknesses, and immunities (all according to the enemy's traits listed in the Database)
Enemy's worth in both experience and gold
Potential drops (with probabilities)
As I said, you can choose any or all of these to be displayed, and you can even format them by adding in blank lines. The plugin is designed to wrap lines that exceed the length of the text box (you have to input the max character limit if you're not using the default font and size). And all of the text prefixes and terminology is modifiable. Plus, you can add the tag <peep:no> to the note box of any enemies that you don't want the player to be able to read the stats of, and even customize the failure message that is displayed! All in all, I'd like to think it's a pretty robust plugin. It does have a few limitations (it only works on enemies, and not actors; it only works on one enemy at a time; and it only works in battle), but hopefully it will be useful for whatever your specific purposes are!
Download: Peep Skill Plugin (for use with RPG Maker MV)
Subscribe to:
Posts (Atom)



