150 comments

[ 3.0 ms ] story [ 201 ms ] thread
OP here. Let me know if you have any questions about my project.
I have two for you! Feel free to ignore them if they're a bit too personal.

1) What is your previous work experience before beginning this?

2) Is your goal to get into the gaming industry, or is this just a hobby?

[edit] I also just want to say I really enjoy your project! It's motivated me to start something similar... soon.

what game engine or tools are you using?
Engine: Phaser [0], a Javascript framework to make 2D games.

Tools: Sublime Text and Photoshop mainly.

[0]: www.phaser.io

Any chance you release these on mobile?
You mean releasing native iOS/Android games? Yes, I'm thinking about it.
i'm tempted to just get all those games, put in a "full screen" page and adding either touch events or simply using the trackball (which a few old ancient android phones still have)
Don't bother with PhoneGap on Android, the experience is terrible (especially on Android 4.4). A good alternative is the CrossWalk project.

On iOS PhoneGap runs reasonably well.

I think it's awesome. Haters hate. Love that it starts with a wtf challenge -- invests the user. Love that your exploring mechanics without all the news.
hey lessmilk,

I liked the games, actualy played longer then i intendet the #6 :=) The Gameplay Mixing Board was used for the ingame music in the last one. Is this a free musik then, or did you just asked the autor to use it?

On the last level, there's a part where you have to get coins on a ledge with three reds, two up and down, and one horizontally moving.

I kept getting hit by the horizontal red even though I didn't go down the ledge.

Why a week? I'm trying the "one game a month" challenge and I find it very difficult for one single reason: cut out things so it's possible to finish the game in a month!

Do you think it would be harder if you had more time per game?

Nice. Reminds me of the game Thomas was Alone.
@lessmilk, I love all your games. Great Job.
Do you make any revenue from it?Or just pure hobby?
It started as a pure hobby with no revenue. But now that my project is getting a lot of attention, I might start making iOS/Android apps, or maybe write ebooks about how to make games.
How experienced were you before you started? Have you coded before? Any reason you're not open sourcing your code? Seems like it'd be a great idea considering you're still learning and could use some feedback from others. Great job btw. Never heard of Phaser but now looking into it.
I have a bachelor's degree in computer science, and I coded a few side projects.

And I'm considering going open source.

Thanks a lot for posting this as well as one of your posts I saw a few weeks ago.

Because of your website I tried making my own simple game with Phaser and found it to be very fun. For someone who'd never programmed a game before, it was interesting to see how everything comes together. Just a simple game was very fulfilling to me.

Here's an article with lots of interesting background info from the same author (lessmilk), "What I learned while doing my 'one game per week' challenge":

http://gamasutra.com/blogs/ThomasPalef/20140225/211663/What_...

Worth it especially for the following superb link:

http://www.gamasutra.com/view/feature/130848/how_to_prototyp...

If you subscribe to my newsletter, you'll get an updated version of the gamasutra article that you linked.
I really enjoy your games and (especially) the tutorial side. Great stuff! But I have been a bit put off by the frequent plugs for your newsletter. Of course, you couldn't have known that before commenting here, and so I hesitated a while before posting this. But I figure it may be a useful data point.

In any case, I hope you keep up the great work, I'll certainly be following!

A significant number of devices on the web don't have keyboards. They use touch as their primary interface. Please support touch devices.
Platformers tend to be crappy on touch devices unless you're prepared to do a lot of work designing your game around both control systems, probably difficult in a week.
For this kind of experience building project I think it's fine to be a bit feature limited, however it would be great to try doing at least one touch only game to help build out other interaction options.
Game #7 works very well for touch devices.
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.

> 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.

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.

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.
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.

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.
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."
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!

Coins? Levels? I can't jump out of the first hole.
Jump first on the left, then from there jump on the right. And you'll discover the hole game!
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.

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.
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 ...
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.
I don't think the controls are sluggish at all. Do you have an example of non-sluggish controls?
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.

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.
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

I think it tends to not register especially if you've just started going right or left.
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.
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.
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.

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!

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.

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).
> 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.

> "collect all coins to finish the level."

put that in place of:

> "coins are good, take them."

Both are direct instructions to take the coins.
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.
The "coins are good" part doesn't imply that it's required, but the "take them" part does.
not to the rest of us.
I don't understand how it could be interpreted as anything other than a direct imperative.
"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.

How would you interpret: "Lunch is good, take a lunch break," vs. "Take a lunch break or you will be fired."
"Eating is good, grab an apple" doesn't imply "eat something or eventually you will die."
Simply add "all" and it will be fine:

"Coins are good, take them all"

it's to avoid people having to go back in the level to get coins they thought were 'good' but optional.
No, "coins are good" doesn't mean "you must collect all coins." Coins are good in Mario too, but they're not mandatory.
"Take them" is still a direct instruction to take the coins. I wasn't confused.
"Take them" !== "Collect all of the coins to pass the level"

As stated, coins are often optional in other platformers.

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 "!="
Heh, good ol' JavaScript!

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

What's wrong with isnt?
Nothing, I just recognize "foo != bar" as a conditional better than "foo isnt bar".
I was going to cry "sytax error" for a moment until I remembered javascript :D
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.
I bet it's not as strong as the annoyance of missing them and then realizing at the end that you need them.
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.

Spacebars have a lot of "throw" to engage. I prefer not using spacebar for twitchy movements.
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.
Depends on if you are using a dell quietkey or a macbook pro.
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.
No, not really. Also, no other key suffers from not being pressed from the center of the key.
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".
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.
I've been following your progress with these games and there are several I really like, most of which is I think #5 with the cube jumping. I can't sing you enough praise on posting these as inspiration to others and sticking with the one game per week timeline. The motivation alone is inspiring.

That said, this one is frustrating. I feel the keys are off. I like to run before I jump and in some areas, it's not possible because the responsiveness of the keys just isn't there. It takes too long for my guy to jump after I press up. Also, it seems like you're possibly doing your left/right code in a way that gives left priority. If I press both left and right, my guy goes left. I feel like he should stay stationary in that situation.

Other than that, I like the gameplay, tutorial text that's part of the scene, the sounds and music. I really like the cube slanting to show motion, too. Clever.

Keep it up!

It's a great game. Just my sort of thing really and I really like the music. It only took a couple of minutes to beat though so it's a little short. Then again for a weeks work it's fine. Keep up the good work.
I'm a hobby/hopefully someday profitable game developer who recently jumped on the "develop a short game in X days" bandwagon. My most recently made game was developed in 2 days [ https://play.google.com/store/apps/details?id=com.ektomarch.... ], and damn did it feel good to get something done that fast!

My current plan is to make a bite-sized game comparable to this at least once a month (it'd be a little stressful to force myself to come up with something fresh every single week) and maybe just experiment with small projects with no plans for completion in between. I also have a long-term project that I'm expecting will take ~2 years, and honestly, sometimes I feel like I've run out of ideas. Taking time away from my main project to work on these little "distractions" actually ends up helping with my main work. I spend less time idly waiting around for a good idea or solution to a persisting problem, and more time solving new, smaller problems that can later be applied somewhere else. Hell, I actually find myself actively switching between tasks every 10 minutes and ending up even more productive than I would be focusing on just one project. Also, I had no real experience with Unity before this game, and just taking a couple of days to force myself to learn it opened some doors for future big projects.

In short, work on tiny projects whenever you find yourself doing nothing. You might end up more productive or just happier knowing what you're capable of.

What consists of a 'day'? Coming home from work or school and working on it until 10pm? Spending an entire Saturday pounding away at it?
It was a full Saturday and Sunday of work--about 12-15 hours total. A large portion of that was adapting to C# and reading up on Unity documentation.
Do you have a video showing off your game? It looks good in the pictures but I'm curious as to how it looks in movement.

What are you developing them with?

So a game that took you two days to make and sells for .99? Do you mind sharing what kind of revenue it makes?
I'd be lucky to even recuperate the $25 registration fee for Google Play. I put all my time into making games and zero time marketing them--if I flipped that around, maybe I could actually make a few dollars. :)

Putting out an ad-sponsored version might help, but I've been too busy with other projects to bother.

Yes, it's a bad idea to charge for a game which isn't too amazing to resist. You are much better off financially with ads.
Easy to learn, difficult to master. Great game, needs more levels.
Love the spirit of this. Good stuff. Keep building! :)
(comment deleted)
Don't know if it's just me, but opening up the webpage crashes my browser. I'm using Firefox on an Ubuntu virtual machine.
It takes longer to load than Skyrim.
That's the HN effect. Google Analytics tells me that there are more than 600 active visitors on lessmilk right now.
Fun game, hooked me for longer than I'd have liked. :)

Curious why you chose HTML5?

I'm slightly afraid of clicking on game links on HN after 2048.
Don't worry nothing is that addictive...
Seriously. I thought I was fine until I was reading HN on my phone and thought to myself "hmmm... I wonder if the game works well on a mobile browser."

It does. #fml

It seems pretty stuttery on Safari running on my Mac, but was fun for a while - good job!

I didn't actually like the explanations throughout the first few levels: sometimes it would be nice to figure things out on your own; feels like you rob the player of the reward for completing the level when you explain it to them before letting them figure it out? Especially since they can restart pretty quickly: case in point, let them fall into the red and die early on rather than explain it?

You hit detection is off. It you make a game with pure rectangles the detection should be completely precise.
I'm also seeing this issue. Example, I died right after taking this screenshot: http://imgur.com/Egy49Kv
yes i died catching my breath in the same place. i repeat what person above said about rectangles meriting perfect collisions.

still a nice diversion. i like the way on my system, several bitmap redraws occur per screen trace, giving the character a parallelogram shape. subjectively, it looks like he's in a hurry :)

As a mainly backend developer, I just signed up for the book, realised it didn't contain too much, but links to the tutorials. I had a quick read. and I would say it would be more accurate to call the title "One Javascript game per week". I got a bit excited thinking you could produce that sort of game using just HTML5.

Hope I don't sound overly critical, as its a cool game and I appreciate you posting it.

It uses HTML5 canvas and audio APIs.
All front end Javascript uses HTML elements.

I thought it meant pure HTML 5.