ไม่ใช่แค่ทำงานได้ แต่ดีจริงๆในประสบการณ์ของฉัน ฉันได้พัฒนาเซิร์ฟเวอร์ MMO หลายเครื่องโดยใช้ C # และต้องบอกว่าฉันไม่เคยเสียใจที่เลือกภาษาและแพลตฟอร์ม
มีไลบรารีและเครื่องมือที่ยอดเยี่ยมมากมายสำหรับ C # และ. NET โดยทั่วไป - เครือข่ายการบันทึกการทำแผนที่ O / R เป็นต้นและเมื่อเทียบกับ Java C # นั้นมีความชัดเจนและ verbose น้อยกว่า (บางคนอาจโต้แย้งเกี่ยวกับเรื่องนี้ )
GC "ค่าใช้จ่าย" ที่ทำให้คนบางคนกลัวไม่ใช่ปัญหาเว้นแต่คุณจะทำผิดกฎเกี่ยวกับการจัดสรรพันล้านต่อวินาที ตัวอย่างเช่นเซิร์ฟเวอร์ปัจจุบันของเราจัดสรรได้สูงสุด 50 mb / วินาทีภายใต้ภาระหนักและ GC ไม่แนะนำความล่าช้าที่เห็นได้ชัด เราจำเป็นต้องใช้การรวมวัตถุในสถานที่เชิงกลยุทธ์ - ที่สำคัญที่สุดวัตถุที่เป็นตัวแทนของแพ็กเก็ตเครือข่ายจะถูกรวบรวมและไม่ได้เก็บรวบรวมขยะ ถึงกระนั้นแม้เมื่อปิดการรวมกำไร GC ก็ไม่ใช่ปัญหาที่ใหญ่ที่สุด
เป็นตัวอย่างของความยอดเยี่ยมของ C # นี่คือสิ่งที่เราเพิ่งนำมาใช้ เซิร์ฟเวอร์ของเราให้บริการ WCF หลายอย่างที่ไคลเอนต์เกมใช้สำหรับงานที่ไม่สำคัญและเรายังใช้บริการเหล่านี้เพื่อการดูแลเซิร์ฟเวอร์ มันกลับกลายเป็นว่าง่ายมากที่จะให้บริการ WCF เพียงแค่คืนค่าวัตถุเกมของเราไปยังผู้โทร ดังนั้นเราจึงทำเช่นนั้นทำปลั๊กอินเล็กน้อยไปที่ LINQPad ที่เชื่อมต่อกับเซิร์ฟเวอร์ของเรา - และตอนนี้เราสามารถเรียกใช้แบบสอบถามได้
from character in Service.GetOnlineCharacters()
where character.LocationManager.LocationId==5 && character.Attributes.Level<10
select new { character.Id, character.Nick }
บนเซิร์ฟเวอร์จริงไม่น้อย! ฉันไม่คิดว่าคุณสามารถทำสิ่งนี้ได้กับแพลตฟอร์มอื่น ๆ ไม่ได้อยู่ในงานสองวันอย่างน้อย