WIP Monday: February 26, 2024

WIP MondayWIP MondayWIP MondayFebruary 26, 2024February 26, 2024February 26, 2024

This post is also available on my Patreon. Join up and get pixel art for your game!

Hi everyone, I’m here for a Work-In-Progress Monday!

Once again my schedule has been thwarted, but this time by covid-19. I got sick last week and tested positive, and basically lost a whole week of work time while I recovered. I’m feeling like I’m around 90% better now. I was able to get the paxlovid anti-viral, which I think helped a lot. It was my first time with the virus after nearly 4 years of playing it safe. I feel very lucky that it wasn’t worse!

Anyway, this is a quick look at what I’ve been working on. Let’s dive in!

Impact FX Pack 2

The next asset pack is underway, although it’ll be delayed until next week due to me getting sick! Above is the first animation in the pack, a “toon impact.” It’d be perfect for a Kirby-esque game, or for a comedic moment in a more serious game. I’m looking forward to doing some dust puff impacts and more!

Continue reading for lots more WIP goodness + puppy pics!

Game Engine Progress

As many of you know, I’m working on a game engine which will power my upcoming pixel art tool as well as my future games. After switching to an entity-component system, I’ve been bringing some old systems back online and reworking them in some cases to play nice with the ECS. Recently, I worked on the event system!

In the above GIF, I can click anywhere in the scene to spawn objects. The scene is the event handler in this example. The scenes are not integrated directly with the ECS, being neither an entity nor a component. The way I handled this was to create a dummy entity which the scene owns, and this entity gets a component that listens for events and passes them through to the scene.

It’s pretty straightforward. I’ve decided to allow polymorphism and virtual inheritance when using the ECS, because I think it’s the right tool for the job in some cases. One of those cases is event listeners. The alternative is to use composition, and add multiple event listener components to the entity to build complex functionality. However, then I think I’d run into problems of priority- Which of an event listener’s components should get a chance to handle an event first? It’s a question that starts out sounding pretty easy, but gets quite difficult as you delve into it and as you add more components.

In the above GIF, I first spawn some red objects using the scene event listener, and then I can move the mouse to interact with the objects. Each object in this example has its own event listener component, which can listen for mouse events and provides this “mouse-avoiding” movement behavior. Can’t wait to put this event system to work!

Zephyr Time!

Zephyr has been with us for exactly one month now and has been growing fast! She’s about 12 weeks old, and she’s been keeping me pretty busy! I’m really glad my folks could help out with her while I was sick, because she’s quite a handful!

(Above left: Before the phone’s camera sound effect. Above right: After the phone’s camera sound effect!)

(Above: Is this how you wear a shoe?)

(Above: Zephyr, now in GIF form!)

(Above: Naptime after a long day.)

Looking forward to sharing more pics of her in the next WIP post! I’ll see you next week with the new pixel art pack, and now that I’m feeling better I’m going to see if I can work ahead a little to make up for lost time. See you soon!

– Will