URI:
   DIR Return Create A Forum - Home
       ---------------------------------------------------------
       Xyrinfe Shadow Project Forums
  HTML https://lunarshadowcs.createaforum.com
       ---------------------------------------------------------
       *****************************************************
   DIR Return to: Member Works
       *****************************************************
       #Post#: 15911--------------------------------------------------
       Project K
       By: AuroraDash Date: October 10, 2021, 7:50 am
       ---------------------------------------------------------
       This is that secret project thing I mentioned. I have a real
       name in mind but I won't reveal it until I'm sure I'll have
       something to show for it. No promises yet, it might still all
       come to nothing.
       
       The plan is for a metroidvania type platformer with fancy
       advanced movement. I was going to write a long document about
       all the things that inspired me and how I arrived at my [s]super
       brilliant[/s] design decisions, but instead, for now, I'll
       dedicate this thread to what I've actually accomplished so far.
       
       Originally, Sypher was going to be involved with this, but given
       that he's not in the picture anymore it'll be just me again.
       Although, I want to get a few trusted people together to look
       over things to make sure what I'm doing isn't awful.
       
       A lot of ideas been carried over from a tech demo I made in 2019
       and then cancelled, which I called Legends' Perdition. I got
       pretty far, though.
       
       The basic platforming physics is all there and I'm quite happy
       with it. I wanted smooth comfy platforming physics that still
       kind of resembles the style I used for Legend of Grey Moon and
       the Solar Shadows, but updated with all the modern conveniences
       for the smoothest and most comfy platforming experience. So, I
       added coyote frames, input buffers and corner correction, and so
       far it all works great.
       
       I originally wanted to add moving blocks, however, that turned
       out to be monstrously difficult so I decided it wasn't worth the
       trouble.
       
       I also reduced the base walking speed and jump height so that
       things don't get ridiculous once the movement gets upgraded. One
       of the reasons why Legends' Perdition failed was that the
       character was too agile, which clashed badly with the contained,
       single-screen rooms of my other platformers. So, I'll have
       bigger, scrolling rooms this time. Like Misery of Magic, the
       game window will be 853x480, but unlike it, it will make use of
       all the extra space to show you more of the room. Misery of
       Magic has 640x480 rooms and uses the extra space for the
       sidebar, and for whatever reason in Legends' Perdition I copied
       the sidebar thing because I'm a dumbass I guess.
       
       To accommodate the bigger rooms, I created an upgraded "grid
       system", which is what I call the code that connects the rooms
       to each other. LoGM, SS2 and Misery of Magic all have very
       similar systems where all the rooms are part of a grid and each
       room's position within that grid is encoded in its internal
       name. This is very convenient because, when one goes out of
       bounds, the game can automatically figure out the name of what
       room should come next so all I need to do to put a room in the
       right place is to give it the right name. With the Legends'
       Perdition demo, I upgraded it a bit and and made it so that
       rooms didn't necessarily need to be all the same size, although
       they were still limited in how they could be connected together.
       
       However, I've totally overhauled the grid system for this new
       project. The game now automatically builds a list of where all
       the rooms are on the grid and how big they are. When the player
       leaves a room, it combines the position of the player character
       within the old room with the position of the old room within the
       grid to calculate a "global position" of the character, then
       checks that global position against the list of rooms to see if
       it's inside any of them. If it finds one, it can then use the
       global position to figure out exactly where to place the player
       within the new room.
       
       It's nearly as convenient as the old system and lets me connect
       rooms to each other however the hell I want! :D
       #Post#: 15931--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: October 16, 2021, 6:38 am
       ---------------------------------------------------------
       [font=Proxima Nova
       Regular]
  HTML https://i.imgur.com/b6xj5M3.png[/font]
       [font=Proxima Nova Regular][/size][/font]
       #Post#: 15932--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: October 16, 2021, 7:05 am
       ---------------------------------------------------------
       Cool feature number three: autotiling!
       There are two versions of it at the moment, although I'll likely
       need a couple more by the end.
       #Post#: 15952--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: October 21, 2021, 1:54 am
       ---------------------------------------------------------
       I've been implementing the mechanics behind spikes and various
       other death-zones.
       There exist both generic spike objects that are always fatal and
       directional spike objects that are only fatal if touched with a
       non-positive velocity in the direction the spikes are facing.
       I revamped the corner correction mechanic so that you cannot be
       corrected into spikes. I also made upwards corner correction
       more lenient -- previously, in contrast to other directions,
       upwards corner correction required one to be moving slowly
       upwards or not at all -- the vertical component of velocity
       needed to be between -1.5 and 0. Now, it just needs to be
       greater than -1.5, but with the added condition that one cannot
       be corner corrected upwards too soon after leaving the ground.
       The reason for this is that otherwise, it becomes possible to
       walk off a platform and then immediately walk back onto it which
       is kinda janky and uncomfortable.
       I was worried that, even without explicitly being corner
       corrected, it would still be possible to get snapped onto a
       platform you shouldn't be if you just happened to be within the
       right 2-pixel margin above a block. However, taking a closer
       look at my code, I don't think that's mathematically possible
       unless one's vertical speed is slow anyway.
       That caused a bizarre bug where you'd sometimes get stuck in the
       ground for no reason, but I fixed that as well.
       There will need to be a third version of the autotiler
       specifically for handling spike tiles, but I haven't made that
       yet.
       #Post#: 17191--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: January 10, 2022, 9:19 am
       ---------------------------------------------------------
       A heap of nasty grid system bugs have been ironed out.
       I've put together a little intro area to play around in.
       Everything feels quite nice. I'm still using placeholder sprites
       and whatnot, though, so it doesn't look good at the moment. It
       includes bounce pads, a newly implemented feature, which I think
       are necessary for the intro level because the player character
       does not have much vertical mobility at the beginning.
       I am considering bringing back the imaginary floor mechanic from
       SS2 and LoGM -- the thing where you can stand on the bottom of
       the screen for a moment after entering a room -- but I might not
       need it this time.
       There were weird issues where, when connecting rooms in certain
       ways, blocks couldn't line up properly. To fix this, I made
       every room be an integer number of blocks wide. This means that
       I had to increase the standard 1x1 room size slightly to
       864x480. The window remains 853x480 in order to stay in the
       proper proportion for widescreen. The discrepancy is no problem
       because the camera code I have happily scrolls the screen the
       extra 11 pixels automatically, just like it scrolls in larger
       rooms.
       #Post#: 17229--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: January 12, 2022, 8:43 am
       ---------------------------------------------------------
       Added a real display to show information, including an
       indication of what abilities are currently available along with
       a timer and a few other simple necessities.
       Been more interested in this project than usual lately. I've
       done stuff on it several nights in a row now.
       #Post#: 17656--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: February 6, 2022, 8:54 am
       ---------------------------------------------------------
       Got off my ass and did some more today :3
       Fiddled with the physics a bit more. I decided to increase the
       terminal velocity while you're not holding down the jump button.
       This lets you fall fast, but only when you want to.
       Decided to make a proper sprite for the main character. Kind of,
       I suck at drawing.
       #Post#: 17678--------------------------------------------------
       Re: Project K
       By: AuroraDash Date: February 7, 2022, 9:17 pm
       ---------------------------------------------------------
       Added parallax-scrolling backgrounds, which look pretty awesome.
       Fixed up some of the menus too :3
       Might give a test build to a few select people once I've
       polished the intro area a bit more.
       *****************************************************