No announcement yet.

Feasibility of using UDK to build virtual environments for Java-based AI research

  • Filter
  • Time
  • Show
Clear All
new posts

    Feasibility of using UDK to build virtual environments for Java-based AI research

    Hi everyone,

    I'm hoping to get some feedback from UDK users as to whether or not you think the UDK might be useful for a particular research project I'm part of, or if you've ever seen it used as I hope to use it, outlined below.

    Here's the deal: I am part of a research team building simple electronic "brains" (at present, mostly visual cortex) in the Java programming language. We want to hook them up to virtual robots in a virtual environment and set them loose. The brains are ultimately intended to be used with real robots (indeed, they've been used already with a few) collecting images and other sensory data from the real world, so we would like the environment's appearance and physics to be as realistic as possible (it's just that real robots are a pain to work with - they break, need recharging, and have to be hauled around to interesting environments). A virtual robot needs to deliver sensory data to a brain, including (hopefully stereo) images, sound, touch, and acceleration. The robot needs to move about by applying physical forces to itself and the world (vs simulating a "run-forward" keypress; its movement should be physics-driven). After a cursory inspection, it seems like the UDK could help us to build out our virtual robots and environments, but there are a couple of potential problems.

    The first is just the issue of interfacing Java code (the brains) to the UDK. I expect JNI would let us talk to the engine, but I've been unable to find any example of it having been done before (not altogether unexpected, but a little disconcerting). We also need to give the brain a consistent concept of time - basically, this means that the brain's own compute loop needs to drive the stepping/ticking of the virtual world. Otherwise, the brain has no hope of learning the physics of its virtual body and the virtual world. Since we'd be taking over the game loop, I'm not sure if this can be done without modification to the engine (meaning we'd need more than just the UDK), or if there's some mechanism (perhaps just pause/unpause?) that would allow for that.

    I'm hoping somebody with experience using the UDK can at least tell me if this sort of Java/UDK integration sounds feasible, or if I'm wasting time pursuing it. Alternative approaches are also welcome. I should note that we've used JMonkeyEngine (an open-source Java-based game engine) to build a few virtual environments already - it works to an extent, but it doesn't seem likely to achieve the level of realism we're hoping for, and the tooling is comparatively lacking.

    udk uses unreal script and not java.
    dllbind allows you to use c++ dll's but they are very very limited.
    pretty much wasting your time with udk sorry.


      Good to know. Thanks for the reply.