Jump to content


Member Since 10 Jan 2007
Offline Last Active Mar 01 2016 05:05 PM

#4176524 Endings Of The Ugly

Posted by Koaske on 29 December 2012 - 11:16 PM

I knew to expect quality from this game! I still have good memories of your previous project I played (the one with the orange).
The concept you've come up with is interesting, and despite the fact that you're traversing the same areas again and again, the game doesn't get repetitive. This is because the areas aren't too big and the key events/items/creatures are placed close to each other. The feeling of exploration is very strong in this game! Excellent work with that :)

Of course, the game wouldn't be complete without all the randomness, weirdness and crazy dialogue. You'll keep a lot of players playing the game simply because they want to see what kind of madness you have in store for them next.

For example, in the hat ending, I knew what was coming, because I was warned beforehand. Still, I couldn't help but smile. :)

The graphical style you chose is nice because it's unique and personal. However, one drawback I find about the style is that it tends to have a little bit too much shaking. While the shakiness goes hand in hand with the 'ugly' theme of the game, I still find it somewhat irritating.

I rate this 9.5 / 10, and +1 for you :)
  • 1

#4170614 Rossman

Posted by Koaske on 21 December 2012 - 08:02 PM

Hmm, I think I should clarify one thing. I meant 'new' was something that hasn't been seen that much in games before. To be honest, it's nearly impossible to come up with something that has NEVER been used in any game, but you can still easily tell if the game is trying to be innovative and try new gimmicks instead of relying on the tried and true mechanics.

Everything you listed above has been done before in well-known games. For example, in Donkey Kong Country series, you ride mine carts, swim and blast through cannons (or barrels, to be precise, provided that I understood what you meant by this).
That said, I tend to think it is still possible to make a good game by just using stuff that's been used in the past successfully. Of course, this assumes you implement everything well. But the best games out there that can be labelled as excellent always bring something new to the table. For example, in Braid (the indie game), we had this new time rewind mechanic (yes, it was in Prince of Persia too, but it was not used in the same way) that was completely new at the time. Of course, the implementation was top-notch as well.

I guess I should also note that even little innovations are good. It doesn't have to be a whole new gameplay mechanic or something like that. Also, I don't know how much content you have ready for your game, so if you've already done most of the levels, you can't really add that much new stuff in there. In that case, you should keep this in mind for your future projects :)

Of course, I also understand that your game is currently a WIP, so I can't really make a precise estimate about it currently. But right now, I feel like most of the game is just using the same stuff seen in many other platform games.
  • 1

#4168010 Games That I Am Making [VIDEO]

Posted by Koaske on 18 December 2012 - 05:20 PM

He's also referring to the fact that you have not posted a demo.
  • 1

#4166748 With Just One Heart

Posted by Koaske on 16 December 2012 - 11:10 PM

Lol, I didn't even notice the post I was writing was going to be so long :biggrin: Nice to hear that you appreciate it.

"The coolest gadget in the game was by far the particle radar that you had to use in the dark levels to find your path. I think you could even make a whole new game based on this tool alone. The light particle effects looked really stylish against the dark background of these levels. Very good job coming up with this!"

What is funny is that I plan on doing that exact thing! I was thinking about making a game where the main character is blind, maybe a robot with defective eyes. Using the radar gadget plus some interesting sound fx could make for some interesting gameplay.

Inform me when you have a prototype/demo ready for this. I'm very curious to see how this turns out :happy:
  • 1

#4166705 With Just One Heart

Posted by Koaske on 16 December 2012 - 10:27 PM

Okay, I gave your game a shot and made it to the 3rd boss. In general, the gameplay is basic platforming with some new gimmicks, most of which have been seen in some form before in other games. I didn't find any bugs and the game felt pretty solid. The graphics are simplistic, yet stylish, so good work with those :)/> The music is okay; It's not annoying to listen to, but it's also not so captivating that I'd want to listen to it over and over. I also think the music sounds a little 'hollow' (not sure if this is the right word to describe it).

There were some issues with the level design and the levels in general that I would like to point out, though:

-There were many levels where you were thrown right into action with no real warning time. For example, the level where the soldier shoots at you. The same with the shield level and the tank level. At times, you have to instantly know that you have to move to some direction to avoid death.

-Pressing left in the 6 mines level seems like a sure way to beat the level? I think the solution is too simple and it should
be avoided. If a player tries hard to beat the level and fails (well, probably won't fail too many times, since it wasn't that hard), then discovers the solution was that simple, he'll probably be somewhat annoyed.

-The hitbox of the tank is too big, I'm pretty sure I died by just touching 'air' at some times.

-In the level with tanks and hovering bombs, the two hovering bombs start behind the life count, making it hard to notice them before it's already too late.

-Try holding jump button when in a narrow space. (dududududududu...)

-I'd also prefer that the character would not jump after landing if you're just holding the jump button. I think it's better to have the player tap the button again to avoid accidental jumps after landing. However, this isn't a big problem since the jump has a fixed height in your game. It's also a matter of opinion, but this is what I think.

-When the first boss goes out of the left side of the screen, it will always take a while before he comes back. First I thought the game had bugged.


-What was the point of the 2nd jungle level? It doesn't really teach you anything new. It was a bit out of place, especially since the first gave you the beanstalk to play with, and the 2nd level doesn't really continue from there at all.

-In the level with gaps where you have to take the seed to the beginning, I managed to beat level through the 'throw the seed into the wall bug'.

-I had no idea that the disappearing blocks was about to disappear and move, so I tried jumping on top of it, and it disappeared just as I was about to land on it, so I lost a life. When you present a new element, I think it's a good idea to let the player first experience it in a safe area. For example, put land below the disappearing block so I don't die immediately if I don't know what the block does. Also, I just stop in the air if I hit a spot where the block is supposed to appear? Apparently, the block doesn't appear if the player is where it is supposed to appear?

-The 2nd Boss: Uhh, just one hit to kill? 5 secs and that's it?


-In the first two worlds, I was thinking that it would be nice if you could control the height/duration of your jump, but there was really no need. However, in the 3rd world, dodging shuriken that the ninja throw would have been a little easier with a more controllable jump.

-The 2nd level with the kanji was clever (the one where you had to figure out where the pit was). The visual clues you gave were sufficient, at least for me.

-I find it unfair that the katana ninja are able to cut you even through blocks, especially if you're standing above them.

-"The arrow sticking to wall" method was introduced well in a way that I knew you had to use the arrows to climb up, but I still found the use unintuitive and not very smooth, since you had to hold the jump button at the position of the arrow, and this would produce a repeatedly playing jumping sound. My initial thought was that you could just use the arrow like a solid platform but that you could jump on top of it underneath.

-The coolest gadget in the game was by far the particle radar that you had to use in the dark levels to find your path. I think you could even make a whole new game based on this tool alone. The light particle effects looked really stylish against the dark background of these levels. Very good job coming up with this!


"(You can skip to different worlds at the title screen by pressing 1,2,3,4)"

You know, this should be information should not be bracketed and should be in the first post. It's extremely crucial that the players know that you can do this, otherwise many will probably just start from the beginning and may quit the first time they reach game over. You'll get more test data if people try more worlds with the number keys than just try to reach as far as possible from the beginning.

-The level order, difficulty and the elements presented in each level felt a little out of place sometimes.
For example, the 2nd world was way more easier than the first for the most part with the exception of the last levels. The hardest levels I came across were the ones with disappearing blocks.


Overall, a nice game, and with some polish, you can take care of most of the issues to make the game feel even more solid than it already is. To reach the category of "excellent" games, I think more innovative and fun-to-use gadgets like the radar would be needed.
  • 1

#4164479 El Pinguino [ Feedback Request ]

Posted by Koaske on 13 December 2012 - 10:03 PM

Some feedback:

-In the menu, choosing "credits" will lead to "bonus" section.

-When you start the game, you're attacked right away by the enemies. I think this design pattern should be avoided.

-Besides the immediate enemy threat, I see that you've added a time limit to the levels. So on top of the enemy threat, you also have to start moving right away to make it in time. I personally don't like the time limit at all, but if you must include one, you should stick with a system like in Super Mario or Sonic. Or, add the time limit mode as an additional challenge mode that is unlocked after you first beat the level without a time limit. 10 seconds isn't really enough for a first-time player to get used to the controls and feel of the game, and I don't think it's a good idea to rush the player right in the very beginning of the game.

-The game window stays active in the bg, so I'm dying as I'm writing this.

The graphics are still nice, btw :biggrin:
  • 1

#4114030 El Pinguino [ Feedback Request ]

Posted by Koaske on 15 October 2012 - 10:18 PM

I think you're up to a good start :smile:

The great graphics of the screenshots of your original post really got me to try out the game. That said, even though the game looks great, there's work to be done with the actual gameplay. I'll list a few main things here that I think are worth noting:

*The jumping feels stiff, because the character tends to go up soooo sloooowly. Also, there's no way to control the height of a single jump with the length of the key press (not talking about the double jump). If you don't want to let the player to control the height of the jump, that's okay, but in this case, the jumping speed should be faster. Usually the more control you give the player, the longer it takes to execute a single jump. It's your choice which one to use, but I recommend spending some time with tweaking the jump and studying 2D platform classics to get the feel just right.

*The moving speed in general is quite slow. I usually prefer to have a bit more speed in the platform games I play.

*Remember to take note of the case where you land on top of two enemies at the same time. This might result in bugs. (I think this happened to me once when I was playing your game.)

In any case, I hope you'll continue working on this, I think it has potential!
  • 1

#4091564 Deactivating + enemies

Posted by Koaske on 19 September 2012 - 05:38 PM

How large are your enemies and how large are your floor objects? Consider a situation where you have a large enemy on top of small floor object. In this case, the enemy might happen to be inside the active region you defined while the floor is not. You could try creating this situation yourself and seeing if when the instances get activated by using the debug mode.

To solve the problem, you might want to have two active regions: The smaller one would be used to keep all enemies inside the region active. The bigger area activates only the floor objects, and not the enemies that are outside the smaller region.

I hope this helps guiding you to the right direction!
  • 1

#4076301 Need math help :/

Posted by Koaske on 03 September 2012 - 10:46 PM

Okay, I'll try to explain witcher's method to you. The problem 1 that jo-thijs solved was rather easy, because we were dealing with a linear (first order) equation with relation to the temperature. The second problem, however, requires a non-linear equation, which means the order of the "temperature" variable is 2 or higher.

The method witcher suggested is called curve fitting: http://en.wikipedia....i/Curve_fitting
Take a look at the link and the first picture. You'll see grey dots, which are points of data that are already defined. In your case, these are the values you want to use. For example, you listed the following (temperature, jungle) pairs: (1, 0.25) and (2, 1). Given a set number of points, we want to find the equation of the curve that would fit the shape formed by the points as well as possible. In the Wikipedia picture, you'll see how the 1st, 2nd and 3rd degree polynomials don't approximate that particular data set well, but the 4th degree polynomial does a good job.

In your case, you need to choose some more points that you would like the curve to go through. You can look up some values from the curve you drew, for example. After this, you'll start by picking an arbitrary polynomial of order n: y = a + b*x + c*x^2 + d*x^3 ... z*x^n
Here, a,b,c,...z are some constants.

Now, you have the general equation of the polynomial, but you need to figure out the values for ALL the constants to be able to plot this curve. This can be done by solving a system of equations. The more constants you have, the more equations you will need. If n is big, solving the system of equations by hand is such a pain that it's better to use Wolfram Alpha or other computational engine to do the work for you.

To make this easier for you to understand, I'll use an example:

Let's say you have points (1, 0.25), (1.5, 0.45), (1.7, 0.8) and (2, 1) and you want to find a polynomial curve that would go through these points.
We need the to use a 3th degree polynomial of the general form: y = a + bx + cx + dx. Here, we have 4 unknown constants, a,b,c,d, so we need 4 equations to solve them. To do this, we plug in all the 4 points we have:

0.25 = a + b + c + d (substituted x = 1 , y = 0.25)
0.45 = a + 1.5b + 2.25c + 3.375d (substituted x = 1.5, y = 0.45)
0.8 = a + 1.7b + 2.89c + 4.913d
1 = a + 2b + 4c + 8d

Then we plug this in Wolfram Alpha: Here's the calculation.

As a result, we get the following values:
a = 13.1857
b = -27.969
c = 19.1286
d = -4.09524

If we plug these back in to the general equation and draw the curve, we get something like this:
http://www.wolframal... - 4.09524*x^3

This indeed goes through all the points you wanted it to go through, though after x = 2 it kind of takes a dip down. This can be fixed by choosing more points that the curve has to pass.

I hope this helps a bit! Don't be afraid to ask if there's something you don't understand.
  • 1

#4068227 1 way line

Posted by Koaske on 26 August 2012 - 01:04 PM

Okay, give me 10 minutes. :biggrin:

Edit: There you go: Line Trespassing Example

I used an approach that was a bit different than what I initially thought. The example is simple, but it's applicable to more complex situations with some changes.
  • 1

#4067085 Problem code seems fine!

Posted by Koaske on 25 August 2012 - 11:30 AM

Alright, I've fixed it!

The code itself doesn't need to be changed at all. Simply take off the collision checking of the climbing sprite, that is, make its collision mask so small (like 1 pixel in (x,y) that it will never collide with a block.

I'll try my best to explain why this works: First, I tried using "show_message" to keep track of all the values of (x,y) during the climbing action. The coordinates got changed in the corner_1 collision code like they should have, but after that, they were returned to the previous values of (x,y) that you had before the climbing began. I tried removing as much code as a could, but the problem still seemed to persist. Then I noticed that by toggling obj_corner1's "solid" variable off (unchecked the box in the object editor), the climbing seemed to work, but of course, the cat now fell through the corner1 object which wasn't solid anymore.

This led me to think that the problem must be caused by the way GM handles collisions with objects that are marked solid. You can never be inside them, so my guess is that when the RIGHT climbing action began, the collision mask actually hit a solid block, and this caused the cat to be sent back
to (xprevious, yprevious).

I don't usually ask for rep, but it'd be nice if you gave me +1 for all this help, because it sure took a while! :smile:
  • 2

#4063596 Checking how many objects with a variable with a

Posted by Koaske on 21 August 2012 - 03:47 PM

The problem with instance_position is that it only checks if a single point is free of the given object. You'd have to place many checks, like you've done. The reason your code is not working is probably because you haven't taken all possible situations into account.

There's an easier way to accomplish what you want though. If you used rectangular masks, the easiest way would be to use collision_rectangle. You said that the objects are diamond-shaped, so you should try to use place_meeting instead:

tileId = instance_create(startX, startY, Tile)
with tileId
   if place_meeting(x,y,Tile)
   tileHasToBeMoved = true //this is either a global variable or a variable that the generator has. This is used to relay data from the tile object to the generator   
if tileHasToBeMoved
//find another spot for the tile

  • 1

#4062294 The Search of Chaos

Posted by Koaske on 20 August 2012 - 12:45 AM

Add some info about controls and the confusing main menu. Also mention the existence of the double jump.

The thing that bugs me the most in the game is that the speed is insane. It's really hard to do accurate jumps because the character is so fast. It also doesn't fit well with short-range combat. Take a look at Castlevania games: Your range is short, but the character and the enemies move rather slowly so it's easier to place your character so that you won't get hit when hitting the enemy.

The graphics and animations are nice, so good work with them!

I found a few bugs where the character appears to be falling in air, but then he suddenly stops and start falling again, as if he touched the ground for an instant.

I also got stuck here:
Posted Image
Pressing right wouldn't allow me to go further. I had to jump to be able to move again.
  • 1

#4060390 side ways timer

Posted by Koaske on 17 August 2012 - 09:53 PM

I'm giving you the basic idea, not the full implementation:

Initiating the timer:
timer = room_speed*3
timerOn = true //remember to set timerOn = false in create
Then, each step the timer is on:

if timerOn
   timer -= 1
   if timer = 0
   timerOn = false
draw event:

if timerOn
draw_rectangle(100, 100, 100 + timer, 120, true)

  • 1

#4058850 Same objects follow at different cords

Posted by Koaske on 16 August 2012 - 10:26 AM

The trick to get the cannons following the player and the laser to come out from a certain cannon is this:

firstCannon = instance_create(x, y-18, objCBCannon)
firstCannon.my_timer = 5
secondCannon = instance_create(x+8, y, objCBCannon)
secondCannon.my_timer = 25

instance_create returns the id of the instance it creates, which allows you to set values for each instance individually. I didn't write the code for the third object and the laser, but I think you got the idea. If not, then just ask and I'll try to be more specific :smile:

Drawn text:

draw_text (xx, yy, string(round(hp)) + " / "+ string(maxHp))
//xx and yy are the coordinates you want to use
//set maxHp and hp in the create event

Alternatively, you can also use "floor" (rounding down: floor(5.6) = 5) and "ceil" (rounding up: ceil(5.2) = 6) if those work better for you.
  • 1