PTE Build 82821-pte is up now!

Discussion in 'Planetary Annihilation General Discussion' started by mkrater, June 3, 2015.

  1. Remy561

    Remy561 Post Master General

    Messages:
    1,016
    Likes Received:
    641
    Agreed!! More and less 'big' tech cards should make the game a lot more interesting. I really like the idea of having to choose units themselves instead of unit sets because I usually find a complete tech card within the first few free tech areas at the beginning. So you get a basic set of units from your starting loadout and build your set of units from that point via tech :)

    For efficiency, as I showed before, BACON+Combat Commander tech = unstoppable, the efficiency cards should be fleshed out in smaller cards and as Quitch suggested, why not make those efficiency cards stackable. That could mean multiple 10% more health card and 5% more damage card instead of a double health card + 25% damage and double speed card in one time which makes you unbeatable. A player should never be unbeatable because that takes the fun out of the game ;)

    Special 'smaller' boss battles for more powerful cards should also be implemented to give players a hard time to earn a great advantage via the tech cards offered which is great. But before this is implemented, players should be able to see which system is counted as a 'harder' battle. Maybe show an exclamation mark when a system next to it is reached to show that it is a dangerous system ;)
    Alpha2546 and igncom1 like this.
  2. igncom1

    igncom1 Post Master General

    Messages:
    7,961
    Likes Received:
    3,132
    +1 to all the GW talk above!
    Remy561 and Alpha2546 like this.
  3. davostheblack

    davostheblack Well-Known Member

    Messages:
    364
    Likes Received:
    313

    Further thoughts on possible GW development directions:

    - The tech and buffs could be given the same treatment as RPG items; "green" items, that are common but low powered, "blue" more powerful and less common, "orange" Sets of items that have synergy's if you collect the whole set (so, as a possible example, if you collect all Bot Health/Ammon/Speed techs, you also get -15% Metal cost for bots), and "red" super items that are "rare" as in you might only find 3 or 4 on an Uber galaxy, but still always present in every GW

    - You could also allow Subtractive Nerfs to cards as well; so a huge bonus to one thing would cause something else to be more expensive. -75% cost to metal for a Nuke would mean +25% cost for your anti nukes and energy, or +100% health to Commander means -25% build speed for Commander.


    - Granulated and stackable techs could be a thing; collect 5 cards of +5% eco boost, and allow them to stack on one data slot

    - Sub Commanders could be given boosts too!

    - More information regarding the planets in each GW , something like the PAMM mod "Advanced Planet Details" would be what I see for the task. Add in an "enemy commander" counter and that'd be all that's needed. https://forums.uberent.com/threads/rel-advanced-planet-details-71379.54290/


    - "Sub Commander Priorities" This one is certainly more Moon Shot than anything else in the thread; advanced options to dictate the behaviour of your own Sub Commanders. Being able to ask them to rush orbital, turtle up or focus on eco would be very cool indeed, as long as they were easy enough to set. @sorian; your AI has become damn impressive; could this ever be a feature? how much work would be needed?
    ace63, Quitch, Remy561 and 2 others like this.
  4. optimi

    optimi Well-Known Member

    Messages:
    572
    Likes Received:
    652
    I'd definitely like to see more focus on Sub Commanders. For example, we could customise the cards each one has from a bank of collected cards, giving us something to do with them other than discard them. We could change the colour scheme or model of each one. It would make building up a personalised army of Commanders a big part of Galactic War.
    Remy561 and igncom1 like this.
  5. igncom1

    igncom1 Post Master General

    Messages:
    7,961
    Likes Received:
    3,132
    Like Xcom!
    davostheblack likes this.
  6. optimi

    optimi Well-Known Member

    Messages:
    572
    Likes Received:
    652
    Exactly what I was thinking of :p
  7. wondible

    wondible Post Master General

    Messages:
    3,315
    Likes Received:
    2,089
    A lot of the ideas could be done as mods (not always easily, but possible), surprisingly this one could be done to a limited extent - AI recently got personality tags; the default GW sets them all to something like GWAlly (which is only used to prevent them building catalysts) So with enough AI config and some UI elements you could set the personality before the match started.
  8. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    64bit Arch with a Broadwell based IGP. It's not crashing for me, but that's about it. In return I've got ugly black borders around every single Coherent overlay and icon.
  9. crizmess

    crizmess Well-Known Member

    Messages:
    434
    Likes Received:
    317
    How to create a messed up graph:
    1) Play an AI skirmish on the current PTE
    2) After winning, open up chrono cam and rewind to a former time
    3) Press "Play from here"
    4) Win again and look at the statistic graph to see the beauty of a messed up graph.
    graph.png
    BTW:
    I did a second rewind (because winning is so much fun) and from what I can tell it didn't update the graph at all.
  10. Remy561

    Remy561 Post Master General

    Messages:
    1,016
    Likes Received:
    641
    Really like the positive/negative aspect!! This means the big buff cards can remain but haveing a bad side on other areas and make the tech choice at the end of a game even harder! Extra powerful vehicles? -> extra weak air/bots or 50% extra expensive etc. This would help on all fronts, from the problem of becoming overpowered to the problem of some tech cards being too good to be true. So Uber plz <3

    And if my memory is correct, there was a supcom commander from Sorian which you could command via pings.

    Also really love the customizing of sub commanders! Or how about getting a sub commander means the ability to invite a friend over to your GW games. This would be a great step for introducing the COOP Galactic War!
    FSN1977 likes this.
  11. Quitch

    Quitch Post Master General

    Messages:
    5,885
    Likes Received:
    6,045
    The difficulty jump between Relentless and Absurd feels pretty huge in GW.
    Last edited: June 7, 2015
    davostheblack likes this.
  12. Alpha2546

    Alpha2546 Post Master General

    Messages:
    977
    Likes Received:
    1,561
    Its insane isn't it :p
  13. Quitch

    Quitch Post Master General

    Messages:
    5,885
    Likes Received:
    6,045
    It could certainly use some adjustment. I think it's more that Relentless is too easy, or perhaps add a level above Absurd where you can put the truly challenging stuff.
  14. DeathByDenim

    DeathByDenim Post Master General

    Messages:
    4,328
    Likes Received:
    2,125
    Interesting. Do those black borders go away if you use --software-ui?

    I wonder if it's the KDE4 stuff for me. Experimenting time, I guess. :)
  15. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    Without --software-ui, I don't even get past the black screen on the intro UI. These black borders appear to be an artifact of the composition process, not the actual rendering of the respective Coherent context.
  16. DeathByDenim

    DeathByDenim Post Master General

    Messages:
    4,328
    Likes Received:
    2,125
    Well, I did some more digging. I examined the core dump with gdb, and the crash seems to occur in engine/breakpadutil/breakpadutil.cpp:47:
    Code:
    Core was generated by `./PA'.
    Program terminated with signal SIGABRT, Aborted.
    #0  0x00007f1c7b257cc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
    56  ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
    (gdb) bt
    #0  0x00007f1c7b257cc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
    #1  0x00007f1c7b25b0d8 in __GI_abort () at abort.c:89
    #2  0x000000000085f739 in outOfMemoryAbort ()
      at /home/jenkins/build_root/workspace/pa_pte_linux/pa/pte/engine/breakpadutil/breakpadutil.cpp:47
    #3  0x00007f1c7bb6138b in operator new(unsigned long) ()
      from /home/username/Games/PA/PTE/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #4  0x00000000004b0c98 in allocate (this=<optimized out>, __n=18446744073709551615)
      at /usr/include/c++/4.8/ext/new_allocator.h:104
    #5  _M_allocate (this=<optimized out>, __n=18446744073709551615) at /usr/include/c++/4.8/bits/stl_vector.h:168
    #6  _M_create_storage (__n=18446744073709551615, this=<synthetic pointer>)
      at /usr/include/c++/4.8/bits/stl_vector.h:181
    #7  _Vector_base (__a=..., __n=18446744073709551615, this=<synthetic pointer>)
      at /usr/include/c++/4.8/bits/stl_vector.h:136
    #8  vector (__a=..., __n=18446744073709551615, this=<synthetic pointer>)
      at /usr/include/c++/4.8/bits/stl_vector.h:270
    #9  PendingFileLoadCall::startLoading()::{lambda()#1}::operator()() const (__closure=0x9aa1480)
      at /home/jenkins/build_root/workspace/pa_pte_linux/pa/pte/client/client_game.cpp:5081
    #10 0x000000000043a455 in operator() (this=0x9acd718) at /usr/include/c++/4.8/functional:2468
    #11 invoke (this=0x9acd6f0)
      at /home/jenkins/build_root/workspace/pa_pte_linux/pa/pte/engine/zu/scoped_callback.h:110
    #12 operator() (__closure=<optimized out>)
      at /home/jenkins/build_root/workspace/pa_pte_linux/pa/pte/engine/zu/scoped_callback.h:210
    #13 std::_Function_handler<void (), zu::ScopedCallback::capture() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/4.8/functional:2071
    #14 0x00000000008fb433 in operator() (this=0x7f1c73b90e20) at /usr/include/c++/4.8/functional:2468
    #15 crom::ThreadPool::threadExecute (this=0x22b9eb0)
      at /home/jenkins/build_root/workspace/pa_pte_linux/pa/pte/engine/crom/threadpool.cpp:104
    #16 0x00007f1c7bbb3c00 in ?? ()
      from /home/username/Games/PA/PTE/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #17 0x00007f1c7d3e7182 in start_thread (arg=0x7f1c73b91700) at pthread_create.c:312
    #18 0x00007f1c7b31b47d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
    
    The outOfMemoryAbort is weird though, as this laptop has 24 GB available, and PA uses a fraction of that at the time of the crash, which seems to indicate that PA is requesting an impossibly large amount of memory to generate that error.
  17. crizmess

    crizmess Well-Known Member

    Messages:
    434
    Likes Received:
    317
    A quick look at the bits/std_vector.h of gcc-4.8 tells you that __n is indeed the size of memory in bytes the capacity of a vector in number of items to be allocated:
    Code:
      pointer
      _M_allocate(size_t __n)
      { return __n != 0 ? _M_impl.allocate(__n) : 0; }
    
    ...
    
    private:
      void
      _M_create_storage(size_t __n)
      {
      this->_M_impl._M_start = this->_M_allocate(__n);
      this->_M_impl._M_finish = this->_M_impl._M_start;
      this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
      }
    
    So, during load PA tries to allocate 18446744073709551615 bytes items, which is assuming that a item is of the size of 1 byte somewhere around 16 exabytes (I actually had to look that one up) of memory.
    Yes. your 24 gigabytes of RAM are definitely to small for this. Actually I don't know if there currently are computer systems that support a memory allocation that big.

    But I've seen this number before, it's the result of casting a signed long of -1 to std::size_t
    Code:
      cout << ((std::size_t)-1l) << endl;
    
    But what does it tell us?
    vector_base::_M_create_storage is only called from constructors, even in the class std::vector. So from my perspective there are only two possible errors here:
    * Someone constructed a vector with a given capacity (std::vector(size_t size)), but the capacity was set to -1 by some error condition before hand that is only triggered on linux.
    * Someone constructed a vector and tried to initialize the first element. I've seen this every now and then: People think that std::vector<int>(-1) constructs a vector containing one element with -1. But this is not how it works. It calls the constructor mentioned above (std::vector(size_t size)) which tries to allocate (std::size_t)-1 elements, which is instead of being negative a very large number. Seeing this only on linux could be caused by MSVC doing some clever bad magic to prevent this and gc++ being more strict to the c++ specification here.
    Last edited: June 8, 2015
    DeathByDenim, jomiz and whisperr like this.
  18. wondible

    wondible Post Master General

    Messages:
    3,315
    Likes Received:
    2,089
    Credits galaxy needs to be updated. Most stars have default descriptions and no enemy. On the upside, it seems you can select difficulty now.
  19. Sorian

    Sorian Official PA

    Messages:
    998
    Likes Received:
    3,844
    Looking at this now. It appears the game is failing to load your replay files. Trying to determine why that would be happening, and also protecting that from crashing the client.
  20. mkrater

    mkrater Uber Alumni

    Messages:
    1,349
    Likes Received:
    1,830
    Can you tell me more about your reproduction of this issue? It sounds like you fought 1 of the 2 commanders and defeated it, then did a rewind and fought the second. Did you rewind back where the first commander was still defeated, but was able to continue to fight and defeat the second?

Share This Page