Builds 279, 280 and 281 -- New compiler plus misc.

Comments about individual builds. Bug reports, suggestions, etc.
Post Reply
Rob
Site Admin
Posts: 1353
Joined: Sat Sep 25, 2010 6:52 am

Builds 279, 280 and 281 -- New compiler plus misc.

Post by Rob » Sat Apr 06, 2019 11:28 am

Code signing certificate

I signed Mojo with a code signing certificate. Hopefully this will stop false alarms from security programs that mistakenly tell people that Mojo is infected.

Icon

Mojo now has an icon.

New compiler

This is the first version of Mojo built with Microsoft’s latest and greatest Visual Studio 2019. This may have exposed bugs or made something break. If you see a new problem, please send me an email and tell me so I can fix it. My email address is rob@mojoware.org.

Show DAOC Build Timestamps

A new feature, Show DAOC Build Timestamps, has been added to the Debug menu. It examines your default DAOC installation (the one you specify in Set DAOC Options) and tells you when the main executable files were built.
Author of Mojo

Shanley
Posts: 1
Joined: Sat Apr 06, 2019 3:34 am

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Shanley » Mon Apr 08, 2019 7:44 am

What will Visual Studio 2019 bring to the table in the future updates, Rob?

Rob
Site Admin
Posts: 1353
Joined: Sat Sep 25, 2010 6:52 am

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Rob » Mon Apr 08, 2019 8:19 am

With Mojo the new compiler won't change anything from the user's point of view. Any feature that is visible to users that I can add with this new compiler I could have also added with old compilers.

It's helpful to me, though, because it does more thorough error checking, it has new language features that let me write stuff more quickly, it has more cool nifty tools built into it, etc.

It's sort of like I could drive from New York to Boston in a 1999 Chevy but if I have the choice, I'd rather drive a 2019 Porsche. They both get me to Boston but the second way is more fun.

In general newer versions of the compiler can produce faster programs, but nothing that Mojo does is noticeably slow so that's not an issue here. (Of course launching DAOC is noticeably slow but all that time is due to actions by the operating system and your SSD or hard disk. Mojo's actions when you launch take a few millionths of a second.)
Author of Mojo

Rob
Site Admin
Posts: 1353
Joined: Sat Sep 25, 2010 6:52 am

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Rob » Mon Apr 08, 2019 1:46 pm

I just got curious and looked to see which version of the compiler is used by Broadsword to compile the DAOC client. It's Visual Studio 2003.

Mythic couldn't have used that compiler originally because it didn't exist in 1999 or 2000 when they started writing the DAOC client, so we know for sure that the client was migrated to a new compiler at least once.

My guess (and my recollection) is that the client was originally written in Visual C++ 6.0 (published in 1998) and migrated once to VS 2003.

Then, apparently Mythic and Broadsword never switched again to a new compiler. For sixteen years they have kept using the ancient 2003 compiler and they are still using it today. Why is this? My guess is that the original programmers who wrote the game were still working on it in 2003, so they migrated the code to the new compiler at that time. It's natural for people to migrate their own code because they wrote it and they are comfortable are comfortable changing it. But after 2003, those original programmers who wrote the game, stopped working on it -- maybe they left the company -- and other programmers took over. These replacement programmers were reluctant to change the program more than absolutely necessary, maybe because they lacked the knowledge or maybe because they were cautious or maybe because their bosses didn't want to pay them to do the work. Whatever the reasons, they limited themselves to small changes and never risked migrating to a new compiler. I wasn't there so this is just my guess.
Author of Mojo

Simhigi
Posts: 6
Joined: Fri Jan 31, 2020 6:40 pm

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Simhigi » Sun Mar 15, 2020 11:12 am

Rob wrote:
Mon Apr 08, 2019 1:46 pm
I just got curious and looked to see which version of the compiler is used by Broadsword to compile the DAOC client. It's Visual Studio 2003.

Mythic couldn't have used that compiler originally because it didn't exist in 1999 or 2000 when they started writing the DAOC client, so we know for sure that the client was migrated to a new compiler at least once.

My guess (and my recollection) is that the client was originally written in Visual C++ 6.0 (published in 1998) and migrated once to VS 2003.

Then, apparently Mythic and Broadsword never switched again to a new compiler. For sixteen years they have kept using the ancient 2003 compiler and they are still using it today. Why is this? My guess is that the original programmers who wrote the game were still working on it in 2003, so they migrated the code to the new compiler at that time. It's natural for people to migrate their own code because they wrote it and they are comfortable are comfortable changing it. But after 2003, those original programmers who wrote the game, stopped working on it -- maybe they left the company -- and other programmers took over. These replacement programmers were reluctant to change the program more than absolutely necessary, maybe because they lacked the knowledge or maybe because they were cautious or maybe because their bosses didn't want to pay them to do the work. Whatever the reasons, they limited themselves to small changes and never risked migrating to a new compiler. I wasn't there so this is just my guess.
I've worked on some awful code bases over the years. I recall one in particular that we inherited through an acquisition. It was a PHP web app which had no version control (the files were literally copied/renamed with numbers to track changes), no documentation, awful naming conventions, massive monolithic (thousands of lines of code) functions that made no sense. We quickly made the decision to treat it like a blackbox with inputs and outputs until we could re-write and shut it down. Hopefully the daoc code base isn't that bad, but it wouldn't surprise me given how old it is that they want to make as few changes as possible given their limited resources.

Rob
Site Admin
Posts: 1353
Joined: Sat Sep 25, 2010 6:52 am

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Rob » Sun Mar 15, 2020 2:27 pm

That's all true and I suspect also that after some point in time, they no longer had anybody in the office who could do it. After Mythic stopped developing Warhammer, why would they keep paying a salary for a Win32/C++ programmer? They were no longer in the business of creating Win32 software.

Maybe Rob Denton can do this kind of work but he's the boss and probably wouldn't want to.

About five years ago Broadsword talked to me about hiring me (didn't happen) and I got the impression that they didn't have anybody in the office that could work on the client, although they didn't tell me that explicitly. Then a year or two ago they suddenly made some changes to the client and I thought maybe they hired someone who happened to be able to do it.
Author of Mojo

Sapper17
Posts: 1
Joined: Tue Apr 14, 2020 7:04 am

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Sapper17 » Tue Apr 14, 2020 7:05 am

Hey Rob,

Not sure if you remember me, but its Vaporlock of DAOC we talked alot bout hunting Arr and all that and you intially set me up on the multibox just was wondering how ya been. when you get a chance we need to catch up.

Rob
Site Admin
Posts: 1353
Joined: Sat Sep 25, 2010 6:52 am

Re: Builds 279, 280 and 281 -- New compiler plus misc.

Post by Rob » Tue Apr 14, 2020 11:02 am

Answered with a pm.
Author of Mojo

Post Reply