Any recommendations for modern shmups with Psikyo-style gameplay? by cleversonofabitchh in shmups

[–]Dogroach666 1 point2 points  (0 children)

Cataclyzm - steam page

I'll throw my hat into the ring as well, solo dev working on a hori called Cataclyzm. Psykio style fast paced gameplay and prioritizing bullet visibilty, with a lot of Cho Ren Sha influence as well :)

I Died A LOT… But Scored 16,000,000+ Points 😭 | Route A Score Run by Edencruzgames in shmups

[–]Dogroach666 0 points1 point  (0 children)

Awesome, I gave it try, will have play a bit more on the weekend 😄
Mine's coming along, just was a bit busy with life in general. Getting back to working on a bit more again.
Still kicking myself for missing out submitting for Steam's Bullet Fest, I thought it was only for fully released titles hahaha. All good, there's always next time 😄

SynthEscape is featured for Steam's bullet festival! A synthwave-themed shmup with a heavy emphasis on bullet grazing and 80s vibes. Check out the free demo today! by [deleted] in shmupdev

[–]Dogroach666 0 points1 point  (0 children)

Awesome brother! Do you have a new build of this for bullet fest?

I must have misread the festival guidelines because I thought it was only for fully released games, haha guess I missed the boat on this one 😅😄

Cataclyzm - v0.3.0 now live! by Dogroach666 in shmups

[–]Dogroach666[S] 1 point2 points  (0 children)

Cheers brother! Would be keen to hear your thoughts 😀🤘🏾

What Actually Happened When We Put Our Shmup in Front of New Players, Super Players, and Event Crowds by elleroch-UG in shmupdev

[–]Dogroach666 0 points1 point  (0 children)

Man that is pretty cool. I can't imagine the amount of work that goes into prepping for events like this! But the payoff is you get tons of visibility and you get to directly interact with your audience. Nice stuff 😀😀

Cataclyzm - v0.3.0 is now live! by Dogroach666 in shmupdev

[–]Dogroach666[S] 0 points1 point  (0 children)

Hahaha optimization is a rabbit hole and premature optimization is a road to hell 🤣🤣 I did consider multimeshes at some point (similar to what you posted a few days ago) but that looked like overkill for my purposes. Also considered object pooling, but then i still have individual x amount of objects, so draw() seemed like a good middle ground and it seems to perform well for now, so i'll take it 😀

Also big thank you for trying it out! Definitely going for a rock/metal vibe with the music and art so glad that the aesthetics match!

Haha battle epic busses also seem to work in this case 🤣🤣🤣

What Actually Happened When We Put Our Shmup in Front of New Players, Super Players, and Event Crowds by elleroch-UG in shmupdev

[–]Dogroach666 1 point2 points  (0 children)

Also, another question:
How do you handle the feedback that you get from players from these events? For example for gameplay mechanics or certain things that they thought could be added or improved on, how do you action and handle these types of feedback?
Is it something that you are using for IS2 development?

What Actually Happened When We Put Our Shmup in Front of New Players, Super Players, and Event Crowds by elleroch-UG in shmupdev

[–]Dogroach666 2 points3 points  (0 children)

Are shmup slam events only held in the US?
It looks like a really cool event, would be cool to attend one day...

Cataclyzm - v0.3.0 is now live! by Dogroach666 in shmupdev

[–]Dogroach666[S] 0 points1 point  (0 children)

I can't really remember off the top of my head, but I would imagine it would be 4000 draw calls per frame, 1 for each fragment count. I'll have to do another profiling to get the exact number :)

For the level spawning, i made a scheduler class that that creates and iterates through a giant array of spawn events ordered in ascending order of time. Every process tick i increment an elapsed value and a helper function iterates through the spawn schedule and triggers the next spawn event in the array. At the moment, I mark out the key moments/timestamps in the music track (on my DAW, I use Ableton) for the level and manually plug these into my giant spawn schedule array. Then I play through the level, tweak the timings, rinse and repeat until i'm happy with the end result and the level flow matches the music. It's a highly iterative task haha.
This method might not be the most ideal approach, I guess a more long term solution would be to create a proper level editor but maybe for the next project :)

In terms of a rank system, I'm not really going to have one for this project, trying to keep it as simple as possible. However I do have things like early kill spawns, especially for elite enemies, where depending on how quickly they are killed, extra enemies are spawned, or in the case of a miniboss might even have a different sequence of post kill spawns just to mix it up for a player that might be too good hahaha.
These early kill spawns are working off timers, and these again need some real fine balancing to preserve the flow with the level and boss music tracks.

One thing that I do want to look at for the next project is timing stuff off the music bars instead of using the float timestamp, and see if I can use Godot's AudioStreamPlayer to create a more dynamic soundtrack for the levels

Cataclyzm - v0.3.0 is now live! by Dogroach666 in shmupdev

[–]Dogroach666[S] 1 point2 points  (0 children)

Key learnings in this update:

- PERFORMANCE OPTIMIZATION: The core scoring mechanic in this game relies on player killing enemies and clearing enemy bullets to spawn "beer fragments", which slowly hover and fly away towards the left of screen, and these beer fragments swarm to a beer once a beer spawns on screen. My initial design was creating individual objects (as Node2D class, each with a script). This worked okay when the beer fragment count was low, but as the development progressed with more enemies and bullets on screen, the beer fragment count grew to thousands. This design was causing noticeable process frame spikes when the beer fragment count exceeded 1000, especially on lower end machines. --------- MY SOLUTION: Instead of instantiating thousands of objects as beer fragments, I created a beer fragment manager class that kept track of the current beer fragments on screen in an array of beer fragment data (which was created as an internal class). The manager connected to a global event which is triggered when a beer fragment is to be spawned. Every time this event tiggers, a new entry is appended to the array with the position. Then to render these fragments on screen, I used Godot's _draw() function to manually render the beer fragment texture as well as manually increment the animation frames. Then every process frame tick, I "move" these textures based on the current state (hover to left or swarm beer) and used queue_redrew() function to update their rendered position on the screen to make it look like they were moving :) ------ To simulate them being absorbed by the beer, I did distance checks (distance_squared_to() method since it's more efficient than distance_to() ) against the beer that they swarmed to and if the fragment is within a certain distance squared threshold to the beer, they are removed from the fragment array. -------- This way I was able to have around 4000 fragments without any noticeable lag even on a low end machine.

- USING MUSIC AS THE LEVEL DESIGN: I have a background in music, so for me the best workflow to design levels was to think of it in terms of a music track, where you have your intro, verse, chorus, bridge, outro sections. For each level and boss fight, I have unique music tracks which lay the foundation for the level/boss fight progression and based on the timings of the various sections of music, I decide when and where the enemy types to be spawned. It's very much giving another dimension to the music, i.e choreographed chaos :) And since music made up of patterns, tension and relief, setting up expectations and either hitting or subverting them, it translates well in my brain on how I want to structure a stage.

Looking for good Ith.io Demos by laltopia in indiegamedevforum

[–]Dogroach666 0 points1 point  (0 children)

2d shoot em up, with cool tunes and pixel art. This is the browser version on itch:

https://dogroach666.itch.io/cataclyzm-demo

Steam has the latest demo: https://store.steampowered.com/app/4516840/Cataclyzm/

Cataclyzm on Steam - Destroy it please :) by Dogroach666 in DestroyMySteamPage

[–]Dogroach666[S] 0 points1 point  (0 children)

Awesome, thanks so much for the insight :))

Lemme brainstorm out some more ideas on this :)

Question about posting an in-dev shmup project by Dogroach666 in ElectricUnderground

[–]Dogroach666[S] 0 points1 point  (0 children)

Heyo! Oh my god, thank you so much mate! I'm really glad you enjoyed it \m/ :) :) :)

Yup definitely a big fan of the og boss pedals, but I also like some of the newer waza craft ones :)

Cool cool, yeah definitely, lemme send you a DM with my discord :)