However, one thing that I dislike about this game(and something that could be changed in the next version or permutation) is that gameplay is TIME based instead of TURN based. It makes the game less about strategy and more about being quick with your mouse. It also makes the game less appealing as a background task and something to stop and come back to; ie something to do while waiting for something to cook or during television commercials.
You're onto something here.
I think the gameplay of this variant would be much deeper if the ticker only ticked when you didn't make a match.
Good work! This one I'd buy.
I loved it until the timer was introduced. I got to 15.
b.timeUntilNextDrop = 1;
Much more fun and leisurely paced, which is what I want in a game to pass time.At some point it got posted on some Russian DoTA league site and generated a bit of (mouse) traffic there for a while - I guess those guys are pretty good with a mouse though.
function countPieces(){it=b.pieces();for(var e=0;it.current();)e++,it.next();return e}function getRandPiece(){for(var e=b.pieces(),t=Math.floor(Math.random()*countPieces()),n=0;t>n;n++)e.next();return e.current()}function stackRandPiece(){if(!b.isBusy()){if(b.isGameOver())return void clearInterval(randInterval);var e=getRandPiece();b.setTarget({x:e.pos.x+100,y:1500}),b.grab(e),window.setTimeout(function(){b.setTarget({x:200*Math.floor(7*Math.random())+100,y:1500}),window.setTimeout(function(){b.release()},15)},15)}}randInterval=window.setInterval(stackRandPiece,40);
Original code here: https://gist.github.com/CodyWalker/842149b82ed363659678The highest I've seen it manage is 17.
Basically same, but giving weight left<>right based on the value of the number.
EDIT: Oooh... just discovered, 20 x 2 is a thing... go twentybot!
I've copied your code, hit "F12" in Firefox, but where do I paste it? Where/how does it run?
How can I learn the basics of this stuff without wading through the mindless tutorials intended for people who have never coded?
For reference, I've written safety-critical real-time embedded systems in assembler and C, and these days I write number-theory and expert systems code in Python.
Where can I start that doesn't patronise me to death?
It gives a good review of javascript syntax, goes over the intricacies of the loose typing system and variable scope, covers some detail on avoiding memory leaks and some browser specifics (which I think are probably out of date; I didn't review it thoroughly I was playing Minecraft at the time) and gets up to anonymous functions and closures.
Aside: Incidentally if someone would like to explain closures to me I'd appreciate it - I don't really understand them.
Code Academy's [2] javascript looks very basic but Code School [3] seems to have better beginner stuff - I've done their git/jQuery courses before and they were quite well done.
HTH.
[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re...
[2] Avoid for javascript, very basic: http://www.codecademy.com/courses/getting-started-v2/0/1?cur...
[3] https://www.codeschool.com/courses/javascript-best-practices
This script also highlights my main issue with the game. It feels like the rules are not strict enough for this style of game. The real-time nature of the physics combined with the concurrent actions taken by the user results in quite loose game mechanics.
Maybe I'll work on it some later...
https://gist.github.com/inDream/c4c1eb78faf2742c5e58
Highest score: 20x3
The increasing difficulty to get to higher numbers with the randomness of high-number drops makes the game exciting and the timer makes it frantic.
I look forward to trying two-player mode. Stealing blocks from the opponent is a great mechanic!
The one suggestion I can make is to give high-number blocks (15+?) something to make them stand out, similar to how 2048 indicated higher numbers. The sound effects throughout the game are great!
As to your suggestion, you make a good point. It was very hard to come up with 20 distinct colours (let alone 30, as one of the iOS-only modes requires!) and maybe something extra is required.
Just in case you hadn't managed to get one for testing, I can confirm the game plays perfectly (and is highly addictive) on a Surface Pro 2 using the touch-screen :-)
I probably won't play solo that much and I'll probably only play the multiplayer a few times. I'm not too into mobile games or small games. Regardless, I think it's a winner.
I didn't realize until halfway through the first game that you could combine tiles laterally without having to pick them up off've the stack.
Great idea for a game.
It was somewhat by-design that there are a few "secret" mechanics to be discovered.
But I would suggest renaming it "16". That way I can feel better about performance.
This game is addictive.
I was able to get 20 by obsessively combining small tiles first, but just barely. The biggest problem is the rows that calcify and lock together if you don't actively try and break bonds.
The best strategy I've found is to build two towers on either edge of the board. One tower is reserved for #1-9, and the other side is reserved for 10-19. I aggressively clear the bottom and break any links, and then I optimize the storage of my towers. There's only enough space for stacks 8 high, however, so sometimes I need to make a third stack in the middle (ideally with 9, 10, and 11). I've gotten as high as 20x8 on iOS this way, but it takes some luck.
The web version was originally a straight recompile with emscripten but it was way too slow so it's a hybrid approach where the board engine is emscripten and the UI is rewritten with HTML/canvas.
Threes! had attention to detail — in the mechanics, in the visuals, and especially in the music. These ripoffs have none of that.
I can't help but wonder whether we are promoting the tradition of cheap, carelessly made mobile games as opposed to the finely-crafted products. This is why many developers have started to steer clear of the mobile market.
(I don't mean to ruin everyone's fun, just commenting on the larger scheme of things)
Its graphics are, in my opinion, better than Threes!. Why that should matter though is beyond me, since the gameplay is quite different.
I also fail to see why elegant simplicity is somehow a bad thing in this case.
Maybe you're new here, but games featured on Show HN are usually side projects and don't necessarily have studio-level production values.
Good job!
I have no idea where the link mechanic game from. The game needed more constraints on how pieces could be moved, and that idea just popped into my head one day.
I agree wholeheartedly with the other comments: this is a awesome game and well executed!
Small nit: on Android apps, traditionally pressing the back button when at the "home" or top-most screen of your app will either exit, or prompt to exit.
It was also extremely not obvious how to disable the sound; traditionally I would have expected that to live under the "More ... " item at the home screen.
I hope these are taken merely as suggestions, and not as criticism.
17. because of later pieces joining together in 3's, it seems it might be impossible to reach 20? (do you ensure there's a soln?)
(android version) i found the touch becoming unresponsive on the edges, in later stages. pr because i'm getting frantic, and using a crappy phone. but if this could be improved (eg larger hit area on the edges - or zoom to cover whole screen), it would be worth it.
apart from the feeling of frustration, the gameplay problem is you lose much time repeating the movement x2 or x3 times, which is crucial to avoid locking joined pieces and large surface area towards the end.
PS would be better if it didn't require any permissions at al. it just seems to be storing twenty.jpg - necessary.
also "throwing" blocks with momentum as another comment said would be cool, and wouldn't undermine gameplay.
I didn't get what the other comment meant by throwing, but it just clicked when you said it. Thanks for the idea, I'll look into it.
thought it was gonna be easy, then noticed the timer on the top when the screen was about halfway full, definitely added another layer of excitement to the game
edit: 18 on 2nd try... can't stop playing! ahem.. is there a way to disable the timer?
edit: frustrating but addicting... 19 http://i.imgur.com/KW0i0rN.png
looks like it's best to keep the numbers as high as possible so it's easier to combine the blocks
(the best strategy I found so far is to use move everything into 3 columns (left, centre, right) as soon as new pieces arrive, only then start merging... top score of 18 at the moment)
Cool game!
Great concept and execution!
1. Love the tutorial, super simple and I loved how you introduced harder concepts like linking blocks later on. 2. The objective is clear and challenging right from the get-go, as opposed to introducing levels, the game just naturally kind of gets harder. 3. After introducing the timer that's when I was like "oh shit just got real" and I felt that pressure made it more fun
You think you've done a bunch of things right here. Nice work.
So if I'm holding a 3 and bring that to another 3 all while keeping my finger held down and then continue to move my finger somewhere else I don't take the new 4 block with me. I have to raise my thumb and do a new tab and swipe. If I can just keep my thumb down then it makes the game more fluid and you can get some nice chaining/combos going.
Also, if you do put in a leaderboard system then you should definitely involve time, and have the timer running when the game is in "paused" state (not background, but pressing the "pause" button deliberately). I've been "cheating" by pausing to collect my thoughts and plan out my moves.
Seriously, a great game - kudos and hope it's a big success for you.
That moment when you hit 20 and then the "twist" I just got a huge smile on my face :)
https://sensortower.com/ios/us/stephen-french/app/twenty/882...
It's very annoying when I see a useful tile which is not attached to anything and I reach over to grab it, only to have it become attached to something in the mean time. (Especially if that tile was one I created by merging two other tiles together and so its attachment to anything else should have been broken.)
Way more hooked on this than 2048.
Does anybody remembers Crack attack ? Still the best in my opinion. http://www.aluminumangel.org/attack/
17. I can sleep in peace now.
Javascript is wildly popular these days, many make the reasonable claim that it is the world's most-popular programming language. Lots of people say it's so much fun.
I first learned a very modest bit of javascript a few years ago, I learn more when I need it, more recently I got about halfway through O'Reilly's "Learning Javascript" but am now stopped dead because I regard it as so tedious and dull.
Mind you I am not by any means a language zealot. If you enjoy javascript then more power to you.
But I myself would rather chew my own foot off than actually get paid to write javascript code. Unfortunately I am concerned I may not have much choice.
Is there way you can convince me that javascript can actually be fun and interesting to me?
What I regard as fun is sweating over how to reduce cache misses in my iOS conway's game of life implementation, Warp Life. I once write an AES hard drive encryptor that ran entirely onboard the Oxford OXFW911 Firewire/IDE bridge chip. It had a 49 MHz ARM7TDMI CPU, 64 kB of 16-bit flash with a five-cycle read time, and 1800 bytes of 32-bit ram with a one cycle read time.
FireWire Encrypt was a tough project but I had a grand old time working on it.
My gripe with javascript is that it is simply not possible for me to use it to solve the problems that interest me.