View unanswered posts | View active topics It is currently 09 May 2024, 14:31



This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
 READ THIS BEFORE PROPOSING FEATURES [2007-12-28] 
Author Message
Chief Software Engineer
Chief Software Engineer
User avatar

Joined: 11 Aug 2005, 01:00
Posts: 2688
Submitting New Feature Requests

Supremacy is very much a community-driven effort, and as such, members of the community will often suggest new features for the game. New ideas are always welcome, but in the interests of saving time for the developers—time which could be spent working on the game—I would ask that you please review this guide before submitting ideas for game features. This guide will help you to assess the relative costs and value of a proposed feature.

I intend to follow up this guide with a few case studies of features that have been considered for Supremacy—features which have been accepted, features which have been rejected, and features which have been refactored. The case studies will dig down deep into the decision-making process and highlight why certain feature were ultimately accepted, rejected, or altered.

The Ferengi’s Guide to Software Design

Software Design—or in this case, Game Design—is far more complicated than most people realize. However, you needn’t be a software developer to understand the process. For all intents and purposes, software design is a business transaction. As in any purchase or trade, your ultimate goal is the maximization of value. Take the case of introducing a new feature into a game like Supremacy. Whenever you introduce a new feature, there is always a cost—an engineering deficit—of time and resources. As a cunning Ferengi businessman, you obviously want to obtain the best value for your investment. Therefore you want the added value of your new feature to be roughly equal to the cost—preferably even greater, though such arrangements are quite rare. This guide will help you understand the considerations that must be made in assessing a feature’s cost and value. It is crucial that you read and understand this guide, as you must be able to “sell” your idea to the developers.

What is my feature’s value?

Before you can determine whether or not your new feature is a worthwhile investment, you must assess its value. What value does your feature add to the game? There are many different ways to interpret this question. I recommend that you first ask yourself, “How does this feature benefit the player?” or “How does this feature add to the enjoyment of the game?”

In many cases, you may be surprised that the answer to these questions is, “it doesn’t.” This may be true in cases where a proposed feature would add realism to the game, but would not directly affect the game mechanics in any meaningful way. These features often make for very dubious investments because they offer no direct utility. Therefore, such a transaction would only be worth considering if it incurs a very low cost.

On the other hand, if you believe that a new feature would add some tactical or strategic aspect to the game, then your lobes should be telling you to investigate this potentially profitable commodity. However, you must be cautious and not proceed until you have assessed the cost. Below are some questions that you can ask yourself to help estimate a feature’s cost.

What is my feature’s cost?

The cost involved in implementing a new feature is seldom obvious, and almost always more complicated than it first appears. A great place to start is by asking yourself, “How would the existence of this feature impact the player’s decision making process?” This question is particularly important, as some features may impact many of the player’s decisions during the game. Keep in mind that if a human player should consider some factor in a decision, then it follows that the AI players should consider the same factor. In such cases, you can observe how the scope of a proposed feature has instantly branched out into the AI logic. Any feature that reaches into the AI logic is an expensive feature, as it will require additional care and testing to minimize its interference with other features. In cases where features directly affect the AI’s decision-making process, you must look even deeper and ask “Does this feature introduce quantitative or qualitative factors into the decision-making process?” Quantitative factors—those factors which can be directly expressed in terms of weights or numbers—are much easier for an AI player to deal with. Qualitative factors, on the other hand, must be subjected to further analysis before they become meaningful to the AI. Thus, features which inject qualitative factors into the decision-making process incur even more cost, and—in extreme cases—it’s possible that such factors cannot be reliably or accurately reduced to values that the AI can comprehend at all. In such extreme cases, you may be left with a feature that is essentially unusable to the AI, resulting in either an advantage to the human players or an advantage to the AI players, depending on the nature of the feature.

The second most important question to ask when determining cost is, “What aspects of the game will this feature affect?” Will it affect expansion and colonization? If it does, then it might also affect foreign relations and diplomacy. Be wary of potential snowball effects. If you find that your feature may impact unintended aspects of the game, then you need to ask yourself, “How can I compartmentalize this feature?” You may be able to come up with a clever way of limiting a feature’s scope and thus reducing its cost.

The third question to ask is “What is the material cost of adding this feature?” Many new features may require altering UI screens (or even creating new ones). They may also require the creation of additional game content, such as new artwork or 3D models. Since these costs cannot be analyzed the same way as the software engineering deficit, you should consult the appropriate contributors—artists, modelers, etc.—and casually inquire as to how much additional work would be required. Cases in which the material costs would be particularly high or low should be fairly obvious, and in such cases it may not be necessary to investigate further.

What about the cost to the player?

Though you may not realize it, there is a third party involved in your transaction—the player. It is important to ask, “What is the cost to the player?” For any substantial new feature, the player will be forced to alter her planning or tactics. It is particularly important to make sure that a new feature doesn’t inhibit the player’s ability to make progress in unrelated parts of the game, except in cases where it is by design. Costs to the player are usually an issue of balance, and you may have to run some numbers to make sure your feature doesn’t throw the game mechanics out of whack. Be particularly wary of the “edge cases” that introduce ambiguous circumstances into the game—these cases will need to be dealt with, so consider them carefully.

If at first you don’t succeed…

If you follow this guide and sufficiently scrutinize a new feature, chances are that you’ve decided that it’s just not as good a deal as it first appeared. This isn’t because most ideas are bad—it’s because it’s very difficult to come up with a well-balanced feature on the first try. Now that you’ve assessed the weaknesses of your feature, you can work on cancelling them out. Try approaching your feature from a different angle. Maybe you could cut down on some unnecessary AI decision-making by introducing one or two reasonable assumptions. Perhaps you could express one factor in terms of another. Take your time and think about it, and feel free to ask for input. If you have a feature that you like, but you’re not satisfied with the cost, then spell it out—write a post with your proposed feature and the problems you see with it. If you can demonstrate that the feature has merit, and that you’ve already done your best to assess its strengths and weaknesses, then the developers will almost certainly be willing to spend some time discussing it with you. On the other hand, if you hastily throw together a list of ideas without taking the time to think about them, then you have effectively shifted more work onto the developers, who will be less receptive to your ideas.

_________________
Lead Developer of Star Trek: Supremacy
253,658 lines of code and counting...


28 Dec 2007, 07:09
Profile WWW
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by STSoftware.