Latest Featured Articles
I'm currently developing a turn-based single-player top-down strategy game: the player against simple swarm-like opponents which use spawners to spawn units.
Summary of game mechanics
There a factories which can produce three different basic "bot" units: attack bots (= stands for aggression), defense bots (= stands for survivability) and utility bots (= stands for flexibility, mobility, range etc.).
The bots don't do a lot by themselves, but any three of them can be combined to create another unit with a role based on the ingredients used. E.g. combining three attack bots must result in a highly aggressive unit.
Tweaking the types of units available to the player.
I'll need 10 units which have a specific role reflecting the ingredients used to create them (see above).
Additionally, the role of each unit needs to have enough room in its concept to allow upgrades into a specialised variant of the base role of the unit.
What I do have so far:
Attack bot (= "A") +A+A: "Berserk style" close-range damage dealer Variant 1: bouncing around causing chaos Variant 2: self-healing on kills A+A + defense bot (= "D"): mid-range damage support unit with pushbac Variant 1: sniper Variant 2: faster shooting speed and increased damage to undamaged targets A+D+D: close-range defense support with minor damage, e.g. area of effect slowdown Variant 1: susceptibility debuff and focus on one target Variant 2: ? More slowdown and more area of effect? D+D+D+: heavily armored tank unit which can push targets away when moving Variant 1: spikes damaging attackers Variant 2: armor A+A + Utility bot (= "U"): long-range area of effect damage Variant 1: damage over time and large area of effect Variant 2: ? A+U+U: army movement and attack efficiency manager, e.g. damage buffs, pushing units further to the frontlines, terraforming etc. Variant 1: attack focus, i.e. stronger buff? Variant 2: movement focus, i.e. better terraform, teleport units U+U+U: general supply unit. This is a unit which restores energy to units so they can move/attack again Variant 1: balancer, i.e. making sure to spread energy well among allies Variant 2: ? D+D+U: healer Variant 1: overheals Variant 2: long-range health transfer among allies D+U+U: ambush manager: "hook" skill which drags enemies, spawn a barrier which soaks up damage and blocks the path Variant 1: invisibility buff and long-range hook skill Variant 2: ? mind control debuff? Better barrier? A+D+U: ? Roles I cannot add:
Jack of all trades: even if balanced, this makes all other units somewhat optional because it can essentially fulfill every role Scout: there is no fog of war, so no scouting role is required Am I missing any basic unit role I could add? How could I fill the underlined items in the list above?
Are there any duplicates in the roles which I could merge?
Looking forward to your ideas and feedback!
I asked else where on other websites for this and never got answers, I am struggling to know how to do a design pattern for abilities that you can swap in and out that affect the given object's stats.
Lets take a weapon like a gun as an example. Of which can have a number of attachments that affect its aim, fire rate, magazine count etc. You can add/remove the attachments.
I can setup something like that pretty easily (although its very tedious) by creating each attachment and setting its data to what it affects. But then i ran into problems for putting restrictions in place, because then i need a unique one for each weapon they are restricted to. For example:
Scope A only attaches to gun A , C, D
Magazine A attaches only to gun B , C
When i have these specific restrictions - my tedious approach of hard writing it kinda falls apart. So i need a design pattern where this will work easily.
What is the correct way to design this in C# ? I can't figure out a clean system for this at all.
As a hobby programmer I am slowly working my way up project by project to make a game. However I am currently stumped on what to do with what I call the communication layer.
To explain: you have an ability, a technology or a building first you need to communicate to anyone effected to apply the effects. Also abilities might need to know when a certain activity is started or ended to trigger or alter their effects.
Events are a tool to handle this, but:
1) You still need an effective filter, so only those recipient are called that fulfill certain requirements(nationalities, race, class, locality etc)
2) You need to know/write beforehand what method needs to trigger an event.
I would be thankful for any advice on these two points, is there any way to elegantly append a methodcall with another methodcall?
I mean I could write some kind of wrapper containing a delegate of a method and then only call the wrapper, having the wrapper contain a list of additional method calls and their inputs to be executed?