Repository navigation
Add Undertale - #63
Merged
Merged
Conversation
…walking, doors, text) A new big game, built from public material: the Undertale Wiki's maps of every area (each room one pixel for one), its sprites, and the free demo's own sprite files from undertale.com. tools/fetch.py gathers them, tools/pack.py cuts the Ruins' 46 rooms into 20-pixel tiles with a collision map each. The renderer draws the game's 320 x 240 in bands; Frisk walks the rooms and their doors.
…uins' monsters, menus and saves The battle at the original's size halved: its box, buttons, FIGHT's target and bar, damage, speech bubbles, the SOUL and bullets. The Ruins' monsters with their stats, texts, ACTs and attacks as the Undertale Wiki records them: the Dummy, Froggit, Whimsun, Moldsmal, Loox, Vegetoid, Migosp, Napstablook and Toriel, and Flowey's first meeting. The intro, title, naming (with the game's replies to special names), the C menu (ITEM, STAT, CELL), SAVE, GAME OVER; saves copied into undertale_saves.py.
Every room of the Ruins, joined as in the game: dark doorways and chutes become doors (tools/rooms.py LINKS), the objects the wiki's map paints in are taken out for the game to draw (rocks, spikes, Froggits, Napstablook, SAVE stars), leaf piles are walked on, the house's rooms have their floors. Toriel's puzzles and lessons, the phone and her calls, the Monster Candy, the cracked floors and the rooms under them, the rocks (the one that talks back too), the leaf puzzle, the mouse hole, Napstablook, the Spider Bake Sale, the Froggits' hall and its yellow names, the one switch and its six rooms, the four rotating rooms, the balcony and the Toy Knife, Toriel's tree, her house, the bed and the pie, the basement, her fight, Flowey's judgement and the end of what is made so far. Events are protothreads on GCC's labels as values now: a wait inside a switch used to end its event. Rocks can be pushed; a fade can stay black (sleeping). tests/check.py plays the menus, every battle, the saves and the whole Ruins (tests/ruins.path) on the host build.
Undertale.nwa is built and released with the other big games, tested on the emulator and on a computer in CI, and has its own README, its place in the big games, the gallery, the credits and How to play.
The forest road with Sans and Papyrus, and every one of Papyrus's puzzles: the invisible electricity maze, the ball game, the word search, the X and O tiles (the second with its switch in a tree, the third on ice), the multicolor tiles and the Gauntlet. Doggo, Lesser Dog, Dogamy and Dogaressa, Greater Dog, Snowdrake, Ice Cap, Gyftrot, Jerry, Chilldrake and Glyde, each spared their own way. Snowdin Town with its shop, inn, Grillby's, library and Papyrus's house, the Papyrus fight with the blue SOUL (he captures you instead of killing you), the date and his phone number, and the Dimensional Box. The engine gains ice to slide on, the blue SOUL's gravity, shops, plank bridges and side doors in the continuous maps. tests/check.py now plays the whole of Snowdin and every new battle; the ice puzzle was checked solvable under the game's own slide rules.
Toriel's lessons and phone calls, Flowey at the Ruins door, the frogs' advice, Snowdin's library books and Papyrus's notes now say what they did in the game in shorter words of our own, rather than the game's script. The choices and the events they lead to are unchanged.
Sprite frames and map tiles now live in LZMA blocks (a sprite's frames together, a room's tiles in 8 x 8 squares of 2 KB blocks) that blk.c unpacks into a 60 KB cache in RAM, the least recently used thrown out first. The app goes from 1.51 MB to 690 KB, which leaves room for Waterfall, Hotland and New Home. Playing all of Snowdin unpacks 451 blocks, at most 17 in one frame (entering a room).
Waterfall's west half, cut from the wiki's map: Monster Kid, Sans's booth and the trip to Grillby's, the echo flowers, the stream's rocks and the tutu, Papyrus reporting to Undyne from the tall grass, the bridge seeds (pushed into the water they bloom into flowers to walk on; the bell calls them back; a secret bridge leads to the quiche), the wishing room and the history boardwalk, Undyne's spears to the hiding place in the grass, Sans's telescope, the Nice Cream cart and the punch card, the marsh and its ballet shoes, the bird over the gap, Onionsan, the piano's song and the artifact, the statue and the umbrellas, Monster Kid walking along under the umbrella to the view of the castle, and the bridge, where the game now ends. Its monsters, each spared its own way: Aaron (out-flexed), Woshua (ask to be cleaned, catch its green drop), Moldbygg (hug it, then let go) and Shyren (hum along). What everyone says is in short words of our own. The engine: objects that are floor (the bloomed seeds), pushed rocks that may go into water, and the entry nudge now sees the room's own floor. The packer: black ground counted only near its grass tufts (the marsh). The tests: a Waterfall walkthrough, its battles fled, fought and spared; Snowdin now leads on into Waterfall.
The marsh south of the telescope room is now the way on, as on the wiki: its land is black and its bright blue water is crossed by planks, down the ladder past Loren, through the ballet shoes' tall grass and up onto the narrow black path by Onionsan's water. The small bird waits across the gap of bright water, out of reach from this side. The test path walks the marsh.
Undyne cuts the bridge and Frisk wakes in the garbage dump, on golden flowers. Then the Trash Zone and the walkway with its cooler of Astronaut Food, Mad Dummy (a ghost: hits go through it, but its own missiles led back into it don't, until Napstablook drifts in), the Quiet Area, Blook Acres with Napstablook's house (lie on the floor with them) and the snail farm's races, the small bird that carries Frisk back over the gap, Gerson's shop, the twin waterfalls, the mushroom maze and the hidden way down to Temmie Village and its Tem Shop, the one shop that buys. The game now ends past the maze. New monsters: Mad Dummy and Temmie (talk to her, or feed her Temmie Flakes); new items from the shops and the dump. What everyone says is in short words of our own. The tests walk all of it and fight, flee and spare the new battles.
The rest of Waterfall, as the Undertale Wiki describes it (what's said is short and in our own words): - The lantern maze past the mushroom maze (the map draws it with no way through for Frisk, so two grass tufts of one wall are left out). - The dead end: its echo flower, Undyne coming up behind, Monster Kid jumping out of the grass in her way, and the hidden path lighting up. - The echo flowers' path north, and the prophecy's glyphs at its end. - The chasm's bridge: Monster Kid learns Frisk is a human, trips and hangs off the edge as Undyne comes; help them up, let them fall, or run off, each with its own ending. - Undyne on her crag, then her fight: the green SOUL stays put and turns its shield with the arrows to block her spears from four sides, and her spears come up from the ground. She can't be spared: fled from, she chases Frisk by the river and the neon sign (where she waits for Papyrus's call), and a catch is another fight. - Hotland's first room (a new area cut from its map): Undyne falls in the heat on the bridge, and a cup from the water cooler gets her up. The game now ends there. Tests: the Waterfall route goes on to Hotland, and Undyne's fight is fled from in the battle checks. Docs and screenshots updated.
Hotland's first floor, as the Undertale Wiki describes it (what's said is short and in our own words, the quiz questions too): - The crossroads before the Lab (the Royal Guards at the elevator, the River Person's dock), then Alphys's Lab: the lights come on, Alphys meets Frisk, and Mettaton bursts in with his quiz show. After it, Alphys upgrades the phone: its CELL now opens the Dimensional Box. The fridge holds Instant Noodles. - Conveyor belts that carry Frisk; the Magma Chamber's steam vents that throw Frisk over the lava (west leads on, east down to the Burnt Pan); the laser walkway, its lasers sweeping across (orange: keep moving, blue: stand still), and a laser's alarm when one catches Frisk. - The puzzle hub: its vent turns a quarter each time it's used; the two shooting puzzles (dark blocks pushed a cell per arrow, two shots: the rules worked out to give exactly the wiki's solutions) open the door north; Alphys switches off the blue laser before the left one. - The vents over the lava, and Mettaton's cooking show: the ingredients, Alphys's vegan substitute, and the jetpack up the growing counter against the clock. The CORE far off, and the elevator up, where the game now ends. - Vulkin, Tsunderplane and Pyrope, each with its ACTs and attacks. Engine: battles that play their own way are a table now (Flowey's first, the quiz, the jetpack, the alarm); a shooting puzzle screen (MODE_SHOOT); belts, vents and lasers in Hotland's rooms; a map-cut sprite option keeping only some colours. The test driver learns "vent:x,y" and counts a door within a room as a point reached. Tests: the Waterfall route now ends at the Lab's crossroads; a Hotland route goes on to the elevator; the new battles are fled from, fought and spared. Docs and screenshots updated.
The elevator from the first floor now goes up to the second, as the Undertale Wiki describes it (what's said is short and in our own words): - Out of the elevator: Heats Flamesman, who wants his name remembered, and Sans's hot dog stand (a Hot Dog...? for 30G). - The crossroads: the invisible path up to the Art Club's room, and the Stained Apron to the south (armor that heals 1 HP every other turn). - The conveyor belt puzzle: the top belt runs left as fast as Frisk walks, past three switches to press one after another; Alphys calls, makes Frisk miss the third, and switches the force field off anyway. - The vent puzzle: each panel landed on turns every vent around, the top platform turns them back, and falling off lands on the belts that carry Frisk back round; out by the top-left platform's vent, turned. - The Bad Opinion Zone (a SAVE, the safe, the mouse hole, Alphys on her favorite anime's sequel), and the Royal Guards at the bend: clean 02's armor, catch its green stars (they fall right over the SOUL) until it comes off, whisper to 01, and both can be spared; kill one and the other attacks twice as hard. No running from them. - Mettaton's news report: the lights, the six things to report on, and everything is a bomb. Two minutes on the clock: touch each bomb and defuse it (Defuse or FIGHT) while it crosses the DEFUSE ZONE, each moving its own way. The script rides the belt, the basketball bounces, the glass of water darts about; lasers guard the bottom, a vent leads up to the present. Alphys switches the big one off either way. - The CORE again, and the elevator up, where the game now ends. Engine: a clock drawn over the room (room_draw_top); force fields; the bombs share one monster with a look and a pattern for each. Tests: the first floor's route now ends up the elevator; a second-floor route goes from the hot dog stand to the elevator, sparing the guards and letting the news report's clock run out after one bomb; the guards are fought and spared, a bomb defused both ways. Docs and screenshots.
Some pages wrapped to four or five lines, past the bottom of the three-line box (and a page with a choice has room for two, the choices taking the third). Their lines are broken at the box's width (29 letters beside a face, 33 without) and split into more pages where needed, in the Ruins, Snowdin, Waterfall and Hotland. The words are the same, a few a little shorter.
The elevator from the second floor now goes up to the third, as the Undertale Wiki describes it (what's said is short and in our own words): - Out of the elevator: the spiders' bake sale (a donut or cider for 9999G) and the scared donut guy. - The vent islands: every grate blows the way its arrow points, to the next island (the routes match the wiki's); Alphys calls about the door east, which opens once both shooting puzzles are solved (one shot each, the wiki's solutions: left then right; left, up, left, left, right). North, the Diamond Boys come out after; south, over the belts past the laser drones (ride them without a step: they're blue), and Alphys asks Frisk to watch anime with her. - The spider entrance (a SAVE) and Muffet's lair: its webs slow Frisk down, the big one stops Frisk, and Muffet fights. Her SOUL mode keeps Frisk's SOUL purple, on three strings; her spiders ride them, her croissants come back, her donuts bounce, and at mealtimes her pet waits as the strings are pulled down to it. Pay softens her hits, Struggle halves the price; she lets Frisk go when her spiders send word (turn 17), or after one of their treats. - Mettaton's musical on his balcony, the trapdoor, and the tile puzzle below with its 30 seconds and flames: red tiles are walls, yellow ones shock Frisk back, orange smells of oranges (then the blue water's piranhas bite), purple soap slides Frisk on and smells of lemons, blue next to yellow is electrified. Then Mettaton's fight: no hurting him, until ACT Yellow turns the SOUL yellow and its shots drain him. - The crossroads: the Nice Cream guy (sold out to the Royal Guards if they were spared, who stand there with their ice cream), Heats Flamesman asking for his name, the elevator R3, and the stairs north to the MTT Resort, where the game now ends. Engine: the purple and yellow SOUL modes; floors that slow Frisk (room_speed); the shooting puzzles' shots per puzzle. Tests: the second floor's route now ends up the elevator; a third-floor route goes to the Resort's stairs (Muffet spared, the tiles solved, Mettaton's power drained); Muffet spared and Mettaton's yellow button in battle. Docs and screenshots.
The stairs north of Hotland's crossroads now lead into the MTT Resort, as the Undertale Wiki and its map describe it (what's said is short and in our own words): - Out front: Sans, who asks Frisk to dinner and takes a shortcut into the restaurant. At the table he tells of the door in the forest, the jokes through it, the old lady on the other side and his promise to her; then he leaves. A note points up the alley on the right, where Bratty and Catty sell what they find in the dump: Junk Food, the Empty Gun, the Cowboy Hat (+5 AT as well) and the Mystery Key. - The lobby: its SAVE, the fountain and its plaque, the elevator to the capital that's out of order (and the guests stuck by it), the MTT-Brand Burger Emporium with Burgerpants (Starfait, Glamburger, Legendary Hero, Face Steak), and the desk with a room for 200G. - The restaurant (no table without a booking) and its guests; the hotel's hallway: room service at doors 1 and 3 (a Sea Tea, a Cinnamon Bunny: 99G each), the room of door 2 and its bed, and a dog behind door 4 that trades a Hot Dog for a Hush Puppy. - North, the door to the CORE, where the game now ends. Engine: shops can show their keeper over the picture; prices up to 65535G. Tests: the third floor's route ends in the Resort now; a Resort route (dinner, a Starfait, a night's sleep, the doors, the CORE's door). Docs and screenshots.
The door north of the MTT Resort's lobby now leads into the CORE, as the Undertale Wiki and its map describe it (what's said is short and in our own words): - The approach, where two black shapes back away inside, and Alphys calls; the lobby, its elevator out of order (it works once the far side's reached); the fire pit that isn't on her map; the doorway, where Madjick ambushes Frisk. - The switch that turns off the force field and sends its lasers through (Alphys says orange, orange, blue; it's blue, blue, orange); the crossroads, east, no, north first: Knight Knight's ambush. - The laser bridge: Alphys cuts the power, a field on its own battery closes behind; at the wall of blue lasers the power keeps coming back (it flickers first): walk while it's off, freeze while it's on. - The Core Branch (a SAVE; Alphys gives up calling): the sage's path and its shooting puzzle (up, up, left, down, left, down, left, and two shots), the warrior's path and its three set fights and switch, or a minute's patience in front of the force field; its signs, a Glamburger and 100G in its trash cans, random encounters. - The End's bridge, the Core End (a SAVE, the elevator back), and Mettaton: he owns up to the monsters, the elevator and the maze, and to Alphys's plan. His box can't be hurt; when Alphys calls about the switch on his back, Turn him round and flip it. Then Mettaton EX's show: the ratings (4000 to start, falling while Frisk dawdles) rise with Boast (through his turn, unless he lands a hit), Pose (more the more hurt Frisk is), Heel Turn (the crowd cheers each hit), his brand's food, the Stick, a fight, a hit taken; Junk Food lowers them. His legs, bombs and blocks, arms, heart, bots, disco ball, bomb pairs, a union break, rewinding rows, his heart's lasers; his arms fall off after turn 11, his legs after 17 (ratings count double after). Past 12000 (10000 legless) the calls come in, and he runs out of power. - The hallway: Alphys tells Frisk what it takes to go home; the elevator up to the castle, where the game now ends. The CORE's monsters: Final Froggit, Whimsalot, Astigmatism, Madjick, Knight Knight (their stats, ACTs and spares from the wiki). Engine: bullets drawn as plain rectangles; a monster can end its battle at once (bt.result = BR_SCRIPTED). Tests: the Resort's route ends in the CORE now; a CORE route (Madjick and Knight Knight spared, the lasers, the power, the sage's puzzle, a Glamburger, Mettaton's show a hit, Alphys, the elevator). Docs and screenshots.
The CORE's last elevator now goes up to New Home, as the Undertale Wiki
and its map describe it (what's said is short and in our own words):
- The elevator (and one back down), the grey city's street, the front
yard and its SAVE.
- Asgore's home: the stairs down chained shut, a note on the chain, a
key in the kitchen and one in the hallway; the children's room and
its two presents, the Worn Dagger (+15 AT) and the Heart Locket
(+15 DF); the room under renovations, his room.
- The basement's two corridors, where the story of Asriel and the
first human is told as Frisk walks (in eleven short parts), and the
elevator at its far end (the street's works once it's reached).
- The Last Corridor: Sans, what EXP and LOVE are, and his judgment
(no EXP: no LOVE gained; his brother; what comes next is Frisk's).
- The throne room's entrance (a SAVE), Asgore watering his flowers,
the coffins below, and the room before the barrier ("The End").
- The barrier: Asgore asks if Frisk is ready, breaks MERCY with his
trident and fights (his fire's helix, rain, rings and hands, his
trident's blue and orange sweeps; talking with no EXP, or Toriel's
pie, lowers his guard, and it falls on its own after turn 20). Beaten,
he kneels: kill him, or spare him and hear him out, and Flowey's
pellets finish him.
- Flowey takes the six SOULs: Omega Flowey, not turn by turn: his eyes'
shots, flamethrowers, a closing ring of pellets, vines, bombs, finger
guns; now and then a SOUL fights for him (the light blue's knives,
the orange's fists, the blue's stars and shoes, the purple's words,
the green's pans, the yellow's gun) until Frisk reaches the ACT
button among its attack and calls for help: its attack heals then.
All six helped, they turn on him, and FIGHT comes down to be reached.
At 0 HP the SOUL won't give up. Beaten, Flowey is spared or killed.
- Through the barrier, Sans's call after: who rules now (the lady from
the Ruins if she was spared, else Undyne and Papyrus), Mettaton's
show, and the king gone; then THE END.
Engine: a battle's MERCY can be broken (only FIGHT, ACT and ITEM); the
end screen takes its words.
Tools: fetch.py gathers New Home's wiki pages too.
Tests: the CORE's route ends in New Home now; a New Home route (the
keys, the presents, the story, Sans, the throne room, Asgore fought and
spared, Omega Flowey, Flowey spared, the end); the test driver stops
reading on at the end. Docs and screenshots.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Undertale as a standalone app, from the Ruins to the neutral ending. README and release notes updated.