Recent posts by dragon_of_celts on Kongregate

Flag Post

Topic: Game Programming / GiTD #44 Theme Suggestions

Originally posted by I_love_you_lots:
Originally posted by Shalmezad:


Game Mechanic: “It’s like standing in the rain without getting wet”

Wait…

…that’s not a game mechanic!

Isn’t it the equivalent of writing “bullet hell”? Alternatively, it could be a repellant or shielding force…

 
Flag Post

Topic: Game Programming / GiTD #44 Theme Suggestions

Well, I assume Shalmezad is busy (I PM’ed, but no response), so I’m just going to put this up here, just in case (since he originally said the contest would start on the 21st). Italicized items have been changed by me (to reflect current contest), and are subject to change by Shalmezad.

Originally posted by Shalmezad:

Ladies and Gentlemen!
Boys and girls of all ages (above 13 years of age due to terms of service)!
Welcome to yet another round of GiTD Theme selection!

So, for those of you who are new:
GiTD is “Game in Ten Days”, where developers from all over the world and different skill sets compete to make the best game they can in ten days while still sticking to the theme.

There’s 3 phases (write down these dates):
Theme selection: Now – September 21st
GiTD #44: September 21st at 9PM EST to September 31st at 9PM EST
Voting: September 31st – October 2nd 9PM EST
Winners announced: October 2nd 9PM EST

Theme selection
This thread is dedicated to the theme selection. Based on feedback recieved here this will go slightly different.

#All suggestions that aren’t extreme will be fed into the RNG.
#The RNG is now set up to pick between nouns, verbs, adjectives, and game mechanics. Your game must include the nouns,verbs, and adjectives that come up. The game mechanics are optional.
#Suggesting old themes is allowed
#The more random the input, the more random the output. You can’t have combustible lemons if life doesn’t give you lemons.

My suggestions for this month:
Noun: Territory
Verb: Capture
Adjective: Shapeshifting
Game Mechanic: resource management

 
Flag Post

Topic: Game Programming / Troubles with Array lenght!

You have “length” misspelled in all cases except for the ‘armo’ element, which is why that’s the only one that returns a proper value.

 
Flag Post

Topic: Game Programming / Troubles with Array lenght!

I believe your compiler thinks that you were actually creating a new Array and initializing it to have one element (containing a reference to LISTS[‘armor’], which has 3 elements). LISTS is a multi-dimensional array already — so I assume I don’t have to explain how that works.

Your trace statement should’ve been:


trace(LISTS[‘armor’].length); //==> 3

You obviously figured it out on your own, as you did exactly that when you called it “array”.

 
Flag Post

Topic: Game Programming / as3 how to detect the edge of a movieclip

That’s OK if you don’t mind the character being halfway off the floor (since character.x is in the centre). Otherwise you’ll need to add or subtract half the character’s width to character.x when you test.

 
Flag Post

Topic: Game Programming / as3 how to detect the edge of a movieclip

Assuming that the character’s registration point is the top left (default):

if (character.x < floor.x)
{
   character.x = floor.x;  
}
else if (character.x + character.width > floor.x + floor.width)
{
   character.x = floor.x + floor.width - character.width;
}

Keep in mind that if the character doesn’t have the same direct parent as floor, that you will need to adjust their coordinates (since they won’t be using the same coordinate space); or, if floor is character’s direct parent, you should remove the “floor.x +” parts of the above code (replace floor.x with 0 on top lines).

 
Flag Post

Topic: Game Programming / Happy Programmers Day!

Well, that’s pretty good, but your code gives two errors:

line 8: A string literal must be terminated before end of line

line 15: artist is never flogged

 
Flag Post

Topic: Game Programming / Happy Programmers Day!

Pfft. That’ll never work. It should be:

while (programmer.brain < drunk)
{
   if (artist.hasFunds())
   {
      shots += artist.buyShots();
      programmer.quaff(shots);
      ++roguelikeRef;
   }
   else
   {
      artist.flog();
      if (!artist.likesIt)
      {
         artist.whoreArtwork();
      }
      programmer.chomp(peanut);
      ++perlRef;
   }
}
 
Flag Post

Topic: Game Programming / GiTD #43 - *Congrats Halysia*

Congratulations, Halysia.

Originally posted by Shalmezad:

dragon_of_celts, thanks for the idea on the theme selection.

Sure thing; I’m glad it worked out.

dragon_of_celts
Feedback Optional (no developer preference)

Not that it matters, but I actually wrote that I preferred feedback.

Originally posted by Aesica:
Flappy Horror: The clicking isn’t very meaningful because it’s pretty easy to “stay afloat” while not going within range of the death walls. Needs a clear goal other than just “harvest body parts.” Maybe have each level provide a “shopping list” of what’s needed to build a homunculus and pass the level. To add spice, certain “creatures” yield more of a certain body part, so you could reward players who harvest effectively. Finally, while I’d like to say that more hazards should be present, I think they might be overly annoying and unpleasantly difficult to avoid, given the current controls.

Originally, clicking gave a very weak flap, and so a ridiculous amount of clicking was required just to “tread water”. The right/left acceleration and the flapping force were both just test values that I had intended on tweaking later, but I figured easy flying was better than too difficult for a weak proof-of-concept (which is all I had time for).

The rift was eventually supposed to vomit up its own “death walls”, thereby making a kind of “Flappy Bird in the Round” type of thing. The rift would get “stronger” in certain time increments (which decrease the longer one plays), which would give the antimatter and rift death walls greater range and speed variation.

There was supposed to be a kind of “card collection” thing for the homunculi, with different kinds that could be made. Still would’ve basically been the same as scoring, though a little more in-depth and with graphics. If I do continue with it, I think I’ll incorporate some variant of your “shopping list” idea (certain types of homunculi needed to conquer different worlds).

Originally posted by DarkRainyKnight:

Pros: A unique game. I’d be interested in seeing how you would further expand the game. Plus “The Horror” (I named your creature that. I hope you don’t mind.) was kind of cute c:

Cons: The controls. I couldn’t really tell much difference between the attacks. Even though I understand why I was clicking so much it still quickly became monotonous.

Of course The Horror was cute… Remind me to wear peril-sensitive sunglasses if I ever meet your girlfriend.

The only difference (visually) between the attacks is the colour of the tentacles (the white-ish ones are the bone pluckers, the reddish ones are the organ harvesters, and the tan ones are the flesh peelers). Ideally, I would’ve made them more distinctive, but that’s very low priority on my list of things to do.

Just as a side note: “constructive criticism” doesn’t mean “only give positive comments”. It means that negative comments should be made with the sole purpose of helping to improve whatever is being criticized (rather than pointless negativity).

 
Flag Post

Topic: Game Programming / GiTD #43 *Flying Rotating Horrors*

…And now, I present to you my entry for GiTD #43 and 1GWICGMLATM1*:
Flappy Horror.

The real horror here is the code.

I hadn’t bothered with a preloader (hopefully not really necessary, anyway).
It’s a bit dull at the moment, and not exactly pretty. There were supposed to be different creatures and artifacts and whatnot, and the rift’s power is supposed to increase over time (manifesting in increased antimatter wall movement, among other things), but right now there’s only one creature type, and two “settings” for wall movement (stopped and random — you have to wait a bit before the random starts). I need to tweak the movement values a bit, I think, too. As is, the component parts and homunculi are just basically scoring — I was intending for there to be different homunculi that could be made.

Anyway, I’m going to be away and without access to internet for a bit, so unfortunately, I’m unlikely to be able to vote or give timely reviews (which reminds me: I would prefer reviews, for those willing to give them).

* 1 Game Whenever I Can Get My Lazy Arse To Make 1

 
Flag Post

Topic: Game Programming / Sounds In Python TKinter Program: "Focus" Control Between External Program Windows

Google search brought up
this, which looked like it might be what you need (or maybe this?). These are both #3, which is not necessarily the best solution.

 
Flag Post

Topic: Collaborations / collaboration for taking game to new direction

Yes, unfortunately, there is no “newly updated” category (and probably wouldn’t be the default setting, even if there were, which means you’d likely still miss a lot of people). Kongregate’s current system encourages uploading a completely new game every time you make a major update (in other words, don’t update your old one, do it like it’s another game altogether).

Good luck on your projects.

 
Flag Post

Topic: Collaborations / collaboration for taking game to new direction

A 3.1 rating does NOT mean most people hate your game. 3 is middle-of-the-road. 5 stars is the max you can get (and very, very few will get close to that — the highest rated game is close, but not quite, 5 stars). The biggest reason why most people won’t give it a second chance is that they won’t know it has been updated unless they check your game’s page — which they’re unlikely to do unless it has been updated (unless you get rated high enough to get badges, and then actually get them). It is a great flaw in Kongregate’s system that entrenches and reinforces the badged games at the expense of all others.

I still see your game in the “newest games” list (on page 2 now). A game is “under judgement” until it gets a certain number of reviews, IIRC.

I don’t know why my IE can’t handle your game — it does most others…

 
Flag Post

Topic: Collaborations / collaboration for taking game to new direction

I don’t know about others, but I could barely get the game to respond. After clicking on the “play” button and waiting for half a minute or more, if I was lucky it would start the game — from there it only got worse. Pressing a movement key yielded no response, except occasionally, long after, it would react like I was holding the key down. It is, literally, probably the laggiest game I’ve ever encountered (and that’s saying something) as far as user input response goes. Couldn’t actually play the game enough to tell you anything about it other than that.

Edit: This appears to be a browser issue — the above was using IE 9; in Firefox the game functioned OK. Keep in mind that IE has the 2nd largest market share, according to Wikipedia, following Chrome.

Needs some spelling and grammar checks. Being able to be attacked/killed by something while checking the items/stats screens is not good, so I’d suggest an auto-pause. “Spinning item” doesn’t appear for me in the tutorial, and when I quit the tutorial after reaching the guy at the end, the “talk to this guy?” box appears under the main menu buttons. Being able to see what changing a stat does before you change it is important, especially if the user can’t change it back afterward.

An indicator that a skill is currently selected and pending would be good (I can select “Ground Pound” and walk around for a while, but there is no indicator that it is the action that will occur the next time I click). Since skills apparently have a max level, a # of # would be nice (e.g., level 1 of 7 or 1/7). Personally, I never bothered using anything but Ground Pound and my basic attack…

No magic hammer anywhere — all bandits dead, all boxes looted. Also, it should be noted somewhere that leaving items laying about to pick up later won’t work, as they’ll disappear.

Not a bad game, but needs a better ending. And if the guy guarding the cave is for an area not implemented yet, I’d make it invisible to players until it is.

 
Flag Post

Topic: Game Programming / Animating via code plus other issues

The simplest way is to have a completely separate animation for walking and attacking at the same time (for however many directions are relevant). The more complicated way is to break your character into parts, making sure they align at all the proper places, so the relevant part would be concerned with the relevant action: the feet would stand/walk/jump/etc, the arms would stay still/swing (from walking)/attack/etc, the face would exhibit an expression based on player’s status, and what have you.

Is that what you meant?

I think most programmers opt for the simple way.

 
Flag Post

Topic: Game Programming / Deleting letters

Originally posted by AshAbeAdd:

The textfield is what showing the person’s typing. Then when it is entered, or maybe at the same time it’s being pressed it goes into an array.

“Maybe”? You don’t know? Isn’t it your code?

Here is what I’m assuming, based on what you’ve said so far (and my understanding of it):
User types, and the keystroke is captured, as in most Flash applications. You check to see if the key code is for backspace or enter. You push the key code onto an array — hopefully if you receive a backspace you’re popping the last character off of the array instead. Each time you receive a keystroke, you update the TextField to reflect what has been typed by joining the elements of the array and setting the text of the TextField to the resulting String. Yes?

You are getting the glyph because the backspace character is being added to your String — and it shouldn’t be.

// let's say that your character array is called typedChars, and your TextField is called assembledText
// inside function where you handle key presses (pseudo-code):
if (keyCode == BACKSPACE)
{
   typedChars.pop();
}
else if (keyCode is alphaNumeric)  // yes, remember, this is pseudo-code
{
   typedChars.push(keyCode);
}
assembledText.text = typedChars.join("");

Note that in the pseudo-code above, the key code that contains the backspace never touches the array, nor the TextField. You shouldn’t need to screw around with the visible property in order to not show the backspace glyph because it shouldn’t ever be in the array or the TextField in the first place.

If I’m off base or you don’t know what I’m saying, show us your code.

Originally posted by AshAbeAdd:

My main question now and somewhat what I really wanted to know at the start of this discussion is, how can I change the character glyph to give a different glyph.

You mean like “if (keyCode == BACKSPACE) typedChars.push(somethingElse);”? You aren’t going to change the assigned glyph, but you can substitute something else… but you don’t need to do that if you just handle it properly in the first place.

 
Flag Post

Topic: Game Programming / Deleting letters

Originally posted by AshAbeAdd:

Well, usually, after hitting backspace or the second time, there will be a black box with a white circle inside, and it would be the spot of the first deleted character. So if I had 8 characters, and deleted twice, then the 7th block will be blank, and the 8th would have the symbol. Again if I had 8 and deleted 5 times, then I would have a empty slot in the 4th block and the 5th to 8th slot would have the same symbol.

It is the character glyph for backspace (0×08 — not the spade, as you previously mentioned, which is 0×06).

So you ARE pushing the backspace onto the array, then (or replacing the deleted character with the backspace character)?

@player_03: Unless I’m mistaken, he means the array elements. He’s pushing the entered keystrokes into an array.

 
Flag Post

Topic: Game Programming / Deleting letters

So if you’re explicitly checking for backspace (and, I presume, eliminating the last previously-entered character, and NOT putting the backspace into the array), where does the symbol come in? Unless you’re still pushing the backspace character onto the character array, how would you get a symbol? Please explain, or better yet, let’s see some code.

 
Flag Post

Topic: Game Design / Time Sweeper - Arcade Shoot 'em Up

Originally posted by PylBatu:

Just for clarification, movement is not set to a grid. It seems my decision for the quirky movement mechanics (exaggerated movement momentum for Sweeper) has crossed the line of being too weird, I guess.

Ah, I see that if I take long strides I can change my position. I was trying to get closer to the top edge of the play area, and kept getting bounced back to the same position (quite a ways away). I tried moving away and back again, but I seemed to end up in the same place, so it appeared that I couldn’t move freely. Normally, smaller movement yields greater control than larger movement, not less. My apologies.

Originally posted by PylBatu:

And, I never thought the sound effect for timebending is painful, contrary to what I initially believed — I thought it was cool. Lol.

If I press the timebend key and release it, it does make a cool sound effect. The problem is that generally one needs to hold the key down for a bit, and the sound effect gets really, really, REALLY loud very quickly (not to mention the sound effect becomes lost in what is basically a loud buzz). I imagine this is because you have a sound effect that gets repeatedly played, each new play overlapping older ones. Each overlap increases volume and harmonics until you get an ear-splitting wall of noise. You could possibly have a counter for how many timebend sfx are currently playing, and only allow another one to play if the counter is below a certain number. Once one stops, decrement the counter, which will allow another to start.

Take all feedback (including mine) with a grain of salt.

 
Flag Post

Topic: Game Design / Time Sweeper - Arcade Shoot 'em Up

Not bad. It certainly has some interesting ideas.

Movement seems to be set to a grid, so that I can’t freely move where I’d like to — which wouldn’t necessarily be that big of a deal, except the enemies aren’t forced to the same positions. It feels a bit incongruous. The forced strafing to hit some targets coupled with the randomized shot offset makes it somewhat frustrating. Add to that hampered dodging ability (as I can’t stop between two shots, for example, unless they happen to be around the grid space). It’s too bad, because I really don’t mind the slightly odd movement dynamic (in and of itself, I kind of like it), but not for this game as it is now.

Shield usage as a toggle is OK, I guess, but shield use is limited and likely only to be used for short periods. Since there is no ammo, energy depletion from firing, or targets that one should avoid hitting, auto-fire would make the most sense — you could have the W/up key for charging a large super shot (stop auto-fire while charging) — but short of that, switching the toggle from shields to firing would be best.

The tutorial text should be advanceable by the player. That will ensure that the player gets to read it all (without having to go through the tutorial again from the start because they missed something) and keep faster readers from having to wait longer than necessary. Some of the tutorial “pages” should wait for the specified action (the firing page, for example, will go on to say “Great! You’re getting the hang of it!” even if I don’t bother firing).

The sound effect for timebending is rather painful. Annoying sound effects should be reserved for bad things, like taking damage (if you have them at all).

While there are new enemies that come in fairly regularly (I don’t know how many types you have, as I haven’t played that far in — I think I’ve only seen 5 or 6 so far), some other feeling of progression would do wonders for this game. Segmenting the game into waves or levels is the simplest way to do this (if a little bland and conventional). Some sort of target would be better (say, sweeping the route to Saturn) — it’s basically a long wave/level where you feel like you’ve arrived somewhere at the end. You could do different missions (sweep route, sweep for x time, sweep x enemies, etc. Bonus points for allowing “mop-ups” — there was one top-down shooter I remember from ages back that would let you go a second pass to take out targets that you missed. I wish more shooter games would incorporate that).

 
Flag Post

Topic: Game Programming / GiTD #43 *Flying Rotating Horrors*

Noun: sword
Verb: jump
Adjective: mercurial
Game Mechanic: parallax scrolling

 
Flag Post

Topic: Game Programming / As3, how do i write this?

Why do you have 3 different MovieClips for different grass types? Do they do anything besides look like grass? If you have all 3 grass images in one .gif/.png/.whatever, you can choose the image to display using scrollRect. You can have a simple int var for type if you need to determine which grass type it is:

public class Grass extends MovieClip
{
   public static const TYPE_SPIKY:int = 0;
   public static const TYPE_PATCHY:int = 1;
   public static const TYPE_TALL:int = 2;
   public static const IMG_WIDTH:Number = 50;   // or whatever your image width of ONE grass pic is

   protected var type:int;

   public function Grass(newType:int)
   {
      type = newType;
      scrollRect.x = type * IMG_WIDTH;   // assuming you have them aligned horizontally
   }
}

If you only want certain grass types on certain layers (I think that’s what you want, right? I’m not entirely sure what you’re trying to do), check the type var of the Grass object:

// Grass object instantiation
grassy:Grass = new Grass(Grass.TYPE_PATCHY);
 
if (grassy.getType() == Grass.TYPE_PATCHY)
{
   patchyLayer.addChild(grassy);
}
 
Flag Post

Topic: Game Programming / Deleting letters

Oh. I thought you were being sarcastic.

 
Flag Post

Topic: Game Programming / Deleting letters

While ordinarily 0×07 produces the bell sound, there is, in fact, a glyph for that code (in some cases). The spade character he is getting is actually for 0×06, and backspace is 0×08, though, so I’m not sure why he’s getting that instead…

 
Flag Post

Topic: Game Programming / Deleting letters

I obviously don’t get what he’s trying to do… Why not just set text to an empty String (textfield.text = "")? Isn’t that how one clears a TextField (even if using images: the images, according to Adobe, are displayed using HTML in TextField’s text String)?

Originally posted by AshAbeAdd:

Hi. I’m wondering, because when I code my Input system to have one character removed if the backspace is used, it does that. However it also give a spade symbol. I was wondering if that’s in the library or compiler program. What can I do to make it be like a space symbol or “empty”? I tried removing the slot that get erased, but that doesn’t help.

The first 31 characters are control characters, which are not normally printable — however, they do, in some cases, have a printable glyph. You would need to test and substitute when you receive keystrokes (so if you receive a backspace keystroke, you don’t push that character onto your array, but pop one off and discard both the backspace and the popped character).

…assuming I understand what you’re trying to do and what your problem is…