Ngôn ngữ và công cụ nào tốt để bắt đầu phát triển trò chơi Linux? [đóng cửa]


7

Tôi muốn bắt đầu tìm hiểu về phát triển trò chơi và tôi muốn làm điều đó bằng Linux. Trải nghiệm chính của tôi là với Java và một chút về C ++, nhưng đó là cho các ứng dụng chứ không phải cho các trò chơi.

Bây giờ tôi muốn thử chơi game, tôi tự hỏi tôi nên sử dụng IDE / ngôn ngữ nào trong Linux, liệu tôi có nên sử dụng C ++ và biên dịch các tệp theo cách thủ công ngay từ đầu không, hoặc có thể tiếp tục với Java / Eclipse, tôi cũng nghĩ rằng mình có thể sử dụng Eclipse với C ++, tôi cũng đã bắt đầu đọc về Python ...

Tôi đã suy nghĩ khi bắt đầu với "Tetris" điển hình chỉ để hiểu cách trò chơi hoạt động bên trong và tôi nghĩ tôi có thể đạt được điều đó với tất cả các tùy chọn trước đó, nhưng bạn khuyên tôi hoặc bạn đã bắt đầu phát triển trò chơi như thế nào trong Linux?


1
Tôi sẽ không bắt đầu với Tetris, nó phức tạp hơn bạn nghĩ một chút. Tôi sẽ bắt đầu với một trò chơi pong đơn giản. Thêm điểm số, AI, và từ từ làm cho nó phức tạp hơn. Sau đó, có thể bắt đầu một trò chơi như Tetris.
Tấn

Tôi không nghĩ có nhiều sự khác biệt trong Linux và bất kỳ nền tảng phát triển nào khác. Bạn bỏ lỡ C # và .NET nếu bạn không sử dụng Mono, nhưng điều đó cũng xảy ra trên Mac.
Vịt Cộng sản

Mono về cơ bản là những gì cho phép bạn sử dụng C # và các ngôn ngữ .NET khác trên Linux và Mac?
Kaitlyn Mcmordie

Câu trả lời:


4

Nếu bạn chưa bao giờ thực hiện lập trình trò chơi trước đây, có lẽ bạn nên bắt đầu với 2D. SDL là một thư viện khá đơn giản với các ràng buộc đẹp cho C ++. Bạn có thể sử dụng bất kỳ trình soạn thảo / IDE nào bạn thích, nhưng tôi là một fan hâm mộ lớn của mã :: khối.

Cuối cùng cũng có một số công cụ trò chơi hay dành cho Java, (Java Monkey Engine) nhưng đôi khi loại Java lại cản trở. Tôi thích Java (tôi đã dạy nó trong nhiều năm) nhưng nó luôn có vẻ khó hiểu đối với tôi như là một môi trường phát triển trò chơi.

Tôi là một fan hâm mộ lớn của Python và pyGame. (PyGame chỉ đơn giản là SDL với các ràng buộc cho Python.) Bạn có thể xây dựng một trò chơi 2D thực sự đẹp mắt khá nhanh chóng. Python khá dễ học và nó có xu hướng cho phép bạn tập trung hơn vào lập trình trò chơi thay vì các vấn đề về bộ nhớ và con trỏ. Đúng là mã Python không nhanh bằng mã C ++ được biên dịch nguyên bản, nhưng nó đủ nhanh và mã hóa và gỡ lỗi dễ dàng hơn thường sẽ tạo ra sự khác biệt. Nếu bạn tìm thấy một phần quan trọng mà Python đơn giản không thể xử lý, bạn có thể viết phần đó trong C / C ++ và sử dụng nó làm mô-đun.

Tôi dạy một lớp phát triển trò chơi và tôi đã chuyển đổi ngôn ngữ nhiều lần. Tôi rất hài lòng với Python là ngôn ngữ để dạy phát triển trò chơi.

Nhưng điêu tôt đẹp nhât se đên vơi bạn.


1

Về C ++, một IDE rất hay là QtCreator . Trên Linux, rất có thể bạn đã có Qt trong hệ thống của mình, nếu bạn đã cài đặt ứng dụng KDE, ngay cả khi đang chạy Gnome.

Nếu bạn muốn thử các ngôn ngữ kịch bản khác cho các trò chơi đơn giản, tôi đã có trải nghiệm rất thú vị với Löve2D , một công cụ trò chơi cho Lua . Rất dễ dàng để có được một cái gì đó vui vẻ được thực hiện trong thời gian không.


Ngoài Love2D, còn có một công cụ phái sinh dựa trên Javascript có tên LoV8 có thể đáng xem. code.google.com/p/lov8
Stephen Belanger

1

Nếu bạn muốn tạo các trò chơi thời gian thực hiệu suất cao hoặc bạn muốn tham gia phát triển trò chơi chuyên nghiệp, thì hiện tại chỉ có C hoặc C ++ là lựa chọn ngôn ngữ thực tế.

Điều này là do a) Họ có thể tạo mã nhanh, hiệu quả bằng cách sử dụng một lượng bộ nhớ nhỏ (nhiều ngôn ngữ cấp cao không cung cấp cho bạn khả năng kiểm soát phân bổ bộ nhớ một cách rõ ràng, điều này gây khó khăn cho việc tối ưu hóa việc sử dụng bộ đệm hoặc phù hợp với dữ liệu trong bộ nhớ hạn chế được sử dụng bởi nhiều hệ thống). b) Chúng là các tiêu chuẩn công nghiệp được sử dụng bởi đại đa số các trò chơi AAA. Đặc biệt là C ++, mặc dù các ngôn ngữ tương đối hợp lý (khi nói về cách chúng được sử dụng trong Phát triển trò chơi).

Đối với một khung, tôi sẽ khuyên bạn nên học OpenGL. Nó có thể phức tạp hơn một chút so với một số hệ thống, nhưng nó rất mạnh mẽ và được sử dụng rộng rãi, và kiến ​​thức của bạn có thể mở rộng từ Pông đến tận Unreal. Có rất nhiều hướng dẫn tốt, chỉ cần google cho 'Hướng dẫn OpenGL'.

Để làm cho mọi thứ dễ dàng hơn một chút, bạn có thể sử dụng khung trình bao bọc OpenGL (Tôi khuyên dùng GLFW - http://www.glfw.org/ - mặc dù GLUT cũng phổ biến).

Càng nhiều càng tốt, cố gắng tự viết mã thay vì dựa vào các khung dựng sẵn. Điều này sẽ dạy cho bạn những điều cơ bản về các vòng lặp cập nhật trò chơi, xử lý đầu vào, kết xuất, v.v ... Điều đó sẽ giúp bạn thay thế rất nhiều để xây dựng các dự án chi tiết hơn sau này.


1

Bản thân tôi coi Linux là một môi trường phát triển khá gọn gàng. Hầu hết các bản phân phối có mọi thứ bạn cần để phát triển ứng dụng c / c ++, chỉ cần đầu tư một chút thời gian để học gcc, gdb, vim và một hệ thống xây dựng hợp lý như Make, CMake hoặc Scons.

Nếu bạn đang sử dụng c / c ++ thì SDL sẽ là điểm khởi đầu tốt, thư viện khôn ngoan - bởi vì bạn sẽ tìm thấy một lượng lớn hướng dẫn cho nó. Đối với python tôi thấy pyglet là một thư viện tuyệt vời, mặc dù tôi đã không sử dụng nó trong 2 năm. Chỉ cần lưu ý rằng việc triển khai một ứng dụng python không phải là "dễ dàng" ..


1

Bạn chắc chắn nên đi với C ++. Sử dụng nó sẽ cung cấp cho bạn quyền truy cập vào hầu hết các thư viện và tùy thuộc vào dự án của bạn sẽ mang lại cho bạn sự linh hoạt và hiệu suất tốt.

Một nơi tốt để bắt đầu là với các hướng dẫn SDL của LazyFoo . Chúng có thể được sử dụng cho nhiều dự án khác nhau nhưng dễ hiểu ở mọi cấp độ kỹ năng.


1

Tôi sử dụng vim và rất khuyến khích nó - đó là một trình soạn thảo văn bản rất mạnh được thiết kế để giúp bạn viết mã nhanh chóng. Tuy nhiên, nó có một đường cong học tập khá dốc (sau khi cài đặt nó, hãy chạy 'vimtutor' để đi bộ nhanh). Tôi đã sử dụng nó được 8 năm và không thể tưởng tượng được việc sử dụng bất cứ thứ gì khác.

Tôi cũng đề nghị không nhảy vào IDE ngay lập tức. Theo kinh nghiệm của tôi, các IDE rất cồng kềnh và gây cản trở (đặc biệt là trong khi bạn đang cấu hình một dự án mới). Mặc dù vậy, tôi đã giữ Eclipse / CDT vì nó không thể thiếu như một trình gỡ lỗi.

Nếu bạn đã có kinh nghiệm về C ++, tôi sẽ gắn bó với điều đó. Như những người khác đã đề cập, SDL là một cách tuyệt vời để bắt đầu - bạn không thể sai ở đó.

Tetris là trò chơi đầu tiên tôi thực hiện và có lẽ không phải là một cách tồi để đi, nhưng bạn cũng có thể xem xét một cái gì đó như một nền tảng 2d hoặc một trò chơi phiêu lưu từ trên xuống 2d.


Tôi bối rối ... bạn có biết tại sao mọi người dường như thường sử dụng Linux thường xuyên như là sự lựa chọn của họ để phát triển trò chơi không?
Kaitlyn Mcmordie

1
Theo cách tôi thấy, Linux được thiết kế bởi các lập trình viên cho các lập trình viên. Windows được thiết kế bởi những người không lập trình cho người mới. Linux có rất nhiều công cụ để làm cho các lập trình viên làm việc hiệu quả hơn. Tuy nhiên, theo kinh nghiệm của tôi, Linux chỉ được sử dụng rất hiếm bởi các nhà phát triển trò chơi.
thịt

Hmmm tại sao nó không thực sự được sử dụng bởi các nhà phát triển trò chơi sau đó?
Kaitlyn Mcmordie

0

Nếu bạn muốn sử dụng C ++, tôi rất có thể khuyên dùng KDevelop4. Họ đã thực hiện rất nhiều cải tiến khiến nó trở thành một IDE rất tốt. Lấy SFML hoặc SDL và nhận hack.

Tôi cũng rất khuyến khích Vim hoặc Emacs cũ tốt cho bất kỳ ngôn ngữ nào.

Nhưng nếu bạn muốn thực hiện một số mã về, bạn có thể thử Python + PyGame. Bạn có thể tải các trò chơi đơn giản lên và chạy rất nhanh và bạn không cần một IDE ưa thích.

Tôi đã không nhìn vào chúng, nhưng có vẻ như Ruby cũng có một loạt các khung bạn có thể thử, nếu bạn muốn học Ruby.


0

Tôi thực sự khuyên bạn nên jMonkeyEngine nếu bạn có kỹ năng Java - đó là một mục đích chung rất tốt, công cụ trò chơi 3D nguồn mở.

Đó là nền tảng chéo hoàn toàn (tất cả những gì nó thực sự cần là hỗ trợ OpenGL và JVM) vì vậy sẽ chạy trên Linux nhưng cũng duy trì tính di động cho Windows hoặc Mac, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.