การพัฒนาเกม

คำถาม & คำตอบสำหรับนักพัฒนาเกมมืออาชีพและเป็นอิสระ

2
กำลังทดสอบเซิร์ฟเวอร์เกมโดยไม่มีผู้ใช้งานหรือไม่
ฉันทำงานกับการ์ดเกมและเซิร์ฟเวอร์ของมัน จะมีล็อบบี้พร้อมโต๊ะมากมายและผู้เล่นหลายคน ปัญหาเดียวคือฉันจะดูได้อย่างไรว่ามันจะจัดการกับผู้ใช้งานพร้อมกัน 100 คนโดยไม่ต้องมีผู้ใช้งานพร้อมกันหลายร้อยคนได้อย่างไร มักจะทำสิ่งนี้อย่างไร
12 c++  server  testing 

1
สิ่งจำเป็นสำหรับการสร้าง RTS [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดเมื่อปีที่แล้ว ฉันสงสัยว่าถ้าใครมีลิงค์ไปยังการอ่านหรือหนังสือที่ดีเกี่ยวกับสิ่งที่คิดเมื่อพัฒนาเกม RTS ฉันจะได้อ่านสิ่งนี้และสิ่งนี้แต่อยากจะอ่านเพิ่มเติม นอกจากนี้ฉันมีประสบการณ์การพัฒนาและไม่ช้าก็อยากจะเริ่มสร้างโครงกระดูกตัวเอง แต่ถ้าใครมีบทความเพิ่มเติมเกี่ยวกับกระบวนการ (ไม่ใช่ในการเขียนโปรแกรม แต่เพิ่มเติมเกี่ยวกับการวางแผน) ที่จะช่วยได้มาก
12 rts  planning 

1
ฉันจะวาดลูกศรที่ขอบของหน้าจอที่ชี้ไปยังวัตถุที่อยู่นอกหน้าจอได้อย่างไร
ฉันต้องการทำสิ่งที่อธิบายไว้ในหัวข้อนี้: http://www.allegro.cc/forums/print-thread/283220 ฉันได้ลองวิธีการต่าง ๆ ที่กล่าวถึงที่นี่ ก่อนอื่นฉันพยายามใช้วิธีที่อธิบายโดย Carrus85: ลองหาอัตราส่วนของสามเหลี่ยมไฮโปเทนไนต์สามเหลี่ยมสองอัน (ไม่สำคัญว่าคุณจะใช้ triagle ตัวไหนสำหรับอันอื่นฉันขอแนะนำจุดที่ 1 และจุดที่ 2 ตามระยะทางที่คุณคำนวณ) นี่จะให้เปอร์เซ็นต์อัตราส่วนของสามเหลี่ยมที่มุมจากสามเหลี่ยมขนาดใหญ่ จากนั้นคุณก็คูณค่าลบด้วยค่านั้นเพื่อให้ได้ค่าพิกัด x พิกัดและเลื่อนตามค่านั้นเพื่อให้ได้ค่าชดเชยพิกัด y แต่ฉันไม่สามารถหาวิธีคำนวณว่าวัตถุอยู่ห่างจากขอบของหน้าจอมากแค่ไหน ฉันลองใช้การฉายรังสี (ซึ่งไม่เคยทำมาก่อน) แนะนำโดย 23yrold3yrold: ยิงรังสีออกจากกึ่งกลางของหน้าจอไปยังวัตถุที่อยู่นอกจอ คำนวณว่าจุดใดที่สี่เหลี่ยมผืนผ้าตัดกับแสง มีพิกัดของคุณ ฉันคำนวณด้านตรงข้ามมุมฉากของสามเหลี่ยมที่เกิดขึ้นจากความแตกต่างในตำแหน่ง x และ y ของจุดสองจุด ฉันใช้สิ่งนี้เพื่อสร้างเวกเตอร์หน่วยตามเส้นนั้น ฉันวนลูปผ่านเวกเตอร์นั้นจนกระทั่งพิกัด x หรือพิกัด y ไม่อยู่บนหน้าจอ ค่า x และ y สองค่าปัจจุบันจากนั้นสร้างค่า x และ y ของลูกศร นี่คือรหัสสำหรับวิธีการฉายรังสีของฉัน (เขียนใน …

6
บอลฟิสิกส์: ทำให้การเด้งสุดท้ายเป็นไปอย่างราบรื่นเมื่อลูกบอลหยุดนิ่ง
ฉันได้เจอกับปัญหาอื่นในเกมลูกบอลกระดอนเล็ก ๆ ของฉัน ลูกของฉันกระดอนไปรอบ ๆ อย่างดียกเว้นในช่วงเวลาสุดท้ายที่กำลังจะมาพัก การเคลื่อนไหวของลูกบอลนั้นราบรื่นสำหรับส่วนหลัก แต่ในท้ายที่สุดลูกบอลก็กระตุกในขณะที่มันตกลงบนด้านล่างของหน้าจอ ฉันเข้าใจได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น แต่ฉันไม่สามารถทำให้มันราบรื่น ฉันจะขอบคุณสำหรับคำแนะนำใด ๆ ที่สามารถนำเสนอ รหัสอัพเดทของฉันคือ: public void Update() { // Apply gravity if we're not already on the ground if(Position.Y < GraphicsViewport.Height - Texture.Height) { Velocity += Physics.Gravity.Force; } Velocity *= Physics.Air.Resistance; Position += Velocity; if (Position.X < 0 || Position.X …
12 xna  c#  physics 

1
การค้นหาเส้นทางที่มีประสิทธิภาพในพื้นที่ว่าง
ฉันมีเกมตั้งอยู่ในอวกาศและฉันต้องการออกคำสั่งการเคลื่อนไหวซึ่งต้องใช้การค้นหาเส้นทาง ตอนนี้ฉันเข้าใจแล้วว่า A * และเช่นนั้นส่วนใหญ่ใช้กับต้นไม้และไม่ใช่พื้นที่ว่างที่ไม่มีโหนดการค้นพบ ฉันมีสิ่งกีดขวางบางอย่างซึ่งขณะนี้แสดงเป็น AABB แบบคงที่นั่นคือไม่มีสิ่งกีดขวาง "ภูมิประเทศ" ที่ไม่มีขอบเขต นอกจากนี้ฉันคาดหวังว่าอุปสรรคส่วนใหญ่จะประมาณได้อย่างสมเหตุสมผลว่าเป็นลูกบาศก์หรือทรงกลม ดังนั้นฉันจึงคิดที่จะใช้อัลกอริธึม pathfinding ที่ง่ายกว่ามากนั่นคือเพียงแค่ทำการฉายรังสีจากตำแหน่งปัจจุบันไปยังตำแหน่งเป้าหมายแล้วฉันจะได้รับรายการสิ่งกีดขวางโดยใช้การแบ่งพาร์ติชันอย่างรวดเร็ว สิ่งที่ฉันไม่แน่ใจเกี่ยวกับวิธีการกำหนดส่วนที่จัดทำแผนการรอบอุปสรรค สิ่งที่ฉันกำลังคิดอยู่ก็คือฉันจะใช้สนามที่มีศักยภาพ - นั่นคือทุกหน่วยจะรู้สึกถึงแรงผลักดันที่แข็งแกร่งจากกันและกันและแรงพอสมควรต่อจุดที่ต้องการ นี่ยังมีข้อได้เปรียบที่จะออกคำสั่งกลุ่มฉันก็สามารถสั่งให้กองกำลังระดับกลางไปยังนิติบุคคลอื่น แต่สิ่งนี้เห็นได้ชัดว่าไม่สามารถบรรลุทางออกที่ดีที่สุดได้ เขตข้อมูลที่เป็นไปได้นั้นจะได้รับการประมาณค่าอย่างสมเหตุสมผลเมื่อได้รับพารามิเตอร์ของฉันหรือฉันต้องการโซลูชันอื่นหรือไม่?
12 c++  path-finding 

6
ฉันจะกระจายทรัพยากรอย่างเป็นธรรมระหว่างโรงงานเมื่อทรัพยากรใกล้หมดแล้วได้อย่างไร
ทรัพยากรหลักในเกมของฉันคือมวลซึ่งเก็บไว้เป็นเลขทศนิยมที่เปลี่ยนแปลงตลอดเวลา โหนดทรัพยากรเพิ่มมวลและโรงงานระบายมัน ตัวอย่างเช่นถ้าฉันมีโหนดทรัพยากรที่ให้ค่า 5 มวลต่อวินาทีฉันจะได้รับ5 * deltaTจำนวนมากในแต่ละขั้นตอนของเกม มวลจะถูกปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุดและตัวบ่งชี้กำไร / ขาดทุนจะแสดงเป็นสิบ ฉันจะจัดการกับการกดปุ่มจำนวนศูนย์ได้อย่างไร สิ่งนี้จะสร้างเงื่อนไขการแข่งขันหากโรงงานหลายแห่งพยายามสร้างพร้อมกัน: โรงงานเป็นลำดับแรกในคิวหรือทำให้ทรัพยากรน้อยลงรับลำดับความสำคัญน้อยลงเมื่อมีทรัพยากรเข้ามาบ้างและสร้างได้เร็วกว่าโรงงานอื่น ฉันจะจัดการกับสิ่งนี้ได้อย่างไร ฉันควรข้ามขั้นตอนนี้ไปอย่างสิ้นเชิงหรือไม่?

1
จะรักษาโครงสร้างข้อมูลให้ตรงกันบนเครือข่ายได้อย่างไร?
บริบท ในเกมที่ฉันกำลังทำอยู่ (เรียงลำดับจากจุดและคลิกการผจญภัยกราฟิก) ทุกอย่างที่เกิดขึ้นในโลกของเกมจะถูกควบคุมโดยตัวจัดการแอ็คชั่นที่มีโครงสร้างคล้าย: ตัวอย่างเช่นหากผลลัพธ์ของการตรวจสอบวัตถุควรทำให้ตัวละครพูดว่าสวัสดีเดินนิดหน่อยแล้วก็นั่งลงฉันก็วางไข่โค้ดต่อไปนี้: var actionGroup = actionManager.CreateGroup(); actionGroup.Add(new TalkAction("Guybrush", "Hello there!"); actionGroup.Add(new WalkAction("Guybrush", new Vector2(300, 300)); actionGroup.Add(new SetAnimationAction("Guybrush", "Sit")); สิ่งนี้จะสร้างกลุ่มการกระทำใหม่ (ทั้งบรรทัดในภาพด้านบน) และเพิ่มลงในผู้จัดการ กลุ่มทั้งหมดจะถูกดำเนินการแบบขนาน แต่การกระทำภายในแต่ละกลุ่มจะถูกล่ามโซ่ไว้ด้วยกันเพื่อให้กลุ่มที่สองเริ่มต้นหลังจากที่กลุ่มแรกเสร็จสิ้น เมื่อการกระทำสุดท้ายในกลุ่มเสร็จสิ้นกลุ่มจะถูกทำลาย ปัญหา ตอนนี้ฉันต้องทำซ้ำข้อมูลนี้ทั่วทั้งเครือข่ายเพื่อให้ผู้เล่นทุกคนเห็นสิ่งเดียวกันในเซสชั่นผู้เล่นหลายคน การทำให้การกระทำแต่ละอย่างเป็นอันดับไม่ใช่ปัญหา แต่ฉันเป็นผู้เริ่มต้นแน่นอนเมื่อพูดถึงเรื่องเครือข่ายและฉันมีคำถามสองสามข้อ ฉันคิดว่าเพื่อความเรียบง่ายในการสนทนานี้เราสามารถสรุปองค์ประกอบของ action manager ให้ง่ายขึ้น: var actionManager = new List<List<string>>(); ฉันจะเก็บเนื้อหาของโครงสร้างข้อมูลด้านบนให้ตรงกันระหว่างผู้เล่นทุกคนได้อย่างไร นอกจากคำถามหลักแล้วฉันยังมีข้อกังวลอื่นอีกสองสามข้อที่เกี่ยวข้อง (เช่นความหมายที่เป็นไปได้ทั้งหมดของปัญหาเดียวกันข้างต้น): ถ้าฉันใช้สถาปัตยกรรมเซิร์ฟเวอร์ / ไคลเอนต์ (หนึ่งในผู้เล่นที่ทำหน้าที่เป็นทั้งเซิร์ฟเวอร์และไคลเอนต์) และหนึ่งในไคลเอนต์ได้วางกลุ่มของการกระทำเขาควรเพิ่มพวกเขาโดยตรงไปยังผู้จัดการหรือส่งคำขอเท่านั้น ไปยังเซิร์ฟเวอร์ซึ่งจะสั่งให้ลูกค้าทุกคนเพื่อเพิ่มกลุ่มที่ ? …

2
ฉันกำลังมองหาการสร้างการเคลื่อนไหวของรถที่สมจริงโดยใช้เวกเตอร์
ฉันรู้วิธีการทำอย่างนี้และพบhttp://www.helixsoft.nl/articles/circle/sincos.htmนี้ฉันไปแล้ว แต่ฟังก์ชั่นส่วนใหญ่ที่แสดงไม่ทำงานฉันเพิ่งได้รับข้อผิดพลาด เพราะพวกเขาไม่อยู่ ฉันได้ดูฟังก์ชัน cos และ sin แต่ไม่เข้าใจวิธีใช้หรือวิธีการทำให้การเคลื่อนที่ของรถยนต์ทำงานอย่างถูกต้องโดยใช้เวกเตอร์ ฉันไม่มีรหัสเพราะฉันไม่แน่ใจว่าจะทำอย่างไรขอโทษ ความช่วยเหลือใด ๆ ที่ชื่นชม แก้ไข: ฉันมีข้อ จำกัด ที่ฉันต้องใช้เอ็นจิ้น TL สำหรับเกมของฉันฉันไม่ได้รับอนุญาตให้เพิ่มเอนจิ้นฟิสิกส์ประเภทใด จะต้องตั้งโปรแกรมใน c ++ นี่คือตัวอย่างของสิ่งที่ฉันได้จากการพยายามติดตามสิ่งที่ทำในลิงก์ที่ฉันให้ไว้ if(myEngine->KeyHeld(Key_W)) { length += carSpeedIncrement; } if(myEngine->KeyHeld(Key_S)) { length -= carSpeedIncrement; } if(myEngine->KeyHeld(Key_A)) { angle -= carSpeedIncrement; } if(myEngine->KeyHeld(Key_D)) { angle += carSpeedIncrement; } carVolocityX = cos(angle); carVolocityZ …

4
ฉันจะกำหนดลำดับการวาดในเกมแฟลชมุมมองภาพสามมิติได้อย่างไร
นี่คือเกมแฟลชที่มีมุมมองภาพสามมิติ ฉันจำเป็นต้องรู้วิธีการเรียงลำดับวัตถุเพื่อให้ไม่จำเป็นต้องตรวจสอบบัฟเฟอร์ z เมื่อวาด สิ่งนี้อาจดูง่าย แต่มีข้อ จำกัด อื่นฉากหนึ่งอาจมีวัตถุมากกว่า 10,000 รายการดังนั้นอัลกอริทึมจะต้องทำงานในเวลาน้อยกว่า O (n ^ 2) วัตถุทั้งหมดเป็นกล่องสี่เหลี่ยมและวัตถุ 3-4 ชิ้นเคลื่อนที่ในที่เกิดเหตุ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? UPDATE ในแต่ละกระเบื้องมีเพียงวัตถุ (ฉันหมายถึงวัตถุไม่สามารถซ้อนทับกัน) และเราเข้าถึงทั้งแผนที่วัตถุและวัตถุมีตำแหน่งของตัวเอง UPDATE2 ดูตัวเลขเหล่านี้: ในวัตถุแรกสีน้ำเงินแรกควรวาดแล้วสีเขียวแล้วสีแดง ในขณะที่ในวินาทีที่คุณต้องวาดในลำดับย้อนกลับ คุณต้องวาดสีแดงก่อนแล้วจึงเป็นวัตถุสีเขียวและสีน้ำเงินในที่สุด อย่างที่คุณเห็นว่าไม่มีความแตกต่างในตำแหน่งของวัตถุสีน้ำเงินและสีแดงทั้งคู่มีระยะห่างที่แตกต่างจากกล้องและอื่น ๆ แต่เนื่องจากตำแหน่งสัมพัทธ์เป็นกล่องสีเขียวคุณต้องเปลี่ยนลำดับการวาดระหว่างสองภาพ นั่นคือสิ่งที่ทำให้ปัญหานี้เป็นระเบียบ หมายเหตุ: เนื่องจากวัตถุทั้งหมดเป็นปริซึมสี่เหลี่ยมจึงสามารถพิสูจน์ได้ทางคณิตศาสตร์ว่ามีอย่างน้อยหนึ่งคำสั่งวาดเพื่อตอบสนองความต้องการของปัญหา

4
ค้นหาจุดติดต่อด้วย SAT
ทฤษฎีการแยกแกน (SAT) ทำให้ง่ายต่อการพิจารณา Vector Translation ขั้นต่ำเช่นเวกเตอร์ที่สั้นที่สุดที่สามารถแยกวัตถุสองชนกัน อย่างไรก็ตามสิ่งที่ฉันต้องการคือเวกเตอร์ที่แยกวัตถุตามเวกเตอร์ที่วัตถุที่กำลังเคลื่อนที่กำลังเคลื่อนที่ (เช่นจุดสัมผัส) ฉันวาดภาพเพื่อช่วยอธิบาย มีช่องหนึ่งช่องคือเคลื่อนจากตำแหน่งก่อนไปยังตำแหน่งหลัง ในตำแหน่งหลังจากนั้นมันจะตัดกันหลายเหลี่ยมสีเทา SAT สามารถส่งคืน MTV ซึ่งเป็นเวกเตอร์สีแดงได้อย่างง่ายดาย ฉันต้องการคำนวณเวกเตอร์สีน้ำเงิน โซลูชันปัจจุบันของฉันทำการค้นหาแบบไบนารีระหว่างตำแหน่งก่อนและหลังจนกระทั่งความยาวของเวกเตอร์สีน้ำเงินเป็นที่ทราบกันในเกณฑ์ที่กำหนด มันใช้งานได้ แต่เป็นการคำนวณที่มีราคาแพงมากเนื่องจากการชนกันระหว่างรูปร่างจำเป็นต้องคำนวณใหม่ทุกลูป มีวิธีที่ง่ายกว่าและ / หรือมีประสิทธิภาพมากกว่าในการค้นหาเวกเตอร์จุดติดต่อหรือไม่?

2
ตัวเลขสุ่มบน C ++
เมื่อเร็ว ๆ นี้ฉันคุ้นเคยกับภาษาสมัยใหม่ซึ่งรวมถึงตัวสร้างแบบสุ่มที่ดีซึ่งมักจะเป็น Mersenne Twister; ตอนนี้ฉันกลับไปที่ C ++ ฉันต้องตัดสินใจว่าจะใช้อะไร ฉันค้นหาการใช้งานของ Mersenne Twister และฉันสังเกตเห็นว่ามีอยู่มากมาย: มีสิ่งหนึ่งที่ใช้กันอย่างแพร่หลายและแพร่หลายกว่าหรือฉันควรจะเลือกอย่างใดอย่างหนึ่งโดยสมมติว่าพวกเขาทั้งหมดดีพอ ๆ กัน?
12 c++  random 

1
ฉันจะยกเลิกการผูกและลบบัฟเฟอร์ OpenAL ได้อย่างไร
ฉันใช้ OpenAL เพื่อเล่นเสียง ฉันพยายามที่จะใช้ฟังก์ชั่นการเล่นแบบไฟและลืมที่ใช้บัฟเฟอร์ ID และกำหนดให้กับแหล่งที่มาจากพูลที่ฉันได้จัดสรรไว้ก่อนหน้านี้และเล่นมัน อย่างไรก็ตามมีปัญหาเกี่ยวกับอายุการใช้งานของวัตถุ ใน OpenGL ให้ลบฟังก์ชั่นทั้งยกเลิกการผูกสิ่งต่าง ๆ โดยอัตโนมัติ (เช่นพื้นผิว) หรือลบสิ่งโดยอัตโนมัติเมื่อในที่สุดมันก็ไม่ได้ถูกผูก (เช่นตัวแปลง) และดังนั้นจึงเป็นเรื่องง่ายที่จะจัดการการลบ อย่างไรก็ตามalDeleteBuffersแทนที่จะล้มเหลวAL_INVALID_OPERATIONหากบัฟเฟอร์ยังคงถูกผูกไว้กับแหล่งที่มา มีวิธีการ "ลบ" บัฟเฟอร์แบบเปิดที่ทำให้พวกเขาเล่นจนจบแล้วยกเลิกการผูกและโดยอัตโนมัติหรือไม่? ฉันจำเป็นต้องผูกการจัดการบัฟเฟอร์อย่างลึกซึ้งยิ่งขึ้นลงในพูลแหล่งที่มาหรือไม่ (เช่นการลบบัฟเฟอร์จำเป็นต้องตรวจสอบแหล่งที่ปันส่วนทั้งหมดด้วย) ในทำนองเดียวกันมีวิธีใช้สำนวนเพื่อแยกบัฟเฟอร์ (แต่ไม่ลบ) เมื่อเล่นเสร็จหรือไม่ มันจะดีถ้าเมื่อฉันกำลังมองหาแหล่งฟรีฉันเพียงต้องการดูว่าบัฟเฟอร์ถูกแนบเลยและไม่ต้องตรวจสอบสถานะของแหล่งที่มา (ฉันใช้ C ++ แม้ว่าวิธีการสำหรับ C ก็ใช้ได้เช่นกันวิธีคิดว่าเป็นภาษา GCd และการใช้ finalizers อาจไม่สามารถใช้ได้)
12 openal 

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

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

4
สกุลเงินคู่กับหนึ่งสกุลเงินในเศรษฐศาสตร์เกมโซเชียลและการสร้างรายได้
ไม่ใช่คำถามการเขียนโปรแกรม แต่เกี่ยวข้องกับการพัฒนาเกม ฉันกำลังสร้างเกมออนไลน์บน iPhone ซึ่งฉันต้องการเล่นฟรีโดยใช้การซื้อในแอพเพื่อสร้างรายได้ จุดสำคัญคือการทำให้แน่ใจว่าสิ่งนี้จะไม่ทำลายการเล่นเกมลำดับความสำคัญของฉันคือการเล่นเกมก่อนการสร้างรายได้ที่สอง วิธีหนึ่งที่ได้รับความนิยมในการสร้างรายได้จากฐานผู้เล่นคือการขายสกุลเงินในเกมอย่างไรก็ตามมี 2 วิธีในการทำเช่นนี้: หนึ่งสกุลเงิน: สกุลเงินนี้สามารถซื้ออะไรก็ได้ในเกมสามารถรับได้จากการเล่นปกติในอัตราที่ จำกัด อย่างไรก็ตามผู้เล่นสามารถเลือกซื้อสกุลเงินนี้ได้โดยตรงเพื่อเพิ่มความเร็วในการได้รับสกุลเงิน สกุลเงินคู่: หนึ่งสกุลเงินสามารถรับได้จากการเล่นปกติและสามารถใช้ซื้อไอเท็มจำนวน จำกัด ที่จำเป็นสำหรับความบันเทิงตามปกติของเกม สกุลเงินที่สองคือ 'พรีเมียม' และต้องซื้อโดยใช้เงินจริง สกุลเงินที่สองนี้สามารถใช้ในการซื้อ 'รายการพรีเมี่ยม' ที่ให้ความสามารถพิเศษเช่นเพิ่มกำไร EXP และอื่น ๆ 2 สกุลเงินสามารถแลกเปลี่ยนระหว่างผู้เล่นเพื่อให้ผู้เล่นที่ไม่จ่ายเงินเพื่อแลกเปลี่ยนเวลาสำหรับสกุลเงิน 'พรีเมียม' ทั้งสองวิธีไม่ทำลายการเล่นเกมและอนุญาตให้ผู้เล่นที่ไม่ต้องการจ่ายเงินเพลิดเพลินกับเนื้อหาทั้งหมดของเกมหากพวกเขาใช้เวลาและความพยายามมากพอ คำถามของฉันคือมีเหตุผลใดที่คุณจะเลือกอย่างใดอย่างหนึ่ง? อะไรคือข้อดีและข้อเสียที่ฉันควรให้ความสนใจเมื่อใช้งานทางเลือกแต่ละทาง ขอบคุณ.

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