เป็นไปได้หรือไม่ที่จะพัฒนาเกมแบบผู้เล่นหลายคนด้วย HTML5


9

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

คำตอบ:


7

คุณไม่สามารถเขียนด้วย HTML5 เพียงอย่างเดียว คุณจะต้องมีการเขียนสคริปต์และเซิร์ฟเวอร์เพื่อจัดการการสื่อสารระหว่างผู้ใช้เนื่องจากข้อ จำกัด ด้านความปลอดภัยของการเขียนสคริปต์ของเบราว์เซอร์และเพื่อป้องกันการโกง

หลายคนเขียนเกม html5 หลายคนถึงแม้ว่าฉันจะมี การใช้ html5 นั้นอาจไม่ใช่ส่วนที่สำคัญที่สุดของมัน ส่วนใหญ่ของสิ่งที่จำเป็น (ถ้าไม่ทั้งหมด) มีอยู่ใน html 4.01 เช่นกัน ข้อยกเว้นคือ canvas แต่ canvas ช้ากว่า svg และ svg มีอยู่ในเบราว์เซอร์จำนวนมากแล้ว

ฉันคิดว่าสิ่งที่เกิดขึ้นจริงในเกม "html5" mania คือความสามารถในการสร้างแอปฝั่งเซิร์ฟเวอร์ใน javascript ซึ่งหมายความว่าโปรแกรมเมอร์ฝั่งไคลเอ็นต์ทุกคนสามารถสร้างทั้งระบบได้เองและพวกเขามักจะเป็นคนที่มีความคิดสร้างสรรค์เมื่อพูดถึงสิ่งต่าง ๆ เช่นเกม ไม่ต้องพูดถึงว่า JS นั้นง่ายมากแม้กระทั่งคุณยายก็สามารถเขียนโปรแกรมด้วย อาจจะ.

อัปเดตหลังจากความคิดเห็นจาก OP:

สถาปัตยกรรมทั่วไปสำหรับเกมเบราว์เซอร์จะเป็น

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

หรือในแง่ของ "ภาษา" จริง:

  • มุมมองลูกค้า: HTML5 (อาจเป็นกับ angular.js ยังไม่ได้ทดสอบว่ามันรวดเร็วแค่ไหนกับ LOTS ที่เกิดขึ้นและลองดู raphael.js สำหรับ "กราฟิก")
  • ตรรกะของไคลเอ็นต์: JavaScript (jquery / vapor / plain / any)
  • ฐานข้อมูลลูกค้า: WebSQL (ส่วนหนึ่งของ HTML5 "suite" ฉันคิดว่า)
  • การสื่อสาร: JSON (สัญกรณ์วัตถุ Javascript, วัตถุจาวาสคริปต์ต่อเนื่องเป็นหลัก) ผ่าน socket.io (ไลบรารี JS สำหรับตรวจจับโปรโตคอลการสื่อสารที่ดีที่สุดโดยอัตโนมัติ)
  • ภาษาเซิร์ฟเวอร์: เช่นเดียวกับ JS (node.js หากคุณมี TONS ของผู้ใช้งานพร้อมกันในสองสามแกนโซลูชั่นอื่น ๆ ก็มีให้เช่นกัน)
  • การตรวจสอบ: เพียงตรวจสอบให้แน่ใจว่าข้อมูลเกมที่เข้ามาของคุณ (จากลูกค้า) ถูกต้อง ไม่จำเป็นต้องตรวจสอบขาออกไม่ใช่แม้แต่กับไคลเอ็นต์ มันถือว่าถูกต้อง เสมอ
  • Game World: ชุดของข้อมูล VERIFIED ที่แจกจ่ายต่อให้กับลูกค้าทุกคนที่เข้ามา
  • ฐานข้อมูลเซิร์ฟเวอร์: couchdb, mongodb ฐานข้อมูลอะไรก็ตามที่ให้วัตถุ json แบบ raw ของคุณทำงานด้วย

นั่นแหละ. เกมอินเทอร์เน็ตที่สมบูรณ์เขียนโดยใช้ javascript และ html เท่านั้น น่ารัก


ฉันคิดว่าคำตอบของคุณน่าสนใจมากคุณสามารถให้คำแนะนำเล็ก ๆ น้อย ๆ เกี่ยวกับชิ้นส่วนที่ฉันควรสร้าง (มีความสำคัญที่สุด) ตั้งแต่ต้นจนจบและเทคโนโลยีที่ป้อนในแต่ละส่วนขอโทษเกี่ยวกับเรื่องนั้นเพียงแค่พยายามที่จะรู้ว่า . ขอบคุณ!
arrrrgv

1
+1, HTML5 คือความโกรธ แต่สิ่งที่ผู้คนเชื่อกันคือ 4.01 และจาวาสคริปต์ ฉันขอให้คุณไม่เรียก JavaScript ง่าย ๆ ได้ไหม มันมีความพิเศษ แต่ถ้าคุณต้องการเขียนโปรแกรมจริงคุณต้องเป็นโปรแกรมเมอร์ตัวจริง จาวาสคริปต์ลบการประกาศตัวแปรและการจัดการหน่วยความจำ แต่มันไม่ได้ทำให้การจัดระเบียบรหัสของคุณและการหาอัลกอริทึมและโครงสร้างข้อมูลง่ายขึ้นและคุณต้องมีความคิดและประสบการณ์ของโปรแกรมเมอร์สำหรับงานเหล่านั้น
aaaaaaaaaaaa

@ eBusiness สิ่งที่ฉันหมายถึงโดยง่ายคือมันย่อในแง่ของการเขียนโปรแกรมและกรณีการใช้งานของมันจะถูกบันทึกไว้จนตาย คุณสามารถค้นหาบทช่วยสอนหรือฟังก์ชั่นที่ทำสิ่งที่คุณต้องการ และติดตั้งง่าย (คุณไม่จำเป็นต้องมีอยู่ในเบราว์เซอร์แล้ว)
Tor Valamo

@arrrrgv อัปเดตโพสต์พร้อมคำตอบสำหรับคำถามของคุณ
Tor Valamo

1
+1 สำหรับคำตอบที่ดี แต่ฉันสงสัยว่าเกม HTML5 ที่เพิ่มขึ้นนั้นเกี่ยวข้องกับ JavaScript ฝั่งเซิร์ฟเวอร์ พูดอย่างเคร่งครัด JS ไม่ได้เป็นส่วนหนึ่งของ HTML5 ฉันคิดว่ามันเป็นคุณสมบัติใหม่เช่น Canvas, WebGL, เสียงและวิดีโอและพื้นที่จัดเก็บในตัวเครื่องที่ช่วยเพิ่มเกม HTML5 และแน่นอนความจริงที่ว่ามันใหม่และ hyped เพื่อให้ทุกคนกระโดด bandwagon
bummzack

3

ลองดูบทความที่http://smus.com/multiplayer-html5-games-with-nodeและแหล่งที่มาของบทความ โปรดทราบว่านี่ยังใช้ JavaScript สำหรับการเชื่อมต่อเครือข่าย


2
โปรดเขียน "JavaScript" เป็นคำเดียวเพื่อหลีกเลี่ยงความสับสน
o0 '

อยู่มาวันหนึ่ง Node.js ไม่จำเป็น - เมื่อการสนับสนุนข้ามเบราว์เซอร์สำหรับเว็บเบราว์เซอร์แพร่หลาย
วิศวกร

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

1
ตรวจสอบ NowJS ( nowjs.com )
Tim Holt

ซ็อกเก็ตของเว็บไม่ปลอดภัยสำหรับแอปพลิเคชันใด ๆ ซึ่งเป็นเหตุผลว่าทำไมเบราว์เซอร์จำนวนมากจึงถูกนำไปใช้งานตามแผน คุณไม่สามารถอนุญาตสภาพแวดล้อมที่เข้าถึง "ที่ใดก็ได้" และในเวลาเดียวกันสามารถรับข้อมูลจาก "ที่ใดก็ได้"
Tor Valamo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.