Latest Entries »

Procedural Pixel Spaceships

I got inspired last night, and hammered out a cool way to generate pixel art spaceships. I polished the code for about 3 or 4 hours today, and I’m thinking of replacing the drab line-art ships with these (to roll with the budding pixel-art theme that the UI and background is getting). The line-art ships have their own issues anyway, so it’s an appealing idea. You can see a few screenshots and algorithm details over here, and here are a few batch renders showcasing some of the neater stuff it can generate.

16 Renders 216 Renders 316 Renders 416 Renders

We’d love to hear your feedback!

The profiling continues

We’ve used a trial of ANTS Memory Profiler to find a leak, but there still appears to be more. However, The only actual performance issue that we can see right now arises from large quantities of ships firing at once, so we’ll probably end up just trying to pool projectiles and see where that gets us.

After well over a month of various things conspiring to pull us away (project fatigue, reformatting one of our main dev computers, and an addiction to Minecraft just to name 3), we’re finally back on the job.

We’ve at least partially implemented a solution for pooling enemy ships, and we also built a pretty full-featured 2D shape editor. Written over a week or so, the feature list includes:

  • Support for multiple shapes
  • Import from and export to XML
  • Horizontal and vertical mirroring (controllable origin for mirroring as well)
  • Separate properties for each shape
  • Global movement and scaling controls
  • Snap to grid

Here are a couple screenshots:

Shape Editor Screenshot 1

Shape Editor Screenshot 2

Today was very productive. We got the score system just about fully implemented, including animation for the numbers to their target values. We also retuned the enemy stats to be more fast and furious in combat, and fixed a couple of bugs regarding loading data from XML. Here’s a screenshot of the new UI:

Infinity UI Score

The four bars on the right are (from left to right:

  • Health
  • Weapons Capacitor Banks
  • Gun Reload State
  • Collected Power Core Energy

Finally, I’ll explain how the score system works. Like in geometry wars, each ship gives you a point value (which is multiplied by the current multiplier and added to your score) and a boost to your multiplier. There’s also a Combo value to each ship, which is a short-lived meta-multiplier that boosts your score potentially a lot if you can shred a ton of enemies in a short period of time. Next up on the list is tracking down a phantom bug regarding counter-projectile weapons, and then move on to giving those power cores a use!

Possible Player UI?

I’ve worked out a basic UI design, and I’m wondering if it’s any good:

New UI

The top bar is gun reload state, bottom is health, left is weapons capacitor energy, and right is Power Core energy stored. I’m also considering rigging it so that the relevant bars only are there when they are needed (e.g. when you’re hit for the health bar, or when you’re firing your gun for the two weapons related bars).

 

Please leave a comment here or at our devlog thread with your thoughts!

Demo video up!

We’ve finished the video, and you can watch it here:

 

 

It shows the various ship types, rifts (which enemies spawn from), a couple of possible weapons for the player, and some of the new art (which is a bit hard to see thanks to Youtube’s compression :/). It’s a little bumpy still with performance, and it’s got some bugs and yadda yadda yadda… That’s all beside the point. Enjoy!

Performance issues

We’ve uncovered (well, we sort of knew all along) that the engine’s performance is too unstable right now; we will need to profile and improve performance before recording a video. Don’t worry, it’ll be here soon!

Sorry the video’s a couple of days late, but as soon as a bug or two is fixed, then we can make the demo and put it out there. Expect it tomorrow or Wednesday at the latest!

A lot is in the works

We’ve managed to get a lot of things working lately, including mines, new ship types, and basic enemy spawning code (rough, but working). We also standardized the method for storing enemy and weapon data, and are working hard on preparing the game to the point where you can watch a video of it. Expect a link by the first of August.

XML Configuration

After a somewhat long dry spell, we finally got back to working on the actual game part. One of the first orders of business was to install a basic score system, then to retrofit an XML configuration system into the ship configuration process. The process went fairly smoothly, and now we’ve wrestled that aspect of configuration out of code!

 

XML is certainly an improvement over configuring enemies and weapons directly in the program; we highly recommend it. It’s also pretty easy to parse the document structure (via XPath queries), and is available on the compact framework (which is needed to deploy to the Xbox).