[In transition] 0 B.C. Time Machine - Historically accurate Hybrid RTS, RPG

Breaking Recent possiblity of collaboration triggered renewed effort to transit 0 B.C. Time Machine to be modified/created using blender game engine.

Blender game engine is preferred over Unreal Engine (semi open source) due to its flexibility, open source and especially its moral values and for its peaceful fight for a free, independent, public domain, common welfare world.

The BGE will host 0 B.C. flexibly, while allowing to edit the giant world(s) of the Time Machine and while adding content for it. So for the next years the interconnection will exclude the publishing functionality - i.e. 0 B.C. still is custom compiled as a common C++ program.

Collaboration
Another python-based RTS, RPG is the collaborating partner of 0 B.C. - still to be announced. The simulation and concepts may be shared among both projects when the development structures are laid out.

The structure may be openly discussed here in this thread if desired.

[Proposal] Content folder structure

Either by function:
e.g.
create/ (birth,
kill/ (weapons, …)
move/ (vehicles, …)

by geographical / biological homogenous heterogenous development:
e.g.
biped/
triped/
quadruped/

by biological/geological/… kind, order, group or family:
e.g.
plant/
humanoid/

(Note while my examples may not be consistent because quickly thrown together, the real folder structure must be consistent. Redundancy is always a problem, e.g. several things may belong into different categories which must be avoided by a good a priori folder structure.)

by time / epoch e.g. stone age/ bronze age/ iron age/ ancient/ medieval/ ...

By epoch is overlapping definition and on the first thought may better be achieved by structuring into several content addons. On the second thought it not solves the overlapping problem and leads to issues with fluent development over time of items, e.g. evolution of helmets over the course of history!

Conclusions:

=> So better use tagging which also allows items to be in several categories!
=> Every item its own folder, including a tags/ sub-folder and all the existing variants denoted by e.g. the time span it existed (or by stating it in the descriptive file in e.g. .json or .xml format).

This approach - while leading to many submodules - then allows specific overlapping content addons to use common items in different versions (like gentoo portage and 0install package manager).

If the newest version is desired, then use relative reference to the folder one level higher …/. To avoid unkown folder recursion depth this should always be the root folder of the collection repository, e.g. 0bc/ in case of the Time Machine.

If on the other hand a special version is required, then load the repository into the current repository as git submodule, check it out in the desired version, and reference using ./ (current directory, i.e. one, not two dots!).

This leads to the following folder structure with the full scientific name:

~ (home directory):
0bc/ (collection of repositories included as submodules, program dependencies specified using 0install package manager unless no circular dependencies ar e expected!)
homo_sapiens_sapiens/ (git repository containing homo sapiens models in all variants (female, …) over time)

lolium_perenne/
(kind of grass; containing the 3d model, its xml, json definitions, et alia development files in its variants over time)
lolium_multiflorum/ (kind of grass; - " -)

You get the picture.

Note this implies that there won’t be distinguished in simulation, art, … folders! Because if a model changes then in scientific terms the simulation properties also change, i.e. they are inherently interlinked and thus can and should be provided in a bundled manner (for compatibility to 0A.D. without post processing, the modules can locate the files at the respective simulation/, art/, … folders).

so… uh 0B.C would be time of christ?

While the covered timeline period is unlimited, 0 B.C. will start anywhere inbetween 2000 B.C. and 2000 A.D…
The time code is designed to host the 4000 years of time continuity with quite some detail. It will take weeks to finish the experience, depending on when modern technology (e.g. machines, weapons, …) are invented/innovated there might be quite some different outcome of the real world.

The point of time of inventions is set to the real historical point by default, unless something unexpected happens like e.g. the player(s) managing to prevent the Roman conquest of the Greek.

This actually is what policy is all about: trying to control the dynamics and shape the world. Unfortunately that’s not so easy and the player will quickly see that everythings tends to get out of joint. The player may be removed from its post by a revolution … leaving it separated from the original kingdom/state, maybe with some followers. Pretty drastic what all may happen. Maybe one will be called back if military problems arise and one is needed in the kingdom again or similar. The real thing.

Breaking
Currently there are talks to exchange priority and first work on the Fantasy project. This project also allows real time shift.

4000 years of time continuity
While the covered timeline period is generally unlimited, 0 B.C. will start anywhere inbetween 2000 B.C. and 2000 A.D…

The time code is designed to host the 4000 years of time continuity with quite some detail. It will take months to years to finish the experience, depending on when modern technology (e.g. machines, weapons, …) are invented/innovated there might be quite some different outcome of the real world. (A time modifier for acceleration is provided, of course.)

The point of time of inventions is set to the real historical point by default, unless something unexpected happens like e.g. the player(s) managing to prevent the Roman conquest of the Greek.

Educative simulation
This actually is what policy is all about: trying to control the dynamics and shape the world. Unfortunately that’s not so easy and the player will quickly see that everythings tends to get out of joint. The player may be removed from its post by a revolution … leaving it separated from the original kingdom/state, maybe with some followers. Pretty drastic what all may happen. Maybe one will be called back if military problems arise and one is needed in the kingdom again or similar. The real thing.

Timing is important too. Consider the called back messenger is delayed or the thrown out officer doesn’t take action quick enough. It will lead to changed situation on the field. Timing is crucial. Speed and thrust like Napoleon might put it.

Breaking News
Currently there are talks to exchange priority and first work on the Fantasy project. This project also allows real time shift.

Note:
Temporarily on hold for finishing the open source 6 axes robotic manipulator, which has far greater impact for the community because it solves our real world issues like constructing (milling, 3D printing, drilling, crane function, …), cooking, cleaning, mowing, harvesting, milking, …

Afterwards we’ll continue virtually. Surely you guys and gals understand this priority.

Nice!

you should check out BTmultiBody from bullet physics, it is intended for these purposes

That’s great, we’ll also need Timewarp optimization because we have to many colliding objects. Imagine a horde of people with horses fetch lumber from a forest around a castle they need to get to to quickly lift a siege. The horses pull these trees through rocks along the path to a slope, where the trunks go downward to fill a creek, while the nearby army harasses with self colliding arrows. May be a great performance test. huh?

Great bullet is using these O(n) algorithms like the one of A. Jain from NASA jet propulsion laboratory.

OT
“Historically accurate.” More likely fictional.
Since Roman times on, there’s so much bias: “Winner writes the history, not facts.”

Anyway, keep it up.

burnin, of course you are correct. It’s extremely difficult to know the truth. That’s what makes science so difficult and risky - one’s “theory” might be totally off.

Skhorn and me once started a collection of ideas online. Here the Entity Capabilities List but it’s a mess and incomplete (not due to Skhorn, rather because of me):
https://docs.google.com/spreadsheets/d/1irQGRjpr5pmy2abcSn9qBzuq-08ol0RTaJxnMwD_vQo/edit

Note the capability system is still work in progress - because it includes professions, a skill system and has effects on almost all entity components (not last the AI). It’s the biggest and most promising feature up to now. It allows
e.g. fishermen to decide to buy new worms,

  • to check the soil for worms,
  • to ask a neighbour settler for worms - either borrow, purchase or place an order
  • or to just use something else instead.
    … it’s amazing also because it will allow entities to sleep, to drink, to sit in the sun, to bake a cake and source the parts independently - maybe even acquiring a carriage just to buy ingredients for the cookies. :smiley:

    Now that http://github.com/worlddevelopment is progressing, the virtual time machine looks into a brighter future than the last year.
    World developers use an entirely blender based development chain. It interacts with FreeCAD and OpenFOAM but else it’s blender and 0install’s magic that makes it all interact and epic.

You can find our world development IRC channels at open free technologies community irc.oftc.net as channels #worlddevelopment and #0bc for discussion.

Worlddevelopment holds its promise and opens first finances
Ever wanted to know how much ancillary costs (waste, sewer, electricity, …) are in Southern Germany close to Castle Neuschwanstein or how an annual overview of charges for rent out flats has to look like in Germany?

Then check out the new “Nebenkostenabrechnung PDFs” shared on our social media (legal language is German due to the property’s location in Germany).

More to come with the openbookkeeping JSP webtool that can parse PDF, HTML, ODT, DOCX, RDF, TXT,. … and maybe later Images to extract costs and income from orders, bills, …


0 B.C. Time Machine Progress

  • To escape the broken state of the time machine due to the giant capability system that brought more than 10 000 lines of code all over from GUI to ingame entity professions, skills and distributed AI (hybrid AI, aging commanders controlling groups) the debug deadlock is resolved with new approaches and extensive separation of features as far as possible.

  • The first applications have been evaluated. Unfortunately hardly any match one of the two job descriptions the worlddevelopment board posted. We do have no requirement for Music currently. Voice artists will have to compete with the Kaldi and H speech recognizers and synthesizers.

Current estimates foresee that:

  • Entity goals make it into the capability system, too.
  • Hybrid AI groups (called ‘commands’ in the past) also seem to make it.

The big unknown is still how quick we can succeed in debugging the capability system which also includes a user interface rework.

It was managed to increase the level of realism:

  • Entities now personalize actions.
  • Not only on a per civilization base, e.g. a Roman baker did create that cake differently than a Greek or Celt.
  • Knowledge is contained within entities initially.
  • Scholars et al. then transfer the knowledge.
  • Entities create recipe variations and those successful can make it upstream.

Pretty fancy model of how the real world works. The design and especially implementation was mind twisting.

Voice control of entities (something worlddevelopment club also utilizes for its machines) will not make it into the capability system for now to reduce complexity.

  • Entities now can convert their plans to real orders.
  • Plan entities like treasure map items ingame are supported.
  • An entity can store a plan in sheets of paper, disks, CDs or other storage media.

Next promise fulfilled: FINANCES | SAVINGS 2016 (saving the hell out of us)

0 B.C. Time Machine development company worlddevelopment club also has taken over maintenance of the HannibalAI (in addition to its own HybridAI) after the author stopped SVN trunk HEAD support and Agent did withdraw from talks last month.

The current 5 axis manipulator is now using hydraulics and will also find its way into the game 0 B.C. as will all other machines worlddevelopment creates in the real world, sharing the toolchain:

  • blender -> as unit|structure into 0BC as well as
  • blender -> real world construction

Once it is known how blender 2.8 and the BGE transition to an interaction mode (integration into core blender) works out, the virtual time machine will know how to interface it properly.

Currently several high profile open source engines are merged to provide a hybrid RTS+RPG engine that 0BCE Time Machine needs. As blender will become the corresponding editor (already partly in use), we are looking forward to 2.8+.

The result will not only be a unified blender. Fewer engines may exist as a consequency (because missing features in one engine are already fully functional in others, e.g. in pyrogenesis huge tasks are missing LOD, missing physics engine integration, custom GUI code, missing script debugger that depends on upstream SpiderMonkey, … but it also has parts where it shines).