DEVELOPER.LOG
psychotic aspiring developer
burnt-to-a-crisp artist
low-level programming cultist
neurodivergent
trans & obsessive
  • Lore

    Gary (the protagonist) is a once-famous crime journalist who was targetted and left for dead by the mafia for "unwarranted pilfering".
    Gary recovered but would never have the ability to walk again.
    The events of the planned game is Gary's revenge quest targetting the mafia's heart-of-operations skyscraper:
    1. Infiltrate
    2. Steal as much cash & cargo as possible
    3. Leave no witnesses
    4. Repeat from 2.

    CLICK TO REVEAL
    Click to reveal more

    This is more

    Easter Holidays

    Yeah, uh. I couldn't work during the easter holidays. It was a difficult moment for me during my transition and I had no focus other than on my wellbeing. But that period is over and the outcome has been the best I could have hoped for.

    Things will be better moving forward.

    The Player

    Player movement's complexity in this is the math - velocities of two wheels, recoil of the gun, interaction between angles. It's insanity, but I managed to put something together after a gruelling process.

    13-3

    22-3

    19/4 - Implementing duel keybinds for actions. Helpful for ease of control.

    20/4 - Just found out i accidentally reversed reversing.

    22/4 - Added hopping & coyote time!
    Hopping provides airtime with zero traction/friction & orients the player toward the direction of their aim, & providing coyote time:
    a brief period where leaping orients the player in the direction of their velocity rather than aim.

    23/4 - Trying to redo the whole basic movement system because something went wrong and I don't know what

    25/4 - Satisfied with player movement

    Inventory

    The inventory is a tight system - two hand slots and two pocket slots. Items may quickly be swapped from hand to pocket and pocket to hand. Holding an item in a hand means the corresponding wheel cannot be controlled.

    20/4 - Partway into the creation of the inventory system, I thought about DOOM Eternal, and how weapon swapping allowed for constant "rapid fire" of two or more powerful weapons,

    22/4 - Inventory item swapping implemented, somehow I managed to also break turning. Lovely. (new notepad++ theme btw ‹3) (Turns out I was storing -1, value of an empty inventory slot, in a unsigned, changing its value and the slot is no longer "empty")

    Physics

    The contents of this log were educated by youtuber javidx9, or "OneLoneCoder".

    8/5 - Boxes, or "crates", are harmless obstacles that can be destroyed with physical wheelchair force or being shot at (yet to be implemented).

    These boxes are also useful to demonstrate the dynamic camera, which takes a 2D point in the "object space", returns that position in the "render space", as well as a scaling factor & rotation offset, relative to the camera orientation.

    Due to the crude physics simulation, the player clipping too far into the box in a single frame causes the player to achieve "infinite" velocity.

    12/5 - Raycasts are the heart of accurate physics simulations. Here a single ray is used to return the contact point & surface normal if it intersects with rects.

    13/5 - Ray can hit circle, Ray can hit rect, Circle can hit Rect without clipping.
    An extended rect "sum" has the dimentions of the initial "rect" extruded outwards by the circle's radius.
    Should the line clip into the corners of the "sum", beyond the bounds of the "rect", instead the ray is cast to collide with a circle at the corresponding corner of "rect".

    14/5 - Replaced the movement-collision functions for entities to use raytracing instead of steps. In the visualizer, the physics worked completely fine. BUT NOW THE PLAYER CAN CLIP INTO WALL CORNERS.

    Environment
    10/5 - The map, or "floor", is composed of a 8x9 grid of vertical walls (relative to perspective), and a 9x8 grid of horizontal walls. On floor generation, each wall has a 1/2 chance to exist.

    11/5 - Each has been given thickness & physics. & a 3x3 region without interior walls at the center of the floor & a random 3x3 space around the edge.
    For optimisation, the player's position creates a crude region that enables the physics of the walls with the player.

    Despite how far late into the project it is. This is a proud moment of development for me.

    Adversaries
    10/5 - Only one enemy type will be present - the "goon". They chase the player from a distance, stop or run away when you get too close.

    The End
    16/5 - A massive roadblock was encountered in the development of the project - one that, given how much time is left, means the game remains in an unfinished state for submission.

    Due to an error with the physics I have been unable to resolve with the assistance of others within similar communities, the game is stuck in an unplayable state.