การพัฒนาเกม

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

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

2
ตัวอย่าง Microsoft XNA Platformer การตรวจจับ Collsion มีการใช้งานอย่างถูกต้องหรือไม่
ตัวอย่างที่ Microsoft เตรียมไว้ให้ดูเหมือนว่าการตรวจจับการชน (จากสิ่งที่ฉันเห็น) จะมีข้อผิดพลาดเล็กน้อย เมื่อผู้ใช้ชนกับไทล์ Unpassable ความลึกของจุดตัดจะถูกคำนวณ ค่าความลึกที่น้อยกว่า X และ Y ถูกใช้เพื่อกำหนดตำแหน่งของผู้ใช้ดังนั้นจึงไม่เกิดการชนกับไทล์อีกต่อไป แต่ถ้าผู้ใช้เดินทางในแนวทแยงมุมสิ่งนี้จะส่งผลให้ผู้ใช้ไม่ได้จบลงอย่างแม่นยำในจุดที่ตัวละครจะชนกับไทล์ก่อน? ฉันอาจผิด แต่นั่นเป็นเพียงวิธีที่ฉันเห็น private void HandleCollisions() { // Get the player's bounding rectangle and find neighboring tiles. Rectangle bounds = BoundingRectangle; int leftTile = (int)Math.Floor((float)bounds.Left / Tile.Width); int rightTile = (int)Math.Ceiling(((float)bounds.Right / Tile.Width)) - 1; int topTile …

2
ฉันต้องทำเกมใน 9 วัน Ahhh! [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว หากคุณเพียงต้องการที่จะได้รับคำถามและข้ามพื้นหลังให้ไปที่วรรคถัดไปถ้าไม่ให้อ่านต่อไป ตกลงดังนั้นฉันอายุ 13 ปีและฉันสร้างเกมในเวลาว่าง พวกเขาไม่เคยแชร์กับใครเลยหรืออะไรก็ตามฉันเลยตัดสินใจว่าจะเข้าร่วมการแข่งขันSTEM Video Game Challengeสำหรับเด็กมัธยมต้น ฉันตัดสินใจใช้ Stencyl เพื่อสร้างเกมและมันก็เป็นเดือนมกราคมดังนั้นฉันจึงคิดว่าฉันจะทำงานกับมันในบางจุด หลังจากนั้นฉันเข้าร่วมเล่นที่โรงเรียนซึ่งใช้เวลาเป็นตันและวันนี้ฉันรู้วันที่ 3 มีนาคมซึ่งหมายความว่าฉันมีเวลา 9 วันในการสร้างเกม -Gah! ดังนั้นฉันต้องสร้างเกมใน 9 วันและฉันอาจจะใช้ stencylworks ฉันแค่ต้องการความคิดที่ฉันสามารถดำเนินการใน 9 วันและเพียงแค่เคล็ดลับทั่วไปสำหรับการพัฒนาเกมที่มีประสิทธิภาพ ขออภัยที่เป็นคำถามแบบหลวม ๆ และขอขอบคุณล่วงหน้า!

2
การจัดการส่วนประกอบที่เขียนสคริปต์และ "ดั้งเดิม" ในระบบเอนทิตีที่อิงองค์ประกอบ
ขณะนี้ฉันกำลังพยายามใช้ระบบเอนทิตีที่อิงองค์ประกอบเป็นหลักโดยที่เอนทิตีนั้นเป็นเพียง ID และวิธีการช่วยเหลือบางอย่างที่ผูกส่วนประกอบหลายอย่างเข้าด้วยกันเพื่อสร้างวัตถุเกม เป้าหมายบางประการของที่รวมถึง: ส่วนประกอบประกอบด้วยสถานะ (เช่นตำแหน่งสุขภาพจำนวนกระสุน) => ตรรกะเข้าสู่ "ระบบ" ซึ่งดำเนินการส่วนประกอบเหล่านี้และสถานะของพวกเขา (เช่น PhysicsSystem, RenderSystem ฯลฯ ) ฉันต้องการใช้ส่วนประกอบและระบบทั้งใน C # และผ่านการเขียนสคริปต์ (Lua) โดยทั่วไปฉันต้องการที่จะสามารถกำหนดส่วนประกอบและระบบใหม่ทั้งหมดใน Lua ได้โดยตรงโดยไม่ต้องคอมไพล์ต้นฉบับ C # ของฉันอีกครั้ง ตอนนี้ฉันกำลังมองหาแนวคิดเกี่ยวกับวิธีจัดการสิ่งนี้อย่างมีประสิทธิภาพและไม่สม่ำเสมอดังนั้นฉันไม่จำเป็นต้องใช้ไวยากรณ์ที่แตกต่างเพื่อเข้าถึงคอมโพเนนต์ C # หรือส่วนประกอบ Lua ตัวอย่างเช่น แนวทางปัจจุบันของฉันคือการใช้ส่วนประกอบ C # โดยใช้คุณสมบัติสาธารณะทั่วไปอาจตกแต่งด้วยแอตทริบิวต์บางอย่างที่บอกบรรณาธิการเกี่ยวกับค่าเริ่มต้นและเนื้อหา จากนั้นฉันจะมี "ScriptComponent" ระดับ C ซึ่งเพิ่งล้อมตาราง Lua ภายในด้วยตารางนี้ถูกสร้างขึ้นโดยสคริปต์และเก็บสถานะทั้งหมดของประเภทองค์ประกอบเฉพาะนั้น ฉันไม่ต้องการเข้าถึงสถานะดังกล่าวจากด้าน C # มากเท่าที่ฉันจะไม่ทราบในเวลารวบรวมสิ่งที่ ScriptComponents พร้อมกับคุณสมบัติใดบ้างที่จะมีให้ฉัน ถึงกระนั้นผู้แก้ไขจะต้องเข้าใช้งาน …

2
พฤติกรรมการใช้งานในเกมผจญภัยง่าย ๆ
ฉันสนุกกับตัวเองเมื่อไม่นานมานี้โดยการเขียนโปรแกรมเกมผจญภัยที่ใช้ข้อความเป็นหลักและฉันก็ติดอยู่กับสิ่งที่ดูเหมือนว่าจะเป็นปัญหาการออกแบบที่เรียบง่ายมาก เพื่อให้ภาพรวมคร่าวๆ: เกมแบ่งย่อยเป็นRoomวัตถุ แต่ละRoomรายการมีEntityวัตถุที่อยู่ในห้องนั้น แต่ละคนEntityมีสถานะเหตุการณ์ซึ่งเป็นแผนที่แบบสตริง -> บูลีนอย่างง่ายและรายการการกระทำซึ่งเป็นแผนที่แบบสตริง -> ฟังก์ชั่น [action] [entity]ท่านผู้ใช้แบบฟอร์มที่ใช้ Roomใช้ชื่อนิติบุคคลที่จะกลับมาที่เหมาะสมEntityวัตถุซึ่งจากนั้นจะใช้ชื่อการกระทำที่จะหาฟังก์ชั่นที่ถูกต้องและดำเนินการมัน ในการสร้างคำอธิบายห้องพักแต่ละวัตถุแสดงสตริงคำอธิบายของตัวเองแล้วผนวกสตริงคำอธิบายของทุกRoom รายละเอียดอาจเปลี่ยนแปลงขึ้นอยู่กับสถานะของมัน ( "ประตูเปิด", "ประตูถูกปิด", "ประตูถูกล็อค" ฯลฯ )EntityEntity นี่คือปัญหา: การใช้วิธีนี้จำนวนฟังก์ชั่นคำอธิบายและการกระทำที่ฉันต้องนำมาใช้อย่างรวดเร็ว ห้องเริ่มต้นของฉันคนเดียวมีประมาณ 20 หน้าที่ระหว่าง 5 เอนทิตี ฉันสามารถรวมการกระทำทั้งหมดไว้ในฟังก์ชั่นเดียวและถ้า - อื่น / สลับไปมาได้ แต่ก็ยังมีสองฟังก์ชั่นต่อเอนทิตี ฉันยังสามารถสร้างEntityคลาสย่อยเฉพาะสำหรับวัตถุทั่วไป / ทั่วไปเช่นประตูและกุญแจได้ แก้ไข 1: ตามที่ร้องขอตัวอย่างรหัสเทียมของฟังก์ชันการกระทำเหล่านี้ string outsideDungeonBushesSearch(currentRoom, thisEntity, player) if thisEntity["is_searched"] then return "There was nothing …

3
แสดงการชนกันของการเคลื่อนไหวช้า ๆ อย่างผ่อนคลายหรือไม่?
ในเกมแข่งรถจำนวนมาก (เช่นBurnout Paradise ) เมื่อเกิดการชนเกมจะเล่นโดยอัตโนมัติเพื่อสลับการเคลื่อนที่ช้าและดำเนินการในลำดับช้าจนกระทั่งหลังจากการปะทะเสร็จสมบูรณ์ ฉันคิดเสมอว่านี่เป็นผลกระทบ คุณไม่ต้องการพลาดส่วนหนึ่งส่วนใดของการปะทะ! แต่หนึ่งในเพื่อนของฉันเพิ่งแนะนำว่าสิ่งนี้ทำเพื่อให้แน่ใจว่าไม่จำเป็นต้องมีการประมวลผลที่ล้นหลามเมื่อเกิดการชน ตอนนี้ฉันคิดว่ามันเป็นทางกลับกัน เมื่อมีการชนเกิดขึ้นรายละเอียดจำนวนมากแสดงในแบบสโลว์โมชั่นฉันแน่ใจว่ามีโอเวอร์เฮดในการคำนวณและการเรนเดอร์ไปป์ไลน์ อะไรที่ถูกต้อง? ภาพเคลื่อนไหวช้าเพิ่มการใช้ CPU / GPU หรือลดลงหรือไม่

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

3
วิธีการจัดโปรแกรมเกมใน C ++? การใช้การรับมรดกของฉันเป็นความคิดที่ดีหรือไม่?
ฉันเป็นผู้เริ่มต้นทั้งในการพัฒนาเกมและการเขียนโปรแกรม ฉันพยายามเรียนรู้หลักการบางอย่างในการสร้างเอ็นจิ้นเกม ฉันต้องการสร้างเกมง่ายๆฉันอยู่ในจุดที่ฉันพยายามนำเอ็นจิ้นเกมมาใช้ ดังนั้นฉันคิดว่าเอ็นจิ้นเกมของฉันควรควบคุมสิ่งนี้: - Moving the objects in the scene - Checking the collisions - Adjusting movements based on collisions - Passing the polygons to the rendering engine ฉันออกแบบวัตถุของฉันเช่นนี้: class GlObject{ private: idEnum ObjId; //other identifiers public: void move_obj(); //the movements are the same for all the objects (nextpos …
11 c++  architecture  oop 

3
ใช้ OpenGL หรือ GLSL ล้วนๆ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันสนใจที่จะศึกษาการเขียนโปรแกรมกราฟิกจุดเริ่มต้นที่ชัดเจนคือการเรียนรู้ OpenGL แต่การรวบรวมข้อมูลที่กระจัดกระจายรอบ ๆ ฟอรัมและไซต์ดูเหมือนว่าการใช้งาน OpenGL อย่างแท้จริงนั้นจะจางหายไปเนื่องจากสิ่งต่าง ๆ ส่วนใหญ่ pre-3.0 กำลังถูกคัดค้านและอ้างถึงการทบทวนใน Amazon นอกจากนี้หนังสือที่ฉันได้เห็นดูเหมือนว่ายอดเยี่ยมครอบคลุมรุ่นใหม่ แต่เพียงบางส่วนเพราะส่วนที่ดีของหนังสือสอนฟังก์ชั่นที่เลิกใช้แล้วและมีหนังสือเฉพาะสำหรับ GLSL นี่คือที่ฉันพบปัญหาแรกของฉันฮาร์ดไดรฟ์บางตัวไม่รองรับ GLSL รวมถึงโน้ตบุ๊กที่มี Intel รวมกราฟิกที่ฉันวางแผนไว้ว่าจะใช้ ฟังก์ชั่น GLuint vertShader = glCreateShader(GL_VERTEX_SHADER); ทำให้เกิดความผิดพลาดในการแบ่งส่วนและจากรูปลักษณ์ของมันไดรเวอร์ของฉันไม่รองรับเฉดสี ดังนั้นคำถามของฉันคือความเป็นไปได้ในการสร้างเกมเฉพาะใน OpenGL คืออะไร ฉันจะหายไปคุณสมบัติที่ดีที่ไม่สามารถถูกแทนที่ได้จากภาษา Shader หรือไม่? และฮาร์ดแวร์ประเภทใด (ฉันหวังว่าจะได้ใช้เกมกับ shaders อย่างถูกต้อง?
11 opengl  glsl 

2
วิธีสร้างระบบคลังโฆษณาแบบผู้เล่นทั่วโลก
ฉันพบปัญหาในการพยายามใช้ระบบสินค้าคงคลังภายใน XNA (ไม่สำคัญเลยอาจเป็นแพลตฟอร์มใดก็ได้) แต่จนถึงตอนนี้ นี่คือปัญหาที่ฉันพยายามล้อมรอบ: ฉันจะรับไอเท็มจากโลกได้อย่างไร (คิดว่าเมื่อคุณฆ่ามอนสเตอร์มันจะดรอปเกราะ) และนำไปไว้ในคลังของผู้เล่นของฉัน? หากสินค้าคงคลังเป็นเพียงรายการสินค้าในทางเทคนิคแล้วฉันจะนำ Steel Sword จากโลกไปสู่สินค้าคงคลังของผู้เล่นโดยไม่ต้องมีคลาสทำมากกว่าหนึ่งอย่างได้อย่างไร ขณะนี้ฉันมีโครงสร้างรายการซึ่งมีค่าเลขฐานสิบหกที่ไม่ซ้ำกันนับจำนวนรายการที่มี (สำหรับวางซ้อนได้เช่นลูกศร) และพื้นผิวสำหรับแสดงผลภายในคลังโฆษณาและคุณสมบัติที่ไม่สำคัญอื่น ๆ (ชื่อคำอธิบาย ฯลฯ ) . มันจะเป็นการออกแบบที่ไม่ดีถ้าฉันต้องแก้ไขคลาสไอเท็มที่มีอยู่ของฉันให้เป็นตำแหน่งของโลกพร้อมกับการตรวจจับการชนกันของข้อมูล (ไม่ต้องการให้ไอเท็มหล่นผ่านพื้นโลก) ขอบคุณสำหรับการพิจารณาใด ๆ !
11 xna  c#  2d 

2
วิธีปิดการใช้งานการเคลื่อนไหวแกน Y ในเอนจินของกระสุนฟิสิกส์
ฉันต้องการสร้างวัตถุมากกว่าเคลื่อนที่ไปตามแกน X และ Z เท่านั้นในขณะที่ปิดการใช้งานแกน Y (มันเหมือนกับการเคลื่อนที่ใน 2D และวัตถุจะไม่ล้มลง) ขณะนี้ฉันกำลังใช้ข้อ จำกัด 6 dof เพื่อ จำกัด การเคลื่อนไหวในแกน Y แต่มันไม่ทำงาน: btRigidBody* zeroBody = new btRigidBody(0, NULL, NULL); // Create the body that we attach things to btRigidBody* robot = mCarChassis->getBulletRigidBody(); btGeneric6DofConstraint* constrict = new btGeneric6DofConstraint(*robot, *zeroBody, btTransform::getIdentity(), btTransform::getIdentity(), false); constrict->setLinearLowerLimit( btVector3( 1, …

4
ผู้เล่นขยับขึ้นเขากระโดดหรือปีนเขาไหม?
ในเกม platformer ที่ใช้ฟิสิกส์ 2 มิติที่มีบันไดอยู่คุณจะทราบได้อย่างไรว่าผู้เล่นขยับขึ้นมาจากการกระโดดหรือเขาปีนบันไดเช่นที่คุณรู้ว่าจะเล่นภาพเคลื่อนไหวอย่างไร และโดยทั่วไปแล้วเวกเตอร์บอกทิศทางไม่เพียงพอที่จะกำหนดภาพเคลื่อนไหวที่จะเล่น: คุณจะทราบสาเหตุของการเคลื่อนไหวได้อย่างไร (เพื่อให้คุณทราบว่าสไปรต์ที่ถูกต้องที่จะใช้)

5
ตัวควบคุม 2D เป็นเอกภาพ (พยายามดึง platformers โรงเรียนเก่ากลับมา)
วันนี้ฉันพยายามสร้างตัวควบคุม 2D ด้วยความสามัคคี (ใช้ phisics) ฉันค่อนข้างใหม่สำหรับเอนจิ้นฟิสิกส์และมันยากที่จะควบคุมความรู้สึกที่ฉันกำลังมองหา ฉันจะมีความสุขมากถ้าใครสามารถแนะนำวิธีแก้ปัญหาที่ฉันพบ: นี่คือ FixedUpdate ของฉันตอนนี้: public void FixedUpdate() { Vector3 v=new Vector3(0,-10000*Time.fixedDeltaTime,0); _body.AddForce(v); v.y=0; if(state(MovementState.Left)) { v.x=-_walkSpeed*Time.fixedDeltaTime+v.x; if(Mathf.Abs(v.x)>_maxWalkSpeed) v.x=-_maxWalkSpeed; } else if(state(MovementState.Right)) { v.x= _walkSpeed*Time.fixedDeltaTime+v.x; if(Mathf.Abs(v.x)>_maxWalkSpeed) v.x=_maxWalkSpeed; } _body.velocity=v; Debug.Log("Velocity: "+_body.velocity); } ฉันพยายามที่นี่เพื่อย้ายร่างกายที่แข็งเกร็งโดยใช้แรงโน้มถ่วงและแรงเชิงเส้นสำหรับซ้ายและขวา ฉันตั้งค่าวัสดุทางฟิสิกส์ที่ทำให้ไม่มีการกระดอนและแรงเสียดทาน 0 เมื่อเคลื่อนที่และ 1 แรงเสียดทานพร้อมขาตั้ง ปัญหาหลักคือฉันมี colliders ที่มีความลาดชันและความเร็วเปลี่ยนจากการขึ้น (ช้ากว่า), ลงไปตามทางลาด (เร็วกว่า) และเดินบน …

2
ฉันจะพัฒนาเกม Android ของฉันได้อย่างมีประสิทธิภาพได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันได้แนบรูปภาพของแผนภูมิการไหลที่ทำด้วยสี ภาพแสดงวิธีที่ฉันต้องการพัฒนาเกมของฉัน ฉันต้องการเกมที่ทำงานได้ยอดเยี่ยมด้วยการเข้ารหัสอัจฉริยะที่ง่ายต่อการอัปเดตและคุณสมบัติโฆษณาตลอดเวลา แพลตฟอร์มเป้าหมายของฉันคือสมาร์ทโฟน Android และรหัสทั้งหมดจะถูกเขียนด้วยภาษาจาวาพร้อมกับทรัพยากร XML ที่สูงเกินจริงหากเป็นเช่นนั้น ฉันไม่ได้กำลังมองหารหัสที่ยาก แต่รหัสหลอกจะช่วยได้ฉันต้องการคำแนะนำและคำแนะนำจากผู้เชี่ยวชาญมากกว่า คำถามของฉันคือ: นี่เป็นวิธีที่ดีในการเขียนโปรแกรมเกมหรือมีวิธีที่ดีกว่าในการทำเกมนี้หรือไม่? มีการดัดแปลงใด ๆ ที่จำเป็นต้องทำหรือไม่? ข้อเสนอแนะใด ๆ ที่จะเป็นประโยชน์เพราะฉันไม่เคยมีประสบการณ์ในการเขียนโปรแกรมเกมดังนั้นฉันต้องการคำแนะนำจากคนที่เขียนเกมหลายเกมและรู้จากประสบการณ์ว่าควรตั้งรหัสของพวกเขาให้ทำงานได้อย่างมีประสิทธิภาพอย่างไร

3
ฉันจะงอวัตถุใน OpenGL ได้อย่างไร
มีวิธีหนึ่งที่สามารถโค้งงอวัตถุเช่นทรงกระบอกหรือระนาบโดยใช้ OpenGL ได้หรือไม่? ฉันเป็นผู้เริ่มต้น OpenGL (ฉันใช้ OpenGL ES 2.0 ถ้าเป็นเรื่องสำคัญแม้ว่าฉันจะสงสัยว่าคณิตศาสตร์มีความสำคัญที่สุดในกรณีนี้ดังนั้นจึงเป็นเวอร์ชั่นที่ไม่ขึ้นอยู่กับรุ่น) ฉันเข้าใจพื้นฐาน: แปลหมุนหมุนเมทริกซ์เป็นต้น ฉันสงสัยว่ามีเทคนิคที่ช่วยให้คุณเปลี่ยนรูปทรงเรขาคณิตของวัตถุของคุณ (ในกรณีนี้ด้วยการดัดงอ) หรือไม่? ยินดีต้อนรับลิงค์บทเรียนหรือการอ้างอิงอื่น ๆ !

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