@MenacingMecha@mastodon.gamedev.place
@MenacingMecha@mastodon.gamedev.place avatar

MenacingMecha

@MenacingMecha@mastodon.gamedev.place

🧛‍♂️ 👍 Generalist indie dev, Linux user & known goblin fan. Mostly making "crusty" early 3D style games in Godot. Watches a lot of movies. - He/Him

Working on #y2roll

Worked on The Garden Path, Wrought Flesh

Currently unavailable for work

This profile is from a federated server and may be incomplete. Browse more on the original instance.

MenacingMecha, to random
@MenacingMecha@mastodon.gamedev.place avatar

left the game running for a bit

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

finishing up for the day

spent most of it refining the ECS workflow, meaning all the changes are invisible, so no screenshot/clip

little concerned about scalability as every new system requires iterating over entities again, but there are ways to optimize (and using bitmasks to check components, so even unoptimized i'm only seeing FPS drops after 3k entities - which is more than enough)

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

sorting has been interesting pain point - for now I'm processing per entity per system for unordered update tick, and per system per pre-filtered and sorted entity for drawing

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

hurtbox display (no collisions yet)

starting to realize some easily fixable performance no-no's, but given we currently hit 16ms at 3k entities, and I don't expect there to ever be >500 entities in play, I'm semi-confident they can be entirely ignored for the duration of the jam

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

finishing up for the day with collisions & entity deleting

collisions are done in a horrifically inefficient un-optimized way but, again, should not hit enough entities in play for it to be an issue

entity deleting was very easy, because lua arrays still function like hashmaps, but it breaks the in-built length function

could track on it's own very easily, but I don't care about it for anything, so iterate for non-nil elements every 0.5s it is

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

charge attack

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

finishing up for the day

collision both ways, charge animation, sfx, bgm

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

finishing up for the day

multiple enemies with different pathing

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

hitstop

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

finishing up for the day with timer hud (which bounces, of course)

all that's left is player health and a start/gameover screen, and it's a full playable game!

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

menu -> game, using hump.gamestate

this top-level FSM workflow is what game engines are sorely missing! this would eliminate a lot of headache in !

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

painless pausing w/ hump.gamestate

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

player death and transition back to menu w/ hi-score

loop is complete! it's now a fully playable game! everything's a bonus from here on out!

video/mp4

MenacingMecha, to random
@MenacingMecha@mastodon.gamedev.place avatar

have my game concept and assets all prepared for the Spring Lisp Game Jam 2024 (https://itch.io/jam/spring-lisp-game-jam-2024)

will be using the fennel/love2D graphics test i've been posting recently as a basis to make something ECS-y

https://codeberg.org/MenacingMecha/love2d-bounce-test/

MenacingMecha, to gamedev
@MenacingMecha@mastodon.gamedev.place avatar

any folk have experience with providers for small businesses? ( especially but all welcome)

looking for any and all input/recommendations/warnings

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

@daviwil i remember looking at this when you first talked about them but wrote them off as I assumed it was non-business only

looking at it again it doesn't actually say that anywhere, and they are by far the cheapest and no-nonsense looking one I've come across, so unless something comes up will probably go with them cheers

MenacingMecha, to random
@MenacingMecha@mastodon.gamedev.place avatar

🎬 watched Miller's Crossing (1990)

Ehhhh.

Hard to follow for the first 30 mins, has some great scenes splattered about, but doesn't set up a goal or meat to sink it's teeth into, so you end up just waiting through plot beats until it ends, which is always what you want from a movie.

While everyone else gives a fantastic performance, things are hampered by the protagonist being an absolute unlikable charisma void. I do not care for his plight. He is not interesting or entertaining to follow.

MenacingMecha, to gamedev
@MenacingMecha@mastodon.gamedev.place avatar

following up last week, here's a skip a private playtester sent me that - no hyperbole - I did not think was possible

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

received a meme in response to this on twitter, which might be the single best sign that marketing is going well

MenacingMecha, to random
@MenacingMecha@mastodon.gamedev.place avatar
MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar
MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

hmmm

starting to try refactor this out into separate modules and running into ugly state situations when hot-reloading with systems in separate modules

researching myself now, but any examples of #fennel games using #ecs would be appreciated (will update if I find any)

edit:

examples of fennel games using ECS i found:

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

starting to get something more hot-reload friendly together

looking like the ECS library route is a bit of a trap, so I guess just take as simple steps as possible and add functionality when it's needed. i want my systems pure and reload-friendly instead of stuffed with state - state is for entities

currently no entity filtering because there's only one entity and from research it looks like there's a lot of very different ways to go about approaches to entity filtering

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

added player controlled entity and y-sorted drawing

have little experience with GC'd game dev languages so not sure if that rate of memory growth is a smell or if luajit just be like that

video/mp4

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

final final update to this, added Makefile rules for windows & linux builds

is it a Makefile crime to download dependencies? absolutely! but it works and I don't know enough nix to solve it with derivations or whatever

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • rosin
  • ngwrru68w68
  • osvaldo12
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • thenastyranch
  • Youngstown
  • khanakhh
  • everett
  • slotface
  • tacticalgear
  • kavyap
  • provamag3
  • cisconetworking
  • Leos
  • GTA5RPClips
  • ethstaker
  • InstantRegret
  • cubers
  • modclub
  • Durango
  • anitta
  • tester
  • normalnudes
  • megavids
  • lostlight
  • All magazines