# Less techy news, more sexy news. Been making a game where you’re told to go rescue princesses. But things are not what they seem. Experimenting with a single scrolling textbox. Maybe good for impatient porn players? Has an interesting effect on how I make scenes.
# Aaaand back to techy stuff. I finally accomplished smooth scrolling text in Flash! This is actually tricky to do because masking doesn’t normally work on text, but I found a way. Animation is useful for this to show new text being added and show where the old text went to.
# Can’t decide if I want girls to turn into bunnygirls or lay bunnygirl eggs. Seeing one of your party members unexpectedly transform is a cool surprise. But egg-laying means the characters who got abducted still stay in the dungeon and sex continues. I like that better.
# The plot works better with egg-laying. The villian’s motive makes more sense if they’re creating bunnygirls instead of turning every woman in the game into bunnygirls, because where’s the end of their goal? I want them to be seeking a specific number of captives.
# The game design is easier with the egg-laying scenario. I’ll get to have more NPC’s in towns to explain things because I won’t have to remove all the women.
# I’ll need to re-do a bunch of scenes though. And some of them were pretty good.
# I’ve come up with an intriguing idea about how a succubus could perform summoning in my game. It’s a much more sexual process that’s very different from a witch’s spell. I won’t spoil anything, but it ties in nicely with some other events that are occurring in the game.
# I think I’ve finally made up my mind about what I want the “villian’s” plan and motivation to be. It seems much more interesting for them to have good intentions but a flawed or misinformed approach to accomplishing their goal.
# I’ve been trying to find ways to show the personalities of each of the girls. It’s harder to do with a single on-screen textbox that limits how much text you can show to the player at any moment.
# I particularly want to do this with Julia to show her being shy but secretly curious about everything. That will make her endings more comfortable since you’ll already know she’s curious about the things that will happen to her later.
# I decided to give Julia an obsession with a specific kink that she keeps casually bringing up. It makes it very clear what she secretly wants.
# As I was added characters in the maps, it became painfully obvious how little gameplay this “game” has. Most of the fun is just finding situations and details about what’s really going on.
# But I copied the maps from another game out of nostalgia, and they don’t lend themselves well to this approach. The player wanders through too many areas with nothing really happening in them.
# Adding some traditional game mechanics might fix this, but the motivation for adding it is “filler” to make the areas between story less boring. That doesn’t seem like a good reason to do anything. Ideally a game’s mechanics ARE the reason for the game existing.
# Maybe I should think about this another way. How do story-driven games make exploration interesting from moment to moment?
# Phoenix Wright games are mostly a series of puzzle scavenger hunts.
# What about point-and-click adventure games? I played some as a kid and most of the fun I had was just clicking random things just to see what would happen. That approach means giving the player a way to interact with anything and having them react in interesting ways.
# An RPG already has a contextual “talk” or “interact” so… make things animate in amusing ways when you “talk” to them? That seems too nonsensical for a story like this.
# Final Fantasy games are story-driven but fill their exploration with unrelated combat that tends to have very little to do with the story most of the time. It’s just sort of gameplay existing along side the story. But those games design their gameplay well enough to work.
# I tend to feel that adding combat to a game is kind of an over-used generic approach to “gameplay.” Yes it works. But it doesn’t make sense in every situation or story.
# Gameplay isn’t about mechanics anyway. It’s about the game you’re playing with the player. Guessing. Hiding. Searching. Chasing. Escaping. Aiming. Evading. It’s what you’re asking the player to accomplish. Mechanics are just a means for the player to attempt those things.
# Maybe I can just replace the boring maps in my game with ones that lend themselves more to the story interactions? It’s already interesting to explore towns filled with characters to talk to since “talk” is your main way of interacting with everything.
# … which would make all the places without characters, boring places.
# You don’t necessarily need elaborate game mechanics to make gameplay. Final Fantasy Adventure on the gameboy had a huge variety of interesting gameplay built out of very primitive mechanics. Maybe I should play that game again to get some ideas.
# I’ve been figuring out a bunch of various endings for the game. You rescue a bunch of girls, and where you choose to take them afterwards will determine what happens to them.
# None of the endings are “bad.” I personally don’t enjoy bad endings. They don’t feel like a fitting reward for finishing a game. Besides, choosing endings in my games is mostly just a way for the player to choose what they want to see. No need to punish people for fantasy
# I need to flesh-out Marle’s ending better. “Addicted to sex” is kind of a vague outcome. What does she actually DO? Where does she do it? What’s the situation?
# Okay, a princess who’s always masturbating can’t just walk into their home in that state. Not daring to return, she goes “feral” … a sexy kind of feral. But she still considers herself royalty so, she makes herself an Amazon queen. There! An interesting and unique ending.
# In fact… I should probably make ALL the character’s endings equally unique and unexpected. I guess I’ll re-think all the other endings now.
# Re-thinking and replacing various ending ideas to create a “balanced” variety of situations. But I have a few favorite ending ideas that are just too damn good. I can’t bear to replace them, which means I’ll have to replace other endings to achieve balanced variety.
# I think I’ve achieved a good balance in situation variety AND managed to keep most of the interesting ending ideas.
# I admit I kind of liked the ending idea where a bunny follows Julia home, her mother assumes it’s a pet and insists that she regularly take it for walks, where it secretly molests her. but…
# Julia is obsessed with becoming a sex-pet. It’s her obvious secret kink and a concept that she keeps mentioning during the game. So she kind of HAS to have at least one ending where she ends up as someone or something’s pet.
# I think I managed to come up with a “sex-pet” ending for her that’s almost as interesting.
# I think I figured out a clever way to turn the bunny-pet ending into a sex-pet situation. So I get to have my preferred ending and still maintain a balance of ending situation variety.
# Both endings are good… hard to decide which one to use.
# I think it makes more sense for Julia to choose to become the succubus’ sex-pet. It completes her character-arc better. And it makes more sense.
# … oh by the way, spoiler alert, I guess.
# Discovered it was possible to leave a character behind in a cave after disbanding a cult, which means the “left with cult” ending wasn’t guaranteed.
# So I decided the freed lesbian cultists will take the girl with them if you leave the girl behind. Later on you can find her at their home. This also enables another sexy ending if you leave her with them.
# Discovered it was possible to leave another girl behind in a cave regardless of whether the cult is there. The cave is where you first meet this character.
# I decided to make this situation unlock another ending, but I needed to add some more characters to the cave for the girl to interact with in that ending. Well… I say “characters” but in this case, I mean a pack of wolves.
# I think I should make all the girls’ “drop-off points” reversible so the player can easily experiment with different endings from the end of the game instead of having to replay the entire game. In most cases, this is a surprisingly easy change to make.
#Gameplay Needed (2)
# My game is technically “done” as originally designed, but… many of the maps feel too large and empty, with nothing to do except pass through them. I need to add gameplay to this game. I probably shouldn’t have waited until the END to consider that.
# The reason why the maps ended up too big was I copied their layout from another very old game I used to play in the 90’s. The Quest of Yipe 3 for the Classic Macintosh, a primitive RPG. It was the first game I ever modded, so I copied the maps out of nostalgia.
# But those maps were designed for treasure hunting and enemy encounters… which my game doesn’t have… it COULD have them, but do I want that? A major theme of my game’s story is that the monsters aren’t dangerous, people just assume they are.
# It would be nice to find items. I always enjoy treasure hunting in games. Maybe new abilities? I can make these rewarding by having them give you access to places with sexy scenes.
# But adding a hundred abilities and moves would be kinda ridiculous. So maybe you find money and BUY the abilities? That could work, but finding nothing but money all the time might get boring.
# The game doesn’t necessarily need more mechanics. It needs gameplay. Challenge the player to accomplish something interesting. Then add a twist or throw a fun monkey-wrench into the works along the way. An adventure is a plan going wrong.
# I mentioned how clever Final Fantasy Adventure was, but it’s not perfect. Using up mattocks to find hidden walls is aggravating without hints.
# Zelda did the same thing with bombs. But Zelda Link to the Past added hints about where to use them to remove all the expense of random guesswork.
# Zelda Link’s Awakening made secret seashells collectible. How did it do that? A promise of a mysterious reward? Periodic rewards for every 5 or 10 shells? A variety of ways to discover them? It also had a clear place to take them to.
# The princesses in my game are like Zelda’s seashells. It’s implied that something will happen when you find them all.
# Gameplay ultimately boils down to different ways to entertain the player. Interesting situations and concepts can also entertain. Maybe the first cave should be a mine overgrown with plants that turn out to be intelligent. That would be interesting for the player to realize
# I can just add unexpected twists to seemingly familiar settings and situations.
# Maybe add another “hero.” A character obsessed with glory who always shows up and cluelessly makes situations worse, turning them into unexpected challenges for you.
# Maybe that “hero” got defeated and ran off, leaving behind a key you need… somewhere. Then something picked it up. Now you have to follow the correct footprints, while ignoring the wrong footprints. That’s a situation that creates gameplay. These would make good sidequests
# I could use puzzles to add gameplay to my “dungeon” areas without adding combat. But my game shouldn’t just be puzzles. Doing the same kinds of things over and over gets boring. Gameplay variety is needed. Pacing. Switch between at least 2 types of games.
# My game isn’t all dungeons either. There are a few towns with interesting characters and an overworld. So those places should probably provide a different “game” to play. Different game-play. Cycling back and forth is basically a gameplay loop.
# But I want to avoid fetch-quests. They get overused for side-quests. They’re not even all that fun. They’re better used as a ruse to lead the player to a fun situation. An adventure going wrong.
# So far, my list of possible quest / situation gameplay is something like this…
Searching for something hidden
Figuring something out from clues
# Maybe a gameplay pacing loop like this?
side-quests => earn money
money => buy ability
ability => dungeon access
dungeon => sexy scenes + more side-quests unlocked (implied passage of time, not tied to any character)
# My game’s too small to need side-quests, so I think I’ll go with this…
- money => buy ability
- ability => access new area
- new area => money + sexy scenes
# ability => unlock new NPC hints about new scenes/places you’re able to find.
The best game loop I ever made was my Tears of Inferno game. http://www.humbird0.com/content/show.htm#/games/tears_of_inferno
But I wasn’t thinking in terms of gameplay loops. Instead it was about 3 forms of entertainment taking turns:
- sex scene
# In practice that game’s loop was something like:
- Sleep = Cryptic dream (Mysteries keep story interesting)
- Next day NPC clues about where to go next
- Zelda-like dungeon puzzles and combat
- Sexy scenes at end explain mystery
- New ability
- Find new side-quests in town
# The town changed after each dungeon like Paper Mario, with the characters all doing different things.
Snes Drunk on YouTube recently reviewed an interesting SNES game called Ihatovo. No combat. Just story and fetch-quests. kind of a 2D walking-simulator. Seems boring but it has an interesting structure.
# The “quests” aren’t missons. People just casually mention odd things. Your curiosity drives you to seek these out, causing story to happen. It would be a good way to handle side-quests. NPC’s don’t ask you to do things. They mention what they desire or odd things they saw.
# So far I’ve already created a surprising amount of fun just from level gimmicks. Some statue-pushing puzzles with a twist. A mine-cart that breaks open walls. All without any added abilities. Do I even NEED abilities? Well… I DO want treasure hunting so… probably yes.
# In an effort to add more treasures to search for, I think I’ll add fortune crystals to the dungeons. Collecting them all and taking them to a fortune teller will reveal background events of how one of the girls ended up in that particular place.
# The idea is kind of inspired by a collectable in the game Psychonauts where you open mental safes to learn a character’s backstory.
# I chose to color each crystal set to help the player keep track of which ones go with each dungeon. I experimented with using one image of a crystal and then subtracting color channels to change the color to whatever I want. Good results, but takes trial and error to tune.
# I decided to just pre-render the different colored crystals as separate image files. This makes it much easier to display them in things like item menus. This also lets me fine-tune the exact colors of each.
# It also lets me adjust the hilights to be a slightly different color. What’s better than colored crystals? Iradescent colored crystals!
# There are too many dragons and too many caves, maybe I should re-theme one of the dungeons. I think I’ll replace the “fire cave” with a magic forest. And replace the dragon ladies with fairies. This also matches one of the player’s abilities better.
# Another cave, another dungeon to re-theme. Maybe a town that was invaded by monsters long ago? This would tie into why one of the towns has an orphanage in the first place. They’re refugees. Also this town could have an interesting new culture because of the monsters.
# It would also add some tantalizing foreshadowing for a different town that’s in the middle of being invaded.
# Added a map system. This lets me add another item for players to find (the map) and it can provide Super Metroid style hints for the player to search for hidden passages.
# I decided to avoid additional side-quests and instead just have all NPC hints refer to whatever main quests are currently available to do based on your current abilities. This leaves no room for confusion about what to do next to progress the story. All quests are relevant.
# I can still hide bonus items in the town areas. But they already have interesting characters so they don’t need as much help as the dungeons do to be interesting to explore.
# When you get a new ability, you can access new places. So characters with new relevant hints should move to new places to hint to the player that they have something new to say, otherwise the player would just assume these characters would just say their original lines.
# I might add a day-evening-night cycle to hint to the player that all NPC’s might have new things to say. Time progresses each time you acquire a new ability, which enables access to a new place, which unlocks new hints from characters about seeking those places.
# It’s natural for people to be in different places at different times of day, doing and saying different things. It creates the illusion of an overall story progressing, even though the dungeons can be done in any order.
I’ve been watching a YouTube series called “Good Design, Bad Design” about how games succeed and fail at making good menus and things. It got me thinking about how I might make my little shop system more elegant.
# I don’t need text in 3 places when I have a permanent textbox at the bottom. I should re-use that. Then again, I kind of like how the shop-keeper seems to describe the items when you highlight them. Maybe I should turn the bottom textbox into a speech balloon when shopping.
# I was thinking about ways to show the character’s personalities, and I realized that when a textbox isn’t interrupting the player like in most RPGs, then a conversation can only start when the player chooses to talk to someone.
# This led to a clever idea. I love when characters banter back and forth or comment about things that are happening, so… what if a party member stepped aside and started staring at something, and when you talk to them you’ll see what they have to say about it?
# But if you wander away, the party member automatically rejoins you. There’s no interruption. The player can just keep walking and completely ignore the potential scene if they want to.
# This took some tricky scripting, and I even had to add a new feature to the RPG Maker so scripts can wait for program events. But the result is working beautifully!
# The tricky part about this is that it pulls a switcheroo. The “follower” character turns invisible revealing an identical “scene” sprite that you can talk to. Wandering away from the scene sprite switches back and reveals the invisible follower again.
# During a scene the invisible follower is still chasing the player. When it’s time to end the scene, the “scene” sprite needs to walk to where its invisible clone is and turn invisible while un-hiding it in order to switch back seamlessly, so there are coordinates to juggle.
# I discovered it was easier and more seamless to have the scene sprite literally chase the follower instead of walking towards its coordinates from a half-second ago. I had already created a SWF plugin that causes sprites to chase other sprites, so I just used that.
# These character cutscenes are easier to find when editing the maps since they have their own sprite instead of the old way of hiding a scene inside an IF statement of another NPC sprite.
# Programming the various townspeople to say different things based on what abilities you have OR based on time of day is trickier than I expected. I can do it, but it’s much more complex.
# It’s much harder when I want to put the same NPC in different places to hint to the player they have something new to say. If it’s the same map, I could just teleport them to different spots, but it’s hard to keep track of in the editor.
# It gets even harder if I want them to be on different maps, such as inside or outside houses. Do I make separate copies, or try Skyrim’s technique of having one copy of the NPC in the game and just place them? I’d need to alter the editor to make that intuitive.
# Maybe I’m overthinking this. If an NPC is going to say different things in different places, then just make each of these into separate NPC’s with only one thing to say and change their spawn conditions. The editor can already do that easily.
# The problem with this approach is if any version of an NPC requires complex conditions, then the other versions need to explicitly exclude that combination of conditions. It would be better if these different versions of the same NPC did not need to know about each other.
# … Otherwise I’m likely to have the same character appearing in multiple places by accident. I need an override system.
# I guess the solution is to try to keep the conditions simple for the NPC’s. What if I use a single flag to represent a complex condition, and then have a COMMON sprite handle that flag? A “common” sprite exists all the time no matter what map you’re on.
# Hmm… even with simple conditions I still need an override system. A SHARED state for multiple versions of an NPC. I could give each NPC their own variable, and have its value control which version of them appears. Yes, I think that might be the simplest way to handle this.
# … So instead of using multiple flags, I use a single variable with multiple values. This means only one condition exists at a time. This helps with continuity. It guarantees the character only appears in one place at a time.
# This will also be easy to preview in the editor since it already lets me preview sprites based on spawn conditions.
# I could even have 2 copies of the editor open in case I want to easily change these without switching back and forth between maps. It’s fine as long as both editors aren’t trying to edit the same map. I’ll just keep one on the COMMON map.
# I should probably try this with just one NPC before I jump straight into revising the ENTIRE GAME. That would probably be wise. If this idea is flawed then the flaws should hopefully emerge while revising one NPC.
# I just realized I was already doing something similar to this with all the “princesses” you rescue, because I wanted the game to keep track of their locations to determine each of their endings when you finish the game.
# The actual code is similar but it just sets a single variable’s value. Which acts as a spawn condition for the NPC’s sprites.
# Each appearance of a particular character is a separate sprite using a single variable as a simple spawn condition. The complex conditions behind each spawn are handled by its master script so the sprite itself can be simple.
# By moving the spawn complexity outside of the NPC itself, its master script can choose where they are and what they’re generally up to, simply by setting that single variable. That variable acts as their global state.
# Their master script chooses what they do. The sprite itself handles the details of HOW they do it. And since this character’s sprites use the same variable with different values, they become mutually exclusive. Only one will appear at a time. This helps avoid spawn mistakes
# This also makes any NPC easy to keep track of because everything they’re doing is grouped together all in one place, so it’s easy to look up and change.
# Now the question is WHEN should these checks occur? Probably when switching maps. My exit-map trigger is still flakey, so I guess I’ll use the enter-map trigger and then update all sprites after a short delay.
# Time-based hacks like these are always lame, but I don’t have a choice until I can get my exit-map scripts to fire reliably.
# Obviously the right decision is to fix that bug instead of hacking around it. But I already spent most of last night trying and failing to fix this. I’m tired of wrestling with it and I need to do something else for awhile.
# If you’re wondering why I have separate events for leaving a map and entering a map, it’s because the map transition takes time and sometimes I also want to do last-minute things before leaving a map.
# For example, if the player chooses to walk away from a situation, it could be a significant decision, and the game can detect this happening using the exit-map event.
# After revising the sailor man, it looks like the global NPC spawn control approach will work nicely.
# Good programming is only partly about knowing what to type. A lot of it boils down to organizing information well, or finding simpler ways to accomplish things.
# Some characters just follow other characters around. I could either have both share the same variable, or have one read the other’s variable while doing their own logic checks.
# I prefer not to share variables so I can keep the possiblity of the characters doing separate things too.
# Of course that means that the order will matter. The bunnygirl needs to know when the boy’s position has finished being figured out. I happen to have a “wait” command that can pause until another script finishes.
Alright, let’s finally take a shot at the fairy garden tileset.
But… browsing through my old downloads of RPG Maker chipsets, there’s pretty much nothing that looks like a hedge maze. Looks like I’ll have to just roll up my sleeves and make one myself.
# … which doesn’t exist anymore. (yes, this is actually what’s on their page now)
# Maybe I should upload all these old files somewhere later. You probably can’t find some of these anymore.
# Hmm… I think I could make this grass work for a hedge maze. Just gotta remove the grey pixels.
# This old RPG Maker 95 chipset has some NICE stone walls!
# Ooh, this fountain is nice! The fairy garden is supposed to be a royal garden that was taken over by fairies, so decorations like these would make a lot of sense. They’ll also provide useful landmarks for the player while they navigate the maze.
That’s a nice archway. It might go well with the stone walls.
… after I change the colors to match.
# A royal garden should probably have some opulent pillars too.
# When remapping colors I usually use the pencil tool to place every color in order of brightness and place the two palettes next to each other so that colors of the same brightness match up.
# God, Photoshop’s swatch window is completely useless. It’s a pain to use. I can’t sort the colors or even manually rearrange them to match them up with each other.
# Even the Indexed Color palette has no way to sort the colors.
# But there is one other way… ye olde ancient Save for Web dialog box CAN sort palettes!
# Just recalculate the palette by choosing one of the options.
# And use the fly-out menu to sort the palette.
Now I just need a picture of this. Screenshot time!
Aaaand just use the pencil and hold ALT to temporarily use the eyedropper to grab colors from the screenshot.
# A big part of the reason why I like the look of this stone wall are all the little colors mixed into it. But that also means it’s not going to be a direct monochromatic remap. I’ll put the palettes on their own layer.
# Many of the colors are simlar brightness to the greys, so I’ll put them side-by-side. Colors on the left, greys on the right, original palette in the middle. I don’t care if the pillar gets darker.
# Now just select the pillar’s layer. Grab the magic wand, sample all layers, pick the original colors from the center palette and eyedropper to grab a replacement colors from either the left or right. Then ALT+Enter to fill.
# I changed the colors, but the lighting is off. So I’ll just recolor the top entirely.
# … and tweak the left side a little. The light is not perfectly front and above, but it’s closer. Hopefully it’ll fit in convincingly.
Now where am I going to find some wrought iron garden gates?
Ooh! Terranigma’s tiles have some NICE rusty prison bars. These are definitely iron gate colors!
# Just chop off the tops, make them pointy, and make the whole thing about 1 tile shorter. That’s a pretty good iron fence.
# What about the door? I guess I couuuld just recolor the old RPG Maker prison door I’ve been using.
… aaaand round off the top into a fancy arch. Not bad!
Now I just need to create the opening frames, so… indexed palette, perspective skew distortion, and scale to shrink the width. That’ll work.
# I kind of want a double-door for the gates. I guess I can just horizontally flip these frames.
# But maybe I should reshape that arch to point up where the doors meet instead?
# Waiiit a minute… I already MADE a good tileset for a stone garden! Those leaves on the left will even tile together to make a hedge maze. Didn’t I use this in my last game? Royal Pets? Yeah, there was a hedge maze at the end of that game. DAMMIT!
# Damn, I just finished and then remembered that Secret of Evermore literally has a hedge maze in it. I could have just used that.
# Hell it has MULTIPLE maps with foliage mazes!
… and an archway.
… and an iron gate.
# It also has some nice statues and pillars I could have used. They even have the right lighting to match the stone wall and archway. Yeah… I think I’ll use these pillars instead.
# Welp, at least I have options now. I might stick with the square style hedge tiles. A royal garden would be well trimmed.
# Hmm… remapping the colors of the Secret of Evermore pillar is looking kind of… ugly.
# First, I’ll match the overall contrast of the stone wall by converting to greyscale and using auto-levels…
# … then apply a gradient map using the stone wall’s darkest and brightest colors.
# And now to add a few of those interesting colors. I think I’ll start by adding a few more color stops along the gradient.
# Then replace a few colors using the stone wall’s palette and slide them where their brightness seems to belong.
Well that’s… a bit better than before.
At least the lighting flows more smoothly, which was the main issue. I suppose I can use this. The small pillar on the right still looks nicer, but the lion-heads will provide better landmarks for the maze.
# Whoops… my hand slipped.
# I mean, it IS more authentic.
# I think I’m just about ready to turn this into a tile set.
# Set up a 16x16 pixel grid with snapping and it’s pretty easy.
# And a quick test map so see how it all looks together. I ended up switching the grass tile to something darker.
# The doors and statue are sprites. Which is easier for me to add since I’ll never want to place pieces of the statue on the map.
# Hmm… by that logic the trees should probably also be sprites. Placing and overlapping them is a pain when they’re tiles.
# BUT! Sometimes I want house tiles to overlap trees. So I do need tree tiles for towns.
# But the garden doesn’t need tree tiles. I decided to rearrange the chipset and add path edges for the stone tile.
# I’m using smart objects and masks so I can easily replace all grass or stone tiles.
# The logic of this new arrangement is additional floor tiles can go along the top, more path tiles can go below the stone tiles. Walls can go below the walls. And stuff I’m less certain about are placed farther away.
# Almost done with the layout. I can’t believe I did ALL that in just one day!
# So I’ve been playing through Tales of Phantasia lately, and then I come across this place. Dude, that is one fancy looking iron fence down there… Hey, wait a minute!
# My fairy garden has iron fences. And they look kinda crappy compared to those beauties. In fact, a royal garden’s fences probably should be fancy. Let’s fix these.
# I considered just using these instead, but I’d still need to recolor them to match the other tiles. Also their contrast against the grass is bad. Also the light direction should be from above. I might as well re-make them from scratch… but with a damn good reference!
# It took awhile, but these look MUCH nicer than the old ones!
# Wait, Tales of Phantasia ALSO had half-naked statues all along?? Damn now they’re just rubbing it in.
# Hmm… decisions, decisions. I kind of want to stick with the Secret of Evermore statue because I’m proud of my boobie edit and its blocky base works better for the garden puzzle. But the Tales of Phantasia statue has a delightfully less tasteful pose.
# These new statues blend in way too much. You can barely see them.
# Adding some darker outlines and brightening the shades helps a little, but the details are still too busy and get lost in the background walls. I think I might keep using the old statues instead.
# But before I give up, there’s a couple more tweaks I can try. First of all the reason the old statues work better seems to be that they are brighter overall than the walls. While the new statues have more contrast but also more dark areas, and those tend to blend into walls
# The 2nd change might be their color. So far I’ve been trying to give most things the same general colors as the stone walls so they look like they belong together but this can also potentially make stuff blend together. So what if I just use a different color?
# I already do this with the tables and fountains because they’re meant to stand out as landmarks. The statues serve the same purpose so it would make sense if their colors match these objects.
# But this might be overkill. These objects almost look like they’re glowing. I should probably tone it back a little. Maybe turn down the saturation?
# Hmm, this is an interesting compromise. I just overlapped the blue version of the statue over the dark version and faded it halfway. This looks kind of like faded marble. I like it.
# But the only way to know for sure if it “works” is to see it in-game. Hmm… sure the blue tint helps it stand out, but… now it looks completely out of place.
# So I’m back to my original conclusion. Use the old statue. Making the new statue brighter sort of works but the boob details get lost in the highlights. Making it blue keeps the contrast but makes to look completely out-of-place.
# The raised arm of the left statue provides a dark backdrop for the boobs that gives them good contrast. And the fabric uses bright faded details that don’t break up the statue’s overall shape, allowing it to stand out better against busy backgrounds.
# … It also lets me do this.
#A Minor Setback
# Welp, the roof blew off my house so I packed up all my stuff to keep it safe until that’s fixed. In the meantime I’ll be tinkering on projects using a little old Intel NUC computer.
# My game sometimes chugs on this underpowered computer. I guess it’s time to optimize the performance. Most of it runs fine, but the magic garden hedge maze is slowing the game to about 5 or 6 FPS.
# I have massively improved how the game handles player collision so that map size and number of sprites no longer matters. Just check for collision against sprites that are near the player and ignore the rest. But the garden maze still chugs.
# I discovered that firing an event every frame is actually pretty hard on the CPU. That might not even be a flaw in my code. Flash’s built-in event system might be the cause.
# In contrast, just running a few functions each frame is so much faster.
# Either way, I can just avoid this problem entirely by not using events for looping code. I’ve switched the sprite code to just call an array of functions each frame. This is still fairly modular, but much faster. Now the garden maze runs at 8 FPS instead of 6!
# As an experiment, I tried removing ALL THE CODE from game sprites. It turns out that just having 200 empty movieClips in existence is enough to slow the game to 20 FPS.
# So it doesn’t even matter how efficient the sprites are, the only solution is to reduce the number of sprites.
# I could break the garden maze up into multiple maps. That could work. Less scrolling will tend to make each map feel like its own “place” which makes navigation easier for the player.
# I had another idea. The main culprit are the invisible walls in the garden maze. There are a TON of them. But the thing about invisible sprites is they don’t need to exist most of the time. The player only needs to see an animation when they collide with those tiles.
# The invisible walls only need to accomplish 2 things. Block the player, and animate when the player hits them.
# The actual collision can just be handled by the map itself. Maps already have solid walls, but nothing requires them to be visible. I can assign a “wall” collision-value to any spot on the map no matter what it looks like.
# So all that needs to happen is spawning animations when the player bumps into certain map walls.
# So I plan to create a new kind of sprite. A dedicated “invisible wall” sprite. I can conveniently place these in various places on the map using the editor. But when the game runs, they store their tile locations somewhere and then immediately delete themselves.
# I can just have one piece of code that stores a list of tile locations and detects where the player is colliding. When the player moves it spawns collision animations when they touch those tiles. Only a few animations would exist at a time. And therefore only a few sprites.
# When I think about it, the player can only collide with 2 wall tiles at a time. If I wanted to be super-stingy I could cap the animations to a maximum of 2 existing at a time. If a third one spawns the 1st one can immediately de-spawn. But that’s probably not necessary.
# I got it all working pretty quickly (maybe an hour?) It works pretty well. The garden maze now runs around 15 FPS on the Intel NUC, and probably faster on a “real” computer.
# This is probably good enough, but I bet I could optimize all the cracked walls like this too.
# Before doing that, I can check the potential performance gain by making all the cracked walls remove themselves to see what the framerate would be. It looks like it would hit 20 FPS instead of 15. That seems minor, but it feels noticeably better to play.
# So the plan for the cracked walls is they just need to set map collision to be a “wall” change the map tile to a “cracked” image…
# …and then a single piece of code can detect when the player presses the “talk” button. Make them do a “claw swipe” animation. Spawn a crumbling animation at the tile location, then remove the collision and the wall images.
# These might not even need to be placed using sprites. I could just place these as map tiles with a unique collision value, and have a game script detect when the player “talks” to any of these tiles.
# Everything’s working pretty well! Now I just need to figure out how to make all these “secret” blocks show up when the player uses the scanner item.
# Man, I put WAY too much effort into this visual gag.
# Much better! I just couldn’t ignore how bad those wings looked.
# Now it resembles the dragon statues I was trying to imitate. I’m not sure what game they originally came from.
# Okay so, I just spent the past few hours working on a, um… walk cycle?
# Are these tentacles? Kinda. They’re roots.
# A grateful witch offers you a reward, and when you step outside her house one of the bushes stands up and WALKS AWAY… allowing you to access a treasure chest.
# Maybe I could have just made it levitate or vanish with some magical sparkles or something, but nope! I felt like animating WALKING TENTACLES today.
# It’s kind of an interesting challenge. Drawing it was easy, but how does it “step?” How do the roots bend to support weight? How do I keep track of its movement across the ground?
#Wrapping Up The Game
# I lied. The game is almost done now. But I have this huge backlog of “update tweets” I haven’t posted yet. It’s all the pictures. Typing words is fast, but getting screenshots takes time.
# Naming things is surprisingly tricky sometimes. For this game, I kind of wanna go with “The Princesses of Yipe” because it focuses on the game’s premise of finding princesses without revealing too much, but… this isn’t an official “Yipe” game.
# I have a lot of nostalgia for The Quest of Yipe 3 on the old Macintosh. My weird game makes some odd references to it, and I like revealing the inspirations behind these things, but I did not make the original Yipe games, and I don’t want people thinking that I did.
# Also, the old “Yipe” games are still being sold… as shareware! It’s so quirky and charming. I respect that.
# But I think I can have it both ways. I can just pick a different name to avoid confusion with the official games, and I’ve already mentioned the Yipe games in these behind-the-scenes progress tweets, so the inspiration is clear.
# Happy (similar but legally distinct) holidays!
# Someday I might talk about my weird history with that old Macintosh game. It’s a bit more than just nostalgia. It’s the first game I ever modded, and ties into my obsession with including level editors and adding fun kinky twists to games.
# Sounds effects are done, endings are debugged. I think I’m just about ready to wrap this whole thing up.
# There’s quite a lot of old unused maps and places that were scrapped, not to mention the debug rooms. Anyone who downloads the level editor might enjoy exploring these, so let’s go in and adjust all their old teleports to still work without trapping the player.
# When it comes to game design, I like to reward curiosity. I’ll include them with the game’s level editor.
#Wrapping Up Flash
# Making this game into a self-contained file would take hours, but nobody can play Flash in browsers anymore anyway. It’s much faster if I import just the music to make it play back right, and leave everything else as external files.
# Doing it that way makes it a 54 Megabyte download. Which is tiny compared to most 10+ Gigabyte games these days, but kind of embarassing compared to the 6 MB that most of my games take up, after I make them self-contained.
# Also, there are people who have trouble finding the EXE in this file soup, but I have an idea. I’ll dump all the files into a folder and make a “relative” shortcut to the EXE.
# A regular windows shortcut normally has to have the full path, but there’s a loophole. Make a shortcut to explorer.exe and pass it a relative path to a file you want to open.
# Shame about the missing icon though. I’ll just pick one of the default ones. This weird old pixel tree is charming, but I think I’ll pick the “play button”
#Eek! A Bug!!
# Rescuing Lilly from the dragon was cycling the party forward instead of backward. That’s fixed so now it’s possible so see every dragon kidnap scene for each girl by revisiting the dragon after each rescue. The dragon always abducts the last girl at the end of your party.
# I just fixed a game-breaking bug where a certain scene would permanently freeze the player. If you re-download the game, everything should work now.
#Wrapping Up History
# It took a week, but I finished converting the game into a single file, both as a Windows EXE and as a Flash SWF. This should also make it easier for people to play it on Mac and Linux, and easier to archive for FlashPoint @fp_archive
I also uploaded the source files for anyone who’s curious about how it works.
Windows EXE http://www.humbird0.com/content/games/yipe_fakeQueen/princess_rescue_win.zip
Flash SWF http://www.humbird0.com/content/games/yipe_fakeQueen/princess_rescue.swf
Source Code http://www.humbird0.com/content/games/yipe_fakeQueen/princess_rescue_source_code.zip
#Eeek! More bugs!!
# Okay… more like 10 of them. Apparently some of my code broke when I imported everything into a single file.
You can still play a non-buggy version here in its older form.
# Apparently the jump distance would change if the game lagged, so I updated the jump to run in-sync with the game. The issue was that jumping was time-based but the rest of the game was framerate based. If the game lagged the jump would end early and fall short.