mail

mail

12 devlogs
12h 47m
•  Ship certified
Created by iris

a charming adventure-platformer where you have to post some mail

Timeline

Ship 1

1 payout of shell 232.0 shells

iris

about 2 months ago

iris Covers 12 devlogs and 12h 47m

final devlog i hope! i finished up the game, added a win screen and menu screen, added support for web builds, and fixed a bunch of other problems.
one problem was the order that point-of-interest markers showed, basically, based on the player's tags, i.e. what actions theyve done that have been tracked, different point-of-interest markers should show, to highlight for instance which NPCs you can talk to. since the game has grown so much, many old point-of-interest marker conditions didnt take account for the new possible tags, so i just had to go through and make sure everything shows when its supposed to.
i also made camera lazy follow player on y axis, basically just not have it totally fixed and only move it when the player is over a certain threshold.
anyways, games basically done now, unless i think of something else ig ill ship soon

Update attachment

added this little gift selection screen! basically in one part of the game you have to get someone a gift to progress, and i added this little screen to make that a bit more interesting. i think its fun to break up the regular gameplay with these random events/mechanics.

Update attachment

hackatime says i only have 37 minutes of unlogged time but really ive spent like 2 hours drawing assets and mapmaking. ive added a bunch of NPCs and expanded the world a bunch. project is nearing completion! this game is actually really inspired by Thank Goodness you're here!, and much like that game, most NPCs want you to help them with something. i just think its a bit charming and fun doing these silly tasks for silly looking characters. this game is not some kind of fast paced action platformer, but rather just a fun little town to explore with the goal of delivering some mail (and a creative outlet for me lol)

Update attachment

interactable entities makes the game feel more... interactable!? idk it just lets me make more complex stuff in the game and have the player have to move between diffferent areas to complete different quests. these interactable entities show a tooltip, that when pressed will give the player a tag.

Update attachment

this devlog i added a super generic Entity type! see the attachment, there both the exclamation mark and the speech bubble are seperate entities, with indiviual draw conditions and draw behaviours.
to do this, i also implemented a tagging system for the player, and this is something i always planned on doing. basically, whenever i need to check if the player has been to an area or completed some task, i can create a tag for that, and give the player the tag when relevant, and check whether the player has it.
in this case, the exclamation mark will display while the player doesnt have the HasInteractedWithHenry tag, and will give the player that tag when they approach. the speech bubble will display ONLY when the player has that tag, and is close enough.

Update attachment

for testing purposes i made it so whenever shift is held, collisions and gravity are disabled and vertical movement is allowed, effectively granting you noclip! this just makes my life easier, i can test faster and navigate to buggy areas quickly after restart

Update attachment

variable jump height - hold space longer, jump longer!
simple feature but something a lot of platformers lack which make character feel a bit unresponsive

Update attachment

[VIDEO]
ive finally got the player physics to the point where i no longer discover weird edge cases and jank! ive had huge issues regarding negative coordinates, see, when you cast a floating point number, like 1.5 to an integer, the decimal is cleanly removed, in this case, to 1. The .floor() operation also removes the decimal of a float, rounding down, so 1.5 -> 1. The problem is that for negative numbers, casting -1.5 to an int would give -1, while calling .floor() would give -2. In a lot of places, i assumed .floor() and the cast would give the same value, not knowing about the negative case.
This took so long to figure out, but basically meant the collision detecting would work differently depending on whether you were in positive or negative coordinate space.

devlog 4: one way platforms and new textures!
adding one way platforms was really easy, i just added a new layer to the tilemap for one way collision tiles, and i made a special case in the collision code where if your vertical velocity is pointed downwards it will also chck the one way collision tilemap layer.

Update attachment

made player physics work! its still buggy though, whenever you move towards a tile perfectly diagonally, youll snap inside it, so that still has to be fixed, but atleast you can move around and whatnot now

Update attachment

im just trying to setup a basic platformer controller why is this happening to me :sob:
im trying to get collision working but wowie am i stupid . honestly might just stash all the physics code ive made and rewrite the physics from an old platformer i made in python.
idk.

Update attachment

first devlog! this is going to be a platformer / metroidvania (havent decided yet). i did however decide to try using Tiled's infinite tilemap system. basically, Tiled is a program you can make tilemaps with, and it has an option to create infinitely sized grids, that gets grouped in to 16x16 chunks. i wrote a parser for this and got the world chunks rendering! having the world inately split in to chunks will also help later on for optimizations!
next devlog i think ill just keep setting up more core systems and perhaps a basic player

Update attachment