News for hackers. Stuff that matters.
Re:Show HN: I've been making one HTML5 game per week. Here's... by sillysaurus3 on Wednesday March 12, 2014 @01:35PM (#7387019)
Not sure if you're looking for critique, and giving critique has sometimes been discouraged on HN, but:

It's pretty good for a week of work. Though there's a difference between being challenging and being annoying. Many of the level design elements could be classified as a "dick move." An example would be not making it clear the goal is to collect all the coins until after the player has bypassed some of them and reached the end.

In general the controls are too sluggish. It's as if triple buffering is enabled, or maybe quad buffering. If you're at a university, you should try to borrow a high speed camera and measure the time difference between when someone presses the spacebar vs when the character starts to jump. I don't know if it's a Chrome thing or what, but I fell off cliffs several times due to the input delay.

The gravity could be better. I'd recommend spending some time with Cave Story to get a feel for how to make gravity really work in the player's favor, rather than against them. In general it's a bad idea to make velocity strictly linear. Some acceleration adds to the experience and precision.

A checkpointing system would be good. I can see how most players will give up after getting mostly to the end and then dying. I think you should just restart players from the last point that they were on the ground without dying, that is, the most recent ledge that they were standing on.

It shows promise. If you're looking for feedback about how to advance as a game developer, one step would be to make sure you're not rewriting your entire game engine from scratch for each game. It's excellent that you're writing your own engines rather than trying to use other people's, so be sure to keep doing that. It's important for gamedevs to have an idea of the underlying principles and limitations, and the best way to do that is to write your own engines. I got the feeling that most of the week was spent on the engine rather than iterating on the gameplay or level design though. Teaming up with an artist or a level designer might be a good match.

Re:Show HN: I've been making one HTML5 game per week. Here's... by baddox on Wednesday March 12, 2014 @02:28PM (#7387341)
> An example would be not making it clear the goal is to collect all the coins until after the player has bypassed some of them and reached the end.

The first time you see coins, the caption reads "coins are good, take them." Then at the end of the first level, it says "collect all coins to finish the level." I'm not sure how he could be more clear than that, and even if someone misses the captions, it's immediately clear after one failure.

I agree with your other recommendations.

Re:Show HN: I've been making one HTML5 game per week. Here's... by elwell on Wednesday March 12, 2014 @02:53PM (#7387488)
> "collect all coins to finish the level."

put that in place of:

> "coins are good, take them."

Re:Show HN: I've been making one HTML5 game per week. Here's... by baddox on Wednesday March 12, 2014 @03:37PM (#7387768)
Both are direct instructions to take the coins.
Re:Show HN: I've been making one HTML5 game per week. Here's... by EpicEng on Wednesday March 12, 2014 @04:26PM (#7388132)
No, "coins are good" doesn't mean "you must collect all coins." Coins are good in Mario too, but they're not mandatory.
Re:Show HN: I've been making one HTML5 game per week. Here's... by kenbellows on Wednesday March 12, 2014 @05:48PM (#7388623)
"Take them" is still a direct instruction to take the coins. I wasn't confused.
Re:Show HN: I've been making one HTML5 game per week. Here's... by lowboy on Wednesday March 12, 2014 @08:20PM (#7389358)
"Take them" !== "Collect all of the coins to pass the level"

As stated, coins are often optional in other platformers.

Re:Show HN: I've been making one HTML5 game per week. Here's... by kenrikm on Wednesday March 12, 2014 @10:03PM (#7389691)
I find it amusing how I can tell what programming language you write based off of your "not equal too" syntax for me it's "!="
Re:Show HN: I've been making one HTML5 game per week. Here's... by lowboy on Wednesday March 12, 2014 @10:19PM (#7389736)
Heh, good ol' JavaScript!

It's weird though, because I mostly write CoffeeScript instead of JavaScript, which uses "!=" and desugars to "!==".

Re:Show HN: I've been making one HTML5 game per week. Here's... by _puk on Thursday March 13, 2014 @10:20AM (#7391914)
What's wrong with isnt?
Re:Show HN: I've been making one HTML5 game per week. Here's... by lowboy on Friday March 14, 2014 @01:29AM (#7397137)
Nothing, I just recognize "foo != bar" as a conditional better than "foo isnt bar".
Re:Show HN: I've been making one HTML5 game per week. Here's... by EpicEng on Thursday March 13, 2014 @03:48AM (#7390513)
I was going to cry "sytax error" for a moment until I remembered javascript :D
Re:Show HN: I've been making one HTML5 game per week. Here's... by freehunter on Wednesday March 12, 2014 @03:49PM (#7387862)
But one of them doesn't say it's required. I can finish a level in Sonic without collecting all the rings, even though rings are a good thing.
Re:Show HN: I've been making one HTML5 game per week. Here's... by baddox on Wednesday March 12, 2014 @04:27PM (#7388134)
The "coins are good" part doesn't imply that it's required, but the "take them" part does.
Re:Show HN: I've been making one HTML5 game per week. Here's... by twelvechairs on Wednesday March 12, 2014 @05:47PM (#7388614)
not to the rest of us.
Re:Show HN: I've been making one HTML5 game per week. Here's... by baddox on Wednesday March 12, 2014 @06:00PM (#7388679)
I don't understand how it could be interpreted as anything other than a direct imperative.
Re:Show HN: I've been making one HTML5 game per week. Here's... by freehunter on Wednesday March 12, 2014 @06:16PM (#7388764)
"Take them" implies that they are important, but does not definitively state that they are required. It's like saying in Legend of Zelda "Triforce pieces are good. Take them." It's massively understating the importance of the Triforce, since you can't beat the game without all the pieces.

Let's just leave it at "some people were confused". Because honestly, in terms of user experience, that's all that matters.

Re:Show HN: I've been making one HTML5 game per week. Here's... by woebtz on Wednesday March 12, 2014 @08:54PM (#7389474)
How would you interpret: "Lunch is good, take a lunch break," vs. "Take a lunch break or you will be fired."
Re:Show HN: I've been making one HTML5 game per week. Here's... by EpicEng on Thursday March 13, 2014 @03:50AM (#7390521)
"Eating is good, grab an apple" doesn't imply "eat something or eventually you will die."
Re:Show HN: I've been making one HTML5 game per week. Here's... by babuskov on Wednesday March 12, 2014 @07:46PM (#7389195)
Simply add "all" and it will be fine:

"Coins are good, take them all"

Re:Show HN: I've been making one HTML5 game per week. Here's... by elwell on Wednesday March 12, 2014 @04:06PM (#7387982)
it's to avoid people having to go back in the level to get coins they thought were 'good' but optional.
Re:Show HN: I've been making one HTML5 game per week. Here's... by boucher on Wednesday March 12, 2014 @05:47PM (#7388619)
There's a certain joy in the reward of having taken the coins before you knew for sure you needed to that would be lost.
Re:Show HN: I've been making one HTML5 game per week. Here's... by tieTYT on Wednesday March 12, 2014 @06:36PM (#7388881)
I bet it's not as strong as the annoyance of missing them and then realizing at the end that you need them.
Re:Show HN: I've been making one HTML5 game per week. Here's... by throwaway1982 on Wednesday March 12, 2014 @10:46PM (#7389799)
Good rule of thumb in gave development: assume people don't read anything...literally, anything.

That said, I thought the goal was pretty obvious as well.

Re:Show HN: I've been making one HTML5 game per week. Here's... by lessmilk on Wednesday March 12, 2014 @02:27PM (#7387335)
Thanks, I love feedback! You make some interesting points.

About input lag, I'm a bit surprised. On my computer the input is super responsive. Maybe it depends on the OS/browser? I'll have to look into this.

Gravity could definitely be better. I'll look at Cave Story then.

I have only 5 short levels, so adding checkpoint will make the game too easy I think.

Re:Show HN: I've been making one HTML5 game per week. Here's... by zheshishei on Wednesday March 12, 2014 @03:03PM (#7387553)
I'm not a game developer, but I found the jump key to be slightly inconsistent, specifically pressing jump while running towards a ledge. Whether or not the jump registers seems to depend on how close to the edge you are. The closer you are, the less likely the jump is to register.

I guess depending on what you want out of the game mechanics, you could leave it as is or extend the "range" of a valid jump to slightly beyond the edge (perhaps half the width of the character). I guess some good questions that you could ask are: - Is it a faster paced game where jumping from platform to platform quickly matters? - Do you want to focus more on fluid movement and the ability of the player to think about their moves ahead of time? - Are there any gaps in any level where the jump is nigh impossible without performing a "perfect" jump. If so, is that a feature? (maybe it's supposed to be that difficult?)

EDIT: I've been looking at the source and I'm pretty sure it has to do with how Phaser checks whether the character is on solid ground or not (body.blocked.down). I'm not too sure how it calculates it (I couldn't understand the SAT.testPolygonPolygon function[1]. If anyone wants to help me with that, I'd appreciate it). I think the tilt of the character when it's running potentially makes it worse too.

[1]http://docs.phaser.io/SAT.js.html line 605

Re:Show HN: I've been making one HTML5 game per week. Here's... by panic on Wednesday March 12, 2014 @03:38PM (#7387776)
Most platformer games actually let you jump for a short time after you run off the edge of a platform. The lack of this mechanic is what causes the jump to feel inconsistent.
Re:Show HN: I've been making one HTML5 game per week. Here's... by Brashman on Wednesday March 12, 2014 @03:19PM (#7387657)
I ran into the same jump issue. Playing with two hands (one for right one for jump) seemed to help. Maybe it has something to do with rapid consecutive inputs being lost.
Re:Show HN: I've been making one HTML5 game per week. Here's... by egeozcan on Wednesday March 12, 2014 @03:07PM (#7387577)
I think it tends to not register especially if you've just started going right or left.
Re:Show HN: I've been making one HTML5 game per week. Here's... by rikkus on Wednesday March 12, 2014 @07:03PM (#7389027)
I liked the lack of momentum. It made it easier to fall and collect coins stacked vertically!

Input lag not noticed here. Win 8, Chrome.

Yes checkpoints would be overkill in this size of level. I enjoyed the challenge of completing the last level, having to start again many times!

Well designed levels and fun graphics, sound and text. Make bigger games and I think they could be really popular!

Re:Show HN: I've been making one HTML5 game per week. Here's... by mojowo11 on Wednesday March 12, 2014 @02:32PM (#7387372)
I also found the hardest thing about the game to be figuring out the lag in timing between pressing jump and my character actually leaving the ground. Windows 7, Chrome.
Re:Show HN: I've been making one HTML5 game per week. Here's... by Wilduck on Wednesday March 12, 2014 @03:41PM (#7387793)
I worked through the fourth level. It took me a few tries, but I made it. I'm not going to finish the 5th level. The first few sections are not fun enough to make it worth replaying them repeatedly to move forward in the game. So I would be in favor of a checkpoint system (try it in next platformer you make!).

That being said, solid game.

Re:Show HN: I've been making one HTML5 game per week. Here's... by babuskov on Wednesday March 12, 2014 @07:54PM (#7389228)
I developed a couple of small demo games and one huge one (3-month project) with HTML5 and browser behavior is often lacking performance-wise, especially on Linux and mobile devices. I decided to limit myself to mouse controls only and slower games like turn based strategies or similar.

I have plans to make a faster 2D paced game this year and I'll go back to desktop and SDL for it. Especially since the SDL author joined Valve in 2012 and development pace has picked up again. Looking forward to run in on my Linux Desktop, Windows, Mac and a Steam Machine. I'm not sure I want to go any more cross-platform than that. Especially since mobile devices are polluted with low quality nickel-and-diming games.

I like your efforts though, keep it up.

Re:Show HN: I've been making one HTML5 game per week. Here's... by krick on Thursday March 13, 2014 @01:18AM (#7390158)
I have input lag on Firefox, Linux. Well, maybe lag isn't the word, but it's definitely not responsive (meaning I did notice that being annoying before seeing comments about that).
Re:Show HN: I've been making one HTML5 game per week. Here's... by dereferenced on Wednesday March 12, 2014 @04:45PM (#7388271)
The "coins are mandatory" message appears two screens after the first two coins. If you missed those, it takes about 5-10 seconds to go back. It's no biggie and certainly not a "dick move".
Re:Show HN: I've been making one HTML5 game per week. Here's... by RobotCaleb on Wednesday March 12, 2014 @04:22PM (#7388095)
Spacebars have a lot of "throw" to engage. I prefer not using spacebar for twitchy movements.
Re:Show HN: I've been making one HTML5 game per week. Here's... by dereferenced on Wednesday March 12, 2014 @04:41PM (#7388249)
Spacebars have the same amount of throw as any key on your keyboard. Additionally, the force required to press the spacebar is less than other keys because the keycap for the spacebar is heavier.
Re:Show HN: I've been making one HTML5 game per week. Here's... by kenbellows on Wednesday March 12, 2014 @05:50PM (#7388635)
Oh, not on my HP. Any of the arrow keys (specifically in this case the up key) has way less push to it than the spacebar.
Re:Show HN: I've been making one HTML5 game per week. Here's... by elwell on Wednesday March 12, 2014 @04:47PM (#7388283)
Depends on if you are using a dell quietkey or a macbook pro.
Re:Show HN: I've been making one HTML5 game per week. Here's... by RobotCaleb on Wednesday March 12, 2014 @07:29PM (#7389125)
No, not really. Also, no other key suffers from not being pressed from the center of the key.
Re:Show HN: I've been making one HTML5 game per week. Here's... by mikeleeorg on Wednesday March 12, 2014 @08:05PM (#7389289)
To me, this is an example of the value HN can offer - getting constructive criticism from people with experience. I for one definitely encourage this.
Re:Show HN: I've been making one HTML5 game per week. Here's... by Kiro on Wednesday March 12, 2014 @02:22PM (#7387301)
I don't think the controls are sluggish at all. Do you have an example of non-sluggish controls?
Re:Show HN: I've been making one HTML5 game per week. Here's... by dhimes on Wednesday March 12, 2014 @02:17PM (#7387275)
Coins? Levels? I can't jump out of the first hole.
Re:Show HN: I've been making one HTML5 game per week. Here's... by lessmilk on Wednesday March 12, 2014 @02:28PM (#7387338)
Jump first on the left, then from there jump on the right. And you'll discover the hole game!
Re:Show HN: I've been making one HTML5 game per week. Here's... by knotty66 on Wednesday March 12, 2014 @08:16PM (#7389337)
The first jump was flat out impossible for me on Chrome Version 31.0.1650.26 beta, even in incognito mode. Tried in Firefox and made it easily ...
Re:Show HN: I've been making one HTML5 game per week. Here's... by dhimes on Wednesday March 12, 2014 @02:59PM (#7387540)
I tried that. I fall. :-(

Google Chrome Version 33.0.1750.149 Linux Mint 16 Cinnamon

EDIT: Update- It does work, at least sometimes. I guess it's just my clumsiness.

Re:Show HN: I've been making one HTML5 game per week. Here's... by jeroen on Wednesday March 12, 2014 @03:14PM (#7387625)
On Safari 6.1.2 the second jump in the first level only works 50% of the time. The other 50% the jump only registers by the time the thingy has hit the ground.
Re:Show HN: I've been making one HTML5 game per week. Here's... by stevewilhelm on Thursday March 13, 2014 @12:13AM (#7390017)
Once on the ledge to the left, need to press up and right arrow at the same time to jump to the higher ledge on the right.
Re:Show HN: I've been making one HTML5 game per week. Here's... by yukichan on Wednesday March 12, 2014 @01:54PM (#7387132)
> In general the controls are too sluggish... other stuff

He made this in a week. It's a demo of what you can do in a week. You're reviewing it like it was a serious game.

> giving critique has sometimes been discouraged on HN

Bad critiques are. Yours is not a bad critique, I just think you're critiquing the wrong thing.

Re:Show HN: I've been making one HTML5 game per week. Here's... by amartya916 on Wednesday March 12, 2014 @02:00PM (#7387164)
Regardless of whether he made it in a week or not, the criticism by the OP was constructive. Just being nice and saying that "this is fantastic", wouldn't help the developer learn either.

*Input lag is something Carmack et al. keep hammering home for game developers.

Re:Show HN: I've been making one HTML5 game per week. Here's... by sillysaurus3 on Wednesday March 12, 2014 @01:59PM (#7387160)
Actually, input is fundamental to a game, because there's no way to make a game without input. It's one of the most important aspects of any game.

Making HTML 5 a serious gamedev competitor is one of the most important tasks facing the future gamedev industry, which means lessmilk is doing important work. It's important to call out the roadblocks so that the roadblocks get solved. It would be extremely valuable if someone were to do an analysis as to why the input is laggy so that future gamedevs can avoid that pitfall or that Mozilla/Chrome can fix their issue.

Re:Show HN: I've been making one HTML5 game per week. Here's... by sid6376 on Wednesday March 12, 2014 @02:05PM (#7387193)
Not only is it fundamental to a game. Its fundamental to becoming better as a developer as well. So I appreciate you critiquing it the way you did.
Re:Show HN: I've been making one HTML5 game per week. Here's... by baddox on Wednesday March 12, 2014 @02:30PM (#7387360)
I don't see why having made the game in a week is relevant. Presumably this guy's goal isn't to never spend more than a week on a game. I interpret this criticism as "if you were to spend more time on this game, or if you ever make another similar game, think about these issues."
Re:Show HN: I've been making one HTML5 game per week. Here's... by w0utert on Wednesday March 12, 2014 @05:10PM (#7388427)
I think he made some really good and instructive points though, these are really relevant if you want to get better at game design. But I also agree that you have to look at this game as a demo and not expect it to be perfect in any way besides being a nice showcase of what you can achieve in just a week.

I'm impressed by what I've seen on lessmilk up to now by the way. Not in terms of coding (all of these games are almost trivial to implement), but all the more by the thoughtful game design that went in of them. Literally all of the 9 games so far have been fun to play, if only for a few minutes. I think it's much harder to come up with a new game concept every week, no matter how simple it is, and executing on it, than it is to actually do the coding to implement it. So thumbs up for that!

Re:Show HN: I've been making one HTML5 game per week. Here's... by stonemetal on Wednesday March 12, 2014 @02:14PM (#7387255)
To me it depends on what the goal is. If the goal is to learn the programming side of things, then fixing up the controls / adding touch is a good goal because it would highlight figuring out how to get those things right even if it meant next week's game was this week's game + touch controls. If the goal is to explore gameplay ideas then input being a little sloppy is only as bad as its effect on playability.