Releasing 1.3


Stuff we need to do to release version 1.3:

Fix checkpoints possibly respawning frogatto over a chasm

Disable the attack button in arcade levels that don’t need it.

Fix inconsistency in standing on (mostly fast) vertical platforms - sometimes frogatto will be stuck on a falling animation while jumping onto an ascending platform. Other times, he’ll randomly fall from those, also when ascending.
Fix wrong/custom physics in some projectiles frogatto spits out, like moth bombs
Add some enemies that are close to release quality to the mainline levels; such as the worm, the hopper, and the wartfly (there are a few in Challenging, but none in Casual)
Adjust the difficulty of enemies, etc. according to difficulty levels (halfway done)
Get powerups to a clean, balanced state

me: Fix the text_width_check script

Fix inconsistencies in acid areas’ damage dealing
Give fat frogatto a item-get animation
Make bouncy drops (like the blue cubes, or coins that will be left by defeated enemies) inherit behavior from a common prototype; specifically, making them fall when hitting a ceiling.

Get the frogourmet achievement up to date with our current tally of enemies (that varies depending on difficulty level)

Make level titles in the new game selector translatable
Standardize all dungeon signs so they use explicit on_talk event handlers, thus making them translatable.
Fix frogatto’s fat variation, but not the contents of his belly, being saved if he dies after passing a checkpoint while fat
s complete the solidity fixes to cave levels[/s]
boss theme starts playing as soon as one enters dungeon-crawling
using the fire powerup, it’s possible to deplete the BOSS health bar before defeating all the kitties in the crevice-village cave fight
frogatto’s homing shot has a wickedly fast trajectory when aimed up or down in an area with no enemies
Fix Frogatto being able to use powerups while carrying something in his belly - that is, he currently spits it out AND uses the powerup

There’s more that I’m forgetting now. edit: gee, I hope not.


Content additions and bugfixes that need to be made:
- burning-stone: fix platform not retaining its activation
- create “the kitty factory”
— will require a couple new easy setpieces for “the kitty factory”

— figure out in-level teleporting that doesn’t restart the level
— joints between different sizes of pipes
— large pipe accoutrements (valves, windows, rivets) done as objects

[s]- possibly duplicate the pipes in darker tones, for background use.

  • mockup a factory background and see if it’s easy to bring together?[/s]
    – finish up the factory background
    [s]- create “kitty dormitory”
    — create and place kitty NPCs on “kitty dormitory”
    — create light events to introduce your entering (a kitty saying “oh … hi there!”)
    — fix up the butler kitty to have the editor vars the walking kitty does
    — reimplement butler kitty as walking NPC
  • see if we can eliminate that bug on tea-with-milgram where it’s possible to get the script sequence stuck by skipping conversations (around the point where jeeves drops off the first tray for milgram). The problem is primarily jeeves walking to the left rather than turning to the right as he’s supposed to.
  • alter central-services’ giant coin to be less trivially grabbable with a tongue-extension
  • overhaul magic-pedestals to automatically know what level you came from, rather than using explicit array indices
  • fix sequence-break problem of frogatto getting trapped, if you backtrack to killer bunnies’ boss w/o having killed him[/s]
    - fix upside-down spikes on that arcade level, “block run”
    [s]- fix solidity issues on “block run” (run ahead of the blocks, they’re solid there)
  • fix crash around 2000 points on “block run” (The previous bug should be fixed after, it’s really easy to test atm.)
  • it’s just possible to grab an enemy as you jump on him, causing you to swallow a dead object[/s]
    [s]- fix upside-down spikes on mainline levels- tie the large collection of new dungeon levels into the main level tree.
  • fix boss fight on dungeon-crawling triggering at level start
  • create a full roster of dungeon palette-shifts
  • fix bug with new system for marking which objects have palette-shifts
  • port all usage of palettes to using macros instead of direct refs
  • killer-bunnies: replace old platform, make sure spring from bunny is always present
  • burning stone: remove annoying crate and add checkpoint
  • adjust music on old dungeon levels to use ryan’s new songs
  • apply sfx ambience on old dungeon levels
  • moonlit-ramparts: replace non-tracked platforms
  • moonlit-ramparts: place some more intelligent usage of trap-doors.
  • fix remaining issues with conveyor belt
  • medium-sized pipes, following the same pattern as small pipes?
  • palette shift to allow basement stuff to be reused in dungeon levels
    — finish off all palettes, except maybe moonlit, to have unique colors for metals
  • perspectivized basement ground tiles
  • perspectivization of the scant few (like, 2-3) basement props so they match dungeon stuff
  • perspectivized green teleporter
  • perspectivized dungeon table
  • perspectivized (in fact, totally redone) portcullis
  • perspectivized butler kitty’s tray.
  • nerf seaside ambient sounds a bit
    — do the above by implementing a system of default volume levels per effect name, since it’s basically impossible right now to tweak the volume levels.
  • make dungeon-platform track objects able to support several different things moving along the track.
    — figure out way to rename all such platforms to object_tracked_dungeon via query
    — figure out way to make all of them assign their editor var to ‘platform’ via query
    — implement the buzz-saw
  • replace old platforms on the later cave levels
    — make vertical swaying platform function in bottom->top zipline mode
    — make the horizontal-ish swaying platform’s sway dependent on rope length
    — make the actual platform_areas tilt like the new log-swings do.
    — fully conform swaying platform to wood palette, including ropes.
  • reimplement boss HP bar using decimals so it doesn’t round off near zero and disappear.
  • replace ball-and-chain objects with a tweaked copy of the new version
    — do updates to rename the new one, and make it use enum lists
  • make flying ants lose their wings when they take damage
  • make wartflies not broken
  • make music sound volume settable, apply ducking to play get-item music as sfx[/s]

Balance, gameplay, and difficulty-level stuff:
[s]- for powerup balance, make mana drops less common. Make enemies sometimes just not give drops.

  • fix bug where you can’t set negative difficulty levels in the editor
  • make crates not obstruct player walking. To hell with the puzzle in nene’s basement, it’s not fun in the rest of the game.
  • make fast-spawning enemies (at least milgram-pods, and the white maggots) not obstruct player walking.
  • do additional work to further separate our two difficulty levels - probably adding a bunch of malicious enemies (like flying plants) to challenging.
    — all dungeon levels: place additional hazards (such as spike-balls, ninja kitties, and buzz-saws on challenging)
  • balance existing powers
  • set up code hooks for ability dole-out
    — set up code in frogatto’s main object
    — give out new abilities as rewards for the nene’s basement quest, and the golden-ant quest
    — for now, any skill overflow can go in the shop as sold abilities, but we can remove them and make them quest awards whenever we come up with good quests.
  • remove dash attack in favor of a regular tongue-attack
  • fix currently disjoint titlescreen difficulty and save slot settings; make difficulty-selector mouse driven
  • figure out why ‘hidden-in-game’ isn’t doing its thing for the map-selector (and possibly the new difficulty selector)
    — or you know, fuck it, it doesn’t matter, just use set(alpha,0)
  • why are the new difficulty-selector objects moving? Warning: inconsistent, doesn’t always repro[/s]

  • Figure out some way to disable interact button for watercoolers when frogatto’s health is full. (Ideally via a property.)
    - Remove solidity from Frogatto’s house, and fix the pato sequence break that causes.
  • Fix arcade-blocks blocks.
    ? Right now, they’re solid if you run on in front after a few screens, and they crash just before points = 2k.
    ? If you get negative length, they don’t disappear either.
    ? Stacked on top of each other, I think they’re also in the wrong zorder. ::slight_smile:
    ? Blocks don’t grow shorter as health is lost.
  • You bounce on shooting plants backs, if you stand in just the right spot opposite the yellow flower.


Interesting idea I want to bounce off Dave/Krista; I don’t think this should go in 1.3, and I am well aware that doing this via @include may be feature abuse.

We currently hard-code our zorder values in objects. It kinda blows, because we’re constantly hammering out inconsistencies. There’s a large amount of pain saved by prototypes, but a lot of objects either don’t use them, or multiple prototypes share the same essential values but don’t mutually inherit.

There is also a problem in that there is no, single, global list of all zorders. It’s a logistical nightmare to re-order them.

Via something very much like our palettes: "@include data/palettes.cfg:dungeon_palettes", , it’d be possible to put all of our zorders into a single file in data, and give them names.

It’d really be nice if, instead of necessarily doing this via include, if we could instead move to a system where (especially for level tile maps written to disk), it did NOT write a numerical value for zorders, but instead wrote a name of a zorder, so that we could later change them on the fly.

I’m talking with krista about doing this for difficulty levels, but this general solution seems way better than storing explicit “magic numbers” in our content, and there are several places where we do that, that have been pain points in the past.


Near-term roadmap for must-have 1.3 items:
[s]- Render those sketched factory machines

  • make the funnel machine act as a funnel
  • fix the problem where the catfactory catwalks become inaccesible after checkpoint respawn
  • remove ants and bomber moths from forest levels (respectively being reserved for seaside and cave levels)
  • place rabbits, starburst shooting plants, and non-bomber moths on forest levels
  • remove ants from cave levels
  • rename white worms to maggots, and make them play nice with spawning around solid ground
  • place maggots, jumping worms, and hoppers on our cave levels
  • Make kitty parts, and make an invisible object that randomly drops either parts, or full kitties.[/s]
  • Do a bit of further rendering on the kitty-factory background, doesn’t need to go “all the way”.
    [s]- fix bats losing their behavior when hurt
  • give caves similar foreground/background props as seaside and forest
  • write a few more cutscenes so that the one we have doesn’t look horribly disjoint
    -atmospheric perspective on seaside BG houses
  • palette fixes for grey rock (top element from fountain, bottom element from foreground props)
  • acid in the caves isn’t always harmful Repro tip: starting on the level with acid, it causes damage; when starting from a different level, it’s safe
  • make the power-switching key (d) configurable on the main menu window
  • fix cutscenes failing to remove any control locks that might be active on the playable character
  • dungeon-platform tracks lose their rotation when reloading from a save.
  • make objects not die when falling off the bottom of the level.[/s]

[s]- new, less abrasive energyshot impact sfx (firing sfx is fine)

  • a sound for fire-breath
  • make blue cubes spawn less often on harder difficulties - honestly just apply an overall factor that makes drops precipitously less common on challenging, type notwithstanding.
  • further tweaks to energy/homingshot balance; the homing shot is -still- somewhat preferable. Maybe we need to make it dramatically more expensive, and outright rely on the player getting some form of mana upgrade (i.e. it’s so expensive that with default mana levels, it’s largely infeasible).
  • remove dash attack in favor of a regular tongue-attack
  • cap tongue-length shop upgrade count and remove spit power upgrade
  • fix tmp.started_using_ability_at_cycle bug
  • fix tmp.started_using_ability_at_cycle bug in a futureproof manner
  • create a few mana-recharge shop items.
  • create a few mana recharge talismans that do maybe 0.5 and .75, respectively
  • make fountains recharge mana - maybe place another few fountains?
  • silhouette fx for points cubes[/s]

Difficulty (tweaks to make challenging moreso):
[s]- make spitting-flowers of all (but the supershooting-plant) types aim.

  • make all enemies that deal 1 points of damage deal 2.[/s]

[s]- Change A/B buttons to be less ugly.

  • Change A/B to have 3 directional segments (up/mid/bottom).
  • Check for performance regressions (we know swaying platforms were bad in the last build ~4mo ago)
  • Screen rotation will have to wait till we upgrade to a full version of SDL 1.3, and I think that’s probably out of scope. :frowning:
  • Disable 16-bit graphics on newer devices.[/s]
  • Try activating “retina-aware” scaling (optional since I’m not sure it looks better).
  • writing code to allow our sound effects be m4a instead of wav would probably yield marked performance increases, and would dramatically lower our data size. Wavs of the ambient sounds are gonna hurt.
  • Disable the attack button in arcade levels that don’t need it.
  • Disable the GUI while in cutscenes.

Remaining bugs:
- belly contents on checkpoint respawn

  • lose control of frogatto
    - shadow texture goes haywire on editing
  • arcade-blocks block-length doesn’t decrement
  • arcade gui should display HP.


Thoughts on how we should go about releasing 1.3 and manage things moving forward:

  • Let’s start by concentrating on having everything ready for the PC/Mac/Linux release. Get things ready for mobile in the background, but PC/Mac/Linux is the initial target.
  • Make release candidates, put them out and test them.
  • When an acceptable release candidate is available, release it as 1.3.0. Make a 1.3 branch at this point in git.
  • Work on making 1.3 work perfectly on mobile – performance work and any remaining features.
  • Tag a 1.3.1 which will be Frogatto working on mobile and on PC/Mac/Linux, and release on mobile.
  • Going forward, we can continue to release some updates to the 1.3 branch. Since the focus of 1.4 is going to be boss fights it’s possible the 1.3 branch will turn into the 1.4 branch with merges of content rather than a separate branch.


[s]- new iPhone controls

  • new iPad controls
  • remove a/b switching
  • footfalls
  • gate clipping[/s]
  • mouse on load/save
  • memory-choking (now shows up on crevice-village)
  • sfx loops stopping

- DNO_EDITOR or editor save paths

- angry frogatto emote

  • little brass machine for rope conveyance