1. June 7, 2016  

    How are bugs originated? not exactly about WoW but more about development.

    Could somebody from the development staff explain to me (or the community) how are programming bugs originated? I'm going to start computer science on college next term and I'm really interested in this kind of stuff.

    In short insight:

    - You take A clean code (the core) and then you code B features
    - You compile the code
    - How is compiling done, exactly? is it manual or is it done by another software?
    - Code C is done, but B features aren't working exactly as they should
    - Furthermore, code A isn't working properly anymore.


    - What exactly do you mean by PORTING? is it just a (literal) copy/paste of the Lordaeron Core code (aka New Core) into the Cataclysm Core (aka Old Core) code, or is it a FUSION of both codes?

    - In case it was a fusion, would the compiling software mix up the code? in that case, are bugs and malfunctions the fault of the compiling software or the programmers?

    Let's take the following example:

    ICC is (I guess) fully scripted in the Lordaeron Core (or WOTLK for all that matters), and I guess the devs rigourously tested the same code in their test realm. We also (guess) that the devs wanted to port all of ICC and that the bugs are not done on purpose.

    So, what exactly is the reason for code A who worked perfectly on test code B, to not work on final code C?

    By this, I mean: why is the ICC code (A), and by this I mean all the bosses of ICC, which we guess worked in Test Realm (B), to not work on code C (Neltharion)? why are only 2 bosses working out of 12, if all 12 bosses were ported?
    Edited: June 7, 2016

  2. June 7, 2016  
    The following is not an official reply, and I am not a code expert. All that has been written is done with logical thinking (well logic..... whatever ;d)


    Code A has been tested on Code B, but most probably in GM-mode. Testing in GM mode gives global ideas of how scripts do their job etc. so on Code C things may be different because of no GM-mode.
    Also a thing, they stated that they could not thorougly test the whole update due to it's huge size.

    So that will actually leave out Code B.

    Code A is different from Code C, Code C has more missing features than the already not fully completed Code A. It also might "understand" things differently because it was written in a different code language.

    Code A is trinitycore 3.3.5a based, Code C is based on a different emulator than trinitycore if I am correct. (maybe an emulator based on trinitycore, but that is too indirect).
    Anyway, when you say: "1 = orc model" on Code A, and on Code C you already said "1 = human model" weird things will happen. (example taken from situation in helfire ramparts at the moment).
    Things are different and need to be synchronised more. They already attempted to do that, but it is not enough yet to do a copy-paste port.

    What do you mean with porting? Well.... let's take a look at stormwind stockades situation right now. It got "revamped" in cataclysm. In neltharion we now have both versions (wotlk and cata) online at the very same moment. It seems to be a copy paste (because it has not been overwritten).



    P.S. Code A does not work anymore because underlaying systems that are used by existing B code are changed to fit new B code from the wotlk realms. This caused issues with raids, dungeons and quests.
    Edited: June 7, 2016

  3. June 7, 2016  

  4. June 7, 2016  
    When I was working on the test realm we'd have things that worked out fine with testing but once it had been ported over to live and then retested things dont work out as well as they did, parts of coed would just not work, abilities would overscale. Even though everything worked fine on test bench.

    Im not a dev, I was just a QA with the basic understanding of programming so exactly explaining it to you I can't do but Martin gave a fairly good answer for you.

  5. June 7, 2016  
    Could somebody from the development staff explain to me (or the community) how are programming bugs originated? I'm going to start computer science on college next term and I'm really interested in this kind of stuff.
    Not a Warmane developer, but I have experience. As much as I want to give a full answer, I can't because you're asking for a book, so here are some brief explanations (and speculations of how problems could arise since I don't actually have access to their source).

    In short insight:

    - You take A clean code (the core) and then you code B features
    - You compile the code
    - How is compiling done, exactly? is it manual or is it done by another software?
    - Code C is done, but B features aren't working exactly as they should
    - Furthermore, code A isn't working properly anymore.
    Compiling is done by a compiler, which takes whichever language is used (C/C++ in this case) and translates it into a binary representation of assembly.

    - What exactly do you mean by PORTING? is it just a (literal) copy/paste of the Lordaeron Core code (aka New Core) into the Cataclysm Core (aka Old Core) code, or is it a FUSION of both codes?
    Think of porting as translating English to Spanish, everything is converted over. However, depending on what they're working on, it could be as simple as changing one line of code or entirely rewriting it and only preserving the logic.

    - In case it was a fusion, would the compiling software mix up the code? in that case, are bugs and malfunctions the fault of the compiling software or the programmers?
    It's possible, but increasingly rare now days with the newer compilers. I still make a full rebuild of projects when they're being released on my end though. Also, in this aspect it's known as linking more than fusion.

    Let's take the following example:

    ICC is (I guess) fully scripted in the Lordaeron Core (or WOTLK for all that matters), and I guess the devs rigourously tested the same code in their test realm. We also (guess) that the devs wanted to port all of ICC and that the bugs are not done on purpose.

    So, what exactly is the reason for code A who worked perfectly on test code B, to not work on final code C?

    By this, I mean: why is the ICC code (A), and by this I mean all the bosses of ICC, which we guess worked in Test Realm (B), to not work on code C (Neltharion)? why are only 2 bosses working out of 12, if all 12 bosses were ported?
    It's because they weren't entirely ported over. The newer cores have some major changes in base classes (you'll learn more about this in school/google), and while one function could have the same old parameters it might act differently and cause these unintended results even when it compiles without a warning.

  6. June 8, 2016  
    you're thinking much too general about code, like code a, code b etc. large projects like these have tons of classes and those classes interact with each other in some ways. it is practically impossible to predict all possible interactions, and write code accordingly. sometimes weird stuff happens when changes are made in old classes, and those relations/interactions btw new and old classes arent working as intended (bugs)...

  7. June 8, 2016  
    Could somebody from the development staff explain to me (or the community) how are programming bugs originated? I'm going to start computer science on college next term and I'm really interested in this kind of stuff.

    In short insight:

    - You take A clean code (the core) and then you code B features
    - You compile the code
    - How is compiling done, exactly? is it manual or is it done by another software?
    - Code C is done, but B features aren't working exactly as they should
    - Furthermore, code A isn't working properly anymore.


    - What exactly do you mean by PORTING? is it just a (literal) copy/paste of the Lordaeron Core code (aka New Core) into the Cataclysm Core (aka Old Core) code, or is it a FUSION of both codes?

    - In case it was a fusion, would the compiling software mix up the code? in that case, are bugs and malfunctions the fault of the compiling software or the programmers?

    Let's take the following example:

    ICC is (I guess) fully scripted in the Lordaeron Core (or WOTLK for all that matters), and I guess the devs rigourously tested the same code in their test realm. We also (guess) that the devs wanted to port all of ICC and that the bugs are not done on purpose.

    So, what exactly is the reason for code A who worked perfectly on test code B, to not work on final code C?

    By this, I mean: why is the ICC code (A), and by this I mean all the bosses of ICC, which we guess worked in Test Realm (B), to not work on code C (Neltharion)? why are only 2 bosses working out of 12, if all 12 bosses were ported?
    I see you are fascinated in Computer Science - but you should be aware of the following:

    Asking theoretical questions over a non-technical forum is discouraged - as it is likely a member here will give you an answer that is entirely incorrect, misleading, or information is partially missing. Therefore, it will cause some concepts to be confusing, or wrong.

    If you want to learn about Computer Science, you may take one of the options:
    1) Wait until your Computer Science teacher provides you with the correct information.
    2) Research Computer Science books, and knowledge and research the topics you may be looking for - the Dragon Book, or Compiler Construction Principles and Practices are good starting points for Compilers.
    3) Look on Stack Overflow.

    Although Stack Overflow is not entirely reliable, there are some that are the best in the world - some that are Software Developer's with 15 years of experience, ranging to the developers of Google - which, admittedly, is very rare to get a response from on that website.

    However, the point is: don't look for information regarding theoretical topics from unexperienced user's. Instead, look for advice from experienced PhD research papers, or publications from knowledgeable user's.

    Edit: If you are looking on Stack Overflow, they are very strict with questions - so asking a question there will present many problems - especially since your question is poorly formatted.

    At this stage, your best options will be to wait for your Computer Science teacher to inform you.
    If you want to learn early, research which books are best for the particular topics you want to learn - and then start reading them early.

    Hope this helps.
    Edited: June 8, 2016

  8. you guys aren't wrong but you are going way too far into programing :)
    scripting isn't that hard, but 1st you need to understant it has large limitations.

    when you start learning programing and scripting you start from making your own calculator.

    so lets say Lich King is a sipmle calculator.
    he has two abilities:
    - he add things (2+3=5)
    - he multiply things (2*3=6)

    and now lets say you want to merge two Lich King Calculators.
    - in CoreA creator named his abilities
    SPELL #1 (add)
    SPELL #2 (multiply)
    - in CoreB other creator named also named abilities
    SPELL #1 (multiply)
    SPELL #2 (add)
    now you merge those programs...

    in best case program will choose random spell definition and execute it.
    in worst case program will crash or even wont start.

    of course it is extremely simplified example, but should show you basics.
    in WoW everything have global ID that is distinct for each item, mob, spell, quest, etc, we have things like pathfinding, timers, reactives like "If A happens then B".
    also wow server from Devs side looks like wall of text and it is easy to make a mistupe <---- :)
    Edited: June 11, 2016

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •