Dying Anima banner

Dying Anima

18 devlogs
56h 38m 22s

A story about Death and Immortality

A 2D sidescroller that combines mario-like parkour and RPG mechanics. Also has a story.

This project uses AI

Used ChatGPT to fill in some plot holes.

Demo Repository

Loading README...

sohiearth

Added a zelda-like heart sprite health indicator bar.

0
sohiearth

The Animations Update

What’s New?

  • Lots of confirmation dialogs, etc for the editor. Polishing it up for now.
  • Animations! Edit and view animations from the animation editor. currently supports changing sprites.
  • Overall stability improvements.
  • Cleaned up physics & ui API.

Next

I need to work on the actual story and make some assets.

Attachment
0
sohiearth

The formatting update

Minor formatting stuff, nothing new in terms of features & performance.

Attachment
0
sohiearth

The Bloom Update

What’s new?

  • Added bloom support
  • Added player log (quest log)
  • Adopt ui:: API for menu
  • Fix player movement to feel smoother and less jagged
  • Added some more assets
  • Redesign pause screen
Attachment
Attachment
0
sohiearth

Minor Update: Smart Pointers

Added smart pointers. They usually come in at mid-development because I normally don’t have any problems with raw pointers and don’t see much benefit in smart pointers other than RAII support. Not much changed feature-wise though, and performance has minimal impact.

Also added some assets.

Attachment
0
sohiearth

The Unfinished Features update

New stuff

  • FINALLY implemented the pause menu’s functions. Been holding back on that for a bit, but I wanted to make a completely new UI system based off of SwiftUI. You can see it in action in the third image. Still incomplete style wise, so I’ll have to work on that.
  • Major tweaks for physics that make the game feel less floaty and arcade-y,
  • Performance improvements all around, this time by using less dependencies everywhere.
  • Added a exposure adjustment setting. The game looks more vibrant at higher exposure settings, and dimmer at lower exposure. My first implementation of a post processing effect.
  • Deferred scene changes for overall program stability.
  • Refined player controls for a overall smoother experience. Feels like a cross between Mario and Kirby.
Attachment
Attachment
Attachment
0
sohiearth

The Progression update

What’s new?

  • Added a progression system. Save data similar to how player positions and health is stored.
  • A typewriter effect on the opening sentences, as seen below.
  • Minor bugfixes

Next,

I’ll continue to work on game-related systems and updates. I need assets, but unfortunately I’ve been procrastinating that.

0
sohiearth

The Editor Update

Changes and new features

  • Finished up deferred rendering system. Lighting is simple but effective enough. May consider expanding normals support for the sweet edge shine and indie 2d look.
  • Add SceneManager that uses a scene stack to manage, initialize, quit, update, handle input and render scenes.
  • Update Level editor to clean up the interface. Implemented a toolkit system to change behavior based on the current tool.
  • Add a move tool to drag entities around.
  • A spotlight system that lights up the area around the mouse, useful for dark scenes. (White light in the top right is where my mouse is placed)

Next steps and considerations…

  • I might want to add a post-processing system based on render passes. Not sure how I’ll make that work, though.
  • Severe asset insufficiency. I need more assets (sprites, music, etc.)
  • Working on the game perspective a lot more. I’ve been working too much on the technical side.
  • Ironing out alot of bugs.
Attachment
0
sohiearth

The Editor Update

What’s new?

  • Worked on improving the editor, which was left in a very messy and convoluted state. Cleaned up code, worked on fixing coordinate system mismatches, etc. It works pretty much flawlessly except for the PPU selection.
  • The selected entity window allows the user to edit parameters of a component attached to an entity.

What’s next?

Working on overhauling the rendering system from a simple sprite renderer to one with full lighting. Test image below.

Attachment
0
sohiearth

The Save Game Update

Updates

  • Added a save game structure that contains info like player position, etc.
  • Lots of microoptimizations, mostly involving caching projection/view matrices to reduce matrix computation. I didn’t know multiplying matrices can take up so much processing power. Got around a 10% bump in frames.
  • Lots of refactoring, some improving performance and others improving code readability
  • Added functions and structures that will become handy later on
Attachment
Attachment
0
sohiearth

The camera update

  • Smoothed out camera movement. First video is before, second video is after. The implementation removed the awkward sub-pixel jitter created by extremely small amounts of difference.
  • Implemented EnTT for ecs. First time using it, but I quickly got a hang of it.
0
sohiearth

The refactor update

Changes

  • Refactored input into core::input::
  • Refactored quad handling into core::quad::, managing quad creation and rendering over the entire lifetime
  • Moved the menu input function over to menu::input:: and a differentfile
Attachment
0
sohiearth

The Big Update

Forgot to add a devlog for a bit.

Updates

  • Added a simple level editor (pic 3)
  • Tweaked the camera position/player movement a bit more.
  • Added the ability to make the player go out of the camera’s center. The camera chases the player when it is close to the border of the window.
  • Added a paused screen. Not functional yet tho.
  • Added ImGui implementation.
  • Optimized asset loading. Using atlas systems to prevent duplicates of the same asset in memory.

What’s next?

The core rendering/physics systems are mostly complete. I’m going to work more on the level editor, fix more bugs, and start working on implementing the story.

Attachment
Attachment
Attachment
Attachment
0
sohiearth

The Game Update

Updates

  • Added the game main loop
  • Added box2D physics to move the player (smooth accel/decel)
  • Added a fun create-box-on-mouse-click function (temp)

What’s next?

As you may see in the image, I’m really limited on the number of assets at hand. I’m going to work on making more assets and the world itself. I also need to polish/brush up the rendering system. It’s really simple and doesn’t even have a basic camera.

Attachment
0
sohiearth

The Core Update

Updates

  • Added wrappers for shaders, textures, text (basic opengl stuff)
  • Improved the menu a bit more.

What’s next?

since I’ve finished what I need for core development on the menu/ui, I’m going to move onto making the game itself. That consists of making the physics systems, load/save systems, etc.

Attachment
0
sohiearth

The Start

Stuff done

  • Added project boilerplate
  • Started again with OpenGL
  • Made a banner
  • Created a main loop based on states

What’s next?

A lot of stuff needs to be done, such as making art (which is my pain point in this entire project probably) and setting up systems, keeping DRY (don’t repeat yourself), etc.

Attachment
0