Có một trò chơi Hello Hello World đơn giản để làm game không?


17

Có ai biết một "Hello World" đơn giản để tạo trò chơi cho Ubuntu không? Tôi đã xem video Bắt đầu với video nhanh chóng.

Bất kỳ ví dụ cho platformer hoặc một cái gì đó như thế?

EDIT: Chỉ là một bản tóm tắt của các câu trả lời.

Công cụ trò chơi Blender - Sử dụng python

Pygame - Python

MonoGame http://monogame.codeplex.com/ - một số loại XNA?

QuakeC - Đây là một Quake có hương vị C như lang. Xem: Bão thép http://one.steel-storm.com/


7
Xem: developer.ubfox.com/community "Tham gia vào AskUb Ubuntu, Một trang web câu hỏi và câu trả lời được chỉnh sửa cộng tác cho người dùng và nhà phát triển Ubuntu. Miễn phí 100%, không cần đăng ký Hãy hỏi một câu hỏi ngay bây giờ" cũng.
sáng

2
Cá nhân tôi cảm thấy điều này là tốt, vì trên developer.uc nó được đề cập trên AU. Nếu OP có thể hiểu cụ thể hơn một chút về những gì họ đang tìm kiếm, thì đó là điều tốt nhất.
JRG

Câu trả lời:


8

Blender có thể tạo trò chơi 3D bằng Python: http://www.blender.org/features-gallery/features/

Có thể tạo ra một trò chơi hello world đơn giản ở đó, tích hợp đầy đủ với Âm thanh, mô phỏng Vật lý, GLSL, các plugin cho rất nhiều thứ (bao gồm cả plugin và mạng Web), quy trình làm việc tốt và chuyên nghiệp.

Nền tảng 3D: http://www.youtube.com/watch?v=BGqyvX4P6Pg

Bản giới thiệu tính năng: http://www.youtube.com/watch?v=SjFGDcGcEjE

Panda3D rất thú vị, nhưng nó không phải là Game Engine, đó là một Thư viện Python nơi bạn có thể lắp ráp một Game Engine, nhưng nó không được tích hợp đầy đủ và liền mạch.

Ogre3D cũng giống như vậy, nó không phải là Game Engine, nó chỉ là một công cụ Đồ họa 3D, nơi bạn có thể lắp ráp Game Engine, bạn phải mã hóa Âm thanh của riêng mình chẳng hạn.


Tôi nghĩ rằng Ogre3D và Panda3D chỉ được coi là một công cụ đồ họa 3d và nên được sử dụng với SFML hoặc SDL để mở rộng từ 2d sang 3d và với Bullet hoặc PhysX để tích hợp vật lý. Thật đơn giản để làm khi bạn đã quen thuộc với bất kỳ điều nào ở trên.
cprn

10

Một lựa chọn nhanh chóng và dễ dàng là Nhanh chóng .

Tạo một dự án dễ dàng như gõ cái này ở terminal:

quickly create ubuntu-application my-new-project

Xem video giới thiệu này .

Ngoài ra đây là một trang web tuyệt vời: http://developer.ubfox.com/get-started/

Và, tất nhiên, hướng dẫn: man quickly

Bạn sẽ sử dụng python, điều này cũng tuyệt vời cho các trò chơi 3d, xem Panda3D .


1
Vâng, tôi sẽ bắt đầu với cái đó.
Luis Alvarado

@desgua Tôi đã xem video đó. Bạn có bất kỳ kinh nghiệm sử dụng Nhanh chóng như một điểm khởi đầu cho nhà phát triển trò chơi?
sáng

Tôi đang suy nghĩ Quickly + pygame (?) Hoạt động tốt cho các trò chơi kiểu, điểm và nhấp, có thể không quá nhiều để tạo ra các nền tảng ...
sáng

Tôi không thể đồng ý với bạn. Có những người thậm chí đang cố gắng sử dụng mã python cho các trò chơi Android (chỉ để làm ví dụ về sức mạnh của python) Xem điều này: kivy.org/#home
desgua

Pygame khá tốt pygame.org/news.html và nếu nó chỉ tạo ra những trò chơi nhanh tuyệt vời thì Flash vẫn không thể bị đánh bại.
David Pitkin

6

Giống như trên bất kỳ hệ điều hành nào, bạn sẽ cần chọn ngôn ngữ lập trình có thể sử dụng OpenGL cho đồ họa. Sau đó chỉ cần phát triển trò chơi.

Vì rất nhiều ứng dụng trên Ubuntu là nguồn mở, bạn có thể tìm thấy một ứng dụng trong trung tâm phần mềm miễn phí và sử dụng lệnh sau: sudo apt-get source gameName sẽ cho bạn ý tưởng về cách các trò chơi đã tồn tại được tạo cho Ubuntu. Bạn cũng có thể nghiên cứu cách đóng gói các gói debian khi bạn nghĩ rằng bạn đã sẵn sàng để phân phối.


Tại sao yêu cầu OpenGL? Có nhiều thư viện / ngôn ngữ thay thế có thể tạo ra các trò chơi.
Pubby

1
@Pubby bạn có thể kể tên một số?
sáng

4

Bạn đã kiểm tra PyGame chưa? nó là một thư viện tuyệt vời để làm game Có rất nhiều trò chơi đã được thực hiện mà bạn có thể đọc mã và tìm hiểu một hoặc hai điều. Tôi hiện đang dành thời gian rảnh của mình để học làm một trò chơi nền tảng chỉ vì mục đích học tập. Tôi sẽ đăng bài học của mình và trả lời sau với một số công việc thực tế

Vui lòng kiểm tra http://www.pygame.org/wiki/tutorials

Hi vọng điêu nay co ich


Tôi đã thấy + sử dụng pygame một số. Bạn có biết bất kỳ trò chơi thực sự đã được viết trong đó? Real = Toàn bộ trò chơi (không chỉ là bản demo) với một số đồ họa và chơi trò chơi phong nha
sáng

3

Panda3D là một thư viện trò chơi đa nền tảng đẹp cho Python và C ++. Nó được phát triển và duy trì bởi một nhóm tại Carnegie Mellon, và nó đã được sử dụng trong một vài tựa game thương mại. Nó bổ sung các bản tóm tắt đơn giản hơn OpenGL, OpenAL và Bullet và có một số ví dụ bắt đầu có sẵn, bao gồm cả trò chơi tiểu hành tinh 2D.

http://www.panda3d.org/

http://www.panda3d.org/manual/index.php/Sample_Programs_in_the_Distribution



1

Một số công cụ trò chơi hoạt động với Ubuntu là Panda3D và love2d. Cả hai đều rất dễ học và có tài liệu và cộng đồng tốt.


1

Thật không may, không có Hello World đơn giản cho các trò chơi. Hello World nhỏ nhất mà tôi từng có thể tạo ra cho một trò chơi chỉ sử dụng mã, không nhanh chóng hoặc pygame, là khoảng 50 dòng mã C kích hoạt opengl và các tiêu đề C khác nhau, thiết lập một số nội dung opengl và mở một cửa sổ với lời chào thế giới in.

Lập trình trò chơi, ngay cả trên Linux, không đơn giản như hầu hết mọi người nghĩ.

Nếu bạn muốn một cái gì đó dễ dàng hơn, Blender 2.6 có một công cụ trò chơi tích hợp, nó sử dụng Python và rất trực quan, nhưng kém linh hoạt hơn so với C + OpenGL theo quan điểm của tôi.

Một số tài nguyên: nehe.gamedev.net Google;) có những thứ khác trôi nổi xung quanh, tôi chỉ không thể nhớ tên của chúng, xin lỗi: |.



0

Đây là một dòng Tic-Tac-Toe 50 dòng:

import java.awt.*;  
import java.awt.event.*;
import javax.swing.*;

public class TicTacToe extends JFrame implements ActionListener {
    private JButton [] button  = new JButton [9];
    private int count = 0;

    public TicTacToe () {           
        super ("Tic-Tac-Toe");
        setSize (300, 300);
        setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        setLayout (new GridLayout (3, 3));
        init ();
    }

    private void init () {           
        count = 0;
        for (int i = 0; i < 9; ++i) {
            button [i] = new JButton ("");
            button [i].addActionListener (this);
            add (button [i]);
        }
        setVisible (true);
    }

    public void actionPerformed (ActionEvent a) {    
        String letter = (++count % 2 == 1) ? "X" : "O";
        for (JButton jb : button) 
        if (a.getSource () == jb) {
            jb.setText (letter);
            jb.setEnabled (false);
        }
        if (count == 9) {
            for (JButton jb : button) 
                remove (jb) ;
            init ();
        }
    }

    public static void main (String [] args) {           
        new TicTacToe ();
    }
}

Vì là Java, nên nó không bị ràng buộc với Ubuntu, thậm chí là Linux, nhưng cũng sẽ chạy trên Solaris, Apple và Windows - nơi có JVM.

Nhưng điều đó tương tự đối với các giải pháp trong Smalltalk, Python, Ruby, ... - ngay cả trong C hoặc C ++ khi một khung di động được sử dụng như Qt hoặc Gnome và không phải là một số lớp MFC độc quyền. Trong C và C ++, tất nhiên bạn phải biên dịch lại nội dung.


0

Sự đơn giản của việc tạo trò chơi dựa trên ngôn ngữ lập trình / môi trường bạn chọn. Đối với các lập trình viên nâng cao, mã hóa trò chơi của bạn trực tiếp bằng ngôn ngữ lập trình được lựa chọn (C / C ++ / Python / Java / etc) có thể là cách tốt nhất.

Đối với những người có sở thích / không phải lập trình viên, những người thích giao diện kéo và thả đơn giản để tạo trò chơi, tôi khuyên dùng 'Stencyl' ( http://www.stencyl.com/ ).

Trang web trợ giúp 'Stencyl' có tất cả các tài nguyên để bạn bắt đầu với việc tạo trò chơi. Bạn cũng có thể trực tiếp truy cập trang trợ giúp 'Crash Course 2' để tạo trò chơi đầu tiên của bạn hoàn toàn từ đầu trong 'Stencyl' ( http://www.stencyl.com/help/view/crash-cference-invaders-1/ ) . 'Khóa học sụp đổ' được đưa ra trong 'phần' và rất dễ theo dõi.


-1
//A Hello World for game
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int a=5, answer;
    printf("I am guess number game\n\n"); getchar(); 
    printf("I have a number\n\n"); getchar();
    printf("...between 1 until 10...\n\n"); getchar();
    printf("Try to guess: \n\n"); scanf("%d", &answer);
    while(1){
    if(answer<a){printf("\nYours %d, too small...\n\nInput again: ", answer); scanf("%d", &answer);}
    if(answer>a){printf("\nYours %d, too big...\n\nInput again: ", answer); scanf("%d", &answer);}
    if(answer==a){printf("\nYou're Right! My number is %d!\n\nDa daaag...", a); break;}
             }
return 0;   
}

1
Không có nhiều khả năng chơi lại ... ;-)
Eliah Kagan
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.