Running physics without graphics context


I have a question about feasibility of some stuff in Unreal Engine.

I would like to use the UE to play some physics simulation results, but this simulation requires an offline learning process.
This learning process is based on a genetic algorithm restarting many times the simulation and learning parameters for it.

So what I would like to achieve is :

  • Having the simulation context that uses UE physics engine
  • Being able to run the simulation “offline” (without rendering it)
  • Having my genetic algorithm constantly running the simulation to evolve stuff I need to evolve
  • Obviously, being able to run the simulation using UE rendering, but this one is “trivial”.

Can I do this kind of things (or similar stuff) using UE ?
I am not sure I have been very clear on my needs, if not I’ll be pleased to answer questions :slight_smile:

Thanks for everything !


Just to clarify a bit, here is how stuff may look when called during learning process (pseudo code) :

double fitnessFunction()
    // First, get a new clean physics simulation context
    Simulation simulation = buildNewSimulation();

    double fitness = 0.0;

    int stepCount = 5 * 60; // 5 seconds of simulation at 60 fps
    for (int i = 0; i < stepCount; ++i)
        simulation.step(1.0 / 60.0); // Advance one step of simulation, updates physics, etc
        fitness += rewardGivenSimulationStatus();

    // We are done, clear simulation

    return fitness;

And Simulation::step() might look like

void Simulation::step(double dt)
    // Do some pre computations 

    // Update physics engine

    // Do some post computations

EDIT 2 :
I think it is worth mentionning that there is no problem if the engine needs to be running during learning, I just need to have the control over the physics engine, choose when to step it, with my given delta time, and prevent the game engine to update it by itself.


I would also like to run simulations without rendering graphics. I have already set up everything to be run on Windows 8.1 64-bit Virtual machines, except this VM doesn’t have graphics, so I need to be able to do this w/o graphics.

Something that comes to mind: you could program your simulation controller “as usual” but run it in your VM as a dedicated server. Make sure your skeletal meshes have the setting “Enable Physics on Dedicated Server” set to true, which fortunately is the default value.

I will check this out, thanks for the tip !