XENOPURGE DEVLOG 1.


We find ourselves here again. 

     XENOPURGE is a project, where I use Beckon the Hellspawn's (https://www.lexaloffle.com/bbs/?pid=125548) example as a launch point for the minimum viable product of a vampire survivors style game.. 

     It's a great example of the game loop at its simplest. and a valuable resource for helping me understand the code needed to make it all happen. shout out to @LokiStriker for keeping his game small enough that all the code is super readable.  A lot of the python I wrote feels like tracing, so go play BtH, its great.  

     I think this type of exercise is important. when you are learning the fundamentals to creating art, masters studies are where you start. try to imitate art better than yours  to figure out how it was done. Pico-8 is amazing for that. it's super easy to learn how things are coded from reading through games code.

       I will be working to convert BtH's functional programming  we are here to make an Auto-shooting, Auto-aiming /twin-stick shooter  . fight off an relentless wave of enemies as you collect XP and level up. gaining new weapons and abilities. 

     I will  trying to find the thing that can make this game unique and set it apart from 20 minutes until dawn and other survivor-likes

GOALS:
     For now I aim to just feature match BtH, then I'll work to feature match around 10% of Vampire-survivors. 

  • animated player and enemy sprites
  • a player with health,XP,level,collection of modifiers
  • enemies that spawn in , home in on the player, and relay damage on contact
  • player bullets that automatically aim and shoot at enemies.
  • XP drops  that can be collected until it levels up the player
  • a set of modifiers that you get to pick from on level up
  • some sort of end goal so that the play is not endless and there's a win scenario to get out with better rewards than lasting a long time and then dying. 

whelp I find myself neck deep in a new project, and as I've decided I need to be  logging my projects any time they grow large enough to consume my attention. I feel like this is always the spark of something worth doing. 

Animated character sprite:

This all began as I started designing the main character sprite for an indie game I work for.

I decided to build a small prototype for testing the animations out dynamically instead of hand animating it. 

1st draft did not fit the 16x16 pixel goal for the characters size, so i minimized the shapes and ended up with this small hazmat person with some sort of laser gun.


We call them the Miner round these parts. they are likely they get replaced in the future as this asset does belong to the people I created it for, but I can use it in content. 

I really liked how this looked and I set to work coding it up. 

I decided to go with Pyxel again for this since more python practice is always welcome. 

a grapple hook was needed, so i added one in that aims with your aim. 

maybe at some point ill find a use for the grapple hook. I'm thinking a weapon that fires out , hits an enemy for high dmg, and drags back the XP, can be used to pull back chests from high density areas. once you get cooldown reduction/multiple projectiles/penetration this could be a real powerful weapon. 


Now that i have the player up and moving around, I can use a GET_DIRECTION function that uses the x and y coordinates from two objects as the arguments in an ATAN2 function.  every enemy that spawns is given a target they move towards. thats where this angle comes in. 

Pyxel does some weird stuff with its angle math ,so i really struggled to line up the player aim and the enemy aim.

once i figured it out though i could get the player shooting. i chose to go with a full 360 shooting via twin joysticks instead of 8 way directional . it doesn't align with the players gun super well but it think the auto aim is vital to this games design and that needs to be unrestricted. 

i think this looks pretty great regardless of the alignment issues, plus, you are mostly gonna have too much going on to nitpick something so small and unimportant to gameplay. 


struggled with getting the enemies to move towards the player at a consistent rate. here lerps failing to do the job. 


after digging back into the code of beckon the hellspawn i realized it was just doing a player  bullet in reverse.  

where a player shot uses sin and cos to get radial directions you can use that on an enemies x and y positions then reduce the distance to player each frame.



now that we have enemies we need some basic designs to put on those spots and then we are gaming. 

so this lil guy is based somewhere between scyther, a xenomorph,and zerglings.  i love the idea of a little swarm of aliens, so these will be the first enemy. 


so i created enemy class and subclasses for each of these enemy types. 

i set it to spawn a few enemies every few frames for testing. when the distance between our position gets low enough the player starts to take damage and the enemies start their attack animations.  

sweet now we have something we need to avoid to stay alive. 

lets make the death of these monsters a bit more interesting. 

i got lost in a tangent for a while , where i thought maybe this would become a mech game. 

it didnt pan out because it was too far from vampire survivors.  the ease of access to adding content  to a survivors like is what makes it something a solo dev can manage

i tried exploring 8 way directional mech sprites and just at this scale , oof. it was hard to do diagonal of something this complex so small. 

maybe someday the isometric mech game i want will exist, but this isn't the time yet. 


i wanted something like the urbanmech to start with



heres a front and side.

this might return as a character in XenoPurge. i love the idea that a character can be anything and i'm just not going to explain myself. 

moving forward back onto main line dev time. i added in XP drops from enemies, made them exactly the same as the enemies but they only come to you when you are close to them. 

i needed to create multiple character classes so that i could spawn different enemies. 

here we got little zugglits , zurgles, and zalphas in but they don't have unique behavior just yet. 

i was beginning to tire of the soft pastel vibes of the pyxel palette , its just not a palette for killing .

i went on lospec and downloaded a whole bunch of palettes to try out. i made a simple card that i could recolor to get the feel of things. 

people weighed in, seemed like there was a lot of interest in the desaturated palettes. its not really my thing, im very color blind so the colors all look so similar to me.  


i tried it out anyways. i have the freedom to do so after all. 



too dark and drab



less dark, but just has the color character of a mud puddle. 

i want zazz and pop. colors that go pow. 

i drew up a little title card to see how i feel. the bright electric color fits my personal love more. 

the game centers around wiping out mutants created for death and entertainment. 

maybe that kinda comes through in the dna helix in the logo. 

i started drawing up icons for different pickups and upgrades and weapons. 

the money is called BENNIES so i might swap the money signs for the B's or maybe they are worth more. idk. food and drugs for health pick-ups.

chest for dropped unlocks. 

magnet,knuckleduster,and sneakers for pickup distance,damage increase,and player movement speed. 

two weapon badges for mining laser and shotgun. 

i needed better colors. 


i went and snagged the sweetie 16 palette. ill modify it slowly to meet my needs.  but for now this has a bit more pizazz

ok so now we finally have all the systems upgrades, run modifiers and pick ups. generally all the structure required to scale up. all the enemies can be unique and behave different, be affected by modifiers, i can now add multiple characters, weapons,abilities. the base of the game is designed and stable. everything is working great and i have a great platform to work from.

someone said i should add some isometric offset on the enemies feet so they look more matched to the ground plane their shadow is on. here's that. 


Summary for part 1

OK! we are here. i have some faith in the ability to see this through. im sure there will be plenty of hurdles but i feel like this has life. and some of the best legs any of my projects have had. everything i've learned up to this point all comes together here. there were things in the Bittie Network that i was struggling with, but i think once i'm done here my OOP skills will be well defined enough to tack it again. 


Its time to dig back into the art of it all, so i can start beefing up the content. build a menu . check in for more some day. 

-Alice <3



Leave a comment

Log in with itch.io to leave a comment.