Я использую Firebase в качестве своей базы данных для многопользовательской игры с открытым миром.
Мне нужна скорость записи до 100 миллисекунд, чтобы все игроки обновлялись в режиме реального времени.
Моя игровая графика остается гладкой с движком LibGdx, но тогда Firebase отстает от записи данных, которые показывают игрока противника на его отложенную позицию.
Я использую интерфейс для связи с основным игровым классом LibGdx с функциями Android (поскольку в LibGdx нет Firebase).
Пожалуйста, предложите мне создать плавный механизм обновления данных и добиться плавного многопользовательского подхода с Firebase. (Включая LibGdx)
Следующий код показывает мой фрагмент Firebase:
//For writing owners location update
taskMap.clear();
taskMap.put("x", Connect.carX);
taskMap.put("y", carY);
taskMap.put("angle", angle);
taskMap.put("rx", rx);
taskMap.put("ry", ry);
taskMap.put("fx", fx);
taskMap.put("fy", fy);
taskMap.put("wheelAngle", wheelAngle);
db.child("public").child(firebaseAuth.getUid()).updateChildren(taskMap);
taskMap.clear();
taskMap.put("damage", damage);
taskMap.put("gear", gear);
taskMap.put("fuel", fuel);
db.child(firebaseAuth.getUid()).updateChildren(taskMap);
//For reading opponent locations update
LibGdx.core.class.dummyCarUpdate(postSnapshot.getKey(),
Float.parseFloat(postSnapshot.child("x").getValue().toString()),
Float.parseFloat(postSnapshot.child("y").getValue().toString()),
Float.parseFloat(postSnapshot.child("angle").getValue().toString()),
Float.parseFloat(postSnapshot.child("rx").getValue().toString()),
Float.parseFloat(postSnapshot.child("ry").getValue().toString()),
Float.parseFloat(postSnapshot.child("fx").getValue().toString()),
Float.parseFloat(postSnapshot.child("fy").getValue().toString()),
Float.parseFloat(postSnapshot.child("wheelAngle").getValue().toString()));