Recent posts by Ace_Blue on Kongregate

Flag Post

Topic: Game Programming / [FD][AS3] Substitute for fl.controls.List [Solved]

Indeed that was useful. I also had some trouble with their incredibly ugly Ronda font but it all seems to work now. Thank you very much.
As far as overriding the toString, the comments do say that you can use objects if they have a string property named label. I’ve still found it more convenient to simply pass strings.

 
Flag Post

Topic: Game Programming / [FD][AS3] Substitute for fl.controls.List [Solved]

Thanks, that was pretty useful. I wish it came with a manual, though. I know how I’m going to spend my weekend, trying to figure out how the usage for their List component.

 
Flag Post

Topic: Game Programming / Best Way to format numbers? (show in thousands, millions, etc.)

Originally posted by Shalmezad:

Good catch. Also make sure either way, you have a default case (default in the switch, or the else in my if block) that returns the number before it was modified.

Meh, why bother?

At the top:

private static const SUFFIX:Array = ["", "thousand", "million", "billion", "trillion", "quadrillion", "bajillion"];

Instead of the case structure:

if (place >= SUFFIX.length) place = SUFFIX.length - 1;
return number.toFixed() + SUFFIX[place];
 
Flag Post

Topic: Game Programming / [FD][AS3] Substitute for fl.controls.List [Solved]

I would like to create and dynamically populate a selectable list of options so the user can select one of them. The perfect component for doing this is List. The problem is that I’m using FlashDevelop and the elements in the fl. package are under license, therefore not included.

I am not interested in a workaround, either a questionably legal or an outright illegal one, to get the List definitions embedded in my project, but if anyone has knowledge of a freely available class that would serve as a suitable substitute for List (and one for TileList while we’re at it) I’d be very interested.

Ultimately I figure I can develop my own custom List component, but I’d rather not reinvent the wheel.

 
Flag Post

Topic: Global Assault / [Dev] Player Feedback

I would really like to be able to see a unit’s full stats (including the value of each skill, not just its presence) without having to click on it for the details. Just seeing it has strike, or armor or whatever without giving the value is not all that helpful, especially since equipments can boost these values and the symbol won’t even change color. Having to click twice on two separate spots just to see information that should be readily available for strategy is a hassle.

 
Flag Post

Topic: Global Assault / [Dev] Bug/Issue Report

I am in the same situation, one day behind RKDE. After getting the timed event in Northern Canada at the start or almost, and the Flank campaign today (lasted all of 20 minutes) I am not seeing any other. If other players are unlocking Kara’s campaign after just two days there’s a problem here.

 
Flag Post

Topic: Global Assault / Matchmaking quick fix

There’s something very, very wrong with the way the game rates matchups. It goes beyond a simple misunderstanding of the value of certain units, and definitely crosses into bugged-out-the-wazoo territory. That much isn’t new, plenty of people have already pointed it out.

Thing is, it doesn’t have to be. If you’re serious about fixing it, here’s a quick band-aid you could apply to the problem.

First assign a point value to each unit based on its number of stars and upgrade dots. For instance 2, 3, and 4 points for the 1-star units with one, two, and three dots, respectively; 7, 8, 9, and 10 points for the 2-star units from 1 to 4 dots, and so on. The exact values are not all that important.

Next, assign point values to equipments based on stars. For instance 1, 2, 4, 6 points for 1- to 4-star equipment. Finally assign a point value to base health, say 1 point for each 5 points of health.

Total the point values for each army and you have a rough estimate of their respective strength. Do the ratio r of strength of attacker/defender and you can estimate difficulty:
r > 1.5: Very low
1.5 > r > 1.1: Low
1.1 > r > 0.9: Standard
0.9 > r > 0.67: High
r < 0.67: Very high

Boom, you’re done, problem fixed. Sure, some units are better than others at equal point values, and certainly synergies are completely neglected in this calculation, but for an hour of programmer time, testing included, you’d have a rating system that is leaps and bounds beyond what you currently offer. Once that’s in place then you can take a good hard look at what went wrong in the original system and fix it out of our sight.

Tiny minor bug reports:
Hyperion Darius should be marked as 2-star instead of 1-star, based on its upgrade costs, number of possible upgrades, and the fact that it results from the fusion of two 1-star units.
Sometimes the research screen in the Helicarrier tab labels every system ‘sensors’. I can’t reproduce it easily, can’t determine what’s causing it, but it’s funny when it happens.

 
Flag Post

Topic: Game Programming / What's with all the hate on Unity?

Come to my place buddy, I’ll show you how just about every Unity game crashes my browser (Firefox). I still play Unity games on Chrome, where it seems more stable, and I don’t go around downvoting Unity games for being Unity, though.

 
Flag Post

Topic: Game Programming / Show us a screenshot of what you're working on!

For the pairs at the bottom of the stats panel, have you tried writing the number on top of the symbol? That way you can have bigger numbers, bigger symbols, and it completely removes the issue of deciding which number goes with which symbol. If you decide to do that, I recommend adding some effects to make the numbers stand out, or even drawing your own with some bitmap editor.

You have a lot of room on the Exp and gold lines. I don’t know about the gold, but what about an Exp bar with, again, the numbers on top? Also, I was about to suggest displaying the level as well before I realized it was already displayed, but on the character portrait for some reason. How about bringing it over and making it share a line with the gold?

That wide gap between the top panels and the bottom panel looks weird. Do you write or display anything in there?

The paperdoll/equipment panel is unbalanced, with equipment slots too close together vertically and too far apart horizontally. The character portrait is not centered. Can you make the items bigger and have inventory take more of the space? Portrait and stats look like they’re hogging a lot of room for not much effect anyway.

Of course, this is all coming from a guy who sucks at UI design, so take it all with a pound of salt.

Nothing to say about the popup description for the weapon, except that it gave me a good laugh. ^^

 
Flag Post

Topic: GemCraft Labyrinth / gemcraft 2

Oh sorry, I didn’t realize you were a fellow freeloader. May I suggest P3, R4 or Y6 for your first mana farm then? You really need a map that offers both chain hit and poolbound as gem options in order to get the farm going reasonably well. P3 is completely single entry so you can set up your mana trap right at the entrance. R4 needs to be cleaned up a bit in the beginning but it’s really no big deal and then it’s single entry as well, and it has lots of mana shards to help you get started. Y6 has multiple entryways, but with 189 waves and no beacon-proofing necessary it really has the highest potential for XP without permafrosting shenanigans, and is very convenient.

 
Flag Post

Topic: GemCraft Labyrinth / gemcraft 2

If you have poolbound unlocked just do glaring and maxed traits at F1, set up baby’s first mana farm and rack in a few hundred million XP. Put the skill points you get from that 500 level or so jump back into your skills, lather rinse repeat. You should be level 1500 or more by the end of the day. That’s the thing with mana farms: once you’ve done it once, it becomes so stupidly easy you’ll never struggle on a level again.

As for me, I’m going to see if I can permafrost 20k monsters or so in range of a wisdom shrine to make XP at will. If so then there is no longer a cap to how much XP freeloaders can get, it’s just slower than for pouch users.

 
Flag Post

Topic: GemCraft Labyrinth / gemcraft 2

Almost everything that can be used to break the game is magician’s pouch, so I’ve started looking at it as “cheat codes” more than “full game”. After all, if having the full game unlocked means winning instantly, it’s not really a full game at all, is it?

In terms of gems, chain hit and both bound gems are locked, the former directly, the latter by locking away the fields where they can be collected. This restricts mana farms to levels where both red and either black or white are readily available, so maybe 20% of the fields, if that, and limits the mana pumping rate, and therefore the maximum grade accessible as well. Without the pouch, getting hundreds of trillions of mana is about where it ends, with your best gems in the low 40s.

Max mana conditions how much damage you can deal, and therefore how much angering you can do. Angering determines how much XP you get, because >99.9% of XP comes from angering (this is not hyperbole, do the math!) And then Fury, an extra XP multiplier of at least 4 between the direct XP bonus and lowered angering penalty is also locked away in an inaccessible field.

Locking haunting and three of the traits restricts XP by another factor of 2.5 or so while also preventing max level talisman farming, another good source of XP bonus and extra skill cheese, although the talisman farming is only made more tedious and not prevented completely, in that you can still have max level fragments, you’re just not guaranteed them every run.

Of the three locked traits, two are free XP (swarmlings and orblets) while the third one is not just free XP, it’s also free guaranteed cores, including on levels where fliers normally don’t spawn (caves, such as Y6, the fragment farm.) I can think of one advantage to not having the pouch, though: The compass is locked too, so you won’t be tempted to go through the tedium of doing it twelve (12! OMFG!) times to get all of its rewards…

 
Flag Post

Topic: GemCraft Labyrinth / gemcraft 2

Pretty much. I think I’ve about reached the limit of how much freeloaders can expect to break the game, which is to say a handful of billions of XP on each of a handful of favorable fields. My personal best is 4.1B on X1, but I’m sure it’s possible to get at least twice that if one wanted to absolutely push it (I don’t.) I’ve reached level 1339, capped every skill worth capping, and now I’m questioning the wisdom of paying $5 to do one run with the magician pouch, get a trillion XP or more and go “Meh” before leaving the game aside for good.

As for angering, whether there is a plateau somewhere above grade 30 is moot. Near as I can tell that zone is inaccessible to freeloaders, and people who bought the game have access to fury which makes the whole XP bonus curve explode so badly it’s not even funny. Nobody ever talks about it, but you just have to look at the ridiculous angering going on in the videos to realize how horribly broken fury is.

 
Flag Post

Topic: GemCraft Labyrinth / gemcraft 2

Thanks for the advice fractalman. Before I get to the results, how “estimated” is that estimated 1/3 of XP from beacons? If you hover your mouse over the raw XP number in the results screen you’ll get a breakdown of your XP sources. To me, XP from monster kills pretty much dwarves XP from beacons by an order of magnitude or two, systematically. I guess when you anger with 40 gems and get ~200 extra XP per monster, that 200k for the wave far outweighs the 8-10k you’ll get from the handful of really sturdy beacons you’ll get as extra.

Now about angering tactics. Since I could not find any numbers, I went ahead and collected the data myself. Angering a wave with a gem of grade G multiplies the HP of monsters in the wave by a factor of 1.07 + 0.03 * G. This holds until at least grade 27. I want to take a look at what happens after grade 31, though, because by this formula grade 31 should exactly double the HP of each monster, and I need to make sure there is no cap there. The nice thing is, you don’t need to actually bomb the wave and waste the gem for this, you can just press B and hold shift over the wave tile with the proper gem first in your inventory and the game will tell you how much HP the wave would gain if you did drop the bomb.

For XP gains, though, things are not so simple. The monsters in a wave have a certain base XP value. Each time you drop a gem on the wave, the monsters gain a fraction of their base XP. Keyword: base. That means the angering is additive for XP and based off the base XP value. Unlike for HP, there isn’t a simple linear progression of that XP fraction as a function of gem grade, and the XP gain is given only to one decimal place, after you’ve bombed. So in order to get a reasonable estimate of what the fraction is for each grade of gem you have to bomb waves repeatedly (I did 20-30 times) and look at the final XP value. It’s tedious, to say the least, but doable.

After doing that for every grade from 1 to 27 and working out the math, which I will spare you, it turns out that indeed, at least until grade 27 bigger gems mean bigger XP gains at equal HP bonus, but:
The gains are diminishing and there could be a plateau, or even an optimum (!) somewhere higher up, in the 30s or 40s or 50s, I don’t know, I have not looked, I cannot look, I do not even know if a freeloader can look that high.
Angering with 40 gems that are 5 grades below that of your mana farming gem costs more than that gem, every wave! It’s clearly wasteful as the mana could be used to upgrade the farming gem instead and farm even more.

So, so far, I’ve stuck with angering at about 10 grades below the mana farming gem, and keeping the killer gem 1-3 grades below the mana farm. Now I need a reliable way to estimate what my gems can kill so I anger to the optimal HP. Any pointers on that? The only way I know is to push it until monsters leak but it’s trial and error and messy, and it can quickly end the run if you’re not careful with it. I need a predictive method, not a destructive one. XD

 
Flag Post

Topic: GemCraft Labyrinth / gemcraft 2

Does anyone have recommendations about which grade of gem to use to anger to maximize XP?

In the beginning, while I’m setting up the system (I’m low level, only 819) I anger waves using the grade of gem that gives me the most mana bang back for the mana buck and using a single Y-O-W tower spamming beam to drain mana faster. Once this is in place I build my mana trap and focus on making each wave as large as possible up to 999, still keeping the angering done with the highest mana back.

Once the farm gets going mana quickly shoots up to the millions/billions range and is no longer a concern, so I want to maximize XP bonus while keeping HP bonus as low as possible in enraged waves. Anyone has the formula for how that works as a function of gem grade?

I’ve been angering with grade 12 gems, but since I only make one angering gem and shift+click to bomb from the pool, I realize it’s a completely psychological hangup on my part, and probably way sub-optimal (not to mention tiresome, 150+ waves bombed with 40 gems each…)

As a free player (waiting for GC2 to come to Kong to buy premium) I have to squeeze every advantage I can get out of the game to even stand a chance of getting ahead. BTW, if another freeloader is looking for a good field to start their first mana farm I strongly recommend Y6. I did it twice there in glaring with full traits, the first time around level 320. The 2.3B XP I have on this field is >95% of my total XP! XD

 
Flag Post

Topic: Game Programming / Google Code Jam 2014

On the plus side, Hello World Open only starts in a couple more days, and you still have some time to register. HTH

 
Flag Post

Topic: Game Programming / [Unity C# - Sight Cones] - Uzzbuzz's Questions

Originally posted by uzzbuzz:

I figured I’m going to need a lot of help with unity over the next few months at least, so rather than create a bunch of topics I’ll just have one that I’ll edit.

Please don’t. Whenever you have a problem, check if the question has already been answered in another thread. If it has not, create a new thread for your problem and please put some keywords about the problem in the topic, so the people who come after you with a similar problem will see the thread and find the same answers you’ve been given there.

Once your questions have been answered to your satisfaction or you’ve found a solution, go back and edit your thread title to indicate that the problem is resolved. In an ideal world a mod would then lock the thread, but we don’t live in a moderated forum, so oh well.

For instance:
[AS3] How do I get a MovieClip to rotate around an arbitrary point?
[Unity] Ranged AI rushing the player instead of shooting
[AS3] Variables set to public, other classes still can’t access them [Solved]

Are all acceptable subject lines, while

I have a problem
What is this error message?
Code doesn’t compile

are totally unhelpful.


Moving on, I don’t do Unity, but here is some help with the cone vision. If the OverlapSphere detection is quick, you can get away with using that. I’m assuming that, when the overlap occurs some function you’ve designed gets called. If you want to restrict detection to a cone, all you have to do is test, right when you enter the function, that the player is within the enemy’s cone of vision.

For that all you need are two vectors: The vector that marks the direction the AI is facing, we’ll call it a, and the vector that goes from the AI to the player, which we’ll call r. I’ll assume r connects the eye of AI to the center of mass of player.

Player is visible if and only if the angle between a and r is less than the angle of the AI’s vision cone alpha. What you want to keep for comparison is not alpha, though, but c=cos(alpha). The reason for this is that a.r = ||a|| ||r|| cos(ar). The norms of a and r you can calculate easily, and in case you don’t know, a.r = a_x r_x + a_y r_y + a_z r_z so it’s very easy to compute as well.

That means you can get the cosine of the angle between a and r (let’s call it d) without using any trig function, and only one call to a sqrt function. After that all you have to do is compare d to c and check that it is greater (player is inside the cone). If it’s not just bail out of the detection and pretend it had failed.

I hope this helps.

 
Flag Post

Topic: Kongregate / Upcoming Badges!

I don’t think the game is good enough for an imp, but if you’re going to make one then 10 bosses seems low. It takes completing the game just to attempt the endless insane runs, so only a small number of players have even tried it. 13-15 bosses sounds more appropriate, as people will get better at it over time and those who really want the badge will practice more and more.

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Originally posted by saybox:

GiTD has never been a programming contest. You don’t need programming skill to enter (Stencyl entries are accepted), and we vote based on gameplay, graphics to some extent, and polish. I don’t think anyone ever won a GiTD solely through their code being the best… I don’t think anyone has ever even gotten votes based on programming skill alone.

1) Stencyl tricks people into thinking that they’re not actually programming because they’re clicking on drop-down menus, but they are. It forces the user to break down their process into elementary operations and encode them in a way that makes a computer execute them in the way they intended. That’s programming, no matter how limited Stencyl is.

2) GiTD is a programming contest. Pretending it is not is disingenuous at best. Cooking contests aren’t decided based on who has the spiffiest recipe, judges sample the final products and make their decision based on how they look, smell, feel, and taste. Likewise programming contests aren’t judged on who has the 1337est coding skills, but based on how the final product looks, feels and plays. In more algorithm-oriented programming contests it would be how fast and reliable the final product is, but still it’s not about what the source code looks like. To try to disqualify GiTD from the Game Programming forum because the entrants program games, or whatever your exact point is, makes no sense.

In the end, it doesn’t really matter. The total absence of mod reaction tells me all I needed to know: Spam away boys! This forum is unmoderated.

This thread is now about giraffes.

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Originally posted by saybox:
But IMO that should include regulars asking for feedback, games in progress, GiTD threads, etc. I don’t like the idea that regulars get special rules just because they post here more often.

Really? That’s strange to me. This forum would be a very unusual community if people who have been active members for years, helping others without asking anything in return, were treated as if they were complete strangers when they ask for a favor. So yes, I have a problem with people making an account just to post a link to their game and ask for “feedback”, and I don’t have a problem with a regular posting a link to their game and blatantly asking for views and ratings so their game has a chance to get exposure.

If you think that’s weird then you’re the weird one, because this is the way of the world: People who are part of a group, and give to the group, can expect to get a better treatment when they ask something from the group than some stranger who just wants a quick handout.

As for GiTD, it is a game programming contest. In what bizarro world doesn’t it belong in the Game Programming forum?

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Recently there has been a slew of threads created in this forum for the sole purpose of promoting a new (sometimes “upcoming”, i.e. vaporware) game. I’m getting tired of systematically flagging those threads as spam, especially since I do not see much action being taken against the threads. So I’d like to hear from our mods: What is the official stance in the Game Programming subforum regarding self-promotion. Acceptable or not?

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

Alright Zoib, you want more feedback? I’ll give you more feedback! ;p

First of all, jumping. It’s great that the player has the option to jump. but right now it serves basically no purpose whatsoever. You want to make the game more interesting, add obstacles the player has to jump over.

Then, running. Is there ever a reason not to run? Either make an endurance bar that depletes as the player runs or give them a reason to toggle running on and off. If there is none then let the player run full speed, full time, without having to constantly press a key.

As for what to add to the map to make it more interesting, I say obstacles. Puzzles, blocked ways that need some sort of key to open, and if you’re going to allow the player to fail, then pit traps with spikes at the bottom and dart launchers in the walls. Also, interactive elements. You want to make sure the player knows how to interact with the world, and the best way to teach them that is to start them in a small, enclosed room they can only get out of by interacting with something. Make sure they have clear instructions on how to do it. Follow that with a forced linear passage where they again have to interact with things to progress but no longer have the instructions. Finally, drop them into the game proper. Make sure they regularly have to interact with stuff so they don’t forget. Teaching players is just like training dogs. ^^

Another suggestion: Yours is a 3D game that basically makes no use of the third dimension. Remember Pitfall! (the 1982 video game. Sorry, that ‘!’ in the URL makes linking directly a pain in the neck.)? You may not have been born, but I think the game would gain a lot as a hedge maze with underground parts. Another option would be to add ladders (or trees) on the walls in strategic places to allow the player to use the top of the walls as a secondary maze layout, which would allow for one-way shortcuts and spatial puzzles.

Extra wallsets. You want to reward the player for exploring? Eye candy is a perfectly valid reward. Have different textures in different parts of the maze, it will also allow the player to identify more readily where they are and not get lost so much even without a map.

Speaking of map, did you know that nothing is stopping your players from taking a screen shot of the map at the title screen and use it anytime they want during the game? Why not simply make it an in-game feature instead? If you want to limit how often the player gets to look at the map, you can steal a feature from one of my all-time favorites games: The Fairy Tale Adventure. In that game, the player sometimes finds ‘bird totems’ on the ground or as loot from enemies. Each totem can only be used once, and it gives a bird’s eye view of the area around the player. Implementing something like that would not only give you control of how often the player gets to see the map and how much of it they see, but it gives you a natural reward to give out.

I’m not sure about the dehydration mechanic. Having a strict time limit to ‘hop’ between fountains can quickly become a pain, and it also puts a barrier on exploring, since finding a new fountain is a huge gamble if it is located more than half a full tank away from a known fountain. But if fountains are too close together then they defeat themselves. I’d go with a health bar and dangers.

Note: I had no problem with the mouseturn mechanic. It works basically like any modern FPS, and it’s responsive. I don’t understand the hate on that front. :/

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

Find the lost trolls: I like that the game is very straightforward to play. There is never any question what the player is supposed to do. On the downside, there is only one thing to do, no way to lose, and no challenge. Start the game, click 6 times, win. Repeat? No thanks. 1/5

Mapworlds: Make the movement tile-based and the game would be highly reminiscent of Dungeon Master, an all-time classic! It is atmospheric and relaxing; I like that there does not seem to be any pressure on the player to do anything but explore. Unfortunately, for all there is to explore, there is not a lot to see. All too often, the player finds themselves in a maze of twisty little passages, all alike and it is very hard not to get bored or frustrated by the monotonous scenery. You could alleviate some of that pain by making the map available at any time by pressing a key (I’d suggest Z or X for defaults) and/or shrinking the map so that there is no longer any ‘dead space’ in it. If you made it clearer what is expected of the player, you could have a good game on your hands, provided you also add some failure condition to make it feel more like a game and less like a toy. 5/5

Note: The ratings should not be taken personally. The voting scheme pretty much forces the voters to maximize the rating of the game they like best and minimize the rating of the other one so their vote packs as much punch as possible. I think just asking people to vote for one game as their favorite would have been wiser.

 
Flag Post

Topic: Game Programming / Shadowmode Token and User id?

Can you upload it to Kong and test it in preview mode only?

 
Flag Post

Topic: Game Programming / Selecting a target with a mouseEvent

I would handle all that stuff one level up. Characters are just a bag of stats, all they need to know is what pertains to them alone. Ideally, they should not be aware that anything exists outside of themselves. Whatever you’re using to handle mouse clicks, let’s call it the BattleScreen class, knows about who is there, heroes and foes. Assuming it is some sort of interactive DisplayObject to which characters have been added, it also knows whenever a party member or foe gets clicked through the magic of event bubbling. But even if that’s not the case, nothing is stopping a character that has been clicked from dispatching a custom event as a result, event that the BattleScreen knows to listen for.

So clearly, the BattleScreen is the ideal class to handle who attacks whom by detecting and keeping track of the various mouse clicks. It is the class that should tell all actors what to do when something gets clicked. If you try to make actors handle their own clicks, you run into trouble, like for instance highlighting a character when it gets clicked, but having no way of making it un-highlight itself when its target has been clicked, because target and character don’t know about each other.