Jump to content

hyperion

WFG Programming Team
  • Posts

    1.028
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by hyperion

  1. 0.2s is indeed so little that you could say it's effectively the same thing. Still it's a penalty nonetheless, and if needed, could be adjusted.
  2. No, batches take the same time to train but there is a pause of one turn before autotrain adds a new batch to the effective queue. If you manually add batches they go directly to the effective queue and so the 0.2s gap doesn't happen.
  3. Nice, anyway, in maps there are often a clump of school of fish, how would that look?
  4. 20 years ago C++ was the only reasonable choice for the engine, I'd still pick it today. As for scripting for mods, lua might have been an option but I guess javascript was a decent choice as well, even more in hindsight. As for writing the whole game in python, besides not being as widespread or mature at that time, search for GIL. There is no "database", just the filesystem.
  5. Another update: If I disable the optimizer in gcc the game actually runs, just played a game in wine. The only issue I noticed 0ad refuses to write a user.cfg. Also packaged tinygettext from upstream and using it as external dep. libsdl2 and rust got an update and no longer need any changes to be usable. So the current status is: Mostly runs with all optional stuff except for lobby disabled. Nothing from ./libraries, nor premake nor tinygettext from 0ad are used. Only spidermonkey and 0ad need patching. Fcollada needs a minor fix wrt pkg-config file. The rest is vanilla (Gentoo patches only if there are any). No wseh nor wdbg in 0ad, I'm gonna leave that out. Slowly getting there.
  6. With 768 min height x1.4 fits into 1080, x2.8 fits into 2160. So those two are probably the most meaningful options. x1.5 may lead to broken UI with a FullHD display.
  7. It's getting off topic. For a project like 0ad the only way I see it to be finished is when it is dead. So I hope it will never be finished but be maintained and worked on for years to come. LibreOffice or the Linux kernel aren't finished either but provide an api which they promise to not break if at all possible. If needed the API will be marked deprecated and use of will possibly spit out warnings for quite a while before being removed. There is no reason 0ad couldn't do the same if it wanted. But supporting >= without a stable api makes no sense what so ever. A modder should only ever use >= if he is exclusively using such an stable yet till now and for the foreseeable future inexistent api. PS: You could also have the mods installed into a versioned directory like replays, which could alleviate the issue of broken installs to some degree.
  8. if a mod only uses what is marked as stable/public api then it should be guaranteed to work with future releases. As 0ad doesn't have an such an api for modders there is no point in supporting the >= specification in the first place (It's always a lie). You could just treat >= as = for backward compat and issue a warning for the mod developers that >= is gone. This would prevent lot of "can't start new release" issues at little to no cost.
  9. It might make sense to not allow >= at all but a list of = only unless you start maintaining a proper api which I doubt will ever happen
  10. Some small updates: I have a static pyrogenesis.exe. It runs till after reading configuration but then fails with a pagefault (outside legal mem range). Running gdb within wine seems tricky. By default the backtrace is only framepointers and if I try dwarf-2 symbols which is apparently supported winedbg crashes. So I put debugging it aside for now. I started cleaning up my patches, only over 60 left of more than 150. I also packaged premake-5.0.0_alpha16 and rdb's fcollada and use them as external tool respectively lib; they work both fine it seems Building nvtt on mingw-w64 is completely broken I found out.
  11. "Buddhist Evangelism" isn't a { key : value } pair, so no braces around it, like for genericName.
  12. In reality it's hard to spot fish. So job well done. Maybe a hotkey to select all gaia in a selection rectangle, like observers can is all that's needed. Wouldn't be limited to fish either. There are other things hard to spot which is a given if it has to be realistic and look beautiful. Anyway, any of the make ugly but functional visual changes for competitive play belong into mods.
  13. Goldfish, they are colourful, so you easily see them.
  14. Arguably yes, but it shouldn't crash with the integrated gpu either.
  15. There is but that's a poor man choice. Premake will reject --cc=icc (cc option used to set toolset analog to os option ), so will default to probably gcc. if cc == nil then filter { "toolset:clang" } cc = "clang" filter { "toolset:gcc" } cc = "gcc" filter { "option:icc" } cc = "icc" filter {} end So the above only works because we put icc last. Often that doesn't work, if we could use toolset:icc the premake5.lua could be written a lot cleaner.
  16. Agreed, just that premake terminology is rather awful. I pass in --os=windows --cc=mingw (for better or worse), so os.istarget("windows") and os.ishost("linux") become true. Then there is the premake command system { id } which I believe sets --os=id and results in os.istarget(id) to become true. Hard to not be confused at this point. Anyway I can't take the current os.istarget("windows") path here for cross-compilation. I could rename CHOST to target_triple thou that wont change the logic.
  17. And because we define it ourself I thought it's to test whether we use a doggy compiler or such
  18. Just because there is a coment doesn't mean the code does what is intended or meaningful. Isn't one of the points of intptr_t that the round-trip is guaranteed? So why check?
  19. Was wondering why my wdbg_stub didn't get picked up, turns out due to a bug I introduced into premake5.lua the windows-only cpp files got omitted during compilation So, some time later that stuff is fixed and builds as well. Came across a curious thing static_assert((void*)intptr_t(-1)) in wmman, gcc barfs on the reinterpret_cast here, but even if not I don't see the purpose of this assert. May someone enlighten me? So, more serious business, I started to look into how to properly implement the changes into premake5.lua. Some googling makes me feel I'm among the first to ever cross-compile with premake. Many issues to address. premake-core has no icc support (--cc=icc is invalid) (optional, highly desirable) premake-core does not respect RC respectively RESCOMP (required, some symlink with PATH hacking might work) So how to handle this? Patching the copy in tree seems beyond ugly. windres doesn't support -isystem, only -I for includes So no sysincludedirs permitted. Don't use them? Build rc as a standalone static project? Does VS have something like whole-archive? Simply drop the error_dialog? Below a patch to set cc and arch usable for cross-compilation, anyone sees a setup this might break? premake-cc-and-arch.patch
  20. wdbg is problematic too, sal.h /* FIXME: __in macro conflicts with argument names in libstdc++. For this reason, * we disable it for C++. This should be fixed in libstdc++ so we can uncomment * it in fixed version here. */ #if !defined(__cplusplus) || !defined(__GNUC__) #define __in #define __out #endif so I threw it away The ancient mongoose copy also needed a minor fixup, now the project compiled, with all extras still missing. Linking is the next step, but I guess lot of changes to premake files are needed. Not yet figured out how to go about it.
  21. CBUILD, CHOST, CTARGET correspond to the configure args --build --host --target which you might be more familiar with. So I cross compile from linux to windows with CBUILD=x86_64-pc-linux-gnu and CHOST=x86_64-w64-mingw32, and I use x86_64-w64-mingw32-g++, x86_64-w64-mingw32-ar etc as well as x86_64-w64-mingw32-pkg-config. Not really familiar with premake, so whether to respect CHOST, use PKG_CONFIG=, or a switch like --with-pkg-config= or all of them I'm not sure which is most inline with how premake does things. Pulled, thanks.
×
×
  • Create New...