Main Page » My Games » Villainmad »

2011/09/01 (Villainmad): The Collision-Detection Update

Created:

Always use secure-HTTP / Unsecure HTTP / Permanent Link

Here we are, and here (source) we be, and here (XNA) we go again.

Current notes: my stepdad has convinced me not to make Villainmad "freeware," but instead "donationware," which amounts to the same thing except that I go "JUST AS PLANNED" when people send me money. Shintear and I are still working out exactly how much he's going to get (how's the stuff you're currently doing coming along, Shintear?).

So, yeah, I've figured out collision-detecting, which solely uses circles. (I'm on the fence about whether to also include rectangles, but I'm leaning towards "no.") You now get a menu allowing you to choose which "stage" to visit when you turn it on. The "stress-test" is the same as the previous test-level, which will now keep track of how many bullets you have collided with, and it will also remove them. The "collision shenanigans test" demonstrates the sweep-and-prune method with entities that have more than one hitbox.

I have set it up so that the game automatically pauses when the window does not have focus. It doesn't invoke the pause-menu or anything, it just pauses the music and doesn't call Update() or Draw(). (Well, technically it does call them, but they both begin with "if the window isn't focused, return.")

The settings-file now deals with screen-resolution with W and F (for "Windowed" and "Fullscreen") and just the width for windowed-mode (because it's always going to be 4:3) and both the width and the height for fullscreen (because the "drawn size" will merely be sized to fit inside the screen-resolution). This bypasses the "use a number for a fixed set of screen-resolutions" issue, and you can even input your own (sort of)!

And here's the rest of what I need to do before I get down to Making A Game:

  • The Next MAJOR REVISION: Leaving XNA for a system like SDL.Net which defines "cross-platform compatibility" as "between Windows, Macintosh, Linux, etc" instead of "between Windows 7, Windows Phone, and Xbox" like XNA does, as described last month. SDL.NET is the thing I am currently poking at.
  • Loading-screens! Probably exclusively using Draw() and not Update(), since the two are technically asyncrhonous, and Update() would get stuck on the actual loading.
  • A built-in "fade-in"/"fade-out," which would also exclusively use Draw() ...
  • The rest of the currently-almost-completely-blank config-file.
  • Text/language services.
  • Support for any number of arbitrary ASCII-only fonts for "hardcoded" things like numbers/score or Engrish or whatever, instead of only having the one "arbitrary-ASCII" font.
  • Saving score!
  • Saving replays!
    • I'm going to handle the above two with something like XML-serialization, bundled into ZIP files (with renamed extensions) and, I dunno, using "6" as the ZIP-file's password or something to make it easy-to-use without being transparent enough for trivially-easy hax.
  • Long-term/optional: 3D backgrounds?

3 Comments (auto-closed) (rss feed)

sRc

So, yeah, I've figured out collision-detecting, which solely uses circles. (I'm on the fence about whether to also include rectangles, but I'm leaning towards "no.")

probly would be the fastest just with circles, because it makes the math operations the simplest

Shintear

Sorry I'm a bit slow. Animating things frame by frame takes time, especially when you want to make sure every frame looks good.

Person

I wish I knew complicated stuff about computers like you did... I mean, really! I can't use CSS BBCode...