คำแนะนำสำหรับ CS ปีแรกที่สำคัญ [ปิด]


17

ฉันกำลังจะสิ้นสุดปีแรกของ CS ซึ่งเป็นหลักสูตรพื้นฐานของ Java ฉันต้องการทำให้เท้าเปียกด้วยการพัฒนาเกม แต่ฉันไม่แน่ใจว่าจะเริ่มต้นตรงไหน

บางคนแนะนำว่าฉันเริ่มต้นด้วยผู้สร้างเกมซึ่งมีภาษาสคริปต์แบบ C (ซึ่งควรจะหยิบง่าย) เพราะมันอาจจะง่ายที่สุดและให้ฉันจดจ่อกับการออกแบบเกมเป็นหลัก

ฉันเห็นคนจำนวนมากแนะนำ XNA เนื่องจากมีนามธรรมที่ดีของ opengl และ directX ผ่าน APIs ฉันยังได้ยินว่า C # คล้ายกับ Java มาก

ฉันยังพิจารณาการเขียนโปรแกรมเกมใน Java เนื่องจากฉันค่อนข้างสบายใจกับมันและได้ทำการอ่านเพิ่มเติมใน multi-threading และ API กราฟิก 2d

ในที่สุดเพื่อนคนหนึ่งเพิ่งแสดง pygame ให้ฉันซึ่งฟังดูดีมาก แต่ฉันก็ไม่รู้เหมือนกัน

ฉันไม่รู้ว่า C ++ เป็นจุดเริ่มต้นที่ดีหรือไม่โพสต์มากมายที่ฉันเคยเห็นสำหรับผู้เริ่มต้นเกม devs ไม่แนะนำสำหรับโครงการเกมแรก

ฉันขอขอบคุณที่ป้อนข้อมูลใด ๆ โดยเฉพาะอย่างยิ่งจากผู้ที่เข้าสู่เกม dev จากพื้นหลัง Java


5
C ++ นั้นยาก แต่มันก็ง่ายกว่าในระยะยาวถ้าคุณลองและล้อมรอบมันก่อนที่ Java จะวางมันจริงๆ แน่นอนว่าการพยายามเรียนรู้ C ++ จากพื้นหลัง Java นั้นยากกว่าการเรียนรู้ Java จากพื้นหลัง C ++ joelonsoftware.com/articles/ThePerilsofJavaSchools.html
David Young Young

1
ฉันเสียชีวิตพยายามที่จะเรียนรู้ C ++ หลังจากเริ่มต้นด้วย Java ฉันเริ่มต้นด้วยรูปแบบเก่า C ++ แล้วเรียนรู้ Java หากคุณกังวลเกี่ยวกับการกระโดดไปยังพอยน์เตอร์ฉันขอแนะนำให้เรียนรู้การเขียนโปรแกรม C และ Unix โดยตรง มันทำให้คุณมีความคิดใหม่ทั้งหมดดังนั้นคุณจึงมีโอกาสน้อยที่จะใช้แนวคิด Java ที่ไม่เหมาะสม
michael.bartnett

คำตอบ:


14

มีตัวเลือกที่ดีมากมาย (ฉันสอน CS1 และ CS2 รวมถึงการเขียนโปรแกรมเกม) ก่อนอื่นเรียนรู้ที่จะคิดเหมือนนักวิทยาศาสตร์คอมพิวเตอร์ อย่าผูกมัดกับภาษามากเกินไปเพราะแนวคิดเป็นสากลอย่างแท้จริง

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

ฉันชอบเครื่องมือ FANG (น่าเศร้าที่ฉันยังโพสต์ไฮเปอร์ลิงก์ไม่ได้ดังนั้นลองค้นหาบน Google) ส่วนที่น่าสนใจของโครงการนี้คือเครื่องมือแก้ไขออนไลน์ ซึ่งหมายความว่าคุณสามารถเริ่มต้นได้ทันทีโดยไม่ต้องยุ่งกับการตั้งค่าคราส

ฉันไม่ใช่แฟนของ Game Maker จริงๆ GUI นั้นเหมาะสำหรับผู้ที่ไม่ต้องการเรียนรู้วิธีการเขียนโปรแกรมและเป็นเครื่องมือสร้างต้นแบบที่ดี (แต่ไม่ยอดเยี่ยม) อย่างไรก็ตามมีสองสิ่งที่ฉันไม่ชอบ ประการแรกมันเป็นเชิงพาณิชย์ นั่นไม่ใช่สิ่งเลวร้าย แต่ถ้ามีทางเลือกโอเพนซอร์ซฟรีที่ดี (และมี) บางทีคุณควรมองเข้าไปก่อน ปัญหาที่ใหญ่กว่าของ Game Maker คือภาษาสคริปต์ ในที่สุดคุณก็จะโตเกิน GUI และคุณจะต้องเริ่มเขียนโค้ด ภาษาสคริปต์ในจีเอ็มค่อนข้างจะล้าหลัง เนื่องจากคุณเป็น CS สำคัญคุณ (ฉันหวังว่า) มีความสนใจในการนำโค้ดกลับมาใช้ใหม่ความสง่างามความชัดเจนประสิทธิภาพและความเป็นโมดูล ภาษา GM จะทำให้คุณผิดหวัง

ฉันรัก Python และ Pygame (อันที่จริงฉันเขียนหนังสือเกี่ยวกับพวกเขาดูบันทึกและวิดีโอออนไลน์ทั้งหมดของฉันในเว็บไซต์ของฉันถ้าคุณต้องการคุณยินดีต้อนรับสู่แหล่งข้อมูลเหล่านั้นไม่ว่าคุณจะมีหนังสือเล่มนี้หรือไม่ก็ตาม) Python เป็นภาษาที่สง่างาม ไม่ยากเกินกว่าที่จะเรียนรู้ (โดยเฉพาะถ้าคุณรู้วิธีการตั้งโปรแกรม) Pygame เป็นกระดาษห่อหุ้มของเอ็นจิ้น SDL 2D ยอดนิยม ในความเป็นจริงฉันได้เพิ่ม wrapper อันที่สองลงใน pygame เพื่อให้ง่ายในการทำงานกับ Flash

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

ต่อไปนี้เป็นสิ่งที่ยอดเยี่ยมที่ควรลอง รับสำเนาของรอยขีดข่วนจาก MIT: scratch.mit.edu มันถูกสร้างขึ้นมาสำหรับเด็ก ๆ แต่อย่าปล่อยให้มันทำให้คุณผิดหวัง มันเป็นเกมและเครื่องมืออนิเมชั่นที่น่าเหลือเชื่ออย่างยิ่ง การเขียนโปรแกรมใช้ไทล์ดังนั้นจึงง่ายในการเริ่มต้น คุณจะประหลาดใจอย่างเต็มที่กับสิ่งที่คุณสามารถทำได้

คุณอาจลองใช้ Alice จาก Carnegie Melon www.alice.orgฉบับล่าสุด (ฉบับที่ 3) เป็นส่วนขยายของ Java ซึ่งใช้ Sims2 Models

ทั้ง Scratch และ Alice นั้นฟรี

อีกหนึ่งเครื่องมือที่ยอดเยี่ยมในการค้นหาคือ Blender www.blender.org

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

ตอนนี้ฉันค่อนข้างสนใจใน HTML5 (ซึ่งแทบจะเป็น HTML - จริงๆแล้วมันคือ HTML, CSS และ JavaScript) มันไม่ได้มีเพียงแค่สภาพแวดล้อมการพัฒนาเกม แต่ฉันเชื่อว่ามันจะเป็นผู้เล่นที่ยิ่งใหญ่ หนังสือเล่มต่อไปของฉันจะเกี่ยวกับการพัฒนาเกมใน HTML5

ขอให้คุณโชคดีและแจ้งให้เราทราบหากคุณมีคำถามเพิ่มเติม


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

การจัดการตัวชี้ไม่ใช่สากล = (สาปแช่ง Java ของฉันนำขึ้นมา)
David Young

ฉันต้องการทราบว่าทำไมคุณคิดว่าการสร้างเกมใน Java นั้นน่าเบื่อ ดูเหมือนว่าคุณกำลังแนะนำว่า Python ไม่น่าเบื่อ ด้วยเฟรมเวิร์กและไลบรารี่เกม Java ที่ยอดเยี่ยมมากมายมีอยู่ที่นั่นดูเหมือนจะเป็นคำสั่งที่ชัดเจนมาก
zfedoran

1
สำหรับโปรแกรมเมอร์มือใหม่ทุกอย่างในจาวานั้นน่าเบื่อกว่า เปรียบเทียบบางอย่างเช่น printf ในงูหลามมันเป็นส่วนหนึ่งของคำสั่งพิมพ์: พิมพ์ "% s, คะแนนของคุณคือ% d"% (นักเรียน, คะแนน) ใน php คุณจะต้องใช้คำสั่งพื้นฐานทั้งหมดในการสร้างคลาส wrapper ส่งไปยังวัตถุและสร้างอาร์เรย์วัตถุที่ไม่ระบุชื่อ ฉันชอบจาวา (ฉันเคยสอนมาหลายปีแล้วและเขียนหนังสือเกี่ยวกับเรื่องนี้) อย่างไรก็ตามหากเป้าหมายคือการทำให้คนเขียนโปรแกรมเกมฉันต้องการภาษาที่ออกนอกเส้นทางให้ได้มากที่สุด
Two pi

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

5

ขึ้นอยู่กับเป้าหมายของคุณและส่วนใดของการพัฒนาเกมที่คุณต้องการเข้าร่วม

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

ถั่วและสลักเกลียว: XNAเป็นวิธีที่ดีในการจุ่มนิ้วเท้าของคุณเข้าสู่เวทีนั้น เฟรมเวิร์กทำอะไรให้คุณมากมาย แต่คุณสามารถแทนที่แต่ละชิ้นด้วยรหัสของคุณเองอย่างช้าๆเมื่อคุณคุ้นเคยกับ C # การเรียนรู้ C # นั้นดีสำหรับตำแหน่งการพัฒนาเกมในอนาคตเนื่องจากเครื่องมือต่างๆมักถูกสร้างขึ้นด้วย C #

การเขียนโปรแกรม Gameplay: Unityเป็นตัวเลือกที่ดีที่นี่ ฟรีและให้คุณใช้รหัสในหลายภาษารวมถึง JavaScript และ C # คุณจะสามารถทำสิ่งต่าง ๆ และทำงานได้อย่างรวดเร็วซึ่งเป็นแรงจูงใจที่ดี นอกจากนี้คุณยังสามารถเปลี่ยนไปใช้ภาษาอื่นและผสมภาษาเพื่อช่วยฝึกฝนความเข้าใจ

สิ่งที่ดีคือพวกเขามีอิสระที่จะเล่นกับมันและสามารถเชื่อมต่อกับฮาร์ดแวร์ที่หลากหลายในราคาที่ย่อมเยา


4

สามารถทำเกมที่ใช้ Java ได้เสมอโดยไม่มีอะไรผิดปกติกับเกมเหล่านั้น (http://zetcode.com/tutorials/javagamestutorial/)

XNA และ AS3 ใกล้เคียงกันมากและสามารถสร้างเกมที่ซับซ้อนหรือเรียบง่ายตามที่ต้องการ (แม้ว่าจะเหมือนกันจริงกับ java)

สิ่งหนึ่งที่ต้องจำไว้ก็คือฝึกฝนอยู่เสมอและเล่นกับรหัส


3

Java Monkey Engine

หากคุณคุ้นเคยกับ Java มากที่สุดคุณสามารถใช้ Java Monkey Engine เป็นกรอบในการใช้งานในขณะที่สร้างเกม นอกจากนี้ยังมีเอกสาร / บทแนะนำที่เหมาะสมรวมถึงคำแนะนำในการรวมเข้ากับ Netbeans และ Eclipse


ฉันต้องบอกว่า JMonkeyEngine ดูดี ฉันจะตรวจสอบมันแน่นอน ขอบคุณสำหรับการป้อนข้อมูลของคุณ
avatarX

2

เอกภาพ

ผมจะบอกว่าลองความสามัคคี พวกเขามีรุ่นฟรีและคุณสามารถทำให้เท้าของคุณเปียกในไม่กี่ชั่วโมงเพื่อให้ได้แนวคิดพื้นฐานโดยทำตามแบบฝึกหัดสองตัวที่ Unity จัดทำขึ้น:

อีกสิ่งที่ยอดเยี่ยมเกี่ยวกับความสามัคคีคือคุณสามารถใช้ JavaScript เป็นภาษาสคริปต์และคุณสามารถเผยแพร่เกมของคุณบน Windows, MacOS, Web, iPhone และตอนนี้ด้วยเวอร์ชัน 3 บนอุปกรณ์ Android เช่นกัน

พวกเขากำลังใช้เครื่องมือ StackExchange สำหรับUnity Answersและพวกเขามีชุมชนที่ยอดเยี่ยมสำหรับคำถามที่เกี่ยวข้องกับ Unity ทั้งหมดของคุณ


1

สิ่งเหล่านี้จะเป็นการเริ่มต้นที่ดีโดยพูดว่าเป็นนักพัฒนาที่เริ่มต้นการศึกษา CS ด้วยภาษาจาวา

C # ใกล้เคียงกับ Java มาก (บางครั้งฉันก็ตลกว่า Java แบบ จำกัด แพลตฟอร์มที่มีไลบราที่ดีกว่า) ดังนั้น XNA อาจเป็นตัวเลือกที่ดี Minecraft ได้รับการพัฒนาใน Java ด้วยไลบรารีเกม lwjgl ดังนั้นหากคุณต้องการใช้ Java นั่นเป็นวิธีที่ดี แน่นอนว่าการพัฒนา 3D นั้นค่อนข้างซับซ้อน ขึ้นอยู่กับความรู้ประสบการณ์และความเพียรของคุณคุณอาจต้องการรอ 3D (หรือแม้กระทั่ง 2D ในระบบที่ใช้ 3D) จนกว่าคุณจะได้รับการศึกษามากขึ้นภายใต้เข็มขัดของคุณ

สำหรับโซลูชัน 2D: Game Maker นั้นง่ายมากและถูกนำมาใช้เพื่อสร้างเกมที่ยอดเยี่ยม คุณควรเลือกภาษาการเขียนสคริปต์ได้ง่าย แต่อาจจะง่ายเกินไปสำหรับคนที่มีประสบการณ์การใช้ Java เป็นเวลาหนึ่งปี ฉันพัฒนาใน Flash โดยใช้ pure AS3 ( บทช่วยสอน ) ซึ่งใกล้เคียงกับ Java มากพอสำหรับการแปลของคุณได้อย่างง่ายดาย


1

ฉันขอแนะนำอย่างยิ่งให้ไปกับ XNA เป็นแพลตฟอร์มที่มีความสามารถและได้รับการสนับสนุนเป็นอย่างดีกับชุมชนที่กำลังเติบโต XNA กำลังเริ่มค้นหา "สถานที่" ในระบบนิเวศในขณะนี้เฟรมเวิร์กวางจำหน่ายบนแพลตฟอร์มมากกว่าเดิม (รวมถึง Windows Phone 7) อย่างไรก็ตามที่สำคัญกว่านั้นการใช้ XNA จะบังคับให้คุณเรียนรู้ C # และการพัฒนา. NET ทั่วไป มันจะทำให้คุณได้รับประสบการณ์กับแพลตฟอร์มนี้ไม่ว่าคุณจะตัดสินใจพัฒนาเกมหรือไม่เนื่องจากการพัฒนา. NET กำลังเติบโตและมีตลาดงานที่ดีมาก ในทางตรงกันข้าม Java ก็กำลังจะตายอย่างช้าๆไปชั่วระยะเวลาหนึ่งและเหตุการณ์ที่เกิดขึ้นเมื่อเร็ว ๆ นี้ก็มีเพียงเพื่อเร่งการตายของมันเท่านั้น หากโปรแกรม CS ของคุณเช่นเดียวกับที่ฉันเรียนจบนั้นเป็น Java-centric อย่างหนักมันจะช่วยคุณในการเรียนรู้ C # /. NET ตามเวลาของคุณเอง

แม้ว่า Java จะยังคงทำงานต่อไปและคุณตัดสินใจที่จะประกอบอาชีพในการพัฒนา Java คุณก็จะต้องทำงานร่วมกับระบบ NET อยู่ดี อย่างไรก็ตามสิ่งต่าง ๆ เปิดประสบการณ์จะช่วยคุณในระยะยาวเท่านั้น


Indeed.com/jobtrends?q=java&l=และแท้จริง.com/jobtrends?q=.net & l=เป็นตัวแทนของความต้องการของตลาดทั้งคู่ ดูเหมือนว่า Java เป็นคนที่เติบโตจริง
David Young Young

ฉันไม่ได้พิจารณาการไหลเข้าของการพัฒนา Java ที่เกิดจากความสำเร็จของแพลตฟอร์ม Android ซึ่งอาจมีหลายสิ่งที่เกี่ยวข้องกับการเปิดรับงานที่เกี่ยวข้องในช่วงปลายปี 2551 และต้นปี 2552 มันน่าสนใจที่จะเห็นว่า WP7 และความพร้อมใช้งานของ MonoTouch สำหรับ iOS และ MonoDroid สำหรับ Android ส่งผลกระทบต่อการแสดงตนบนมือถือของ Java หรือไม่
Mike Strobel

1

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


1

นอกจากนี้คุณอาจสนุกกับการใช้http://Processing.org มันเป็นสภาพแวดล้อมที่ดีสำหรับการเรียนรู้การเขียนโปรแกรมกราฟิก แม้ว่าจะไม่ได้เป็นเครื่องมือพัฒนาเกม แต่ก็มีข้อเสนอมากมาย ภาษาคือส่วนขยาย / การทำให้เข้าใจง่ายของจาวาและมันจะเรียนรู้ได้อย่างรวดเร็ว


0

คำแนะนำที่ไม่เกี่ยวข้องกับการเขียนโปรแกรมจากฉัน:

สร้างโครงการที่เรียบร้อยและแสดงให้อาจารย์ของคุณเห็น

นั่นเป็นวิธีที่ฉันได้งานฤดูร้อนเป็นโปรแกรมเมอร์หลังจากปีแรกและปีที่สองที่โรงเรียน


สิ่งนี้อาจมีประโยชน์ แต่ก็ไม่ได้แก้ไขปัญหาภาษา / API ที่ OP กำลังจะเกิดขึ้นจริง ๆ
The Duck Communist

0

หากคุณกำลังมองหาการพัฒนาเกมทำไมต้องเรียนภาษาอื่นพร้อมกัน ฉันจะติดกับ Java เว้นแต่คุณต้องการเรียนรู้ภาษาใหม่

ตัวเลือกหลักสำหรับ Java ที่ฉันรู้จักคือ jMonkeyEngine ซึ่งเป็นเอ็นจิ้นกราฟิก 3D และโดยทั่วไปถือว่าค่อนข้างดี

และมี jOGL ซึ่งเป็นตัวห่อหุ้ม Java มากกว่า OpenGL นี่เป็นระดับที่ต่ำกว่ามาก

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

หากคุณต้องการเรียนรู้ภาษาใหม่จาก C # และ Python ฉันอาจจะพูด C # ไวยากรณ์คล้ายกับ Java และ XNA และ SlimDX นั้นดีมากสำหรับกราฟิก XNA อยู่ในระดับที่สูงขึ้นและได้ทำบางสิ่งเพื่อคุณ อย่างไรก็ตามสิ่งนี้มาพร้อมกับข้อ จำกัด เฉพาะ Windows เท่านั้นโดยไม่มี Mono

Python เป็นภาษาที่ง่ายมากที่จะได้รับ (ใช้เวลาประมาณหนึ่งสัปดาห์โดยมีความสนใจน้อยมากจากหนังสือเล่มหนึ่งซึ่งมาจากหนึ่งปีของ C ++) Pygame เป็นตัวล้อมรอบไลบรารี SDL จาก C ดังนั้นอาจไม่มีฟังก์ชันการทำงานเท่ากับ XNA


0

โหวตอีกครั้งเพื่อความสามัคคีสามัคคีคุณจะมีเวลาเหลือเฟือในการศึกษา CS อีกสองสามปีข้างหน้าเพื่อเข้าร่วม C ++ และภาษาอื่น ๆ หากเป้าหมายของคุณคือการพัฒนาเกมการผูกติดอยู่กับสิ่งที่เป็นงานของการพัฒนาเครื่องยนต์จะใช้เวลามากเกินไป หากคุณต้องการเป็นนักออกแบบเครื่องยนต์โปรดกลับมาลองใช้งานระดับล่าง

เอ็นจิ้น Unity จะช่วยให้คุณสามารถเก็บรายละเอียดส่วนใหญ่ได้อย่างเป็นนามธรรมเพื่อให้คุณสามารถมุ่งเน้นไปที่การเขียนโปรแกรมการเล่นเกม ชุมชนในฟอรัมและUnity Answers ที่ใช้การแลกเปลี่ยนแบบกองมีประโยชน์อย่างไม่น่าเชื่อ คุณสามารถตั้งโปรแกรมได้ทั้ง Javascript หรือ C # มาจาก Java ฉันเริ่มต้นด้วย Javascript เพราะมีบทเรียนมากมายที่เขียนขึ้น แต่เปลี่ยนเป็น C # (ซึ่งค่อนข้างง่ายสำหรับสวิตช์)

ฉันคิดว่า XNA และ Pygame อาจเป็นสิ่งที่ดี (เนื่องจากพวกเขาสรุปสิ่งที่น่าเบื่อออกไป) แต่ฉันไม่มีประสบการณ์กับพวกเขา

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

มีความสุข!


0

XNA เป็นทางออกที่ยอดเยี่ยมหากคุณกำลังจะปิด Java C # จะมองและอ่านเกือบจะเป็นตัวบ่งชี้จาวาสำหรับคุณดังนั้นคุณจะสามารถกระโดดได้อย่างรวดเร็วโดยไม่ต้องเรียนรู้ไวยากรณ์ใหม่ เฟรมเวิร์ก XNA ให้ APIs ที่ดีมากมายในการทำงานและมีรหัสเปิด "microsoft permissive license" ฟรีมากมายเพื่อให้คุณเริ่มต้นในบางโครงการ

ฉันจะไม่แนะนำให้คุณใช้จาวาส่วนใหญ่กราฟิก API นั้นแย่มากไม่มีการสนับสนุน 3 มิติและโดยทั่วไป Java จะทำงานช้า ไม่ใช่เรื่องใหญ่สำหรับแอปพลิเคชันจาวาส่วนใหญ่ แต่วิดีโอเกมจำเป็นต้องมีประสิทธิภาพเป็นจำนวนมาก

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

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

ระวังให้ดีที่สุดเท่าที่ความคิดเกมของคุณอาจจะจำไว้ว่าวิดีโอเกมนั้นมีราคาแพงใช้เวลาในการพัฒนานานและมีทีมพัฒนาจำนวนมาก

หากคุณต้องการสร้างเกมและเป็นคนเดียวที่ทำงานในเกมคุณจะต้องทำเกม 2D (แต่คุณควรเริ่มด้วย 2D ต่อไป) และคุณจะต้องเริ่มต้นจริงๆ ง่ายจริงๆ

เกือบทุกสิ่งที่คุณสามารถจินตนาการได้ว่าจะเป็นเรื่องสนุกมีความทะเยอทะยานเกินไปในตอนนี้

คำแนะนำของฉัน: รับ Visual Studio 2010 ด่วนหากคุณไม่มี ดาวน์โหลดสตูดิโอเกม XNA และ. NET Framework 4. ดาวน์โหลดตัวอย่าง XNA เรียกใช้การสาธิตจากนั้นดูรหัสและดูว่าทำอะไร ลองอ่านเอกสารประกอบเกี่ยวกับวิธีที่ XNA ทำเกม 2 มิติ

จากนั้นเลือกเกมเก่าที่คุณชื่นชอบเกมที่เล่นง่ายมาก Pac-Man? พงษ์? ดาวเคราะห์น้อย? ผู้รุกรานพื้นที่ มาริโอ? เลือกสิ่งที่โง่ง่ายโง่ จากนั้นเพียงแค่สร้างเกมขึ้นมาใหม่เหมือนเดิม คุณมีความกังวลเกี่ยวกับการเขียนโปรแกรมและการเรียนรู้ API ใหม่ที่คุณไม่ต้องกังวลกับการออกแบบเกม มันจะทำให้คุณเสียสมาธิ

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

เริ่มก้าวเล็ก ๆ ก้าวเล็ก ๆ แล้วมันจะสนุกมากขึ้นและคุณจะได้เรียนรู้มากขึ้น

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

เพียงแค่มีความสุข: D


0

แฟลช

AS3 ของแฟลชเป็นภาษาที่ยอดเยี่ยมสำหรับห่อหัวแนวคิด OOP ที่สำคัญโดยไม่ต้องกังวลเกี่ยวกับการจัดการหน่วยความจำและการเขียนไฟล์ส่วนหัว นอกจากนี้ยังเป็นเอ็นจิ้นเกม 2D ที่สมบูรณ์พร้อมกับโครงสร้างการแสดงผลระบบเหตุการณ์และคุณสมบัติที่มีประโยชน์อื่น ๆ อีกมากมาย

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

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

ฉันคิดว่าน่าเสียดายที่คุณต้องต่อสู้กับสิ่งที่ซับซ้อนกว่าเช่น C ++ หรือ C # เมื่อคุณสามารถเริ่มเรียนรู้พื้นฐานของการสร้างเกมด้วย AS3 ในตอนนี้ เมื่อคุณเข้าใจ AS3 แล้วคุณจะสามารถเปลี่ยนไปใช้ภาษาอื่นได้ในภายหลัง ในกรณีของฉันเองฉันเป็นนักพัฒนา Flash แต่ฉันเรียนรู้วิธีการเขียนโปรแกรมด้วย Objective-C และจัดการเพื่อสร้างเกมยอดนิยมบน iPhone ทำตัวเองชอบและเยี่ยมชม http://www.flashgamedojo.com/ - ฉันไม่คิดว่าคุณจะผิดหวัง!

เอกภาพ

Unity มีประโยชน์มากมายของ Flash แต่ในรูปแบบ 3 มิติ

ด้วย Unity คุณสามารถตั้งโปรแกรมใน C # หรือ UnityScript (ซึ่งคือ javascript-y) มันไม่ได้เป็นโอเพ่นซอร์ส แต่มันฟรี ได้รับการสนับสนุนเป็นอย่างดีและมีชุมชนที่ยอดเยี่ยม ปัญหาในการพัฒนาเกม 3 มิติคือสำหรับเกมส่วนใหญ่คุณจะต้องมีศิลปะและสินทรัพย์มากมาย นี่อาจเป็นปัญหากับเกม 2D แต่โดยทั่วไปแล้วศิลปะ 3 มิติใช้เวลานานกว่ามากและยากยิ่งที่จะสร้าง "โปรแกรมเมอร์ศิลปะ"

หมายเหตุเกี่ยวกับโอเพ่นซอร์ส

ไม่มีอะไรผิดปกติกับการใช้ซอฟต์แวร์โอเพนซอร์ซ แต่คุณกำลังย่อตัวเองถ้าคุณใช้มันเพียงอย่างเดียว เพราะมันเป็นโอเพ่นซอร์สเท่านั้น เลือกภาษาและเครื่องมือที่ดีที่สุดที่จะช่วยให้คุณเรียนรู้เร็วที่สุดด้วยแรงเสียดทานน้อยที่สุด ตามแนวเดียวกันความคิดของ "เรียนรู้สิ่งที่ยากที่สุดก่อน" (เช่น. C ++) เป็นบ้า สิ่งที่คุณควรเรียนรู้คือตรรกะไม่ใช่ไวยากรณ์ดังนั้นเรียนรู้ว่าภาษาใดมีสัมภาระและอุปสรรคน้อยที่สุดในการเข้าเรียน ในความคิดของฉันนั่นคือ AS3

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