การพัฒนาเกมใน C เท่านั้น เป็นไปได้ไหม? [ปิด]


18

ฉันเป็นนักศึกษาวิทยาลัยชั้นปีที่ 1 ในอินเดียและต้องการทำเกมเล็ก ๆ เป็นโครงการภาคการศึกษานี้

ฉันค่อนข้างดีที่ C และเรียนรู้อย่างรวดเร็ว แต่ฉันต้องการถามว่าการพัฒนาเกมทั้งหมดใน C (ไม่ใช่ C ++ หรือ C #) ฉันชอบที่จะใช้สิ่งเหล่านี้ แต่สำหรับโครงการวิทยาลัยเรามีข้อกำหนดที่เข้มงวดในการใช้ C เท่านั้น

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


1
เกี่ยวข้อง: gamedev.stackexchange.com/questions/371/…
Tetrad

8
SDL เขียนเป็น C OpenGL คือ C คุณต้องการอะไรอีก
The Duck Communist

2
นอกจากนี้ Quake ก็เสร็จสิ้นใน C.
The Communist Duck เมื่อ

ทำตัวเองให้เป็นที่โปรดปรานและใช้ห้องสมุด Allegro;) alleg.sourceforge.net
o0 '

1
RollerCoaster Tycoon เกือบเสร็จสิ้นแล้วในการชุมนุมที่บริสุทธิ์ดังนั้นทำไมไม่
Ramon Zarazua B.

คำตอบ:


23

การเขียนเกมใน C เป็นไปได้ ตัวอย่างเช่นQuake IIเขียนเป็นภาษา C อย่างหมดจดดังนั้นการเขียนเกมอื่น ๆ ใน C จึงไม่มีปัญหา มันอาจเป็นทางเลือกที่ดีกว่าถ้าคุณมีความเชี่ยวชาญและสะดวกสบายใน C มากกว่าใน C ++


2
@Ishan Sharma: ที่จริงแล้วการพัฒนาเกม (เอนจิน) จำนวนมากยังคงมีอยู่ใน C หรืออย่างน้อย C: ish C ++ ไม่มีอะไรบอกว่าเกม C ++ ของคุณจะดีกว่า (หรือเขียนได้ดีกว่า) เพียงเพราะมันเป็น C ++
ถือเป็นโมฆะ

6
@ void: เป็นเรื่องจริงหากโปรแกรมเมอร์ที่มีปัญหาไม่มีความรู้เกี่ยวกับวิธีการใช้ C ++ อย่างมีประสิทธิภาพ โปรแกรมภาษา C ++ ที่ผู้เขียนมีความเข้าใจพื้นฐานเกี่ยวกับการวางแนวของวัตถุจะปลอดภัยและเชื่อถือได้มากกว่าโปรแกรม C ที่เทียบเท่า
DeadMG

8
@DeadMG [อ้างจำเป็น]
บ๊อบซอมเมอร์

6
@ บ๊อบซอมเมอร์: ง่าย เปรียบเทียบไปstd::string ล้างหน่วยความจำของตัวเองในทุกสถานการณ์เสมอจัดสรรจำนวนเงินที่เหมาะสมทุกครั้ง คุณอาจลืมที่จะเพิ่มหรือเพิ่มเป็นสองเท่าหรือจัดสรรหน่วยความจำไม่เพียงพอ อ๊ะ ตรรกะขั้นพื้นฐานกล่าวว่า C ++ โปรแกรมอยู่ที่ดีขึ้นและปลอดภัยมากขึ้นกว่าโปรแกรม C char*std::stringchar*
DeadMG

12
@DeadMG โปรแกรมเมอร์ที่ดีสามารถเขียนโค้ดที่ดีและปลอดภัยในภาษาใด ๆ ในทางกลับกันโปรแกรมเมอร์ที่ไม่ดีสามารถเขียนรหัสที่ไม่ปลอดภัยในภาษาใด ๆ ได้ ช่างไม้ที่น่าสงสารตำหนิเครื่องมือของเขา
บ๊อบซอมเมอร์

11

ฉันทำงานบนรหัส MMORPG AAA MMORPG ที่บริสุทธิ์ C ดังนั้นใช่


5
ฉันคิดว่านั่นทำให้คุณเป็น Cryptic คุณใช้ภาษาสคริปต์ใด ๆ หรือไม่?
Dan Olson

3
เรามีภาษานิพจน์ภายในที่ใช้โดยนักออกแบบสำหรับทุกสิ่งโดยทั่วไปและเราใช้ Python และ Lua ผสมกันเพื่อประมวลผลบางอย่าง (การประมวลผลออฟไลน์, แผนที่ลดเกม DBS สำหรับสถิติ) แต่ไม่มี Real Scripting Language ในเกม
coderanger

6

ใช่มันเป็นไปได้อย่างสมบูรณ์ API ระดับ OS จำนวนมากเช่น POSIX และ Windows, DirectX และ OpenGL ทั้งหมดมีอินเตอร์เฟสที่เข้ากันได้กับ C


6

Fabien Sanglard ได้เขียนบทความเกี่ยวกับเอ็นจิ้น 3 มิติของเขาในซีบน reddit บทความนี้ได้สร้างการอภิปรายที่น่าสนใจ

ภาษาเป็นเครื่องมือเท่านั้น ... ดังนั้นจงใช้อย่างชาญฉลาด เพื่อสร้างเกมที่ดีสามารถใช้ XNA หรือ Unity3D ได้ง่ายขึ้น การเรียนรู้ C เป็นขั้นตอนแรกที่ดี แต่คุณต้องเรียนรู้ C ++, D, python, lua ... C ++ เป็นภาษาที่ยากมาก ดังนั้นใช้อย่างระมัดระวัง


3

C เหมาะสำหรับการพัฒนาเกม

ฉันกำลังทำงานกับ platformer 3D และฉันไม่เคยมีปัญหาใด ๆ กับภาษา ปัญหาเดียวคือการตรวจจับการชนและการแรเงาฉันเพิ่งรู้อะไรเกี่ยวกับพวกเขาพวกเขาจะยังคงเกิดขึ้นในภาษาอื่น ๆ

ที่จริงแล้วฉันพบว่าง่ายกว่าภาษาอย่าง C # และ Java ฉันทำซ้ำเอนทิตีที่ใช้พอยน์เตอร์ ( ตัวอย่างจากรหัสของฉัน ) และfreadประหยัดเวลาในการสร้างแผนที่โหลดเดอร์

ถ้าคุณต้องการวางแนววัตถุและโมดุลให้คุณสามารถสร้างโครงสร้างของพอยน์เตอร์ของฟังก์ชัน


1

ไร้ข้อสงสัย. มีไลบรารีจำนวนมากที่มีประโยชน์ในการพัฒนาเกม (เช่น SDL, PhysFS และอื่น ๆ ) มี C APIs ซึ่งช่วยได้มาก

คุณอาจต้องการดูการฝังภาษาสคริปต์เช่นluaหากคุณต้องการทำการเขียนโปรแกรมระดับสูงแบบขยายได้ หลายคนเริ่มเห็นความสนใจในการเขียนโปรแกรมกรอบ C ที่ใช้ lua สำหรับสิ่งต่าง ๆ เช่น AI, กิจกรรม, ฯลฯ ...

โชคดี.


1

คำตอบง่ายๆสำหรับคำถามนี้คือ: คุณสามารถทำเกมที่ใช้ข้อความอย่างง่ายเช่นนี้ในทุกภาษาที่ตั้งโปรแกรม แม้กระทั่ง pascal, พื้นฐานหรือ x86 assembler:]

(และไม่ต้องการสิ่งอื่นใด)


0

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

หากคุณยืนยันใน C แทน C ++ (ซึ่งไม่สมเหตุสมผลสำหรับฉัน แต่สำหรับแต่ละคน) คุณอาจจะดีที่สุดถ้าใช้ Lua ร่วมกับ C

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


Lua ใช้เวลาในการพัฒนาได้ดี แต่ก่อนที่จะปล่อยทุกอย่างควรได้รับการแจ้งความเป็นภาษาท้องถิ่นเพื่อประสิทธิภาพที่สูงขึ้น
Triang3l

@ Triang3l ฉันไม่เห็นด้วยเลย สิ่งที่คุณอธิบายคือการเพิ่มประสิทธิภาพก่อนวัยอันควร การใช้ภาษาพื้นเมืองไม่รับประกันว่ารหัสของคุณจะเร็วขึ้น วิธีที่ถูกต้องในการทำเช่นนี้คือการทำโปรไฟล์รหัสของคุณค้นหาคอขวดและปรับปรุงรหัสนั้น มีตัวอย่างมากมายที่ผู้พัฒนาพยายามเขียนรหัส C ของตนเองเพื่อแทนที่รหัส Java และรหัส C ช้าลงอย่างมีนัยสำคัญหรือที่นักพัฒนาพยายามแทนที่รหัส C ด้วยรหัสแอสเซมบลีที่ช้าลงอย่างมีนัยสำคัญ อย่าดูถูกนักพัฒนาของภาษาระดับสูงและสภาพแวดล้อมแบบรันไทม์
user1657170

0

แน่นอนคุณสามารถ. หลายเกมได้รับการตั้งโปรแกรมใน C (DOOM อยู่ในใจ) SDL เป็นห้องสมุดเกมมิ่งที่เขียนด้วยภาษาซี

แน่นอนว่ามันอาจจะยากกว่าการใช้ C ++ สำหรับโครงการใหญ่ แต่ก็เป็นไปได้


0

ฉันคิดว่ามันเป็นไปได้ที่จะสร้างเกม c ที่สมบูรณ์ ฉันสร้างเกม (ซึ่งคล้ายกับ 'space impact' ของ nokia 1110 mobile) ในโปรเจ็กต์ภาคเรียนที่สองของฉันโดยใช้คอมไพเลอร์เทอร์โบ c ฉันคิดว่าคุณสามารถลองด้วยวิธีนี้ (ในฐานะนักศึกษาวิทยาลัยปีแรก) โดยไม่รู้จักคนอื่น

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