Thimbleweed Park on the iPhone
by Ron Gilbert
Oct 11, 2016
Oct 11, 2016
Thimbleweed Park is running on both the iPhone and Android. With no UI changes, it's surprisingly playable, even on a small screen. We're planning on several changes that make touch work better, but still retain the classic UI feel.
It's still along ways off, but here is a sneak preview.
Joost, our Linux programmer did both the ports.
Are you planning to release the Android and iOS versions with the Windows/macOS/Linux versions? Or is this more like a proof of concept?
I might have just gotten a reason to update my quite old Android phone :)
Any specs about memory requirements?
What I mean is how the user interacts with the program (e.g. "jab and swoosh"), not any specific UI.
I always prefer to do it like Ron has it in "direct mode", it seems easier and more direct that way.
Here is the info on how to change it from the ScummVM website:
"The touchscreen can be used in two modes: direct mode and touchpad mode. The default mode is touchpad mode. When in direct mode, the mouse cursor moves to the touched point on screen. In touchpad mode, the mouse cursor is independent of the touched point, it is moved relative to its current position - like on a touchpad.
The Android version of ScummVM doesn't have an input configuration dialog yet, but as a temporary workaround, touchpad mode can be toggled with the "Mixed AdLib/MIDI mode" checkbox on the MIDI tab in ScummVM's main options dialog. Restart ScummVM after changing it."
But I can understand the reasoning behind this other method:
Main problem #1 is that fat finger which is obstructing the view (especially when scanning for hotspots).
Problem #2 is precision. With a new game like TWP you can work around it e.g. using some radius in which the touch location snaps to the nearest hotspot.
In ScummVM and all its games and engines it's maybe not that easy. Some games may require pixelhunting e.g. by having hotspots placed very near each other.
#1 could still be an issue with TWP, not sure what's a better solution than using some touchpad-mode.
Maybe just add a way to easily show all available hotspots (-> no scanning necessary)? Or position the cursor with an offset (could feel awkward)?
Or they add pen/stylus as system requirement :-)
I immediately didn't like having to move the cursor around by kind of dragging it around, so I looked that up pretty fast before I played anything... once I had found direct mode I haven't really thought about it since, so it seems to work really smoothly for me...
(though maybe it is down to my strenuous finger-workout routine I do to keep my fingers lithe and supple with the dexterity and precision needed for such a task)
Long time ago I played with ScummVM on a small phone but had a stylus. On my current tablet I have a) a relative large screen and b) also a pen (although rarely used).
I've actually never ran into this issue.
But depending on the screen size / finger size ratio I can imagine it. So I'm curious how it will be solved in TWP.
Bravo to the team!
I'm hoping Thimbleweed Park will be on the Amazon store, but otherwise I think I can buy the regular Android version and then save it onto the Kindle (as I did with the classic games).
For ScummVM you need to "sideload" it, where you have the Android version of ScummVM on your computer and put it on you Kindle Fire via USB, then you click on it on the Kindle and let it install (but first you need to change a couple of settings to let you install outside programs, if you google "sideload apps kindle fire" you can find what to change).
Then you just dump the games files from your computer into a folder on you Kindle Fire and then in ScummVM find the files.
The easiest games to play are any with clear verbs, like Monkey Island 1 and 2, Day of the Tentacle, Simon the Sorcerer 1 and 2, Flight of the Amazon Queen, and Indiana Jones and the Fate of Atlantis. I remember Sam and Max also playing fine too.
Monkey Island 3 I remember having to do the equivalent of a right-click, where you hold one finger on the screen and then you tap with another finger to bring up the little verb symbol thing. It was a bit annoying, but ok.
I think Toonstruck and Beneath a Steel Sky also had some of this right-clicking stuff, but it was easier (I can't remember exactly why, I think there was just less of it).
I seem to remember Maniac Mansion and Zak being a bit tougher because the verbs are smaller and more fiddly.
I tried playing Indiana Jones and the Last Crusade but I couldn't figure out the controls to fight, so I don't know if it's playable on touchscreen.
Haven't tried Loom, Full Throttle, or The Dig yet, so don't know how those are.
And I haven't tried any Sierra yet... I imagine text parser games would be pretty crazy with a touchscreen and even in their verb-icon games I don't fancy trying to do any of the tricky stuff like Space Quest IV Skate-o-rama escape (it was hard enough with a mouse!)
"The Android version of ScummVM doesn't have an input configuration dialog yet, but as a temporary workaround, touchpad mode can be toggled with the "Mixed AdLib/MIDI mode" checkbox on the MIDI tab in ScummVM's main options dialog. Restart ScummVM after changing it.""
I'm glad you're keeping the classic UI look and feel, though possibly using the accelerometers to pan the camera left and right, might be an added bonus.
Then some platform dependent code is needed for things like touch control, achievements, etc.
By the way, you don't need to port from C to Objective-C, it just works 😉
I'd love to see a new Thimbleweed Engine post with some more details.
However,. I don't know how much his engine developed since then, and whether he made any major changes which involves more porting complications.
Look at the smoothness, and the simplicity. It looks like very playable and enjoyable!
I think these porting will help spreading the Verb a lot, O Creator!
Ron Gilbert has just released a new "Pinch and Swipe" adventure called Thimbleweed Park.
Using the old "touch interface" has never been so fun, It really feels like its 2020 again.
So break out your old Iphone 10's because this one is worth it. -TWP Tech News
And this means it will run great on an iPad Pro 12 inch too. Those pixels must be HUUUGE.
The only problem is that I need some money to buy one. Got any cash left Ron?
I couldn't find him on https://thimbleweedpark.com/team
Meanwhile let's enjoy the game on the available platforms!
I think a handle to tap on, to do that would be nice.
Looking great! :)
- the perfect program does not exist.
"Optimism is the scent of life"â„¢
20 PRINT "'I'M THE PERFECT PROGRAM, AND I'M BUG FREE"
30 GOTO 20
RUN
READY.
But I'm not sure how complicated it would be to implement - or how many people would use this option.
And the funny thing is you can do it with Hillary too. :D
Like: "I want to play a little bit on my mobile phone, save the game, then proceed using my computer when I'll be at home" (sorry if that has been asked before).
And is that really necessary? I for myself prefer playing adventure games in my spare time on the couch. :-) (Not in a hurry in a train. :))
There are games which aren't using Steam Cloud Saves but other known cloud storage providers like DropBox (e.g. Broken Sword).
ScummVM implemented cloud saves just this summer during GSoC: It supports Dropbox, OneDrive and Google Drive as storage provider.
As long as the save file locations are known and there exists a proper sync application for your favourite cloud provider on your devices you don't even need a special implementation in the game itself (e.g. I've used DropBox with ScummVM save file locations before).
(search for cloud)
1. Saves are likely to be cross-platform compatible.
2. It will support cloud saves on platform which support it out-of-the-box (like Steam).
3. Ron said using 3rd party storage can be a PITA (actually PITH), but he will look into it.
Three days until content complete (which may or may not include feature complete). So everything is possible :-)
Another problem is, that not all platforms are able to access all clouds. If you save your savegame in the Apple cloud, you are not able to synchronize it on Android.
So this solution is not a "real" synchronization. :) It is easy to support a cloud but it's not easy to implement a full synchronization solution that works an all platforms.
2. The player doesn't need the push anything. If a save file gets changed it will be automatically synchronised as soon as possible.
3. When implementing cloud saves directly in the game you can handle conflicts there. e.g. Scurvy Scallywags showed a confirmation dialog.
Actually I don't see a big problem with solving conflicts by automatically letting the last file win (e.g. when playing with my other device and I don't realise the save game isn't up-to-date or I don't care and play anyway, it will later overwrite the other file when I save [or the older file will be discarded on next sync]).
Note that this only works well if you let the player choose to save a game or not (e.g. ask if progress should be saved on quit; of course you still should do autosaves in case the application terminates unexpectedly)
Aaaand then there should be (as always) a Classic-Saves option in the game which require manual saving! :-)
(I assume the current implementation uses save slots? I guess that is what games do today).
"But there are DropBox&Co."
Great. You have just to implement/support these all and sync the save files between them. And not everyone has a DropBox / Google Drive account - especially Apple users. So you have to force the players to use Dropbox (or Drive or ...) - which are not available on the XBox as far as I know.
"If a save file gets changed it will be automatically synchronised as soon as possible."
... overwriting the latest save game. And what happens when the space in the cloud execeeds? Yes, you can always ask the player. But then you get a save file exchange system and not a "I can just play on Android where i stopped at home on the Mac".
"When implementing cloud saves directly in the game you can handle conflicts there."
Resolving (distributed) conflicts is not an easy task and not easy to implement. Ask the Dropbox users who lost their backup by a simple mistake. :)
"e.g. Scurvy Scallywags showed a confirmation dialog."
Which means: the player has to do the work. Beside that, Scurvy Scallywags is an iOS app (as far as i remember) and supports only the Apple cloud. The big problems arise when you try to support *all* platforms.
If you just want to exchange the save games via a cloud, you just need to allow the player to save the save game somewhere in your system. He/she/it can then save the file in his Dropbox/Google Drive folder. That's easy to implement (just use the Save as dialog provided by the platform) but it's not an automatic synchronization. :)
You have to use some 3rd party storage provider when you want cross-platform saves which can be DropBox&Co, but can also be something hosted by the game company. If Apple/Steam provides a proper and public API to access files you could even use them as provider (but I guess not...).
Also you don't have to use cloud saves at all! Local saves are always the fallback.
"... overwriting the latest save game"
It overwrites the save in this current slot. That's the purpose. When it's a specific error like out of space then you can notify the user. Other errors or when offline there is no synchronisation (obviously).
If you play on the other device you either realise yourself that the savegame is out-dated or not. You either play with the out-dated one (unintentionally or intentionally) or boot up the game on device #1 again to get it to sync.
"Resolving (distributed) conflicts"
Save games aren't important backups so we can live with something like overwriting without asking. Scurvy Scallywags was just an example of another existing method (which I probably wouldn't propose).
I would let the most current file overwrite the existing one.
Note that "most current" is not defined by the time of the sync but the time when the file was created.
(e.g. you play on Device A, sync fails; you then play on Device B, savegame is out-dated [not known by the game], you still play because you can just repeat your last steps; later save syncs OK; back on Device A again: game wants to sync -> there is a file with newer timestamp on remote storage -> own savefile is discarded and current one downloaded)
Btw. I use something like a DropBox folder for e.g. ScummVM saves. Conflict resolution would probably need manual intervention but I would still call it automatic synchronisation.
Unless you can drag the cursor around without selecting things, and I wouldn't recommend that, I'm not sure what the point of having it on a touchscreen is. After all, the whole point of mouse cursors is to show you what it is you're pointing at since you can't interact with traditional GUI's directly. Touch interfaces abolished them for a reason. However, it does seem useful to have a way of getting the "cursor hover" information but I'm not sure what the optimal solution for this is.
If I had to keep the verbs, I would do something like "if touch on walkzone walk, if touch on hotspot and no verb active show name of hotspot, if touch on hotspot and verb active do corresponding action". And also "verb active but touch isn't on hotspot - deactivate verb". Plus something else like double tap on the hotspot to activate the default action.
But please absolutely no "hold touch" since I HATE that the finger is on the way and I like to keep my touches at a minimum.
Well, seeing that smartphones have no physical buttons any more (except volume and power), the differentiation between simple movements of the cursor and triggerings seems to have become a bit more complicated.
I would solve it similarly to touchpads: You trigger only by a sequence of a 'touch down' followed by a 'touch up' shortly after.
Fortunately, accidental triggerings wouldn't be a big issue, because TWP has no dead ends.
Moreover, a touchpad mode would allow you to relaxedly read the sentence line while you're moving the cursor over some verbs or objects, which, in my opinion, has been an essential element of the charm of the SCUMM games.
It's so satisfying to see a modernised version of the game model I literally grew up with !
I don't own the game yet, and still, I want another one !
What about implementing an SLI-similar mode by pairing two (or three? (or six?)) watches?
a) I'm confident that the displays will increase for watches too.
b) That's 57k pixels more than on the C64.
c) Ahh, i forgot about this one.
Does there exist a Lynch-video about watches?
Do you really want to play it on a smaller screen like a watch?!
Or you are expecting that watches will increase screen size, becoming bracelets?
b) Yes! Yes! Yes! https://twitter.com/HistoryInPix/status/765542955478315008/photo/1
"Juiced" or "Yo-st"?
https://youtu.be/xqKf0Lu_EDU?t=54m51s
Why don't you tell us mor about how have you made it posible suche cross platform reality.
It look really great. Did you used some kind of tool or something?
You could make a very interesting post explaining that.
This one will be my game, played between Ace Attorney 6 (just finished) and Thimbleweed Park.
Gosh, 139 MB... what a big game for a mobile version!
Scurvy Scallywags is the game. Find it in your local Google Play store or App store.