Virtual Joysticks and Comfortably Poor Solutions
Programming in the 21st Century - James Hague - January 23, 2012Considering that every video game system ever made shipped with a physical joystick or joypad, the smooth, featureless glass of mobile touchscreens was unnerving. How to design a control scheme when there is no controller?
One option was to completely dodge the issue, and that led to an interesting crop of games. Tip the entire device left and right and read the accelerometer. Base the design around single-finger touches or drawing lines or dragging objects. But the fallback solution for games that need more traditional four or eight way input is to display a faux controller for the player to manipulate.
The virtual joystick option is obvious and easy, but it needs pixels, filling the bottom of the screen with a bitmap representation of an input device. Sometimes it isn’t too obtrusive. Other times it’s impressively ugly. Aesthetics aside, there’s a fundamental flaw: you can’t feel the image. There’s no feedback indicating that your hand is in the right place or if it slides out of the control area.
There may have been earlier attempts, but Jeff Minter‘s Minotaur Rescue, released just over a year ago, was the first good alternative to a virtual joystick that I ran across. Minter’s insight was that directional movement anywhere on the screen contains useful information. Touch, then slide to the right: that’s the same as moving a virtual controller to the right. Without lifting your finger, slide up: that’s upward motion. There’s no need to restrict input to a particular part of the screen; anywhere is fine.
He even extended this to work for twin-stick shooter controls. The first touch is for movement, the second for shooting, then track each independently. Again, it’s not where you touch the screen, it’s when and how.
It’s all clean and obvious in retrospect, but it took getting past the insistence that putting pictures of joysticks and buttons on the screen was the only approach.
Categories: Blogs Programming in the 21st Century
Erlang on Twitter
» subdie_ (Tong sang cong): Lha dewa erlang sudah beraksi wkwkkw
» subdie_ (Tong sang cong): Mana nih dewa erlang yg suka editin tweet :3
» HamidanZW (Hamidan Zaneddine W™): @subdie_ @sonyajkt48 siap” di edit dewa erlang ._.
» mr_virtan (virtan): Parallel A* on Erlang. 2 versions: parallel neighbors and parallel vertexes calculation. Just 4 fun. https://t.co/5DhrqHuOyL
» naoto_matsumoto (Naoto MATSUMOTO): http://t.co/aS563bbfPq 結局、これに行きつくという罠の一日。 orz MPI, Erlang and the web
» kz_kazuki (借りぐらしのkazuki): Erlangでメール配信システム作ってる会社があるとかないとか。
» AtillaE (Atilla Erdődi): The book about Elixir - a programming language on the #Erlang VM - is available in beta: http://t.co/ixucV4LyJ0
» akiradeveloper (イケメン高テスのあっくんでつ): RT @seizans: うぉぉ e-learning を erlang に普通に空目していた
» seizans (Seizan Shimazaki): うぉぉ e-learning を erlang に普通に空目していた
» adistiG (GINTA): Kirim ke bandung sabi kalii hehe☺ RT @raandari: Kejuuuuuu ~ w/ @andriyan_erlang (at Richeese Factory) — http://t.co/VlbVd6CPWk
Statistics
Number of aggregated posts: 10651
Most recent article: May 21, 2013
Latest comments
» Moraru on This is Why You Spent All that Time Learning to Program: It is true that computer science was a pain in the back at time that i’ve had to learn it…
» Commercial hand dryers on Couchbase Meetup at new HQ: Buy online from here where you will get so much of variety in Commercial hand dryers for people. If you…
» Fort McMurray Homes on Motivated Reasoning and Erlang vs Python vs Node: I don’t really understand why this post is motivational? I don’t even see a post, just a title. Fort McMurray…