Thursday, September 25, 2008

Lame / Move On Reader

I don't have anything this week. I plead three-day houseguests and the need to entertain them, two days of illness following the departure of three-day houseguests, and the rest of the time spent going to job interviews and not getting jobs (plus the freelance jobs I still have going on, plus trying to quit smoking out of economic necessity in the last few days.) Despite all of that I could have worked on the game for a fucking hour--an hour!--, but I didn't, which is lame and horrible. But sometimes it goes like that.

Here's a comic page at least:



Sorry, gang--I'll try to make another post in a couple of days with something, at least. The next two items on the agenda are (still) to fix the save/load system and to finish up all of the story sequences. It's such a small amount of work to finish this up and move on to the polishing stage that it's silly not to have done anything this week.

To everyone who is working on/has worked on Demon Lord Adventure III art: you are radical, even radical to the max. You beat this old sinner at his own terrible game.

Thursday, September 18, 2008

If I only had a lever, enough money to buy food, a few more hours and a place to stand

Posting this early because I started to fall asleep while coding/testing, jesus. If I can stay up until 8:30 I can get back on a normal schedule. I can get all the stuff done I n eed to get done and I can have a good life one day.

Here's what's done: all text is written and in-game, except for ten lines RIGHT IN THE MIDDLE OF THE SCRIPT (they sort of go around a puzzle sequence and I haven't figured out the puzzle yet because I'm stupid) and except for the final scene, which I'm saving. It's okay; it needs another draft or so. Right now the textbox count is something like 490, according to the logs, which is pretty okay I think.

I did some more frames on Cass--he's almost done except for the back side which for some reason is really hard on him (it's the weird scarf/surplice thing he wears.) I did a sprite for Illcup and the Sheriff as well since I was tired of using generics for them. You can see here if you squint:

9/18

chocolate

The sheriff one in particular needs work because I tried to make his face all lean and scary and Texan and he just looks like a weird dwarf or a child or something. I wanted him to look kind of weak around the shoulders, weaselly, horrible, and he just looks like an eight-year-old. Jesus. At least the pixel cowboy hat came out pretty rockin'. I can't even draw those things freehand

What else? Some fence tiles to get rid of the horrible placeholders:

chocolate

And the save/load system. Jesus. I can save and load one game with no problem and no obvious data loss. I'm falling asleep trying to get the actual UI set up--I wanted to wait to post this until it was all done so I'd have rad screen shots and stuff. Instead I have this:

9/18

It doesn't do anything and it doesn't even display right. Whatever. Whatever!

Whatever is no way to finish a game. This is so stupid; I should be further along with this by now. I wanted to have all of the cut scenes blocked out, only waiting for special frames to be made to finish them off. I did manage to smooth out some rough jumps in the early ones but this is the next Big Looming Thing.

One day I'll know where the money's coming from and I'll have enough to like--go out to eat sometimes, like in the old days. Until then we're stuck with ourselves

(Oh: and Syn is angel. For Demon Lord Adventure II, go to here. If you're on the forums which I have to assume everyone here is because who else is gonna read this crap, you know that sprites are being made for the inevitable 3. I want to start diving into the battle system but patience, patience makes the plot grow golder--not until this Chapter I (of six! Christ--they'll get easier at least once all of this system/engine stuff is over) is done, or at least thick in testing.

I played the opening ten levels of Dragon Warrior to get some idea of how the stat progression works and what makes it work. It's pretty impeccable: the first like six levels of that game are you trying to go from dealing 1-2 damage to enemies to 3-4 damage to enemies. The game "jumps" from Slimes with 3 hp to ghosts with 7 to Magicians with 12 really gracefully, smoothing the HP gap by giving you the HURT spell at the right moment and increasing your range just enough to justify the huge jump up to Skeletons with like--35 hp or whatever, just beyond the Magicians' borders. It's such a tedious game but it's so completely masterful. I messed with the stat growth tables some in response--I'll probably even make them more brutal soon, make it so that you can only raise 3 stats at level one and raise the requirement for all stats. It'll help with this horrible scaling problem desert.map has, where the north end of the map is just another world altogether difficulty-wise compared to the south end of the map. I don't like it but for some reason I have to have five enemies on that map; they spread out; so sue a brother

I'm not making any sense any more. Next week I'll do better.

Thursday, September 11, 2008

Better days with a girl like you

This week was kind of a slack week--I spent a lot of it working on other things, some of them for money, and otherwise not being at home hacking away at this stuff. I did get my hour in, though, and crossed off a couple of annoying things-to-do, and fixed some bugs as well. Here's shots:

chocolate

The final cave is all linked up! You can now walk it from the beginning to the end and back with appropriate warps and all! There's one bug remaining caused by me trying to do Fancy Stuff with one of the warps, but 9 times out of 10 it works okay. This means that we can now walk from the start of the game to the end of the game, always a point I like to be at.

Not that it looks like--pretty or anything. This is my Breath Of Fire moment. You remember those caves in Breath of Fire where you went down three or four identical little "switchback" floors before you got to the actual cave? This is that. I love that--it's so demoralizing

chocolate

Here's a guy who hangs out in the cave.

chocolate

Here's another guy who hangs out in the cave. This one is the boss of this chapter. He is fearsome, but you can't fight him yet--I just dumped all of his text into the game.

The other big thing is that the Pray command for Cass works. Let's check out the different responses we can get when we pray to an angry God of Death for assistance!

chocolate

This is what happens when we pray too often. If you're wearing the L.Pendant, you take damage. If you're not wearing it, the God of Death stops your heart.

chocolate

If the God of Death likes you a little bit, here's what happens. The text is first-draft and really stupid. I wanted to write "death relaxing his grip!", but thought I wouldn't have enough room. So I figured "death relaxing!" was equally understandable. The final version is going to be like "You think death is happy or something"

chocolate

I love it when movies say shit like "The perimeter has been compromised"

chocolate

This is more what you hope will happen.

The actual code for the different prayers was pretty easy to put in, all told--the problem was setting up the whole architecture for whether or not the gods are smiling on you. It seems like it works pretty well, though. I may increase the penalties for using Pray so that it doesn't just become like a magic points system, where after you pray once it doesn't matter how much karma you have stored up: you're back to Square One with your god. That should help to balance out the fact that these attacks are way more powerful/useful than I really want. I want you to have to scrabble in terror every moment of your life in this game until you figure it out.

I also fixed some odd bugs, juggled some equipment stats around, made the DetectorRing accessory do what it's supposed to do, and put in a few extra equipment management functions so eventually I can solve the "equip multiple copies of the same item" problem. It's not a hard problem to solve or anything; I just really do not want to do it yet for some reason. I messed around with the evade/dodge bug I created last time but didn't get anywhere as far as solving it. It's a matter of making the numbers work out right; it's something I'll worry about just before testing pretty much, when I'm constantly changing all of the .dat files like twenty times forever.

The version number is 0.41 now because the battle system, barring warts and enemy commands (and, um, better animations), is done. Enemy commands are going to be irritating, particularly the "drag other enemies into the fight with you" part, but not too irritating I hope. That .1 is there to boost morale around here, since technically I shouldn't push it past 0.4 until the BP manager is completely done--but I've made all the maps and linked 'em up and put lots of story in, so whatever! Almost all of the story text is at least formatted for the textbox parser and all but one scene is in-game--at this point I'm going to have to spend a week or so just fiddling around with entity movement and things like that to finish it off. I don't actually know how much system code I have left to write beyond:

- a Zelda 3 "jump down" function (only used in like four places maybe)
- block pushing (probably can skip this if need be)
- Saving/loading (almost done)
- Make the BP Manager automatically store BP toward certain stats and level those stats up automatically at the end of fights (easy; just haven't done it)
- enemy commands
- map spells usable against random entities
- minigames (the jail game and the horse cave stampede game--I have no idea whether these will be horrible or okay)

And of course there are the known code improvements that need to be made:
- fix the fucking inventory bugs once and for all
- menus are still glitchy and help text doesn't work most of the time
- map spell targeting ring is jittery
- status conditions are still suspicious; lots of testing required
- title screen
- I don't even know; jesus

October: god. Late October. At least I think there are more things on the done list than on the remain-to-be-done list.

All of this sidesteps the fact that I was supposed to be working on graphics this week. I didn't touch a single pixel this week pretty much. Here's what I did instead:

edutainment!

This is from Demon Lord Adventure Tutorial II, which is done--I just can't upload it to verge-rpg.com for some reason, and it's like 200K too large for my terrible free web hosting service. Hopefully it'll be up there soon: in the meantime go play through the first one, if you haven't!

Thursday, September 4, 2008

The sweet intoxication of the rose

Last week's goals were just to make tiles, maps, content up to the end of the game. I am pleased to report that we are CLOSE. How close? Why, let the screenshots tell you!

chocolate

New desert tiles--pretty close to final, I think

chocolate

The first of the game's level-up trainers--I think this is funny

chocolate

A new map, looks like the old maps except for the night retrace effect. Check out them stats

chocolate

Maybe we can all agree with this! Also from the new map

chocolate

Trouble brews in a story sequence! Also features a new incomplete sprite

chocolate

The final new map of the game. It's obviously incomplete but it's totally laid out. Still needs to have the zones hook up with one another and all.

All of the story is also written, except for the very very last sequence (maybe like--three textboxes long, but I want to save it for last.) Most of it is in game as well, although I still need to make the entities run around and act emotional and stuff. Once the last map is hooked up and all of the story text is in, I can send the game off to the music man and that's that for that.

Other things done: most crucially, the Knack command works!

chocolate

That doesn't really look so hot in the screenshot, but it's cool in game, take my word. Knacks are mouse driven and detect hit locations on the enemy, forcing the battles to slow down a bit so that you can target. Right now they're only really useful against one or two enemies but by the end of the first chapter I want to have Knacks be like--the basic command you go for in the first round of every fight. That's mostly going to be a weird balancing issue but we're way closer to having it work than we were last week.

I also threw out my old status condition system and coded a shiny new one. So far two status conditions are in the game and seem to be working, though for some reason the AI handling doesn't react to one of them as it should. I'm probably going to just leave it for now until I've got more of the basic work done.

Plus I added a chance to dodge to the game so that your EVA stat actually does some good. And boy, does it do good! It does so much good that it's essentially impossible for enemies to land a blow on you ever even if you're wearing no armor and have never raised your defense stat past 3. This is obviously a problem but I'd rather just leave it like that until I have all of the maps/story stuff hooked up, since it makes it way easier to test and I need to rebalance everything anyway.

Plus I fixed all of the remaining extant game-killing bugs in the battle system and debugged the equipment system. The only irritating thing left is the weird in-battle item menu behavior, but it's not going to be that hard to fix, comes the time.

So we can bump the version number up to 3.9, just shy of that critical .4 where all of the battle functions work. I still have to finish building Cass's Pray command--some of the basic variable-manipulation functions are in, but I haven't quite decided on exactly how to track the crucial variables. And I still need to throw in a few more status conditions.

After that: .5 is finishing up the system code, which at this point basically means the save/load functions and some debugging on the items/equipment side of things. Saving and loading is almost done--it could be done right now if I was confident that I wasn't going to have to add anything else to the party variable structures, but I'm not confident of that. .6 involves all maps/story/sprites being totally ironed out, tiled, in the bag. (Even though you can almost walk the game from start to finish there's still a crazy amount of work to be done on tiles and sprites.) .65 puts the little mini-game stuff in (grue's new totally awesome collision trigger should make one of those like--ridiculously easier than I thought it would be), and I think after that it's all just testing and balancing until release.

It's so horrible how these projects seem so simple when you start them and then you realize how much work they actually entail. I think it's still moving at a reasonable rate, though, and that barring disaster we can pull off testing by October.

As for that other project--I've only done a tiny amount of work on it since last week. It comes in three parts; the first is done, the second is half-done. I'll probably just release parts one and two once they're done and then save the third. I toyed with the idea of just releasing part one, fuck it, but it's actually kind of terrible and useless at present. Oh whatever I'm uploading it; look for it in a couple of hours.

Thursday, August 28, 2008

The competition, she heats

First: I am totally glad that suddenly there's lots of terrifying Gruedorf content that is awesome and intimidating (deferred lighting! 3D engine releases! SpriteWright!) I'm still going to beat all of you, but I like an honorable victory, yo.

Second: Let's look at last week's goals.

- Finish the enemy spawn code/add all combat zones.

Done, at least for the desert map, except for some weird treasure-chest side branches. It occurred to me at some point while doing this that it's silly to have a desert map that functions as a maze, since the point of a desert is that it's featureless and terrifying. In Chapter II you get to actually go further into the desert at some point and I'll make a more open-ended non-linear desert map because I really don't want to change this canyon-like thing at present.

Finish all of the enemy AI/stats for the desert enemies plus the jail guards. These can and should be tweaked later but every enemy should be at least playable.

Not totally done. All but one of the regular desert enemies are playable--that one won't take really much work to set up; I'm just not into scrabbling around in the AI files right now. The town guards aren't done, but they don't really have a lot of AI: they're supposed to be horrible enemies that you want to avoid fighting because they'll probably kill you, so really all they need is an unfair HP/ATK/DEF rating and the ability to summon reinforcements when they're alone. Coding the ability to summon reinforcements will be horrible so I may, um, defer that for a while.

- Add a generalized chest function, make chest/jar tiles and put some treasures in the game.

Done! Only two irritating things with this: some of the maps (blackmoss) don't have the chest tiles in their .vsp and I don't want to add it until I overhaul the entire VSP and map (sometime after the game's playable.) Also it's a drag to have to manually test/reset the chests on mapinit--it'll be fine once it's done; it's just a boring task to set up.

- Block out the jail map. If time, put in the link to the cave map after.

Didn't do this at all. Probably next week's project is just to build quickie versions of these maps.

- Do some drafts of the story elements in the jail map--these are probably going to be the trickiest to write since a lot has to happen fairly quickly and without too much exposition. If time just draft the whole rest of the release--I think there are only like two or three story sequences after the jail stuff, plus some little lines here and there.

A lot of this is done; the story now takes you up to the requisite Unwinnable Boss Fight. After that it's just some quickie scenes in the cave, the Winnable Boss Fight, and the ending. I'm going to save writing the ending until everything else is coded and working reasonably well just so I have something plot-wise to look forward to.

Pics or it didn't happen, eh? OKAY:

chocolate

I revised the equip menu a little and added an overlayer and underlayer for all menus. This will make it easy to make all of the menus cooler and visually distinct, possibly with little item icons etc. Right now I just have these done. There's now a third accessory slot to give you slightly more customizability, since I want the game to be full of weird accessory items that do all sorts of zany things. The equip menu has major bugs but sort of works some of the time.

chocolate

A treasure chest, with a bandage inside! Bandage is actually a piece of armor, which I should, um, make clearer somehow.

chocolate

The BP system is mostly done, although not really tested. The last major feature to implement is the "storage" ability, where you can auto-allocate BP to any of your stats: the code is there, but it doesn't actually do anything yet. Basically it's like with every experience level, you get five to whatever stat increases, and you buy them as you progress toward the next level. Once you run out of increases you have to accomplish some kind of ridiculous task to gain your level: in this one I think it'll just be like (1) kicking some guy's ass and maybe (2) solving a quickie block puzzle in the cave area. I can see obvious problems with this system but hopefully limiting the number of stat increases you can get in this way will resolve a lot of them.

Eventually (like, Chapter II and beyond) it'd be cool to have different guilds that you can join that allow you to increase the growth rate of certain stats. Right now all of the code is there to manage the growth rate of stats by rank, so characters are basically differentiated by their starting rank: Chocolate has a high speed/evade and psi/will growth rate, but a low atk/def growth rate, whereas Cass has a high atk/def but sucks at everything else. The idea is that characters can individually go through retarded guild initiations later on to increase their growth rates forever. Plus it's totally cool to force a character to join the merchant's guild and shit. This will allow me to, um, pad chapters where there isn't a lot going on in terms of actual plot.

Anyway.

chocolate

Here's an enemy, spawning perfectly on the map! Awesome! (Note the new, better sand tile.)

chocolate

Here's that enemy trying to kill you! Note the two new pieces of art: the battle background by me and the enemy art by Xerxes Verdammt. There are two other pieces of enemy art in-game right now that I'm not going to show you, but they're rad.

chocolate

Now that the enemy spawn code is in the game it's possible to face randomly-determined, horribly overwhelming odds. This actually isn't as bad as it looks just because at this point I've abused the BP system and exploited the bug in the equip menu that lets you equip the same stuff over and over for stat increases every time. (This is hopefully the last of the placeholder enemy art to get rid of.)

chocolate

This, however, is totally horrible (Loping Legs just wails on you), and these jokers killed me like that. That's how I found out about the huge bug that crashes your computer 25% of the time when you lose a battle!

Now that I have battles to play around with I'm learning about how not to design enemies. I talked with the guy who made this (you should really play that; probably the best independent RPG currently out there if you likes your jrpgs) about balancing stats/money/etc. He gave me really good advice (set up a global "exchange rate" between literally every stat/status condition in the game, and make sure you obey it exactly) that I totally haven't implemented yet because I'm not sure exactly how some of the later-game abilities are going to work. But here's a pro-tip: if you increase an enemy's HP, don't also increase their attack stat unless you want to ramp up the difficulty a lot. (Especially if you're working with stupidly small numbers like me: Chocolate's starting ATK value is 3 right now.)

Also: I started work on the save/load function. Currently it saves the current version number of the game. And I registered a domain name, http://valentinesoftware.com: currently it just points to the RPGCreations home page, which is the former name of the game company I'm in, etc. etc. Since we're changing our name I'm changing the site name. It'll come in handy for hosting this game, as well as setting up like--an actual portfolio so that I can find some kind of decent-paying work. If I have to I'll just go back to the bookstore for a while, but I'd like to avoid that since it's a long cold subway ride into Manhattan every day.

(Oh yeah, um, I quit my job also since it was driving me insane. If any of you like--know someone who's looking for a tech writer for contract work, hook me up, yo: jwthornton aaaat gmail dot com.)

I want to say there's something else I've done but I can't remember, so it's probably not important. Next week, the goal is just to work on tiles, make maps, and finish story up to the end of the game so that I can get a mostly-working prototype to Longe and the music can get finished up.

I pushed the version number up to .34 -- at .4, all of the battle commands are in and working. That's going to be a bigger jump than I thought because right now I handle status effects very stupidly, and I'm going to need to change the way that functions altogether. If I get the basic prototype of the game done then I'll start finally hammering at that.

I think that testing at least can happen by October. That makes something like 4 months of dev time, start to finish, for chapter I. I believe it!

Oh yeah, and I'm also working on another project. This one should be done like--next week, since I have a lot of free time, and I can upload it to verge-rpg and be done with it. It is something that I think is needed and something that everyone will like. Here's the best screenshot ever:

edutainment!

Thursday, August 21, 2008

I have always thought in the back of my mind, cheese and onions

Do I have to spell it out? Not a great week--most of the work I've been getting done lately happens in the day or two after Gruedorf posts when I'm still freshly embarrassed about not having much done. It's a good way of guaranteeing something to post, but not a good way of say actually finishing this first release.

Anyway, here are shots:

chocolate

New title sequence. Not totally done yet, but features the "crawl" effect and a weird cinema bars effect. Coded some camera scroll functions as well and added them to the story sequences throughout, so they're closer to their final form. Still needs work, in particular a "cinema text" function using a larger, whiter font, plus a credits function. But it's better than the previous method of just throwing up an arbitrary .pcx and a systems menu, and sort of gives the game more personality.

chocolate

Enemy spawn code is so close I can taste it. Currently it works, enemies stalk you (which is frightening, once during tests I ended up letting two of them chase me all over the map), and battle only gets initiated once by a given enemy before the enemy gets de-allocated. I started designing some enemy spawn groups and testing the map to make sure you can't see spawn points before the enemies actually spawn, as well. I don't want to put the code in to test the different spawn/despawn areas before two big things happen with this:

(1) Find a better way of entering/exiting "enemy zones." Right now these are literally just lines of zones that call a function when you step on them, which causes problems if you just dance around on the zone border without actually letting the enemies show up on screen and things. Pretty easy to solve with a global variable--I just want to avoid having to make up a gazillion different function names for every map with enemies on it, like "loadCombatZone1" or something. But I doubt I'll actually be able to avoid this.

(2) Fix weird, horrible array problems. I know this involves off by one bugs (allocating multiple enemies to the same index for some reason, skipping indexes in what should be a block of entity slots) but I haven't taken the time to track it down. It's just something stupid with my math/program flow and then it'll work perfectly and our long national nightmare will be over.

Also, for what it's worth, I laid out all of the desert map obstructions and did a couple of new tiles which will get revised like crazy eventually. But it looks a little bit less totally awful now. I also finally, finally linked up all of the Tack interiors to the exteriors.

When the spawn code works, it makes the game significantly more interesting to play, and gives me at least a little bit of a feel for how annoying/enjoyable leveling and gold-earning is going to be so I can start tweaking that a little bit.

Mapped out the jail map as well in notebooks. That's going to be a headache to build just because it leans really heavily on the map spells system, which currently works but which gives the player much more freedom than he/she would normally get in these games. The map has to be designed to make it possible to get through all of the required puzzles without leveling up your map spells at all, but so that you have to level up to make some chests accessible and to avoid certain fights. My rough draft works well in principle but it's going to require a bunch of testing and tweaking as far as the actual tile-by-tile layout goes.

I also need to make one critical change to the way the map spells work: a generalized effect for entities, and a check for entity locations when the code confirms whether or not you've hit a hotspot. This'll make things easier for future releases when some of the map spells get more entity-specific, as well as make it possible to do things like trip randomly spawned enemies for combat advantage or to duck by certain areas.

The to-do list as far as systems for the first release go:

- Enemy spawning
- BP manager
- Level-up function
- Map spells/prayers in combat
- Map spells work on entities

That should be it, and it's less work than it sounds like (I um hope.) The only fly in the ointment I can see would be weird issues with rendering layers when coding the bp manager and the battle map spells.

Goals for next week:
- Finish the damned enemy spawn code. Put all of the enemy spawn zones in.
- Finish all of the enemy AI/stats for the desert enemies plus the jail guards. These can and should be tweaked later but every enemy should be at least playable.
- Add a generalized chest function, make chest/jar tiles and put some treasures in the game. The item code is all done; this is just a matter of changing some tiles and setting some flags (and doing it in a generalized way so I don't have nightmares about this crap.)
- Block out the jail map. If time, put in the link to the cave map after.
- Do some drafts of the story elements in the jail map--these are probably going to be the trickiest to write since a lot has to happen fairly quickly and without too much exposition. If time just draft the whole rest of the release--I think there are only like two or three story sequences after the jail stuff, plus some little lines here and there.

Should be reasonable for next week. Discipline must be achieved in all of this nonsense.

Thursday, August 14, 2008

(((())))

Not a great week but not as stupid as last week. Doesn't show up in the shots that much, but still:

chocolate

New story sequence, the last major one in town. Still not finished by any means

chocolate

This is the meat of the update (not the totally shitty hill tiles): the enemy spawn code. Basically this is Earthbound's system of throwing a set range of randomly generated enemies at you when you reach certain zones on the map, then erasing/reloading that enemy spawn when you backtrack to ensure a continuous, brutal population of beasts for murder.

Currently it does not ensure a continuous, brutal population of beasts for murder. Currently it spawns three to four random enemies once. When they're dead it takes three to four random townspeople and changes all of their code to enemy code, so you can imagine the citizens of Tack turning into giant rats and attacking you when you try to buy potions and stuff.

Yet it is getting so close! Finish this, finish stat growth, finish the game. I'm no longer worried about future programming tasks so much as I'm worried about art, which is great.