Forums

  1. Welcome

    1. Announcements / News

      The latest. What is happening with 0 A.D. Stay tuned...

      2,672
      posts
    2. Introductions & Off-Topic Discussion

      Want to discuss something that isn't related to 0 A.D. or Wildfire Games? This is the place. Come on in and introduce yourself. Get to know others who are using 0 A.D.

      31,131
      posts
    3. Help & Feedback

      Here is where you can get help with your questions. Also be sure to tell us how we are doing. What can we improve? What do you wish we could do better? Your opinion matters to us!

      7,812
      posts
  2. 0 A.D.

    1. General Discussion & Ideas

      This is the place to post general stuff concerning the game. Here you can post ideas, suggestions or just share some warstories once the game is completed.

      34,975
      posts
    2. Game Development & Technical Discussion

      A forum for technical discussion about the development of 0 A.D. Feel free to ask questions of the developers and among yourselves.

      25,391
      posts
    3. Art Development

      Open development for the game's art. Submissions, comments, and suggestions now open.

      12,997
      posts
    4. Game Modification

      Do you have any questions about modifying the game? What will you need to do what you want to? What are the best techniques? Discuss Modifications, Map Making, AI scripting and Random Map Scripting here.

      16,784
      posts
    5. Project Governance

      Forums for decision-making on issues where a consensus can't be reached or isn't sufficient. The committees are chosen from among the official team members, but to ensure an open and transparent decision process it's publically viewable.

      121
      posts
    6. 139
      posts
  • Latest updates

  • Newest Posts

    • this is the msg I get when I try to run it as Admin: Function call failed: return value was 0 (No error reported here)
      Location: file_system.cpp:158 (CreateDirectories) Call stack: CreateDirectories (file_system.cpp:158)
          path = 0x00AFF3B8 ->
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = [8] { 92 ('\'), 0, 24078, 28825, 62588, 175, 49784, 352 }     mode = 448 (0x000001C0)
          breakpoint = true
          s =
              st_dev = 0 (0x00000000)
              st_ino = 29560 (0x7378)
              st_mode = 208 (0x00D0)
              st_nlink = 100 (0x0064)
              st_uid = 0 (0x0000)
              st_gid = 12 (0x000C)
              st_rdev = 35 (0x00000023)
              st_size = 49525302261445560 (0x00AFF30000AFF3B8)
              st_atime = 49525285090056564 (0x00AFF2FC01315974)
              st_mtime = 57983846785543418 (0x00CE00005E5CECFA)
              st_ctime = 62364024649547776 (0x00DD8FC000000000)
      CreateDirectories (file_system.cpp:151)
          path = 0x00AFF45C ->
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = [8] { 92 ('\'), 0, 22882, 28825, 62752, 175, 49784, 352 }     mode = 448 (0x000001C0)
          breakpoint = true
          s =
              st_dev = 13539680 (0x00CE9960)
              st_ino = 2 (0x0002)
              st_mode = 0 (0x0000)
              st_nlink = 2 (0x0002)
              st_uid = 0 (0x0000)
              st_gid = 62556 (0xF45C)
              st_rdev = 40 (0x00000028)
              st_size = 49526006636082268 (0x00AFF3A400AFF45C)
              st_atime = 49525989464693108 (0x00AFF3A001315974)
              st_mtime = 57983846785543418 (0x00CE00005E5CECFA)
              st_ctime = 58216460631146496 (0x00CED39000000000)
      CreateDirectories (file_system.cpp:151)
          path = 0x00AFF500 ->
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = [8] { 92 ('\'), 175, 22726, 28825, 62824, 175, 49784, 352 }     mode = 448 (0x000001C0)
          breakpoint = true
          s =
              st_dev = 13554680 (0x00CED3F8)
              st_ino = 2 (0x0002)
              st_mode = 0 (0x0000)
              st_nlink = 2 (0x0002)
              st_uid = 0 (0x0000)
              st_gid = 62720 (0xF500)
              st_rdev = 44 (0x0000002C)
              st_size = 49526711010718976 (0x00AFF44800AFF500)
              st_atime = 49526693839329652 (0x00AFF44401315974)
              st_mtime = 57983846785543418 (0x00CE00005E5CECFA)
              st_ctime = 58216460631146496 (0x00CED39000000000)
      CreateDirectories (file_system.cpp:149)
          path = 0x00AFF644 ->
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = [8] { 92 ('\'), 0, 0, 206, 4, 0, 15, 0 }     mode = 448 (0x000001C0)
          breakpoint = true
          s =
              st_dev = 0 (0x00000000)
              st_ino = 62656 (0xF4C0)
              st_mode = 175 (0x00AF)
              st_nlink = 60713 (0xED29)
              st_uid = 24156 (0x5E5C)
              st_gid = 33793 (0x8401)
              st_rdev = 11531556 (0x00AFF524)
              st_size = 8500930706279499120 (0x75F95F7000000570)
              st_atime = 6799616859512504320 (0x5E5D178200000000)
              st_mtime = 8113613845493618920 (0x709958CE015698E8)
              st_ctime = 49528892856193624 (0x00AFF64400CFD258)
      VFS::Mount (vfs.cpp:71)
          this = (unavailable)
          mountPoint = 0x00AFF660 ->
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = [8] { 47 ('/'), 0, 23398, 28825, 63592, 175, 13829, 351 }     path = 0x00AFF644 (see above)
          flags = 19 (0x00000013)
          priority = 3 (0x00000003)
          directory = 0x00AFF68C ->
              m_files = (unsupported map<Path,VfsFile >)
              m_subdirectories = (unsupported map<Path,VfsDirectory >)
              m_realDirectory = (shared_ptr<RealDirectory>)
              m_shouldPopulate = 1889097118 (0x7099559E)     s = (`anonymous-namespace'::ScopedLock)
          realDirectory = (shared_ptr<RealDirectory>) MountMods (gamesetup.cpp:462)
          paths = 0x00AFF6F8 ->
              m_root =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 0, 59896, 206, 0, 0, 0, 0 }         m_rdata =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 0, 37152, 221, 0, 0, 0, 0 }         m_gameData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 0, 36536, 221, 0, 0, 0, 0 }         m_userData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 208, 1184, 206, 24, 0, 32 (' '), 0 }         m_config =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 0, 7472, 207, 2000, 115 ('s'), 152, 0 }         m_cache =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 208, 35568, 221, 0, 115 ('s'), 0, 115 ('s') }         m_logs =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 208, 0, 207, 3140, 115 ('s'), 0, 0 }
          mods = 0x016A5700 -> (unsupported vector<CStr8 >)
          modUserPath =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 92 ('\')     modPath =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 92 ('\')     modName =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 47 ('/')
      InitVfs (gamesetup.cpp:497)
          args = 0x00AFFBC0 ->
              m_Args = (unsupported vector<pair<CStr8,CStr8> >)
              m_Arg0 =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = [8] { 92 ('\'), 0, 22034, 28825, 64612, 175, 10065, 350 }
          flags = 8 (0x00000008)
          hooks =
              override_gl_upload_caps = 0x00000000
              get_log_dir = 0x0141A1D0 -> (psLogDir)
              bundle_logs = 0x0141A050 -> (psBundleLogs)
              translate = 0x00000000
              translate_free = 0x00000000
              log = 0x00000000
              display_error = 0x01410AA0 -> (psDisplayError)     readonlyConfig =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 92 ('\')     logs =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 92 ('\')     paths =
              m_root =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')         m_rdata =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')         m_gameData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')         m_userData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')         m_config =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')         m_cache =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')         m_logs =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')
          LINE_469_ =
              m_t0 = 0.00346057 (0x3F6C595849673B70)
              m_description = 0x0162F830 -> "InitVfs"
      Init (gamesetup.cpp:918)
          args = 0x00AFFBC0 (see above)
          flags = 8 (0x00000008)
          profilerHTTPEnable = false
          sim =
              m = 0x00AFF9B8 ->
                  m_SimContext =
                      m_ComponentManager = 0x00000000
                      m_UnitManager = 0x00000000
                      m_Terrain = 0x00000000
                      m_SystemEntity =
                          m_Id = 4 (0x00000004)
                          m_ComponentCache = 0x00CE00C0 -> { numInterfaces = 13537168 (0x00CE8F90), interfaces = [1] { 0x04A82E98 ->
                                      m_EntityHandle =
                                          m_Id = 14536568 (0x00DDCF78)
                                          m_ComponentCache = 0x00000000                                 m_SimContext = 0x00000000
       } }
                  m_ComponentManager =
                      m_ScriptInterface =
                          m_CxPrivate = { pScriptInterface = 0x00000309, pCBData = 0x00CE6D30 }
                          m = (unique_ptr<ScriptInterface_impl,default_delete<ScriptInterface_impl> >)
                          m_rng = 0x00000100
                          m_CustomObjectTypes = (unsupported map<basic_string<char,char_traits<char> >,ScriptInterface::CustomType >)                 m_SimContext = 0x0000077F
                      m_SystemEntity =
                          m_Id = 4294967294 (0xFFFFFFFE)
                          m_ComponentCache = 0x00AFFA30 -> { numInterfaces = 0 (0x00000000), interfaces = [1] { 0x00040000 ->
                                      m_EntityHandle =
                                          m_Id = (unavailable - internal error)                                     m_ComponentCache = (unavailable - internal error)
                                      m_SimContext = (unavailable - internal error)  } }                 m_CurrentComponent = 0 (0x00000000)
                      m_CurrentlyHotloading = true
                      m_ComponentTypesById = (unsupported map<int,CComponentManager::ComponentType >)
                      m_ScriptedSystemComponents = (unsupported vector<int >)
                      m_ComponentsByInterface = (unsupported vector<boost::unordered::unordered_map<size_t,IComponent *,boost::hash<size_t>,equal_to<size_t> > >)
                      m_ComponentsByTypeId = (unsupported map<int,map<size_t,IComponent * > >)
                      m_LocalMessageSubscriptions = (unsupported map<int,vector<int > >)
                      m_GlobalMessageSubscriptions = (unsupported map<int,vector<int > >)
                      m_ComponentTypeIdsByName = (unsupported map<basic_string<char,char_traits<char> >,int >)
                      m_MessageTypeIdsByName = (unsupported map<basic_string<char,char_traits<char> >,int >)
                      m_MessageTypeNamesById = (unsupported map<int,basic_string<char,char_traits<char> > >)
                      m_InterfaceIdsByName = (unsupported map<basic_string<char,char_traits<char> >,int >)
                      m_DynamicMessageSubscriptionsNonsync = (unsupported map<int,CDynamicSubscription >)
                      m_DynamicMessageSubscriptionsNonsyncByComponent = (unsupported map<IComponent *,set<int > >)
                      m_ComponentCaches = (too much output; skipping to next top-level symbol)             m_DeltaTime = 8.20257e-304 (0x0102000800000010)
                  m_LastFrameOffset = 0.000000 (0x00730000)
                  m_StartupScript = (unsupported basic_string<char,char_traits<char> >)
                  m_InitAttributes =
                      {
                              (js::ValueOperations<JS::PersistentRooted<JS::Value> >)
       }
                     
                          mNext = 0x007301C0 ->
                              mNext = 0x00010002 ->
                                  mNext = (unavailable - internal error)                             mPrev = (unavailable - internal error)                             mIsSentinel = (unavailable - internal error)
                              mPrev = 0x01020003 ->
                                  mNext = (unavailable - internal error)                             mPrev = (unavailable - internal error)                             mIsSentinel = (unavailable - internal error)
                              mIsSentinel = (bool)0x04                     mPrev = 0x0000001D
                          mIsSentinel = (bool)0xA8                 ptr =
                          data =
                              asBits = 8615768768757365504 (0x77915C0C00AFFB00)
                              s = { payload =
                                      i32 = 11533056 (0x00AFFB00)
                                      u32 = 11533056 (0x00AFFB00)
                                      boo = 11533056 (0x00AFFB00)
                                      str = 0x00AFFB00 -> (JSString)
                                      sym = 0x00AFFB00 (see above)
                                      obj = 0x00AFFB00 (see above)
                                      cell = 0x00AFFB00 (see above)
                                      ptr = 0x00AFFB00 (see above)
                                      why = 11533056
                                      word = 11533056 (0x00AFFB00)
                                      uintptr = 11533056 (0x00AFFB00)
      , tag = 2006014988 }
                              asDouble = 8.95602e+267 (0x77915C0C00AFFB00)
                              asPtr = 0x00AFFB00 (see above)               m_MapSettings =
                      {
                              (js::ValueOperations<JS::PersistentRooted<JS::Value> >)
       }
                     
                          mNext = 0x00000004
                          mPrev = 0x00000000
                          mIsSentinel = (bool)0x34                 ptr =
                          data =
                              asBits = 68719476737 (0x0000001000000001)
                              s = { payload =
                                      i32 = 1 (0x00000001)
                                      u32 = 1 (0x00000001)
                                      boo = 1 (0x00000001)
                                      str = 0x00000001
                                      sym = 0x00000001
                                      obj = 0x00000001
                                      cell = 0x00000001
                                      ptr = 0x00000001
                                      why = JS_NO_ITER_VALUE
                                      word = 1 (0x00000001)
                                      uintptr = 1 (0x00000001)
      , tag = 16 }
                              asDouble = 3.39519e-313 (0x0000001000000001)
                              asPtr = 0x00000001               m_LoadedScripts = (unsupported set<Path >)
                  m_TurnNumber = 2 (0x00000002)
                  m_EnableOOSLog = (bool)0x02
                  m_OOSLogPath =
                      path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                      separator = "אּ¯幜"             m_EnableSerializationTest = (bool)0x63
          f = (basic_ofstream<char,char_traits<char> >)
          modstring = { (unsupported basic_string<char,char_traits<char> >) }
          mods = (unsupported vector<CStr8 >) RunGameOrAtlas (main.cpp:518)
          argc = 1 (0x00000001)
          argv = 0x01140008 -> 0x01140028 -> "C:\Users\Public\Documents\0 A.D. alpha\binaries\system\pyrogenesis.exe"
          replayFile = (unsupported basic_string<char,char_traits<char> >)
          scriptEngine =
              (Singleton<ScriptEngine>)
              m_Runtimes = (unsupported list<JSRuntime const * >)     args =
              m_Args = (unsupported vector<pair<CStr8,CStr8> >)
              m_Arg0 =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 92 ('\')
          res = 0 (0x0000000000000000)
          paths =
              m_root =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 8         m_rdata =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 1         m_gameData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 72 ('H')         m_userData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 0         m_config =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 1394         m_cache =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 2         m_logs =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 0
          replay =
              m_Stream = 0x00000004     mod =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 57836     zip =
              path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
              separator = 21300     mods = (unsupported vector<CStr8 >)
          paths =
              m_root =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 8         m_rdata =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 1         m_gameData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 72 ('H')         m_userData =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 0         m_config =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 1394         m_cache =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 2         m_logs =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 0
          builder =
              m_VFS = (shared_ptr<IVFS>)
              m_Files = (unsupported vector<Path >)
              m_TempDir =
                  path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                  separator = 448         m_NumBaseMods = 29 (0x0000001D)
      SDL_main (main.cpp:567)
          argc = 1 (0x00000001)
          argv = 0x01140008 (see above) main_utf8 (sdl_windows_main.c:126)
          argc = 1 (0x00000001)
          argv = 0x01140008 (see above) wmain (sdl_windows_main.c:151)
          argc = 1 (0x00000001)
          wargv = 0x00CED198 -> 0x00CED1A0 -> 67 (0x0043)
          wenvp = 0x00CEFC00 -> 55024 (0xD6F0)
          argv = 0x01140008 (see above)
          retval = 0 (0x00000000)
          i = 1 (0x00000001) CallStartupWithinTryBlock (wseh.cpp:364)
          ret = 22425920 (0x01563140) RtlSubscribeWnfStateChangeNotification (:0) RtlSubscribeWnfStateChangeNotification (:0)
      errno = 0 (No error reported here)
      OS error = 1392 (Bestand of map is beschadigd en onleesbaar.)
    • I agree overall with DarcReaver, except the tone...

      In short, you're talking about cost of opportunities.
    • Hello After I installed the game I get an error msg: Function call failed: return value was 0 (No error reported here)
      Location: file_system.cpp:158 (CreateDirectories) Call stack: 00847498 00848A23 00841035 008410C4
      errno = 0 (No error reported here)
      OS error = 1392 (Bestand of map is beschadigd en onleesbaar.) (Map is damaged or unreadable)   I am on Windows 10. What can I do to fix this?   Thanks Meri
    • Yes, loot system. Ofc you bring it up.  Guess what you need to kill 50 women (!) to gain back enough resources to replace a single !!!! soldier in the current concept. Even if you put in 50% more loot you still need to kill multiple units to actually get something back in return. And even then I still loose resources for every second the army doesn't gather resources. So in short, reasons to keep the army in the city and boom: 1) no risk of loosing soldiers
      2) guaranteed income and not by chance of killing enemies
      3) no need to reassign replaced soldiers in the base to resources
      4) If I attack I risk roughly half or even 3/4 of my economic power (number of citizen soldiers) to actually attack an enemy who has just as many units and gets an advantage while I approach him. Tell me again, why is this risk worth it if I can just build a wall up, start booming and then spam champions + siege weapons to take out the enemy city? Heck I can even train women from every house that the civs have. Depending on the game time that's up to 20 women every couple of seconds. And all those can harvest resources aswell.
      Ever seen a 5 TC Boom in Age of Empires ? Compared to this it's a Kinder Party.  
    • I'm sorry, no offence but I have to say that you have no clue of what are you talking about because i remind you of the loot system and the gain of killed unit resources. I had your same thought about the fact that apprently being difensive could be an advantage but I had to change my mind since being offensive. The game is about denying enemy economy and not cumuling resources like an ant, since resources can even get stockpiled with the result of 10k+ of food and wood in late game, sometimes even metal; I recall that not the best eco score player wins. A system with citizen soldiers isn't that different from a ringing bell with villagers defending the city.
    • Yes and that's a problem. As soon as player A stops foraging with his soldiers to attack start loosing resources because the soldiers are not collecting resources anymore. Now the enemy player B still gathers with all his women + soldiers, - attacking player A looses resources from not collecting (resources A)
      - defending player B gets additional resources because his army is collecting (resources B). So the total loss for the attacking player is resources A PLUS resources B And on top of that if you don't have women in your base the whole economy is @#&#036;%ed up and you have to reassign every unit once more to gather the required resources which is a tedious task in the lategame. So stop arguing about that the Citizen Soldier system is a good concept just because you don't get te problems that result from the system because you are not directly affected.
    • Even with the Citizen-Soldier system, I still separate my economy from my military to a certain extent. I use Female Citizens to gather food and wood, ideally totaling about 6 to 8 batches for farming since foraging is always exhausted quickly, which will probably change once the Corral trickle is implemented, and about 6 to 8 batches dedicated to woodcutting depending on how much wood is needed, and dedicated Citizen-Soldiers, that cost food and wood, in order to gather stone and metal, totaling 2 to 4 batches for each. I usually group my ranged infantry, melee infantry, ranged cavalry, and melee cavalry into separate groups for my army, and use the infantry for building structures for reaching new phases and houses until I reach the population cap. I actually don't use Champions very much, only if I feel I need to augment my Citizen-Soldiers with them, which is usually true for the Spartans and Mauryans.