The Jan Willem Nijman talk was excellent, thanks for posting it!
To those that haven't seen it yet, he iterates a boring game prototype into something that actually seems worthwhile. And all he does is add tiny things that seem inconsequential at first. Stuff like "make the bullets faster" and "add a muzzle flash".
I was amazed at how big of a difference the small changes made in the end. Adding enough lipstick to a pig actually worked wonderfully.
You probably already found it, bit the Game Programming Patterns[0] website is a great read. I bought the book, but all content is available on the site.
Also nice is this archived post[1] on getting started as game programmer.
I am making my first real game this year, also using SpriteKit.
Kenta Cho is someone I admire a lot. I have to admit that of the 50 browser games, I didn't actually find a lot that I really liked. However his Windows games (most if not all have been ported to X) are incredible. Each one is a gem. They aren't always polished, but the ideas in them are really, really good. Of course you have to like retro style shooters ;-)
Thanks for posting this. I keep meaning to read his blog, but I always forget :-)
Torus Trooper has been ported to Linux --- it's even in Debian! And it's written in D. It's worth having a look at if you're interested in this sort of thing; a lot of his shoot-em-ups use a markup language, BulletML, which describes enemy behaviours in XML...
A job or two back I spent a lot of time buried deep inside noiz2sa (http://www.asahi-net.or.jp/~cs8k-cyu/windows/noiz2sa_e.html), another of his BulletML games, porting it to a mobile game platform as a demo. (This one's in C.) I'm not really a fan of that sort of game but it's a lot more subtle than it looks at first glance. The overall game design and level layout is very carefully done; the way the end-of-level bosses work is particularly clever (they're just ordinary enemies with lots of hit points!). And the whole thing's only 3kloc.
Noiz2sa works well on small screens, but Torus Troopers looks fantastic on a big screen. And both games sound fantastic. Anyone know who writes his music?
Oh, wow, I hadn't realized these were Kenta Cho's work but playing them had me explicitly thinking about his earlier works! I always really liked Gunroar [1]
They are in debian if I remember correctly. Arch has then in aur too. I don't actually know where they are hosted outside of distributions, though (if they are).
Here is a very good resource for learning how to write browser games in Javascript, Code Incomplete[0]. I found it to be a very good source to learn how to write vanilla Javascript also.
(shameless plug) Some folks in the Ludum Dare community are hosting One Hour Game Jam, which is a weekly game jam to create a game within one (or possibly a few more) hours. A different theme is chosen for each week by voting. I would say most games are crappy (including mines) but that's a part of the charm. cf. http://onehourgamejam.com/
According to the host, this is mostly "a support group for those who have too much creativity in their hand."
Being able to create a small game within an hour is technically impressive. Some of the entries are also fun. How about you try it before you have a tantrum about it?
I noticed that some of these 2014 games (in particular the first one) are created in Flash, which to me suggests that there are still some purposes within rich web media it suits better than the plain web html5/css/js stack everyone is trying to kill it with. I really hope support for Flash isn't widely dropped before we can replicate its utility for richly interactive media in our new standards. (The web seems now just for websites and web applications rather than more rich games and animations.)
Thanks for pointing that out, I would have missed that important detail otherwise. The majority of his games are indeed in HTML5, so I do wonder what made him choose Flash as an export target for the one or two such games I've seen.
I don't know, a lot of the games here are simple enough they can be made in HTML5/canvas. In fact, their written in Haxe, and that can target HTML5 as an export (performance might be a bit touchy though)
Good to see Haxe in here. You can do way more sophisticated things in Haxe (and target js, cpp, java, etc.), but it looks like the author intentionally keeps things simple:
https://github.com/abagames/mgl
I've been playing Kenta Cho's games since forever. I've sunk countless hours into Noiz2sa, rRootage, Parsec47 and Tumiki Fighters. His games are usually very minimal, creative and stylish with a nice techno soundtrack.
Similar effort, but you'll learn a lot more making 50 games.
Each game will have different mechanics, require different data structures and have to be designed separately. Each game will be fun for different reasons (or fall flat for different reasons). With 50 examples your intuition for what works and what doesn't work will be better.
Paul Graham could have invested a similar amount of effort over the past decade by working at one company. But by advising hundreds of startups his skillset & knowledge is much more broad and useful.
And if I had a game studio, I'd hire someone who'd finished 50 games last year in a heartbeat.
I love that there's a visual theme throughout the games, you can see that it is the same person behind all of these. Somehow looking at this diagram makes me feel very soulful. I'm not sure why.
How hard is it to make html 5 games portable across different devices with different screens ? Do "html5" game devs mainly use game maker studios that handle the export for different devices or is it better to do that "by hand", if latter, does anyone know for a good resource on that ?
Last time I looked. Babylon.js is an amazing JS-based 3D game framework. It relies on WebGL for the heavy-lifting; support good support of WebGL in the browser is needed.
That's pretty tricky to do at the moment sadly, JS isn't quite there yet.
As you can see with the HTML5 games in this collection, raw JS is quite unpolished.
If you ask me, I think handling all the little things manually is probably best at this point; JavaScript is actually quite a slow language, so frameworks do introduce noteworthy overhead. For example my old computers do NOT like Unity's HTML5 export at all, and current smartphones can be easily bogged down by bad code too. So hand-optimizing it is the way to go at this exact moment.
I think this is why people are investing so heavily in WebAssembly: it'll allow the actual language primitives to be abstracted out in different directions, and provide higher performance to boot. At least if they get the implementation right :P
Ah, my old Intel HD 2000 is on Chrome's hardware render blacklist (for good reason, disabling it is hilarious).
WebGL is amazing though, I agree; http://acko.net/ is how all websites should work. :D
There are also well-polished JS games like http://zty.pe/ (that don't require WebGL); that game in particular is built on a nonfree JS game engine, but it's a good demo of what's possible with efficient coding.
I got hooked on ZType for a while... then I went full crazy and discovered that there's just enough game state left accessible in the global scope in order to be able to make the game... um, play itself.
It looks absolutely ridiculous at level 60+. :D
EDIT: Doh, I completely forgot to ask - what litle side things are you working on? I'm curious.
What browser are you using? The default 'android browser'? Also, you may have an older android phone? Some more details would add some context to your post.
They also have a way to wrap the JS app as a native app similar to Cordova. The games I've tried on my Nexus 5 worked fine with a great user experience.
For Swerve http://swerve.playcanvas.com/ we designed the UI to be responsive for desktop and mobile. We're using HTML/CSS for this so it works well, but unfortunately you end up getting some stalls for browser layout and compositing.
For Swerve this is a problem because we're aiming for smooth 60fps but in a less twitch-based game this wouldn't be so much of an issue.
https://gist.github.com/polm/05db396cf08b9ec2a81c