.NET Version of Quake II
MSwanson writes "It seems that Vertigo Software has ported the Quake II source code to Microsoft's .NET platform. Not only did they add a heads-up display in the .NET managed version, but they also say that the managed version initially ran faster than the native version. After changing some optimization settings, the native version now runs 15% faster than managed .NET code. Still pretty impressive. Download the ported version along with source code at the Vertigo site."
.NET is EVIL, isn't it?
Pig Statistics
Introduction A "cold" contact is when a reptile food seller calls to sell you Iguana food, but doesn't even know if you own an Iguana. A "warm" contact is when a reptile food seller who owns an Iguana calls on the phone to sell you Iguana food because he read an article that you wrote in a recent "Reptile Weekly." When the caller opens with the fact that they also own an Iguana, and were contacting you because they'd just read your article in "Reptile Weekly," you probably wouldn't be inclined to hang up on this person. You may have Iguana food stacked to the rafters, but knowing a shared interest exists, you'll probably talk to this stranger. People respond to other people with shared interests. Few respond to e-mail or phone calls from people they don't know. Starting a dialog To successfully start a dialog with a professional peer you need a message that interests the other person enough that they will respond to you. You, presumably, have a success record of good communications skills with people you already know. At some point in time, your friends or coworkers were new to you. You discovered ideas, interests, experiences -- friends in common, or goals you shared, and then built a friendship from these common threads. The same thing applies in building bridges with people who will be able to help you realize your career goals. This article is intended to help you to understand the "table structure" necessary to build dialogs with new professional peers through "warm contacts" and "cold contacts." In career terms, warm contacts are starting points that can include referrals from family and friends; internship and volunteer work references; current or former classmates; university alumni associations; current or former teachers; fellow SIG members; Industry-specific Associations and local chapters; user groups; current and former coworkers and managers. A cold contact is a person who doesn't already know you, with whom you have not (yet) found a common thread, and there is no direct referring source. Codeproject authors and members fall into the warm contact category because we share a community and an interest in software development. A fellow alumnus of the university you graduated from is a warm contact, even if the only common bond with this person was from reading a conference speaker biography. You share a group affiliation and educational experience; and chances are, if you read their biography in a conference program, you also share an interest in the conference or speaker topic. Researching your contact Front-end research can make a huge difference between cold contacts and warm contacts. People are listed on the internet because they have a public interest or achievement, group or university membership; hobby; and other personal or professional reasons. Once you have a contact name, using several search engines, identify additional common threads you share. Read papers, posts, work examples, biographies, or whatever you find for insights to their ideas, interests, experiences, or goals. There is a wealth of information available to you. Use it. However, only use information that is publicly available, or that came through a direct referral from someone they know (and, ideally, whom they respect.) Privacy and business ethics are big concerns today. Here are some other sources: Shared acquaintance, personal or work experience, interest, group membership, or university affiliation Industry visibility, or conference presenter Contact wrote a white paper, article, posting, or knowledge-based article She/he was quoted in industry article or on a portal Participates in a newsgroup or other post Making contact Before making initial contact, ask yourself "Why this person?" and then tell them why up front, in a compelling and brief manner. Also consider what you want from this contact. You should have a reason, or a result that you want for contacting any industry peers. Here are a few suggestions: Technical help or advice Recognize their professional achievement or work Feedback
Im just a misunderstood youth......
So they're still using some native C++ code? Big deal. Sounds like they just put a .NET wrapper around the QuakeII Engine, and they're still using native code to do all the heavy lifting. So you're still tied to Windows, and it runs 15% slower....fantastic.
.NET implementation (and runs only 15% slower), then I'll be impressed.
Now, when they have a version written purely in managed code than can run on any
Quake II .NET is a version of the popular Quake II game, ported to native and managed C++ using Microsoft® Visual Studio® .NET(TM) 2003
Can someone fill me in here? What is the big deal? Id has always used the MS compilers for that platform. So they just updated it to work with the latest release of the compiler. Wow, fancy shit.
-molo
Using your sig line to advertise for friends is lame.
I guess I'll never get it.
The message on the other side of this sig is false.
but they also say that the managed version initially ran faster than the native version. After changing some optimization settings, the native version now runs 15% faster than managed .NET code
Anyone else misread that at first to mean they changed optimization settings on the managed code, and now it runs slower than the native version....
so where's a bittorrent link to get the Quake 2 demo? ID is slashdotted.
m o-x86.exe
ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-de
arg.
THERE IS NO DATA. THERE IS O
By running as managed code (this is REAL .Net) it was 15% slower. By running non-managed (no CLR) it was full speed (or 15% faster than the managed .Net code).
VC++.Net is just the same as VC++ 6 with a different IDE as long as you're not using managed code. If you are using managed code you might as well program in VB or C#, it all compiles to the same shit.
In looking at the linked site I noticed that their port includes a "Quake 2 Radar". This is actually constitutes a new cheat. There was a cheat w/ a radar called the "Z-bot" as well as the ZR-Bot. If you have a radar and no one else does then you can frag them right as they turn a corner befor they know what hit them. The radar is a huge advantage.
If you play halflife and you have played against wall hackers then this would be the equivalent done in a different manner but with the same end result.
You aren't free to do anything, until you've lost everything.
- This is a proof of concept that Microsoft's "Managed C++" stuff may be an interesting technology.
- If it is viable for Quake 2, it might be viable for any future game coming to PC, XBOX or even Phantom. Remember that having
.NET (or Java with JNI as well, see this nice soviet Sturmovik simulator which really owns you ;D ...) allows you to access several non time-critical libraries (chat, rankings), or to prototype in an easier way several features that you wish to implement, without introducing slowdowns in the development and security issues (XBox savegame hack anyone?).
- Anyway, remember that if you find Managed code to be too slow for your projects, you can always bridge your code with COM+, as Direct-X up to version 8 do succesfully
:D... then using a COM+ component is easy as hell with .NET (let's hope that Mono makes this easy for Bonobo components too soon).
The drawbacks: don't expect this to be ported on Mono asap, Mono still lacks a Managed C++ compilerIf really Managed C++ isn't too much slower than C given the standard optimizations Managed C++ may become a viable platform for development in the end. We will see what will happen as Microsoft's JIT compiler matures.
I can remember Sony and other vendors being interested in a Java Gaming Profile for consoles... a very hefty addition to J2ME with JNI libraries for Physics, "Game Lobby" functionalities and mp3 streaming. That JCP anyway seems (in my experience) to be stalled. We will see if adoption of Managed C++/Managed DirectX will occur and will help the adoption of "Virtual Machines" technology in game consoles as well and revitalize the interest. Many titles, like Nihilistic Entertainment (of Zerstorer fame) Vampire The Masquerade use or used Java as a powerful scripting engine.
+ + + +
And now imagine embedding Microsoft Flight Simulator 2004 with Excel.NET... oh WAIT!
"I am slashbot, hear me roar!"
tired of seeing trolls.
sean
Where can I get a copy or at least the list of updated optimizations to the native version? I'd love to get it to run 15% faster on my P200 that I have for Q2.
E.
Never rub another man's rhubarb - The Joker
Don't tell me this is a .NET 1.1 port! .NET!
I don't give a crap about that C/C++ conversion/rip, I just want it to run on the _compatable_ version of
So does .Net solve the Multi player problem with allowing ping floods to ruin connections to game servers?
I think not.
Dolemite
_________________
Save the World! Use a Quote!
Me and none of my friends have any problems using punkbuster. Maybe you are just retarded or something. You probably suck at gaming anyway. If you figure it out and get it to work like MOST people, come online and be a nice target for me and my friends.