Sponsored By

Featured Blog | This community-written post highlights the best of what the game industry has to offer. Read more like it on the Game Developer Blogs.

Features and the player/developer dichotomy

Sometimes with games (or any software really) it'll seem like there's a logical feature that the developers should add which would clearly make the game better, yet they never do. In reality, sometimes things aren't that simple internally.

Bill Borman, Blogger

January 17, 2014

4 Min Read

Sometimes with games (or any software really) it'll seem like there's a logical feature that the developers should add which would clearly make the game better, yet they never do. Sometimes a whole community gets frustrated over this stuff.

In reality, sometimes features that seem like simple changes aren't actually so simple.

Someone on the Scraps forum made a reasonable feature suggestion yesterday which made me think about this sort of user/programmer dichotomy, so I thought I'd repeat some stuff as a proper post.

Currently, if your vehicle runs out of power for your weapons, their firing will in most cases become staggered, where they'll fire one at a time. The reason this happens isn't anything fancy:

  1. Guns are ready to fire but don't have enough power available. Power is free to charge up because guns aren't firing.


  2. Power charges up enough that at least one gun can fire.


  3. That gun fires, draining some power.


  4. The next time power charges up enough, that gun isn't ready to fire again yet. So another gun fires instead.

I kinda like the result of this system and other people seem to as well. It's a sort of a Graceful Degradation.

The gun which needs the least amount of power to fire will always fire first, but sometimes there's more than one weapon that fits that description (because you can have multiple weapons of the same type).

So the suggestion was, instead of firing whatever lowest-power gun was next on the list, why not automatically choose the one which is aiming closest to the enemy?

I do like it when a game automates things for you to get the "best" outcome from your resources, instead of forcing you into micromanagement. It's a suggestion that makes sense. But a few extra steps would need to be added each time a weapon fired:


  • Keep a list of weapons which need the least power to fire


  • If weapons are linked, but they don't all have enough power to fire:


  • Project a line out from the direction that each of those weapons is currently aiming


  • Check the position of all enemy objects and find which is closest to that line


  • Compare the minimum enemy distance recorded for each line


  • Select the weapon with the smallest distance to fire

Then there are edge-cases to consider, like what happens if there are two weapons aiming at two different enemies and they're equally close? Probably just take the first one, but maybe it'd be better to auto-target the enemy with the least health. Now we need to check their health as well.

Or how about weapons that fire in an arc? A straight line won't indicate well what they'll actually hit, but to do it right we'll need calculate the actual trajectory the bullet will take. In the end the performance cost might be more than it's worth for the benefit.

Maybe we can improve performance. Checking the position of every enemy would be slow with many enemies on the map. We could put them into a tree structure to find the relevant ones more quickly, but we've probably spent a long time implementing this stuff by now. In reality, sometimes it's just not worth the time when there are other things to get done.

As a one-man dev team, I see a lot of good suggestions, but I don't have a lot of time overall. I have a big list of part ideas and lots of feature notes, but there's a lot of more fundamental stuff to get working first. I still read just about everything on the forum, and if I ignore ideas it's often because they'd take too much work rather than because they're bad. Sometimes I add them to my list.

 

* * * *

A note on a slightly different issue. Sometimes when the community all really want a feature, and the devs just seem to ignore it forever, it because they've written themselves into a corner. Sometimes a feature idea comes along that was just never considered, and would require a huge rewrite to make some seemingly small thing work.

The best programmers can write things in ways which are easily adapted to change. The worst programmers write code that no-one wants to touch lest everything fall apart. Like everyone else, I'm slowly moving somewhere along the long line from worst towards best.

P.S. And sometimes devs keep the game sub-par on purpose so you'll be more inclined to buy stuff that makes it better. Friends don't let friends F2P.

 

Read more about:

Featured Blogs

About the Author(s)

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like