Recent posts by dragon_of_celts on Kongregate

Subscribe to Recent posts by dragon_of_celts on Kongregate

avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / One-way platforms

Yeah, imp2, but as he’s using AS2 and “art based” collisions, it seemed reasonable to assume he wants the simplest solution, not necessarily the best. From his response to Ace_Blue’s suggestion, I don’t think his platforms have a blocking direction.

For some reason, you have <del> tags where the minus sign should be before the 15 and the comment…

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / One-way platforms

The simplest way would be to just have a Boolean for whether the jump is in the “up” part of the arc, and only do the collision check if it is false (assuming true to mean the ascent).

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Design / [Feedback] Control scheme

I don’t have any problem with it either way. I don’t have a preference between the two in general, as both have their place.

The experience would only be enhanced by stationary-rotating (IMO) if it isn’t going to be a constant-travel game (background constantly scrolling to give the illusion of forward motion).

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 4): Examples and advanced techniques

Well, technically, you wouldn’t have to make EntityPool extend Entity in order to get it to use events… Just copy the attachEvent/dettachEvent functions and hash from the Entity class.

Anyway, I keep getting the same kind of recursive dizziness, and I haven’t had any wine… Then again, I don’t need wine for diminished mental faculties. (0_o)

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 4): Examples and advanced techniques

I’m probably missing something obvious, but couldn’t you make EntityPool extend Entity, and then just add whatever event (with a lower priority) to it (after adding it to the Entity that is to be added to EntityPool)?

As a “bonus”, you could componentize bounds behavior for bullets (say, if you wanted to make the boundary ricochet the bullets)…?

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 4): Examples and advanced techniques

As it is directly relevant to the topic at hand, others are likely to encounter the same issues, and someone may find a good way to deal with the specified issues, I would think posting the code would be a good idea.

Originally posted by Ace_Blue:

The Spawner component does not simply spawn new entities

<geek>One does not simply walk into Mordor</geek>

Edit: You say that PoolHandler catches removal-type events, but you’d rather it catch an event and remove the entity…? Isn’t that the same thing?

And wouldn’t bullet have a component that contained speed that would be supplied by the “designating” weapon entity (I use “designate” rather than “spawn” since technically the PoolHandler is doing the spawning, right)? Spread would, I would think, be multiple bullets designated by a weapon at the same time with different trajectories, wouldn’t it?

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 3): Events to the rescue!

Originally posted by Elyzius:

You need to store key presses as booleans in a vector of 222 elements, each of which represents a key code. Depending on your game’s needs, you may want to also have another vector of 222 booleans to indicate if a particular key had just been pressed, as opposed to having already been pressed since the last call to onKeyPress. To configure the keys, you’ll need public variables or properties for each type of key that you want to be able to configure. Something like this:

public var keyDown:uint = Keyboard.DOWN;
public var keyUp:uint = Keyboard.UP;
public var keyLeft:uint = Keyboard.LEFT;
public var keyRight:uint = Keyboard.RIGHT;

Since they are publicly accessible, you can change the default values at any time.

For greater flexibility, I would think you’d use uints rather than booleans; then, you could use them as a counter (for variable jumps, for instance)… Though I guess you could have one component each way, so you don’t use uints if you don’t need them.

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Jumping with more than 1 in a for loop?

Now all we need is:


a %&= b; // a does the funky chicken with b

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Logical OR help

Actually, I believe the “inclusive” was, in fact, referring to 0 – 100:

Originally posted by GameBuilder15:
//this code executes if one of either xPosition is between 0 and 100, inclusive

“one of either” doesn’t make sense here, though…

“One of either of the conditionals” would be OK, or “if xPosition is between 0 and 100, inclusive” (assuming the signs were changed accordingly).

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Logical OR help

Just to clarify this:

Originally posted by GameBuilder15:

I’m sure I copied it right. Right before the example, the book says:



Note that if the first expression in a logical OR statement resolves to true, it is unnecessary, and therefore inefficient, to evaluate the second expression. Hence, ActionScript evaluates the second expression only if the first expression resolves to false. The fact is useful in cases in which you don’t want to resolve the second expression unless the first expression resolves to false. In the following example, we check if a number is out of range. If the number is too small, there is no need to perform the second test, in which we check if the number is too large.

What they are saying above is called “short circuiting” – since you already know what the expression as a whole will evaluate to, you don’t need to calculate the remainder of the equation. This happens with && as well: if the first (or any segment of a multiple-&&) evaluates to false, the whole thing is false, so there’s no need to do the remaining tests.

true || true == true
true || false == true
false || true == true
false || false == false
(i.e., if any part of a logical OR is true, then the whole statement must be true; therefore, the first true we encounter solves the entire question)

true && true == true
true && false == false
false && true == false
false && false == false
(i.e., if any part of a logical AND is false, then the whole statement must be false; therefore, the first false we encounter solves the entire question)

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Logical OR help

Comment should read “this code will not execute if one of either xPosition is between 0 and 100, inclusive”.

Originally posted by Drakim:

If xPosition is 0, the code would run like this:

if( 0 < 0 || 100 > 100 ){
//code
}

Which wouldn’t work. 0 is clearly not less than 0, and 100 is clearly not greater than 100.

Uh… What? If xPosition is 0, the code will run like this:

if (0 < 0 || 0 > 100) {
  // code
}

…Unless I’m misunderstanding what you meant.

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / How Do You Pronounce...

char: like when you overcook something. Yes, it is short for “character”, which has the “k” sound, but calling it “car” just seems weird to me.
var: pronounced “llama”. No, seriously.
JSON: like the name Jason.
ECMAscript: Letters followed by “script”, though I could easily go to “ekma-script”.
Haxe: like “hacks”. I realize the creator says it is supposed to be pronounced “hex”, but he’ll have to change the spelling to get me to pronounce it that way. As far as I know, no language makes an “a” into the short “e” sound. You could make an argument for “hah-kseh” (or “hah-ze”?), but that would just sound weird.
uint: like “you int”.
swf: like “swiff”.
swc: the individual letters.
fla: as the first half of “flash”.

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / GiTD [#32] Voting finished! [imp2]

imp2 – Theifer O’Greedy
While the controls were a bit more slippery than I would’ve liked, it wasn’t too bad. Gem collection indicators light up from left to right, regardless of which gems you collect first (which isn’t terribly important, but I thought I’d mention it in case you want to bother fixing it). Overall, moderately fun (I only played a couple levels, though).

Elyzius – The Proper Care and Feeding of Your Demons
Nice implementation, though as others have said, it is far too luck-based (which is a common problem for those types of games). Maybe have the sigils that drop in be inactive for two turns (thus not being auto-collectable for the current player or their opponent, but also allowing the opponent an opportunity to disrupt any auto-matches that would occur for the current player)? Or having the dropped sigils be “blanks” that would determine their type based on its adjacent sigils’ type (thus making any auto-matches rare; it would probably be best to have a weighted random selection, where the most common adjacents get the least weight)? Or perhaps the dropped-in sigils could be inactive until an adjacent match is made (though this would potentially still allow auto-match chains)?

VBCPPMr. Collecter
No enemies, time limit, or other loss possibility (I can’t even collect the wrong thing, as only the one I pick ever shows up), no win possibility, either, as far as I can tell, and clunky controls. Still, you did post an entry, which is more than I did… I’m curious to know what the full game idea was.

gobologna – Cat Burglar
Never used the ball of yarn, so I’m not sure what that does. Pressing the down key (which is necessary, if only once) makes the browser window scroll down. Stopped to wait for the danger level to go down twice, which meant there was no adversary (the first time I played, the granny came out just as I got the last cat, so I pressed and held the hide key, which seemed to do nothing but drop my cats, and then after a few moments I was caught). Needs: dog(s), alarm system(s), obnoxious children, and/or rival burglars. In short, something to avoid while attempting to keep the danger level down. Game played well enough for what it was, but failed to be very engrossing.

I_love_you_lots – Collectron
No enemy or other loss scenario. It seems like it would [potentially] be quite fun when fully developed, though, and I liked the character movement.

Sushin – TheCollector
The collecting part seems ancillary to the game rather than an integral theme. It played well (though I would’ve preferred a simple “press down to pick up/swap weapons” rather than the “E” key) and was fun to play. Didn’t care for the text all over the screen.

nutter666 – BodyBagger
Like others have said, it needs more… something. I got all the special parts, but failed to collect enough “spare” parts to install the last of them (though it didn’t matter, since it was apparently enough). The simplest (but less than thrilling) fix is to lower the collection requirements but add something to avoid (falling headstones or something).

Kewry – Hunting Sim
“Collecting levels”? If that qualifies as satisfying the theme, then so would “collecting” a score or “collecting” time playing the game (in other words, no). I’ll assume that it is actually about collecting big-game animals, though, despite what it says in the description. It’s not particularly bad for an idle game, but could certainly be better (once I realized that he heals after every battle, I stopped worrying about when I might have to go to the spa (which I had assumed was to heal at first) and just did something else while I waited for the levels to build up). Didn’t bother with anything but the best sword and the best gun (and the only reason I bothered with the sword was because it was so much cheaper than the gun and not a whole lot worse). Didn’t finish the game (if that’s possible), since I had to shut down for unrelated reasons and didn’t feel like re-starting.

BadEgg – Klecter
Never particularly been a fan of “do [x] as many times as possible before the time runs out” games. Functioned well for what it was, though. I never fired (I had assumed its sole purpose was to get out of a tight spot by eliminating enemies at the cost of an orb, but I see from others’ comments that I could’ve gotten more orbs that way; replaying it using firing only seemed marginally practical at best considering the short duration of the orbs, though I daresay it could be more useful if I bothered to get better at it).

Russpuppy – Photo Collection
Are the events/things random or just spaced out by large intervals of time? I got a dog(?), a yellow bird, a green bird, a ghost, a UFO, and a snake before I just started randomly taking pictures because nothing else seemed to be happening. As what amounts to a purely score-centric game (in the guise of photo values), it doesn’t have much re-play value to me. The curiosity of what else there might be to photograph might give it more re-play value, but I’ve no idea whether or not there is anything else…

FadiLoutf – Forest Of Death
Took forever for this to load, but once it did it didn’t lag too much (occasional pauses). Didn’t use running, as I saw the comment where you made the skeletons also run if the player runs (what’s the point of that? The suggested stamina usage would have given a use for running while not letting the player use it wantonly). No point in fighting, since they constantly spawn and they can just be led around while you do your thing. Looks good, though.

MrHasuu – Surviving in the Wild
Also took forever to load, but quickly lagged to the point it was unplayable. Maybe if I restarted my computer and tried again I could play (for a little while, at least)… Started with low health, which running over the bacon lying near me very slightly remedied — for a miniscule amount of time. I’m not sure that the over-distorted hunger (even by video game standards, which is saying quite a bit) isn’t a byproduct of the aforementioned lag, though.

1st place: Theifer O’Greedy
2nd place: TheCollector

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 3): Events to the rescue!

Well, I have to say that that is way more involved than anything I’ve ever done… so I guess I haven’t actually done component-based programming. I guess I should’ve done more than just skim the linked article.

Anyway, I was wondering about overhead cost proliferation. Since virtually every interaction and data “block” (there’s a better term, but it eludes me at the moment) is a separate component, and therefore a separate object, it seems to me that any programme would have its object count go up by a large factor. The more objects, the larger the disparity (excluding cases where one could have a static component). The more interactions and/or data “blocks”, the larger the disparity.

Let’s take Pacman as a simple example:
OOP would have maybe four classes (not including menus, etc, just the game “pieces”): pacman, ghost, dot (in this case, including the power-dot), fruit.
Implementation would probably have an Array/Vector for the ghosts and dots, which the game engine would access directly. Assuming 100 dots (I’ve no idea how many there actually are), there should be between 5 and 106 [game piece] objects active at any one time.

Taking the component-based approach (as I understand it), the dot object would have at least 2 extra objects (just off the top of my head: the component for position and the event component for being eaten), which increases the object count by three-fold for what is possibly the simplest game interaction there is (since there are only a few other game pieces involved (max 6), their slightly-more-complex interactions don’t make too much difference in this example).

Extrapolating out for a bullet-hell or RPG, which will have not only a lot more objects potentially active at any one time, but also a lot more interactions, this sort of proliferation seems like a rather large hurdle, particularly if one is also targeting mobile devices and the like. What about for 3-D environments (which are already processor- and object-intensive)?

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 1): A criticism of OOP in game development

Wait a minute… The God object, according to Wikipedia, knows about and has access to objects that are not the concern of the object in question. If a Ship class instantiation potentially has a shield (its concern), but I use a var that may be 0 indicating that it doesn’t have one (and thus, not technically its concern), does that make it a God object or not? If not, then what I had assumed is a God object is, in fact, not (even though there would be more of those than just one in the above case). If so, having any variable that is unused in any permutation of the object makes it a God object. I assume it is the latter based upon your initial post’s example.

Assuming the latter, the idea that making a whole new component to add to the object (and all the requisite layers of interaction overhead that go with it) is necessarily better than just using var shield:int = 0 seems questionable to me at best. There is quite a difference between that and “mashing your whole project into one file”. At what point does it become unpalatable/unreasonable/heretical? What I listed in my first post was an extreme example, but even then the number of discrete behaviours isn’t anywhere near “hundreds upon hundreds” (we have spawning and movement (lock on or no) — did I miss anything? By my count that’s a whopping 2. Note that that takes into account Enemies (spawning and non-spawning), Projectiles (“regular”, guided, MIRVs), Explosions, and the player).

Anyway, I guess that’s as far as I’m going with this. If you think that the aforementioned practice unconditionally has a superior option*, that’s fine. If you think the component-based approach is always the best option*, that’s fine, too. As far as I’m concerned, as good as a component-based approach may be overall, there will always be situations where it is not the optimum*. YMMV.

*based on whatever criteria

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 1): A criticism of OOP in game development

Originally posted by Drakim:

It’s a bit like having all your properties public rather than private. It doesn’t necessarily mean that the next time you open up your editor you will without fail mess up your previously working code when you type.

It just means you have made code that is extra vulnerable to fault. Someday you might mess with a property that you should have left untouched, and bam, you waste a couple of hours debugging the strange behavior you are getting.

No offense, but that’s a horrible analogy. I don’t see why it would necessarily take any longer to fix than an error introduced from a component or another object. Quite frankly, I’ve broken all three, and if one is more susceptible to breaking than another or discernibly, consistently harder to find and fix, I sure can’t tell. Maybe it is just me. It could be that most people mess up more procedurally-programming-oriented code for some reason, in which case you would be right — about them.

Originally posted by Drakim:

If you plan on using this God object for everything, every bullet, every explosion, every particle, and every time you add some new functionality you add it to ALL kinds of objects, then you are eventually going to run into trouble with stability, performance and correctness.

Originally posted by dragon_of_celts:
At some point, you’re going to have to balance what you actually want to do with what you think you might conceivably think about considering doing eventually […], and at that point you’ll have a better idea of what is the approach most suitable to you and what you are trying to achieve. Implementing a component-based system for Space Invaders (for an over-simplified example) would be a waste of time and energy, and make something simple into something complicated unnecessarily.

Realistically, the amount of behaviours for the entities in most games is rather low (and at what point does the God object become a bigger performance albatross than a component-based approach? I don’t know).

I’ll admit that I’ve never used the God object to that degree (though now I’m kind of curious). But I do often use at least a little God in my classes (8 out of 10 objects have the same behavior, with the other two being easily bypassed? Yes, I’m going to anoint it).

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 1): A criticism of OOP in game development

Perhaps I’m missing something about God objects…

If I have, say, an Entity class, which encapsulates what most OOP people would probably make into Enemy, Player, Projectile, and Explosion classes (along with God knows what else — pun intended), I have variables in one location that tells me if they spawn another Entity (and what), if they explode, whether they lock on to a target, etc. How would altering any of these break other parts? In contrast, I’ve seen many OOP projects that have a confusing mess of separate classes which you have to dig through to see the “trail” of what is happening. OOP-ing the above does little other than distill sets of variables and functions into separate classes (which is often useful). Componentizing it is a different distillation of those variables and functions (which is sometimes preferable).

Addition: So, based upon what I wrote in the previous post, what is the delineation of objects that you would require in order to not see it as a “God object”? Why?

Pretending components or “proper” OOP classes can’t “break” is the implication that is frequently given, but that’s simply not true. Which one is easier to fix will vary. There is no panacea (though there are ones that should be favoured).

I am programmatically agnostic. I am not advocating for God objects (assuming I have the definition correct) any more than I am for OOP or component-based programming. What I am advancing is the notion that all of them have their place and should, at the very least, be understood and usable within a developer’s arsenal (rather than saying “this is the way it should be done, forever and ever, amen, lest thou be declared heretic and cast out among the heathen”).

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Deeper Topic (part 1): A criticism of OOP in game development

Prime rule for developers (and possibly others): YMMV.

Just to provide a bit of counter-point:

Re-examining the objects from a less “assumptive” stance, one may see that an Enemy’s projectile (or other attack mechanism) isn’t really all that different from spawning another Enemy. An enemy may be “blind” (i.e., not “aware” of the player or other target to determine movement), which is how most projectiles operate. A projectile may “lock on” to a target, as may an Enemy, and some Enemies may spawn other Enemies. A projectile may be a MIRV (multiple independently targetable reentry vehicle — it splits from one projectile into many, basically spawning other projectiles). So why have a Projectile class at all? Because people have already made relationship assumptions about their objects (I often do this, too).

An Enemy may be a “bad” version of the player’s avatar as well (one of the games I’m avoiding working on utilizes this, and its hardly the first). Whether or not that will be intended to be the case, unless there is a substantial difference between Enemy and player objects, it may be better to just have a Starship (or whatever) object, and give the object information about its “alignment” (who it can/will harm/target). Then you can easily have allied and neutral entities as well.

Going further, an explosion can be implemented as just another type of spawning — one that occurs when the Enemy in question dies (the Enemy itself would have information on whether or not to explode, so an explosion would not explode when it dies, just as some vessels may not; also, its alignment would indicate that it would harm any Entities it contacts). It would self-destruct (self-remove), just as (say) a mine would (though the mine’s detonation would just as likely be implemented as proximity-based rather than time-based). So the Starship class would probably better be called Entity class in this case.

This is, in effect, the “God object anti-pattern”, which can be a reasonable implementation (to my mind, anyway). Can I do it with a component-based approach? Sure. Which is “better”? Well, that depends (YMMV). At some point, you’re going to have to balance what you actually want to do with what you think you might conceivably think about considering doing eventually (yeah, I’m not very good at that, either), and at that point you’ll have a better idea of what is the approach most suitable to you and what you are trying to achieve. Implementing a component-based system for Space Invaders (for an over-simplified example) would be a waste of time and energy, and make something simple into something complicated unnecessarily. Don’t expect that implementing a component-based approach will necessarily mean you can add anything later with the minimum of ease. In some cases, you’ll have to do as much or more work than utilizing other methods. All that being said, component-based programming is a useful paradigm to have in your developer toolshed.

I use a component-based approach for some things. I use OOP for others. I also sometimes use some form of “God object” at times. Programming paradigms are tools, not religions.

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Flashpunk resources

Quick Google search for “flashpunk pixelmask”:
tutorial
tutorial
API docs
etc…

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / Classes and keyboard

I thought the possibility that the stage reference hasn’t been set yet is why we were supposed to do this:

public function Main():void 
{
  if (stage) init();
  else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void 
{
  removeEventListener(Event.ADDED_TO_STAGE, init);
  // entry point (add key listener (etc) here)
}

To easily check if the traces are working, add a trace statement to the onTick function (I’m assuming that works, yes?). If a trace shows up, you know it is not a problem of viewing the trace; if it doesn’t, you can set up a TextField to perform the same function if you don’t want to spend time tracking down why the trace isn’t showing.

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / [AS3] beginFill loop

What is the code for getRandomColor?

Also, are you sure that the gridGetI/gridGetL object’s gtype == “land” and its countyName equals the countyName of the countyArray object (as I assume that colours are initialized with 0, i.e., black)?

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Design / [Questions] "Simulation" games

1. What Ace_Blue said (except I’ve never played Civilization or Colonization, and maybe a bit more apathy toward mindless tedium games).
2. Not generally (except when needing “friends” — I almost never do those).
3. (1) or (2), depending on how many there are, how interested I am in the game, and how easy it is to use.
4. Wait time is OK, as long as there are other [interesting] things to do in the game while I’m waiting (which, more often than not, isn’t the case — particularly in games where wait times increase the more you do an action and those actions have been carried out a few times (see just about every MMO"RPG" on Kongregate)).
5. It depends. Implementation, integration, interest (how drawn into the world I am), and other factors easily change the answers to these questions. As such it is impossible for me to give an accurate answer. Usually, an RPG where I can get money/items/etc by completing quests and killing mosters (for example) would have me neglecting most gardens (which are generally tedious and boring).
6. All of the listed options are acceptable (though I wouldn’t spend my money on them).
7. “Limited edition” means what in this respect? “Special” items (everyone could have the same thing, but they have better stats than “regular” items), unique items (randomly generated stats, for the easiest example; in theory, only one player would have that exact item), or exclusive items (player can only have one of that item or one of that type, but other players may have one as well)? Is “limited edition” meant to be premium content here?

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / GiTD [#31] Game Reviewing and Critiquing

Originally posted by saybox:

You say “didn’t even” as if my game was completely lacking in effort, which isn’t the case.

Effort to make the game playable and fun? I made no such implication. Effort to make the game fit the theme? I don’t see any attempt being made, apart from a single comment the character made, to make the game fit the theme*. What the genesis of the idea for the game was is kind of irrelevant. Thus: “didn’t even” change the graphics (indicating, if I must point it out, not that changing the graphics would have been enough, but that that minor, easy move towards theme-compatability wasn’t done).

*Perhaps I’m missing it, though. Please explain the connection.

Originally posted by saybox:
Originally posted by dragon_of_celts:


You’re comparing specific differences (the [specific achievement] goals have changed) to general differences (combining gems for effects, shooting/avoidng enemies).

[…] the game has pretty significant differences from AU if you take the achievements system away – and I don’t think JTMB has the monopoly on putting lots of achievements in a game, either.

It’s been a while since I’ve played AU. Would you mind reminding me what some of those significant differences are?

What my point was (and I thought it was clear by how I worded it) was merely that you weren’t comparing the same things, but specifics against generalities.

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / GiTD [#31] Game Reviewing and Critiquing

Douse

Movement is unnecessary, since deflection is so strong. Just sat and fired at the faucet for a few before abandoning it. I gather there isn’t anything else that happens anyway. Heating up the water drops and turning it into vapour (which then could collect and become drops again if not careful) would’ve been more interesting and fit the theme better.

Wizard Elemental Defense

Best theme fit, hands down. Game play needs balancing (as everyone else has already said), but decent. Took me a minute to figure out how to get the spell slots going with the gems (I didn’t realize at first that the shapes of the gems were relegated to certain spaces). Different behaviours for different element-ed enemies would be nice.

Super Duper GiTD Entry

Originally posted by saybox:
I would say that Douse ended up with an equally weak link to the theme, because the only connection is that the enemies are water drops. But because it’s a strict graphical interpretation of the theme word, it’s not something you even mentioned in your [Solsund’s] feedback. Reskin the water drops to UFOs and it can enter an alien themed GiTD. On the same note, a quick graphical update to my game could have a block of ice sliding around, putting out fires instead of collecting items, and suddenly it fits the theme perfectly, at least graphically. But it doesn’t fit the game so well to do that.

You kind of undo your own point at the end, there. And if he had, in fact, put his game out with UFOs instead of water drops, you can bet that people would’ve mentioned it. You didn’t even skin yours to fit the theme. “Elephant sounds like Element” doesn’t sound like much of a link to the theme, either, but I’d be interested to know what your original idea was that you ended up getting away from.

Also: Why couldn’t you have done the ice block putting out fires? How does it “not fit the game so well”, other than to detract from the obvious similarities to AU (which, I think, would’ve still been strong)?

For the game itself, it was enjoyable enough, though not original. As to that last note:

Originally posted by saybox:
[…] it’s definitely not just a copy of AU, even if it shares many of the same concepts. […] The goals and setting are different where difference is possible (caps lock is a pretty universal key).

Meanwhile, I’ve heard of other TD games where you combine gems to have different effects for your tower, and the idea of shooting / avoiding enemies coming towards you in an infinite cycle isn’t exactly unheard of.

You’re comparing specific differences (the [specific achievement] goals have changed) to general differences (combining gems for effects, shooting/avoidng enemies).

 
avatar for dragon_of_celts dragon_of_celts 282 posts
Flag Post

Topic: Game Programming / GiTD [#31] Winners Announced!

1st place: feartehstickman
2nd place: saybox