Saturday, September 23, 2017

World Map Analysis

It occurs to me that perhaps instead of just reconstructing these world maps, it might do to analyze them in some detail. If you haven't guessed yet, the first one is the world map from the original Final Fantasy, and the second one (hereafter referred to as "Alefgard") is the world map from the very first Dragon Quest/Warrior game. It's not entirely fair to compare these two games side by side, as Final Fantasy came after Dragon Quest, and represents a slight evolution over the earlier game (and is more comparable to Dragon Quest II), but that doesn't mean I can't discuss their differences.

Firstly, the FF world map is twice as large as Alefgard (256 pixels square vs. 128). But this is forgivable because in DQ, you have to walk everywhere, and you have to start from the same central location every single time (it's the only place you can save your game). Final Fantasy, on the other hand, features a ship for sea travel, and also an airship. As a result, Alefgard is a lot more "landlocked" than the world of Final Fantasy, where you can fly around and sail the high seas.

This distinction is relevant to my own RPG, because I've been debating whether to make my world map more landlocked (which is my first instinct, given how I envision the world in my head - and is more like the world we live in, I think - or at least the part of it I'm familiar with), or to mimic the style of the Final Fantasy games I am most heavily inspired by, with lots of wispy peninsulas and the like. I think that ultimately the decision will come down to what works best for my game, and I think that it will most likely turn out to be more landlocked than the FF map I've reproduced, but not quite so landlocked as Alefgard, since sea and air travel are still major elements of my game.

This may be headed slightly into off-topic territory, but another distinction my game has from the Final Fantasies I am inspired by is the fact that in those games, typically the world map represents the whole world (albeit sometimes with room in the game for other worlds, like underworlds and alternate dimensions and such). In my game, I want to give the player the sense that they may only be exploring part of the world they're in - just the part they have access to - since the plot is about rediscovering the world after the collapse of civilization. Also, I've reserved a whole separate "continent" (though maybe more of a large island) for the final stages of the game, and I want to keep it hidden and off limits until the player gets to a certain point. As such, though I may grant them versions of sea and air travel earlier, I have to contain their voyaging to a point so as to prevent them from entirely getting the sensation, as you do in Final Fantasy games, of sailing around the world and coming back to where you started. Yet, I still want to maintain that sense of heading out to sea, getting disoriented, and not knowing where you are. I had a great idea for a "deep sea" zone that's actually separate from the main world map, but the loss of the instantaneous map transfer ability in RPG Maker MV would make it clunky and dispel the illusion of sailing in a world that's much bigger than the actual map you're exploring.

Sigh, I don't have a solution to this problem as of yet, and it's something I'll have to figure out before the game is done. Ah well. I think that's enough analysis for now. I've already gone into depth about how much I love the game flow (which relates, in part, to how the world is set up) in the original Final Fantasy. Until next time!

Friday, September 22, 2017

World Mapping

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

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

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