Google App Engine เป็นแพลตฟอร์มที่ดีสำหรับ MMO ออนไลน์หรือไม่


10

ฉันกำลังดูแนวคิดบางอย่างของการสร้างเกม MMORPG ระดับสเกลใน Java ซึ่งเป็นโครงการด้าน / งานอดิเรกเพื่อช่วยกระบวนการเรียนรู้ของฉัน

ฉันได้เล่นกับ GAE แล้วและได้วางแอปพลิเคชันบนเว็บที่เรียบง่ายฉันกำลังคิดที่จะใช้สิ่งนี้เป็นแพลตฟอร์มสำหรับเกม

นี่เป็นความคิดที่ดีหรือไม่? มีเกมที่ใช้แพลตฟอร์มดังกล่าวบ้างไหม? ฉันไม่เห็นข้อ จำกัด ใด ๆ เลยนอกจาก Google อาจจะสามารถ "เป็นเจ้าของ" ได้มากกว่าตัวฉันเอง

คำตอบ:


3

เรียงลำดับขึ้นอยู่กับว่าคุณต้องการเวลาในการตอบสนอง / ความเร็วเท่าใด

คำขอ HTTP ทุกครั้ง (ไปยังเซิร์ฟเวอร์เฉพาะ) ใช้เวลาระหว่าง 300-600 มิลลิวินาที ในแอพเอ็นจิ้นที่ดูเหมือน 600-900 ms หรือมากกว่านั้น (ถ้าคุณมีคำถามมากมาย) ในเวลาเดียวกันการเชื่อมต่อกับ GAE จะต้องใช้เวลาน้อยกว่า 30 วินาทีดังนั้น ...

ทั้งหมดหมายความว่าคุณจะต้องทำการสำรวจช้าซึ่งอาจดีพอสำหรับเกมเทิร์นเบสไม่ใช่เกมเรียลไทม์

หากคุณต้องการเล่นเกมเรียลไทม์คุณต้องออกจาก HTTP และไปที่ TCP หรือ UDP (โดยเฉพาะ UDP)

ต้องบอกว่าถ้าการเชื่อมต่อช้า / ไม่ใช่เวลาจริงนั้นดีพอสำหรับเกมของคุณ GAE ปรับขนาดได้ค่อนข้างถูกและแก้ไขปัญหาได้มากมาย (ไม่ จำกัด ขนาดของฐานข้อมูลไม่มีปัญหาสแปมกับอีเมลจำนวนมาก ฯลฯ )


TCP ไม่ใช่ตัวเลือกถ้าคุณต้องการเรียลไทม์
o0 '

4
^^^ ตำนานทั่วไป
U62

* สำหรับค่าที่แตกต่างของเรียลไทม์
DFectuoso

1
TCP จัดการแบบเรียลไทม์ได้ดีถ้าคุณจัดการแพ็คเก็ตของคุณอย่างถูกต้อง ไม่มีจุดในการส่ง 10 แพ็คเก็ตไปยังปลายทางเดียวกันภายในไม่กี่มิลลิวินาทีเมื่อคุณสามารถจัดกลุ่มเข้าด้วยกัน
Stephen Belanger

@ สตีเฟ่น: ใช่ ด้วยเทคนิคที่เหมาะสมคุณสามารถบรรลุความเร็วและความน่าเชื่อถือที่เหลือเพียงความกังวลเท่านั้นคือความเร็วในการเชื่อมต่อ
Moshe Revah

3

มันไม่ได้เป็น MMO อย่างแน่นอน แต่นี่เป็นหนึ่งในบทความที่ฉันอ่านเมื่อเร็ว ๆ นี้ในการใช้ App Engine เป็นเซิร์ฟเวอร์เกมแบ็คเอนด์:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

ฉันใช้ GAE เป็นแบ็คเอนด์สำหรับโครงการสองโครงการของฉันซึ่งไม่ได้เป็น MMO แต่ฉันก็ชื่นชมมันเป็นแพลตฟอร์มการพัฒนาเว็บที่แข็งแกร่งซึ่งง่ายต่อการใช้งานโดยทั่วไปและราคาถูกสำหรับการทดลองและ บูตจาก

@DFectuoso ชี้ให้เห็นว่าสำหรับ MMO แบบเรียลไทม์คุณจะมีปัญหาในการใช้เว็บเซิร์ฟเวอร์ใด ๆ โดยเฉพาะอย่างยิ่ง App Engine ที่น้อยลง อย่างไรก็ตาม MMO แบบเทิร์นเบสและ / หรือโซเชียลอาจเป็นไปได้ที่จะใช้ App Engine เป็นแบ็คเอนด์ แต่เพียงผู้เดียว

ท้ายที่สุดมันก็ขึ้นอยู่กับสถาปัตยกรรมเกมของคุณ มีกลยุทธ์สำหรับการทำตามเวลาจริงหรือแกล้งทำตามเวลาจริงโดยที่เซิร์ฟเวอร์หลักเป็นเว็บเซิร์ฟเวอร์เช่น App Engine:

  • คุณสามารถทำการสื่อสารแบบเรียลไทม์แบบ peer-to-peer, อัพเดทเฉพาะเซิร์ฟเวอร์ในช่วงเวลาที่สำคัญ
  • คุณสามารถลองใช้การสื่อสารแบบเรียลไทม์กับกลยุทธ์เช่นการทำโพลแบบยาวซึ่งเรียกว่าเมื่อเร็ว ๆ นี้ว่า "คำขอดาวหาง" ซึ่งคุณทำการร้องขอไปยังเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์จะไม่ "ตอบสนอง" เสร็จสิ้นซึ่งเป็นการร้องขอที่ยาวมาก / polling แต่อนุญาตให้เว็บเซิร์ฟเวอร์ส่งข้อมูลใหม่อย่างต่อเนื่องเมื่อพร้อมใช้งาน (การสนับสนุนดาวหางที่ลึกลงเป็นคุณลักษณะที่จะเกิดขึ้นใน App Engine ตามแผนงาน)
  • ในกรณีของ App Engine คุณสามารถใช้ XMPP / Jabber (โปรโตคอล IM แบบเปิด) เพื่อสื่อสารได้อย่างรวดเร็ว (เกือบจะตามเวลาจริง) กับเซิร์ฟเวอร์เกมของคุณ มันอาจไม่ใช่สถานที่ที่ดีในการสร้างเกมแบบเรียลไทม์ แต่ก็มีบอทแชทที่น่าสนใจมากมายที่เขียนด้วยการรองรับ XMPP ของ App Engine

นี่คือตัวติดตามปัญหาสำหรับการสนับสนุน Comet (เนื่องจากฉันไม่สามารถฝังลิงก์ในโพสต์จริงได้ - ต้องมีคะแนนชื่อเสียงเพิ่มขึ้นอย่างเห็นได้ชัด): code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.