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

Comments about individual builds. Bug reports, suggestions, etc.
Post Reply
Rob
Site Admin
Posts: 1161
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: 1161
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: 1161
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

Post Reply