Members | Sign In
All Forums > Off-topic
avatar

UNOFFICIAL Android Client for Artemis

posted Oct 18, 2012 19:22:21 by DanielLeong
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]
page   1 2 3 4 5 next last
170 replies
avatar
kwadroke said Oct 18, 2012 20:47:32
Just tried it on a Android 4.0 emulator (no wifi here). I've only really tried helm so far. Pretty cool so far. I've seen it crash when hitting the Home button. Also when you go to change the name of the ship the one of the buttons is labeled "Set 10", guessing it's supposed to be Cancel.
It would be nice if it had a skin to match the game (or something close).
I'll play around with it tonight and see if I can get some output from Logcat.
avatar
JohnKlingbeil said Oct 18, 2012 21:34:30
that's awesome! great work for being completely unsupported development :)
avatar
FFDilithiumCryst said Oct 18, 2012 21:44:44
I think this topic should be under NEWS regardless if it's unoffical or not!
The U.S.S. 結晶 (Crystal) in Fremont, CA is now operational as of November 3, 2012.
Win Count: 5-0 (between LV. 4-8)
Pronounced: Kesshō

"残り物には福がある."
"Luck exists in its leftovers."
-----Unknown
avatar
DanielLeong said Oct 18, 2012 22:37:53
kwadroke: Thanks, it must've been a bad build. That's what I get for not properly checking the build before publishing it. I just did a clean build and the correct text shows up, so I re-uploaded. The link should point to the fixed version.
avatar
kwadroke said Oct 18, 2012 23:00:13
Yeah, that seemed to fix it on my phone. Haven't tried it on the emulator yet.

One thing I did notice, After running it on my ExoPC running Android, Engineering has Jump Instead of Warp when using Warp Drive. You could take the easy way out and put "Warp/Jump" there instead, that way you don't have to put any logic there.
[Last edited Oct 18, 2012 23:34:15]
avatar
kwadroke said Oct 19, 2012 03:40:18
Is is possible that a zoom control could be added to Weapons, Science, & Helm? I'm sure you designed this with touchscreens in mind. The Pinch to zoom works on Phones & Tablets, but I'd like to be able to use this on my EEEPC 701 with Android. It doesn't have a touchscreen, just mouse & keyboard.
avatar
zdalton.zach said Oct 25, 2012 05:14:19
Confirmed working on acer a500 tablet running a jellybean 4.11 cyanogen mod. Make sure you don't change the network update speed. I increased the update rate to 50ms and got a really bad delay on the tablet display. It took a full minute for the client to figure out id blown myself up. Helm, weapon, and engineering controls still worked real time though. really like the name your own presets in engineering too.
avatar
RobertJacoby said Oct 27, 2012 17:41:38
Great work cant wait for new versions... more option.... great would be a LCARS version
avatar
JesseCool said Oct 27, 2012 18:48:39
This may be known but it doesn't work on Gingerbread (I have cyanogen 2.3.7 and a 2.3.3 cheap coby tablet). Any chance of getting the code so we can work on that? I am very excited about an android client and think this one works pretty well. Helms was a little jumpy on my friends jellybean phone but that is to be expected, weapons runs smooth. Engineering doesn't work very well because I can't scroll back and forth between sliders, and the screen isn't big enough to show all the sliders at once. I don't really know what the specific differences between my old android versions and the newer versions so I don't know how much work it would take to get it working on my gingerbread devices. Looking forward to some updates either way, awesome work!
avatar
DanielLeong said Oct 29, 2012 19:12:29
Just uploaded 1.1 alpha; see the original post for changes and download link.

@kwadroke: WRT zoom, check out 1.1a; hopefully it'll work for you. What version of Android is your device running? And, are there any other ways you might like to see zoom supported for your type of device?

@JesseCool: In what way does it not work in Gingerbread? I haven't had a chance to test it on my old DroidX but theoretically it should run. I'd like to release the API backend source, at least, but I'm hesitant to do anything without Thom's explicit thumbs up. All of the issues you mentioned are known and described in the post.

Thanks, everyone, for the support!
avatar
kwadroke said Oct 29, 2012 21:00:15
DanielLeon
@kwadroke: WRT zoom, check out 1.1a; hopefully it'll work for you. What version of Android is your device running? And, are there any other ways you might like to see zoom supported for your type of device?

I'm testing it out on Android 4.0.4 on an EEEPC netbook (no touch screen), a EXOPC tablet, Samsung Captivate phone, and on the Android SDK VM. They all coincidentally run the same version. If I can get my Android tablet back together and working, it's got 2.2. I'll be picking up a new Phone soon that will be upgraded to CM10.
The Z+ & Z- buttons don't show up on the screen on the Netbook. Can you make it so an option can be set to force them to show up?
[Last edited Oct 30, 2012 01:40:24]
avatar
kwadroke said Oct 29, 2012 23:55:22
Is it possible to setup an option to make science not autorotate? It's hard to use on a netbook. I've disabled auto-rotate in Android, but it still rotates.
avatar
cfogrady said Oct 30, 2012 18:29:32
Very, Very Cool! Any chance on open sourcing it, so the community can help develop it? As the usual engineer in my groups, I would love the chance to try to add in manual damcons myself.
avatar
JesseCool said Nov 01, 2012 02:41:42
@DanielLeon; I can understand your hesitation. It crashes before even starting. I can install it fine, and when I open it it shows a white screen for only a few moments then crashes. Not sure how to about getting log data that you might want.
avatar
AlexVanPatten said Nov 01, 2012 23:58:39
I am VERY stoked to hear of this. Thank you!

Today, I tried it on my Android 4.0 tablet and found a couple issues.

With Science, I ran a server on my desktop and had one PC running science as well as my Android tablet. On the PC, I saw more enemies than on the tablet. If you'd like, I can take some screen shots for comparison. Otherwise, it worked great!

With Comm, I was simply not getting messages or getting them very delayed. Hailing other ships did not produce any response where they'd normally indicate they are on their normal course.

Do I need to bump up the network speed? It was set to 20. Should I go for 70-80? I ask this because when my friends and I played online a few weeks ago (all PCs) we had desync issues if the latency was set too low.
Login below to reply: