Sunday, August 12, 2012

Dante with Android

With much thanks to Krzysztof 'kkszysiu' Klinikowski we now have mostly working support for Android devices in Dante. That is to say, the code is there, the build scripts are there, but it's still not an easy process for the user to build their own Dante.apk package for their phone/tablet.


I am considering writing a detailed how-to guide on setting up the Android SDK and NDK, creating the standalone toolchain, and running the build. It's not really difficult, it's just tedious to execute all of the commands required for the Android build.

I have shell scripts which do most (but not all) of the work checked into Git, however you still need to know how to use them, how to modify them to point to your NDK and standalone toolchain, and finally how to transfer the Doom 3 media assets onto your device. Right now the process is definitely not very easy nor streamlined.

We are not yet at a point where this is user friendly! You're welcome to visit us in the #dante IRC channel on irc.freenode.net if you really want to build your own packages, get involved in the development, or just see what's happening in real-time. Okay, this is a free-time project, so you may have to idle a bit and the channel is not always active.

  • Performance is currently bad. I am aware of this and it's something we're working on improving in various ways. It's unlikely to happen overnight.
  • Touchscreen input is also bad but I expect this will improve fairly quickly. Adding good on-screen controls to be able to move and look around I see as a much more difficult problem. Perhaps one that will be solved with a wearable device (such as a phone or mini-tablet) a Bluetooth wireless controller, and the Oculus Rift. I'll have to wait for my unassembled prototype in November to find out...
  • Audio support currently does not exist, though progress is being made in this area.
You can see the bugs and planned enhancements/features on Dante's Github Issue Tracker.

Happy Hacking!

11 comments:

  1. Do you have any plans to merge your results with that of dhewm3 ?

    ReplyDelete
  2. There are currently no plans. Although I sometimes chat with dhewg, we have different goals in mind.

    ReplyDelete
    Replies
    1. Can you please tell which are your goals? You want to just port the game to as many devices as possible or to provide a more stable platform for the developers of future(possible) IDtech4 based games?
      If this makes you brake compatibility with doom3 content, you will do it or try to avoid it? This is now the best GPL licensed engine available (in my opinion), so projects like darkmod can now go standalone and maybe even appear on Steam some day, it would be great. Thanks

      Delete
    2. I don't intend to support every platform available, but the major POSIX-compliant platforms which are not too difficult to support (I'm looking at you iOS,) yes.

      Android support is relatively easy, though I have been receiving a significant amount of help from contributors on Github and IRC, which is awesome! :-)

      I intend to keep compatibility with Doom 3 media assets as much as possible; obviously with the primary backend of Dante being based upon GLSL there are some incompatibilities. You can't just plug in a custom ARB_vertex_program or ARB_fragment_program; instead it must be rewritten in GLSL (which is actually easier to write and typically easier for the compiler to optimize; it has more context.)

      Currently there are a bunch of bugs, missing features, and a long wish-list but hopefully we'll gradually get all of these complete.

      I would say that yes, providing a stable platform upon which others can work would be one of the goals, along with the obvious graphics improvements. I do not intend to make my own standalone game; I'm not an artist and I'm well aware of that fact.

      I will leave content creation to the people who can actually do that type of work; creating great looking textures, models, animations, and other media assets is beyond my skills. I just write code. Usually just for fun.

      Delete
  3. Replies
    1. Sure, you can compile for any architecture supported by your compiler. You're not going to get the benefit of SIMD yet on ARM, but currently that's not enabled on any architecture (including x86 and x86_64.)

      Delete
    2. Hmm, actually it might need a few (literally 3 or 4) line patch to define the BUILD_STRING etc. You can open an issue on Github if you wish.

      Delete
    3. This comment has been removed by the author.

      Delete
  4. Por favor, si Dom funciona en un SEW810i, Cómo no va ha tener soporte para un Android! haha

    ReplyDelete
  5. This comment has been removed by a blog administrator.

    ReplyDelete
  6. can't wait to see it running on my Quadcore S3

    ReplyDelete