เมื่อสร้างต้นแบบฉันจะสำรวจพฤติกรรมของเกมได้ง่ายขึ้นได้อย่างไร


49

ฉันสร้างเกมอินดี้ด้วยตัวเอง แต่โดยปกติแล้วฉันมักจะหมดแรงเมื่อฉันได้พัฒนาเกมใหม่ขึ้นมาสู่ระดับที่สามารถเล่นกับพฤติกรรมได้ฉันจึงตัดสินใจปรับแต่งแทนที่จะสำรวจ ด้วยผลลัพธ์อันน่าสะพรึงกลัว

การปรับแต่งกับการสำรวจ
(ภาพจากบล็อกอินเตอร์คอม )

ตัวอย่างเช่นฉันพบว่ารอบการวนซ้ำสำหรับพฤติกรรมการปรับแต่ง (เช่นการเชื่อมโยงและการเริ่มต้นแอปพลิเคชัน C ++ ใหม่) เป็นเวลานานพอที่พวกเขาจะฆ่าความคิดสร้างสรรค์ทั้งหมด ฉันกำลังสร้างเครื่องมือเพื่อจัดการกับสิ่งนี้

มีวิธีอื่นใดอีกที่จะสำรวจพฤติกรรมของเกมได้อย่างรวดเร็ว? ฉันสนใจวิธีการที่นักพัฒนาอินดี้ใช้เช่นเดียวกับ บริษัท ขนาดใหญ่


1
นั่นเป็นภาพที่ดีมาก มาจากไหน?
Superbest

ฉันคิดว่าสิ่งที่คุณกำลังทำอย่างเป็นทางการเรียกว่า "การทดสอบหน่วย" โดยเฉพาะถ้าคุณต้องการปรับแต่งส่วนเล็ก ๆ ของเกมในแต่ละครั้ง น่าเสียดายที่เกมนั้นยากต่อการทดสอบหน่วยเพราะมันยากที่จะแยกส่วนประกอบและยากที่จะทำการทดสอบอัตโนมัติ (เพื่อที่จะสามารถตัดสินใจผ่าน / ไม่ผ่าน) การอ่านเกี่ยวกับกลยุทธ์การทดสอบหน่วยอาจให้แนวคิดที่เป็นประโยชน์แก่คุณ
Superbest

5
@Superbest ที่ดีที่สุด: ฉันรู้ว่าการทดสอบหน่วยภายในและคุณไม่สามารถเปรียบเทียบการสำรวจพฤติกรรมกับการทดสอบหน่วย เมื่อสำรวจพฤติกรรมที่คุณต้องการโหลดเอ็นจิ้นเกมส่วนใหญ่พร้อมกับเนื้อหาที่เกี่ยวข้อง การทดสอบหน่วยเป็นเพียงเมื่อคุณรู้ว่าคุณกำลังจะไปไหน ในกรณีนี้ไม่มีใครรู้ นั่นเป็นเหตุผลที่มันเป็น "การสำรวจ" ไม่ใช่ "การปรับแต่ง" Pic จากอินเตอร์บล็อก
Jonas Byström

เมื่อคุณกำลังทดสอบในโหมดดีบั๊กคุณสามารถเปลี่ยนรหัสของคุณเมื่อคุณหยุดมันชั่วคราว (อย่างน้อยใน Visual Studio) ตราบใดที่คุณไม่เปลี่ยนไปมาก (ฟังก์ชั่นส่วนหัว ฯลฯ ) คุณสามารถโหลดมันในเกมที่หยุดชั่วคราวของคุณด้วยเวลารวบรวมสั้น ๆ
Tobias B

@TobiasB: ในทางปฏิบัติฉันพบว่าน่าเสียดายที่ไร้ประโยชน์ โดยเฉพาะอย่างยิ่งเมื่อคุณมีกลไกเกมของคุณกระจายออกไปในสคริปท์วัตถุในเกมที่มีอยู่แล้วทรัพย์สินและอื่น ๆ ฉันไม่แน่ใจด้วยซ้ำว่า Visual Express ฟรีรองรับ แต่ยังไม่ได้ใช้จริงเป็นเวลา 14 ปี! :)
Jonas Byström

คำตอบ:


30

ดังที่คุณได้กล่าวไว้เมื่อคุณทำงานเกี่ยวกับกลไกเกมความเร็วของการวนซ้ำนั้นสำคัญมาก เวลาที่นานขึ้นระหว่างการคิดการดัดแปลงและความสามารถในการทดสอบกับการดัดแปลงนั้นยิ่งคุณจะมีประสิทธิผลน้อยลงและยิ่งคุณมีสมาธิมากขึ้น ดังนั้นคุณต้องการจัดการเวลาการทำซ้ำของคุณอย่างแน่นอน

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

เอ็นจิ้นสมัยใหม่ขนาดใหญ่จำนวนมาก (Unity, Unreal และอื่น ๆ ) มีแนวโน้มที่จะทำเช่นนี้โดยใส่เครื่องมือแก้ไขไว้ในเอ็นจิ้นเกมเพื่อให้คุณสามารถปรับเปลี่ยนส่วนใหญ่ได้โดยไม่ต้องรีสตาร์ทเกม เอ็นจิ้น / เกมขนาดเล็กมักจะมุ่งเน้นไปที่การทำงานในทิศทางอื่น ทำให้เกมรวบรวมและเปิดใช้อย่างรวดเร็วโดยไม่สำคัญว่าคุณจะต้องเริ่มเกมใหม่สำหรับการเปลี่ยนแปลงแต่ละครั้ง คุณจะยังอยู่ในและทดสอบก่อนที่ช่วงเวลาห้าวินาทีจะหมด

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

ฉันเคยเห็นคนอื่น ๆ ที่เข้าหาปัญหาโดยการวางตรรกะของเกมลงใน DLL และปล่อยให้เกมปฏิบัติการในหน่วยความจำโหลด DLL ในขณะที่เกมกำลังทำงานอยู่ดังนั้นคุณสามารถสร้าง DLL ขึ้นมาใหม่และโหลดใหม่ภายใน โหลดได้แล้วไฟล์ปฏิบัติการดังนั้นคุณไม่จำเป็นต้องโหลดซ้ำ / สร้างสินทรัพย์ศิลปะของเกมอีกครั้ง ดูเหมือนว่าฉันจะบ้าไปแล้ว แต่ฉันก็ทำไปแล้ว

ง่ายกว่านั้นมากคือการระบุลักษณะการทำงานของเกมและ / หรือการกำหนดค่าในสคริปต์หรือไฟล์ข้อมูลและให้วิธีที่จะทำให้ระบบของคุณโหลดไฟล์เหล่านั้นอีกครั้งไม่ว่าจะตามความต้องการหรืออาจแค่เฝ้าดูพวกเขาสำหรับการปรับเปลี่ยน ดาวน์โหลดเกมใหม่อีกครั้งแล้วเริ่มใหม่อีกครั้ง

มีวิธีการมากมาย เลือกสิ่งที่ดีที่สุดสำหรับคุณ แต่หนึ่งในกุญแจสู่ความสำเร็จในการปรับแต่งของช่างเกมคือการทำซ้ำอย่างรวดเร็วมาก หากคุณไม่มีสิ่งนั้นเกือบจะไม่สำคัญว่าคุณจะทำอะไร


3
คุณสามารถอธิบายรายละเอียดเกี่ยวกับโหมดเกม "ทดสอบ" ของคุณได้หรือไม่? คุณสร้างชิ้นส่วนของเกมที่นี่และแต่ละส่วนเมื่อใดก็ตามที่คุณต้องการทำซ้ำหรือไม่? คุณต้องใช้เวลานานแค่ไหนในการตั้งค่า "ชิ้น" ของคุณ สิ่งที่เหลืออยู่และอย่างไร คุณมีฟังก์ชั่น "บันทึกเกม" และ "โหลดเกม" สำหรับประเภทนี้หรือไม่
Jonas Byström

2
@ JonasByströmฉันไม่รู้เกี่ยวกับเขา แต่เมื่อฉันสามารถควบคุมสถานะเกมของฉันได้ดีฉันมักจะมีรุ่น "Debug" ทางเลือก (มักจะเป็นIF DEBUGคำสั่งของตัวแปล) ที่ตรงไปยังสถานะ "ทดสอบ" ของฉัน (ข้ามเมนูเกม เป็นต้น) ซึ่งเป็นเพียงพื้นที่เล่นกระดูกเปล่าที่มีสินทรัพย์ใด ๆ ที่ฉันกำลังทดสอบอยู่ในขณะนั้น ดังนั้นโดยทั่วไปฉันรวบรวมไฟล์ปฏิบัติการสำรองที่โหลดระดับที่ต่ำลงโดยอัตโนมัติ (สินทรัพย์ที่น้อยกว่าในการโหลด + ไม่รบกวนด้วยเมนูเกมทุกครั้ง)
Superbest

@ JonasByströmฉันแบ่งเกมของฉันออกเป็น "โหมด" มันเป็นเพียงเครื่องจักรขนาดใหญ่ ดังนั้นโดยทั่วไปแล้วฉันจะมีโหมด "หน้าจอชื่อ", โหมด "ในเกม", โหมด "เครดิตเลื่อน" ฯลฯ พวกเขาก็เหมือนกับเกมฝังตัวอยู่ภายในปฏิบัติการ โหมด "การทดสอบ" ของฉันเป็นสิ่งที่ "UITest" ซึ่งจะโหลดและวาดส่วนติดต่อผู้ใช้โดยไม่ต้องโหลดเนื้อหาเกมอื่น ๆ หรือ "RenderTest" ซึ่งจะโหลดและวาดวัตถุบางอย่างโดยไม่ต้องโหลดสิ่งอื่นใด
Trevor Powell

@ JonasByströmเมื่อฉันต้องการสร้างโหมดการทดสอบใหม่โดยทั่วไปจะใช้เวลาสองสามนาทีในการเขียนโค้ดซึ่งตั้งค่าสิ่งเฉพาะที่ฉันต้องการทดสอบและการพึ่งพาใด ๆ ที่อาจมี หรืออีกวิธีหนึ่งฉันสามารถปรับโหมดการทดสอบที่มีอยู่ในไม่กี่วินาที (ตัวอย่างเช่นโดยทั่วไปฉันจะปรับเปลี่ยนโหมด UITest ที่มีอยู่ของฉันเพื่อโหลด UI ที่แตกต่างกันแทนที่จะสร้างใหม่) แม้ว่ามันจะไม่สำคัญเท่าใดนักในการตั้งค่า ประเด็นก็คือเมื่อมีการตั้งค่าฉันสามารถวนซ้ำด้วยความเร็วที่รวดเร็วอย่างไร้เหตุผลซึ่งทำให้ฉันมีประสิทธิภาพในช่วงเวลาการทำซ้ำ
Trevor Powell

1
@ JonasByströmนอกจากนี้ยังเป็นที่น่าสังเกตว่า "การซื้อคอมพิวเตอร์ที่เร็วกว่า" เป็นคำตอบทางกฎหมายอย่างสมบูรณ์สำหรับคำถามที่ว่า และบ่อยครั้งที่มันเป็นทางออกที่ถูกที่สุดเมื่อเทียบกับการลงทุนเวลาของคุณในการใช้แท่นทดสอบพิเศษ การทำให้เวลาในการทำซ้ำของคุณลดลงเป็นการลงทุนที่คุณใช้เวลา / เงิน / ความพยายามอย่างมากในการลงทุนล่วงหน้า แต่จ่ายเงินปันผลจำนวนมากตามถนน
Trevor Powell

20

เพื่อสร้างต้นแบบที่ดีให้ลดค่าใช้จ่ายในการทดสอบแนวคิด

เวิร์กโฟลว์ของฉันถูกปรับสำหรับเกมเล็ก ๆ แต่ฉันพบว่าสิ่งเหล่านี้มีประโยชน์:

  • เทคโนโลยีที่เป็นมิตรกับต้นแบบ  ฉันพบว่ามีประโยชน์ในการใช้ภาษาและกรอบการเขียนโปรแกรมแบบไดนามิกเช่นLua ( LÖVEดีสำหรับ 2D), JavaScriptหรือLisp / Schemeซึ่งการให้โปรแกรมทำสิ่งที่ต้องใช้การกดแป้นพิมพ์เพียงเล็กน้อย ของทุกอย่างอื่น เมื่อคุณรู้ว่าคุณต้องการอะไรและต้องการปรับแต่งเพิ่มประสิทธิภาพหรือพอร์ตไปยังเครื่องมืออื่น ๆ
  • การควบคุมเวอร์ชัน  เก็บต้นแบบในการแก้ไขควบคุมพื้นที่เก็บข้อมูล สาขาต้นสาขามักจะ สิ่งนี้ทำให้คุณรู้สึกสะดวกสบายในการลองสิ่งต่าง ๆ โดยไม่ต้องกังวลว่าคุณจะสูญเสียหรือลืมบางสิ่ง ( Gitมีรูปแบบการแตกแขนงที่ถูกที่สุด)
  • สร้างระบบอัตโนมัติ  ตรวจสอบให้แน่ใจว่าคุณต้องทำน้อยที่สุดเท่าที่จะทำได้เพื่อให้ได้งานจริง ในความคิดของฉันไม่ต้องมีการกดปุ่มมากเกินไป: ผมมักจะมีMakefileกับmake watchเป้าหมายที่ทำงานinotifywaitในวงปฏิกิริยาที่จะยื่นการเปลี่ยนแปลงโดยการรวบรวมโดยอัตโนมัติ / วิ่งเกม ในภาษาที่แปลหรือคอมไพล์ JITนี่เป็นทันที

1
Lua ดูเหมือนจะไม่สนับสนุนรหัส hotswapping หมายความว่าคุณต้องรีสตาร์ทเกม / ต้นแบบเพื่อทดสอบการเปลี่ยนแปลงของคุณ?
Jonas Byström

6
รหัส Hotswapping Lua เป็นไปได้อย่างแน่นอน
Josh

1
@ JonasByströmเป็นไปได้ แต่ภายใต้สภาพแวดล้อมที่เหมาะสมเท่านั้น หากคุณไม่พบหนึ่งเขียนหนึ่งรหัสแหล่งที่มาของ Lua ถูกเขียนใน C จึงพกพาไปได้ทุกที่ที่รับฟังก์ชั่นแบบ C ผสมกับ OpenGL, SDL 2 หรือไลบรารีการตัดกราฟิก / ฮาร์แวร์และสร้าง hotswapping IDE
Pharap


2
@ JonasByström: ... ยกเว้นการเดินทางกลับสู่ดวงจันทร์ :(
Mason Wheeler

11

ในฐานะนักพัฒนาที่เน้นการทำต้นแบบเป็นส่วนใหญ่นี่เป็นคำแนะนำเล็กน้อยจากประสบการณ์ของฉัน

  1. ใช้เครื่องมือที่ช่วยให้คุณทำการเปลี่ยนแปลงได้อย่างรวดเร็ว ซึ่งรวมถึงสิ่งที่ชอบ "ไม่รอการรวบรวม" แต่ "สิ่งที่เปลี่ยนแปลงที่รันไทม์" นอกจากนี้ยังมี "ความสะดวกในการตรวจแก้จุดบกพร่อง", "ความพร้อมใช้งานของสินทรัพย์ทดสอบ" ฯลฯ ผมเองรัก Unity3D แต่ก็ไม่เครื่องมือที่ดีที่สุดออกมี เครื่องมือที่ดีที่สุดขึ้นอยู่กับเกม: ตัวอย่างเช่น Unreal Engine รวบรวมรหัสวิธีช้ากว่า Unity3D แต่สามารถเรียกใช้ไคลเอนต์ที่เชื่อมต่อหลายเครื่องได้อย่างรวดเร็ว สำหรับเกมบนเครือข่ายมักจะชดเชยต้นทุนการรวบรวม พิจารณาความคุ้นเคย หากคุณเป็นหวือหวาที่มี C ++ แม้แต่เครื่องมือ Javascript ที่ดีที่สุดก็ไม่ได้ดีอะไรมากนักและในทางกลับกัน อย่าใช้เวลาดิ้นรนกับเทคโนโลยีที่ไม่คุ้นเคย (ฉันหมายถึงเรียนรู้ภาษา / กรอบงานอื่น ๆ แต่ไม่ใช่ในเวลาเดียวกันกับการสร้างต้นแบบที่สำคัญ)
  2. เรียนรู้ที่จะทิ้งคุณสมบัติที่มีอยู่อย่างไร้ความปราณี การยึดติดกับสิ่งที่คุณนำไปใช้แล้วเป็นคำสาปแช่งสู่ต้นแบบที่ประสบความสำเร็จ แต่การปล่อยให้งานของคุณยาก
  3. หากคุณไม่ได้ทำงานกับผู้ออกแบบเกมให้ใส่เส้นแบ่งที่ชัดเจนระหว่าง "การสวมหมวกโปรแกรมเมอร์" และ "การสวมหมวกนักออกแบบ" การเพิ่มฟีเจอร์การเล่นเกมสุดเจ๋งใหม่ดูน่าดึงดูดมาก แต่อย่าทำอย่างนั้นเมื่อคุณอยู่ในตำแหน่งนักออกแบบ ลองสร้างเพลย์สนุก ๆ (ควรมีหลายรูปแบบ) กับสิ่งที่คุณมี ทำรายการคุณสมบัติที่จะช่วยแล้วนำไปใช้ (บางส่วน)
  4. การสร้างต้นแบบอย่างรวดเร็วเกี่ยวข้องกับการสร้างสมดุลระหว่างสิ่งที่ตรงกันข้าม คุณต้องการทำให้เร็วที่สุดเท่าที่จะเป็นไปได้ดังนั้นคุณจึงเขียนโค้ดที่ไม่ดี แต่คุณต้องการเปลี่ยนสิ่งต่าง ๆ ให้ได้มากที่สุดดังนั้นคุณต้องเขียนโค้ดที่ดี! เรียนรู้ที่จะปรับสมดุลทั้งสองนี้ ขออภัยฉันไม่สามารถคิดถึงคำแนะนำที่เป็นรูปธรรมเกี่ยวกับวิธีการทำสิ่งนี้ได้ แต่อย่างน้อยก็ต้องตระหนักถึงปัญหานี้ (-8

ดูเวลาที่ต้นแบบของคุณต้องการ จากประสบการณ์ของฉันคุณต้องการมีรุ่นที่สามารถเล่นได้ในสองวันสูงสุด - เริ่มจากศูนย์ และคุณต้องการทดสอบคุณลักษณะใหม่หนึ่งหรือสองอย่างทุกวัน หากคุณไม่บรรลุเป้าหมายเหล่านี้ให้ค้นหาวิธีที่รวดเร็วขึ้น


ฉันคิดว่าคุณสมบัติแตกต่างจากการสำรวจพฤติกรรม ฉันต้องการสำรวจ "ความรู้สึก" คุณสมบัติเป็นเหมือนการเรนเดอร์ที่สวยงามสำหรับฉัน: ไม่จำเป็นและไม่สัมพันธ์กับความสนุกของเกม Minecraft, Candy Crush, Tetris และเกมที่คล้ายกันพิสูจน์ได้ว่า IMHO
Jonas Byström

@Jonas Byströmเพื่อชี้แจง: ที่นี่โดย "คุณสมบัติ" ฉันหมายถึงการเปลี่ยนแปลงที่สำคัญในการเล่นเกม นั่นคือการแสดงผลที่ไม่สวยงามโดยเฉพาะ แต่บางอย่างเช่น "เพิ่มวิธีสร้างบล็อก" หรือ "เพิ่ม mobs ที่โจมตีและฆ่าผู้เล่น" เมื่อสร้างต้นแบบ Minecraft
ไม่เป็นไร

1
ความสำคัญของประเด็นที่สองของคุณคือ "ปล่อยให้ฟีเจอร์ต่างๆ" ไม่สามารถคุยโวได้ ขั้นตอนการสำรวจหลายครั้งล้มเหลวเนื่องจากไม่ได้บอกว่า "ไม่" กับคุณลักษณะที่ล้มเหลวซึ่งต้องใช้เวลา 2 สัปดาห์
Kostas

หมายเหตุเกี่ยวกับจุดที่ 4 ฉันคิดว่ากุญแจสำคัญในการทำความเข้าใจสิ่งที่คุณจะต้องเปลี่ยนในรหัสได้อย่างรวดเร็ว อย่าลืมเปิดเผยค่าที่คุณรู้ว่าคุณต้องการปรับแต่ง ปล่อยส่วนอื่น ๆ ของรหัสที่ฝังไว้หากคุณรู้ว่าพวกเขาไม่ส่งผลกระทบต่อการเล่นเกมมากและเปิดเผยในภายหลังเมื่อคุณต้องการ คุณต้องทำสิ่งนี้ออกมาอย่างรวดเร็ว แต่ถ้าคุณสามารถลองออกแบบสถาปัตยกรรมของคุณจากคำว่าไปเพื่อให้สิ่ง 'การออกแบบเกม' หันหน้าไปทางด้านหน้าและทำความสะอาดถ้าเป็นไปได้ส่วนที่เหลือสามารถกระท่อนกระแท่นได้
sydan

1
@sydan ความจริงที่โชคร้ายคือความคิดของคุณในสิ่งที่รหัสคือ "หันหน้าไปทางด้านหน้า" ผิด ฉันหมายความว่ามันเสมอว่าสิ่งที่คุณคิดว่าไม่ควรเปลี่ยนเป็นสิ่งที่มีพลังมาก เมื่อทำการสร้างต้นแบบคุณควรเตรียมพร้อมที่จะเปลี่ยนแปลงตัวอักษรทุกด้านและทำมันให้รวดเร็ว
ไม่เป็นไร

5

หนึ่งสามารถแบ่งการพัฒนาเกมระหว่างสี่ขั้นตอนเหล่านี้:

  • การสร้างต้นแบบ
  • การปรับแต่งการเล่นเกม
  • พัฒนาการ
  • การปรับแต่งประสิทธิภาพ

การสำรวจการเล่นเกมฉันเชื่อว่าส่วนใหญ่เกิดขึ้นในช่วงการสร้างต้นแบบและนี่คือคำแนะนำที่ฉันพยายามทำตาม:

  • เริ่มออกแบบด้วยต้นแบบกระดาษ หลังจากที่คุณมีความคิดที่ชัดเจนว่าเกมเป็นอย่างไรให้เริ่มเขียนโค้ดเพื่อให้คุณรู้สึกได้ถึงการโต้ตอบ บางทีนี่อาจจะไร้ประโยชน์สำหรับเกม 3D แต่โดยส่วนตัวแล้วมันช่วยฉันได้มากในอดีต

  • รหัสรู้ว่าคุณจะทิ้งรหัสของคุณหลังจากที่คุณทำเสร็จแล้ว สิ่งนี้จะช่วยให้คุณมีอิสระในการเลือกเกมเอ็นจิ้น

  • รอบการวนซ้ำที่เร็วถือเป็นสิ่งสำคัญ (อย่างที่คนอื่น ๆ ได้ชี้ไว้ก่อนหน้านี้) เลือกเอ็นจิ้นเกมตามความสามารถในการแสดงสิ่งที่คุณเขียนได้อย่างรวดเร็ว คุณไม่ต้องกังวลเกี่ยวกับประสิทธิภาพหรือความเที่ยงตรงของกราฟิกในระยะนี้

  • จำกัด ขอบเขตของคุณ ถ้าการเล่นเกมที่แท้จริงคือ 2D (เกมกลยุทธ์ปกติ JRPG) ต้นแบบใน 2D ในขั้นตอนนี้คุณจะดูแลเกี่ยวกับความคิดเห็นเกี่ยวกับการเล่นเกม

  • อย่าเสียเวลาขัดเกลาหรือค้นหาทรัพย์สิน เขียนบางสิ่งบางอย่างบนกระดาษถ่ายภาพของมันตัดมันใน Photoshop อาจจะสีมันและใช้เป็นสไปรต์ เปิดไมโครโฟนแล้วพูดว่า "pew pew" ใส่สองก้อนและทรงกลมเข้าด้วยกันและคุณมีหุ่นยนต์ โปรดจำไว้เสมอการสำรวจความเป็นไปได้ในการเล่นเกมเป็นสิ่งสำคัญอันดับแรกและเพียงของคุณ

หลังจากตัดสินใจเลือกต้นแบบที่สนุกแล้วให้เริ่มปรับแต่ง ฉันไม่คิดว่าจะมีเหตุผลในการเปลี่ยนเทคโนโลยียกเว้นถ้ามีองค์ประกอบการเล่นเกมที่ต้องการ

ต่อมาในขั้นตอนการพัฒนาคุณจะต้องสร้างต้นแบบที่สมบูรณ์ในขณะที่พัฒนาเกมใหม่ที่ดูดีขึ้นเสียงดีขึ้นและรู้สึกดีขึ้นมากขึ้น ที่นี่คุณจะต้องเลือกเอ็นจิ้นเกมจริงเพื่อใช้งาน

ในที่สุดใช้สิ่งที่คุณมีและปรับแต่งให้ใช้ทรัพยากรน้อยลง

ส่วนใหญ่ของสิ่งที่ฉันอธิบายข้างต้นเป็นความรู้ทั่วไป แต่การใส่ไว้ในรายการการแยกกระบวนการพัฒนาทั้งหมดช่วยให้ฉันใส่มุมมองแต่ละขั้นตอน ฉันหวังว่ามันจะช่วยคุณเช่นกัน


1
รูปกระดาษและ "pew pew" เป็นคำแนะนำที่ดีเยี่ยม และใช่ - รายการช่วยด้วย "ระบุลำดับความสำคัญสามอันดับแรกของคุณทิ้งหมายเลขสองและสาม" :)
Jonas Byström

4

ฉันเห็นด้วยกับคำตอบของ Trevor Powellว่าความเร็วของการทำซ้ำเป็นสิ่งสำคัญสำหรับคุณที่จะอยู่ในอารมณ์ที่สร้างสรรค์แทนการขัดเงา แหล่งที่มาของแรงบันดาลใจที่ยิ่งใหญ่สำหรับฉันก็คือการพูดคุย Bret วิกเตอร์"ประดิษฐ์บนหลักการ" น่าเสียดายที่มันยากที่จะหาเครื่องมือจริงในระดับนั้น ฉันพยายามสร้างด้วยตนเองเพื่อการพัฒนา Python ที่ให้ฉันเรียกใช้รหัส Python ของฉันในขณะที่ฉันพิมพ์ มันเรียกว่าการเข้ารหัสสดในหลาม


1
ฉันเคยเห็น vid มาก่อน แต่ลืมไปแล้ว ฮึ่ม การโต้ตอบแบบทันทีเป็นสิ่งที่ต้องมุ่งมั่น ฉันจะพยายามทำตามคำแนะนำของคุณ ใช้งานได้ดีกับปลั๊กอิน Live Coding ที่น่าสนใจ!
Jonas Byström

2

ฉันสร้างเครื่องมือสร้างต้นแบบที่เรียกว่าTrabantซึ่ง:

  • เป็น 3D และช่างเกมเท่านั้น (ไม่มี UI, ไม่มีข้อความ, ไม่มีอะไร);
  • ต้องใช้รหัสน้อยมากและไม่มีสินทรัพย์ในการสร้างต้นแบบ;
  • โมเดล 3 มิติสร้างขึ้นในรหัสโดยใช้งานศิลป์ ASCII ;
  • อนุญาตการทำซ้ำย่อยวินาที
  • มีการสนับสนุนการจำลองร่างกายแข็ง
  • ทำงานบน Windows, Mac, Linux และ iOS;
  • ใช้ภาษาที่มีวัตถุประสงค์ทั่วไปที่รู้จักกันดีคือ Python
  • มี IDE สำหรับ Windows และ iOS

ฉันสร้างต้นแบบทดสอบ 30 รายการเพื่อตรวจสอบข้างต้น

ในฐานะที่เป็นTrevor Powell เน้นย้ำการทำซ้ำจะต้อง <5 วินาทีและฉันพบว่าซ้ำ <1s เกือบห้าครั้งดี:)

Anko กล่าวถึงว่าการใช้ภาษาแบบไดนามิกเป็นความคิดที่ดีที่ฉันหยิบหลามเพราะมันเป็นหนึ่งในที่สุดที่ใช้กันอย่างแพร่หลาย เกี่ยวกับการสร้างอัตโนมัติการทดสอบใน Trabant นั้นเร็วพอ ๆ กับการกด F5 ใน IDE (หรือ F6 เพื่อทดสอบบน iPad ของคุณ) และเนื่องจากไม่มีขั้นตอนการสร้างที่เกี่ยวข้อง

รหัสใบปลิวเป็นหนึ่งในไม่เป็นไรของ คบ ฉันเห็นด้วยอย่างยิ่งและ Trabant บังคับใช้มัน


1

นอกเหนือจากความเร็วการทำซ้ำของ Trevor Powell ซึ่งเป็นสิ่งสำคัญจริง ๆ ต่อไปนี้เป็นข้อควรพิจารณาที่มีประโยชน์อื่น ๆ :

มันเหมือนรหัสที่ดี ...

มี IFs มากมายในนั้น

แนวคิดที่มั่นคงมากขึ้นเท่าไหร่คุณก็ยิ่งต้องการของเล่นน้อยลงเท่านั้น หากคุณรู้ว่าเนื้อสัตว์ที่คุณพยายามทำคืออะไรการทำต้นแบบจะกลายเป็น - สิ่งที่ต้องใส่และวิธีการจัดเรียงสิ่งต่าง ๆ ที่เกี่ยวข้องกับเสาหลัก (สิ่งสำคัญของคุณ)

หากคุณกำลังเริ่มต้นเหมือนคนอื่น ๆ - ไม่แน่ใจว่าสิ่งที่คุณต้องการทำคุณมุ่งหน้าไปในทิศทางและสำรวจมากในทางของภาพที่คุณแสดง

ไม่ว่าด้วยวิธีการที่มุ่งมั่นกับเทคโนโลยีนั้นไม่เกี่ยวข้องหากสิ่งที่คุณกำลังมองหาสามารถจำลองได้โดยไม่ต้องใช้ความลึกมาก - สร้างต้นแบบในทุกสิ่งที่คุณต้องการ / ทำได้

อย่าเสียเวลาเพิ่มวินาทีในทรัพยากร ดาวน์โหลดทุกอย่างจากอินเทอร์เน็ต กรรมสิทธิ์หรือไม่ คุณกำลังมองหาแนวความคิดในที่ทำงานของคุณ - ถ้ากราฟิกเป็นคุณสมบัติหลักของคุณไม่มีใครจะฟ้องคุณเพื่อทดลองกับเสียงของคนอื่นพื้นผิวและทุกสิ่งคุณยังไม่ได้วางไว้บนชั้นวางในร้านเลย หากคุณไม่ได้รับเงินทุน - เชื่อว่าคนที่มีแนวคิดคุ้มค่าคือสิ่งที่คุณจะได้รับเงินเพื่อรับทรัพยากรที่คุณต้องการ ฉันเคยเห็น game studio folks นำเสนอแนวความคิดเกี่ยวกับเกมกับเกมที่เป็นกรรมสิทธิ์ของ modded ที่พวกเขาไม่มีสิทธิ์

มันเหมือนกับว่าคุณกำลังสร้างโมเดลมาตราส่วน ในขณะที่มันยอดเยี่ยมที่จะมีชีวิตจำลองขนาดเล็กของสิ่งที่คุณต้องการ บางครั้งมันก็เพียงพอที่จะตัดมันออกมาจากนิตยสารงานฝีมือมือและกาวชิ้นด้วยกัน ทุกคนที่มีรอยเปื้อนแห่งจินตนาการจะไม่คิดว่าคุณจะสร้างตึกระฟ้าจากกระดาษแข็งเดียวกับที่คุณแสดงแบบจำลองขนาดด้วย และในอุตสาหกรรมสร้างสรรค์ - เป็นที่นิยมมากกว่าที่จะทำงานกับคนที่มีจินตนาการ หากพวกเขาไม่สามารถมองผ่านปัญหาร่างเพื่อดูศักยภาพเบื้องหลังแนวคิดทั้งหมดพวกเขาจะไม่ค่อยชื่นชมผลิตภัณฑ์ ไม่มีความกตัญญูหมายความว่าพวกเขาเต็มใจที่จะยอมรับน้อยลงและนั่นก็เป็นเกลียวลง ความแตกต่างระหว่างการตั้งค่าทัศนคติของเด็กเพื่อที่จะพิชิตโลกและแทนที่จะบอกว่า "คุณไม่สามารถแม้แต่จะผูกรองเท้าให้ถูกวิธี

ไม่ว่าคุณจะทำอะไรจำไว้เสมอว่าทัศนคติเพียงอย่างเดียวนั้นเพียงพอที่จะทำลายทุกสิ่งโดยไม่คำนึงถึงศักยภาพทางเทคโนโลยีหรือเศรษฐกิจของมัน

ฉันเคยสร้างต้นแบบเกมโดยใช้ภาพ GIF แบบพิเศษและให้สิ่งเล็ก ๆ น้อย ๆ แก่พวกเขาเกี่ยวกับจาวาสคริปต์ มันไม่พราว แต่มันมีจุดประสงค์ในการแสดงสิ่งที่ฉันต้องการแสดง ไม่สำคัญว่าคุณจะพัฒนามันสำหรับ Xbox ในภายหลังโดยเฉพาะ

หากความคิดของคุณซับซ้อนกว่าต้นแบบอย่างง่ายคุณจะต้องทำการวิจัยในเทคโนโลยีที่คุณจะใช้ - เนื่องจากต้นแบบกำลังจะได้รับการนั่งร้านสำหรับสิ่งสุดท้าย (เพียงเพราะลงทุนจำนวนมากใน มันและมันจะไม่ถูกโยนทิ้งเบา ๆ ) - ถ้าคุณได้รับการอนุมัติอย่างชัดเจน


การสร้างต้นแบบจำเป็นต้องใช้เฉพาะในกรณีที่คุณกำลังสร้างสิ่งใหม่นั่นคือสิ่งที่กำหนด การขาดเครื่องมือไม่เหมือนกับการขาดปากกาและกระดาษ irl - และแน่นอนว่าคุณสามารถวาดบนทรายได้ แต่ไม่มีประสิทธิภาพ ฉันสร้างTrabantเพื่อหลีกเลี่ยงการต้องไป GIF + JS หรือรอยขีดข่วน
Jonas Byström
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.