Open Source game developers can share their thoughts and news here.
Effects and Customization are important in a world of variety that can be build from parts to create a whole. Learn more about its possibilities here!
Posted by b5cully on Dec 9th, 2012
Technically, I could improve on the graphical representation of my game and the simulation itself, then again I don't feel I'm ready for that just yet. This feature I want to introduce to you is essential how the game itself is working, and greatly impacts on the variety of customizable content you will be able to add to StarFire, so I want to add this as early as possible.
What I'm talking about is the ultimate build principle: Based upon a set of defined parts, you can create your own... uh, basically everything that is suited to your individual needs.
What the hell is that supposed to mean?
Let's give an example to clarify: Let's say, you want to create an engine. Now what parts do you need to create one? Perhaps a combustion chamber, some sort of cooling system and something like a control or monitor device. So far the functional part. Of course you also need some sort of hull covering so it won't be exposed to harmful situations (especially combat). It's technically possible to build certain materials (i.e. Aluminum) into your engine that absorb heat which would increase the overall cooling effect of the cooling system. This also happens to increase the durability of your engine.
Now another example: You want to create a spacecraft weapon. Now what kind of parts does such a weapon consist of roughly? Well, for one there is a barrel: No matter what kind of weapon you have, you will always need some sort of device that emits the projectile. Another part you'll need is some sort of operating system that creates energy to fire the projectile. At last an ammo feeding mechanism is necessary to feed the machine with projectiles to shoot. Consequently, your weapon also has a certain projectile type that it fires, and it only does accept ammo with the same projectile type. Now, just like with engines, you could also build in parts that reduce the heat a weapon produces as well of course!
To sum it up, all the above things are logically speaking so called Attributes. Together with other attributes they will form an effect or function. The logic is basically like I explained above: smaller spare parts are glued together to create a bigger, functioning machine. You cannot shoot a gun just by owning a barrel - you cannot use a steam engine just by setting coal on fire. The very same logic also can be applied to spaceships, food or even animals, by the way.
So what does that actually mean for the gameplay?
Functional devices such as engines or weapons are a collection of EffectAttributes, summarized into element groups. Element groups and can be added to your ship, thus are placeable in the editor. ElementGroups are made using the very same editor, just using a slightly different element set. (and that is why that ship editor is so awesome - spares me to code another... hah )
Each EffectAttribute has a 3D representation and individual sets of values. For example: combustion chamber model "Super Fusion" has the characteristics to give a thrust of 450 kN (Kilonewton) and produces 5 units heat per tick (which is quite a lot). Now if I want to use this combustion chamber, I also need a cooling system with above-average performance, otherwise the engine will break or even explode quite fast. Now the combustion chamber model "Light" only produces a thrust of 140kN and produces 1 unit heat. Visually - that means its 3D object - it is also smaller than "Super Fusion" and will most likely last forever using the same above-average cooling system mentioned before.
Now you have the choice: Do I want to create a badass engine with outstanding performance that is subject to blow up my nuts if it overheats, or do I want to make a more modest version that focuses on endurance rather than performance?
Apply this to weapons, containers, tanks, and all other functional elements this game is going to have, and I hope you realize: The possibilities to create content are virtually ENDLESS.