alicelai

making games and being named

  • she/her

technical designer at supergiant games

trans! yes, yes, haha


alicelai
@alicelai

i genuinely think vampire survivors / autoshooters are great since there's a lot of stuff in there that you'll encounter fairly regularly in games. i'm terribly biased since i 've been making games for forever now, but if i had to guess / break it down:

  1. getting stuff to draw on the screen. the top of the mazlow's video game pyramid
  2. motion and getting your guy to move around. the second tier of mazlow's video game pyramid
  3. multiple objects : what is a 'unit'? what is a 'enemy'? what is a 'bullet'?
  4. input and firing stuff on a cooldown. bonus lesson: seeing one million objects generated per second because you made it spawn every frame
    3a. brief detour into trignometry land to have enemies track the player as well as the industry wide refusal to standardize around radians vs degrees
  5. collision detection (simple). bonus sidebar here for O(n) problems and what happens when you check the position of a thousand bullets against a thousand enemies by brute forcing it
  6. ui elements like a HUD and a scoring system
  7. playing sound and layering sound effects

then there are bonus objectives like making the UI for a choose-one-of-three upgrade system, math involved in doing things like holy bible orbits, game over states, writing high scores to persistent storage, particle systems and VFX, optimization problems and so on


You must log in to comment.

in reply to @alicelai's post:

in reply to @alicelai's post:

i totally agree!! years ago I used to suggest making Galaga or Asteroids clones, but Vampire Survivors covers so many of the common practices and has that very modular core that makes it easy for new designers to experiment with new ideas

yeah! so a early concept in programming is something that people call, with a straight face, "big O notation". the formal definition is more complex, but it generally expresses how complex an operation is

a great and straightforward way to do collision detection is to check every projectile against every enemy -- this, however, slows down a lot when you have a lot of both. if you wanted to go down a rabbit hole you could either look into how games optimize collision detection to speed this up or, alternatively, structure their games so there's relatively few projectiles so the calculation never gets out of hand