Hey folks,
I'm a huge fan of Artemis and have spent many great hours with friends defending the universe from invading aliens. A few weeks back I began to stare at my Nexus 7 longingly, wishing I could use it instead of my laptop. So, I sat down with Wireshark and slowly figured out (to some extent) the packets used, and wrote an Android client for it. I've been super busy and haven't worked on it in a couple weeks, but I decided to go ahead and release it for people to play with, while we wait for an official one from Thom :) (I didn't see the iOS port announcement until I'd almost finished the current version)
I present to you ArtClient, a completely UNOFFICIAL client for Artemis on Android. Having received no support from Thom whatsoever, I can almost promise you that things might act weird or crash at inopportune moments, but I did use it a few weeks back with my crew and it mostly worked (I fixed the things that didn't). I provide it AS IS with NO GUARANTEES or anything. USE AT YOUR OWN RISK and such. See end of post for download link.
The Android client is layered on top of a Java API that I wrote for the project. I'd like to at least release the API so other dedicated fans can improve the data handling---or maybe write a Java-based client for native play on OSX and Linux---but I haven't received world either way from Thom. Speaking of which: Thom, I chose the name ArtClient so as to not brand it as an Artemis product, per your request, but if there's anything else you want me to change, just let me know.
Features: - Fully-featured Helm, Engineering, Science, Comms, and Captain's Map stations! Weapons is nearly feature-complete, lacking only manual beams (see below)
- Jump drive mode in Helm gives you a number pad to input precise range and bearing
- Tilt-to-steer (if your device has the appropriate sensors) and Tap-to-steer features for Helm
- Pinch-zoom in Science (and anywhere a radar is available)
- Customizable labels for Engineering presets (long-press on the preset button)
- Tap on a received message in Comms to reply (see "limitations" below)
- User-selectable light and dark themes
- Support for the following client-side artemis.ini settings: networkPort, jumpTimeCoeff
- Support for a custom vesselData.xml and associated *.snt files
- Open source Java API layer:
https://github.com/dhleong/ArtClientLib Limitations: - NO 3D support. Whatsoever. This means anything needing it is not present. In particular: manual beams.
- NO server support. This is a CLIENT ONLY, and I have no plans to try to reverse-engineer the server. I built this to support the community, not to enable pirates! PLEASE have a valid license when using this!
- Min Android version is Gingerbread. ICS and above get some nice extra features, like dimming the navigation buttons; Post here if you encounter problems on a Gingerbread device
- Only one station at a time.
- Some object movement on radar is jumpy (esp: whales, space monsters)
Station breakdowns: - Comms: 100%; should work on any device
- Science: 100%; should work on MOST devices, but may be cramped on smaller ones. If yours is not usable, send me a screenshot
- Engineering: 100%; usable on Galaxy Nexus!
- Helm: 100%; should be acceptable on most devices, but probably cramped on smaller ones
- Weapons: 95%; No manual beams, BUT none planned; may be usable on most devices, but definitely cramped with smaller devices and more than 2 or 3 tubes.
Some screenshots: http://dhleong.minus.com/mbj70RvR82dPM5 The if-you-download-this spiel By downloading and using the software, you've read, understand, and agree with this:
This is BETA-level and UNOFFICIAL, UNSUPPORTED software, which means I have no way of knowing if the way I'm sending and parsing data to and from the server is correct, so your game session might get screwed up right quick by using this app. I have worked very hard to be as accurate as possible and minimize such things, but you've been warned that it could happen! Furthermore, it's a DEBUG build, which means that it will straight-up crash if it gets some data that it doesn't handle correctly. This is intended to help improve the software, so if you encounter such a situation and are comfortable with logcat, you can help improve the software by finding the crash message (particularly the part that has the raw packet data) and sending it to me. I make no promises that I will fix the issue or even that I will investigate it.
If you aren't comfortable with logcat, you may be able to help by indicating exactly what was happening at the time of the crash in as much detail as you can. Again, I make no promises!
When I say that a version is "for" a version of Artemis SBS, that doesn't imply any level of compatibility, just that it was developed against that version, and that it may or may NOT work on any other version.
Finally, as I am very busy with other things now, I want to reiterate that any progress made will be on my time, as I can find time. I will try to respond to error reports and whatnot---I use this as my primary access for Artemis, now, and want it to be excellent as much as you do!---but please be patient, as any responses may be slow.
Downloads: (newest at the end)
Version 2.7.2 beta For Artemis SBS 1.661
https://www.dropbox.com/s/ldtjltc11bbby74/ArtClient-2.7.2b.apk Changes: - NEW: Helm (finally) will use the correct drive (warp/jump) when joining in-progress games!
- NEW: Station shields shown when selected by science/captain (But let me know if they aren't the "right" shields.... The server reports both front and rear, but the official client only shows one and I haven't had a chance to thoroughly check this)
- FIX: Red alert/Shields status are shown/updated correctly when joining an in-progress game
- FIX: Captain's map selector behaves and looks more like the official one
- FIX: Bearing indicator should never go negative anymore
- Turning smoothing should be better now, as we use the server-indicated turn rate if possible
- Engineering sliders follow updates from the server during a game, now. May not be important, but the official client does this
- Minor tweaks to improve Radar rendering, ship selection, etc.
- 2.7.1: 30000% sliders bug fixed
- 2.7.2: Add version check so it doesn't try to play with incompatible servers (causing, you know, crashes)
Version 3.0.1 alpha For Artemis SBS 1.7
https://www.dropbox.com/s/ergsuc73bycr4y2/ArtClient-3.0.1a.apk Changes: - NEW: Experimental compatibility with 1.7 servers!
- NEW: Support new Helm Reverse
- FIXED: Crash with neutral ships
Version 3.1 alpha For Artemis SBS 1.7
https://www.dropbox.com/s/7b07vk6tgha1w7m/ArtClient-3.1a.apk Changes: - NEW: Parse strings as UTF-16LE; this should remove the weird spaces on older devices, and fix the issue with setting ship names loses all characters
- FIXED: Compass getting crazy numbers
- FIXED: Activating reverse correctly drops out of warp and disables the warp controls
- Improved parsing of neutral ships and stations
Version 3.2.4 alpha For Artemis SBS 1.700 / 1.701 / 1.702
https://www.dropbox.com/s/7zcb4i3k6kmfna9/ArtClient-3.2.4a.apk Changes: - NEW: Captain's map controls are properly separated from Science controls
- NEW: "Relative" helm display! Enable under Settings
- NEW: Engineering's Warp/Jump systems labeled appropriately by chosen drive type
- NEW: Improved science scanning handling, follows the official client much more precisely!
- NEW: Added (opt-out-able) crash reporting, so hopefully I can see exactly what's causing any remaining crashes
- NEW: Allow connecting to version 1.701 servers (untested!)
- FIX: Radar touch controls now continue to work properly after leaving and returning to the app
- FIX: USFP references changed to TSN to match 1.7 client
- FIX: Various bugs, including "bearing/distance not updating" bug
- Improved helm's tap-to-steer logic. Let me know if you find more cases where it doesn't work
Enjoy! Let me know if/how it works out anyone.
[Last edited Jul 25, 2013 14:32:41]