Чи є простий "Hello World" для створення ігор?


17

Хтось знає про простий "Hello World" для створення ігор для ubuntu? Я бачив, як швидко почати роботу.

Будь-які приклади для платформерів чи щось подібне?

EDIT: Просто резюме відповідей.

Blender Game engine - Використовує пітон

Пігаме - Пітон

MonoGame http://monogame.codeplex.com/ - якась XNA?

QuakeC - це C, ароматизований як Quake. Дивіться: Сталева буря http://one.steel-storm.com/


7
Дивіться: developer.ubuntu.com/community "Беріть участь у AskUbuntu› Сайт, який редагується спільно з питаннями та відповідями для користувачів та розробників Ubuntu. 100% безкоштовна, не потрібна реєстрація. Задайте питання зараз "" Я думаю, що askubuntu повинен бути для розробників так само.
Я

2
Я особисто вважаю, що це добре, оскільки на developer.uc це згадується в АС. Якщо ОП може трохи уточнити те, що вони шукають, то це було б найкраще.
jrg

Відповіді:


8

Blender може зробити 3D-гру з Python: http://www.blender.org/features-gallery/features/

Тут можна зробити просту світову гру привіт, її повністю інтегрувати зі звуком, фізичним моделюванням, GLSL, плагінами для багатьох речей (включені мережеві та веб-плагіни), хороший та професійний робочий процес.

3D платформа: http://www.youtube.com/watch?v=BGqyvX4P6Pg

Демонстрація функцій: http://www.youtube.com/watch?v=SjFGDcGcEjE

Panda3D - це класний, але це не ігровий движок, це купа бібліотеки Python, де ви можете зібрати ігровий движок, але він не повністю і безпроблемно інтегрований.

Ogre3D - це так само, це не ігровий движок, а просто двигун 3D-графіки, де ви можете зібрати ігровий двигун, наприклад, потрібно кодувати власний звук.


Я думаю, що Ogre3D і Panda3D повинні бути лише 3D-графічними двигунами, і їх слід використовувати з SFML або SDL для розширення з 2d до 3d та з Bullet або PhysX для інтеграції фізики. Це легко зробити, коли ви вже знайомі з будь-яким із перерахованого вище.
cprn

10

Один швидкий і простий варіант - Швидко .

Створити проект так само просто, як набрати це в терміналі:

quickly create ubuntu-application my-new-project

Дивіться це вступне відео .

Також це чудовий сайт: http://developer.ubuntu.com/get-started/

І, звичайно, посібник: man quickly

Ви будете використовувати python, який також чудово підходить для 3d-ігор, див. Panda3D .


1
Так, я почав би з цього.
Луїс Альварадо

@desgua Я бачив це відео. Чи є у вас досвід використання Quick як вихідної точки для ігрових розробників?
Я

(?) Im мислення Швидко + Pygame добре працює як, точку і натисніть тип гри, може бути , не так багато , щоб зробити платформери ...
Я

Я не можу з тобою погодитися. Є люди, які навіть намагаються використовувати код python для Android-ігор (просто щоб зробити приклад потужності python) Дивіться це: kivy.org/#home
desgua

Pygame - це дуже добре pygame.org/news.html, і якщо його просто великі швидкі ігри, Flash все одно не можна обіграти.
Девід Піткін

6

Як і в будь-якій операційній системі, вам потрібно буде вибрати мову програмування, яка може використовувати OpenGL для графіки. Тоді просто розробляйте гру.

Оскільки багато програм на Ubuntu є відкритим кодом, ви можете знайти його у вільному програмному центрі та скористатися такою командою: sudo apt-get source gameName Це дасть вам уявлення про те, як створені ігри, які вже існують для Ubuntu. Ви також можете дослідити, як упакувати пакети debian, коли вважаєте, що готові до розповсюдження.


Чому вимога OpenGL? Існує багато альтернативних бібліотек / мов, які можуть робити ігри.
Паббі

1
@Pubby Ви можете назвати якусь?
Я

4

Ви перевірили PyGame? це чудова бібліотека для створення ігор. Уже створено багато ігор, які ви можете прочитати код і дізнатися щось або дві. Я присвячую свій вільний час навчанню робити платформу лише заради навчання. Я опублікую свої знання та відповім пізніше з деякою фактичною роботою

Будь ласка, перевірте http://www.pygame.org/wiki/tutorials

Сподіваюсь, це допомагає


Я бачив + використовував пігаму. Чи знаєте ви про якісь справжні ігри, написані в ньому? Real = ціла гра ( а не тільки демос) з деякими пристойними графіками і іграми
я

3

Panda3D - це приємна бібліотека ігор для платформ для Python та C ++. Він розроблений і підтримується групою в Карнегі Меллон, і він використовувався в кількох комерційних назвах. Він додає простіші абстракції над OpenGL, OpenAL та Bullet, і є ряд прикладів для початку роботи, включаючи 2D гру астероїдів.

http://www.panda3d.org/

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



1

Деякі ігрові двигуни, які працюють з ubuntu, - це Panda3D і love2d. Обидва дуже легкі в навчанні та мають гарну документацію та спільність.


1

На жаль, не існує простого Hello World для ігор. Найменший привіт Hello World ive, який коли-небудь міг придумати для гри, використовуючи просто код, а не швидко або пігаму, - це близько 50 рядків коду С, який містить в собі opengl та різні заголовки C, налаштовує деякі речі opengl та відкриває вікно з привіт світ друкується.

Програмування ігор, навіть на Linux, не так просто, як думає більшість людей.

Якщо ви хочете чогось легшого, Blender 2.6 має вбудований ігровий движок, він використовує Python і дуже інтуїтивно зрозумілий, але менш гнучкий, ніж прямий C + OpenGL.

Деякі ресурси: nehe.gamedev.net Google;) Є інші плаваючі навколо, я просто не можу запам'ятати назви їх, вибачте: |.



0

Ось 50 рядків Tic-Tac-Toe:

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 ();
    }
}

Оскільки це Java, вона не пов'язана з Ubuntu, навіть не з Linux, але працюватиме також і на Solaris, Apple та Windows - там, де є JVM.

Але це схоже для рішень у Smalltalk, Python, Ruby, ... - навіть у C або C ++, коли використовується портативна структура на зразок Qt або Gnome, а не деякі власні MFC-класи. На C і C ++, звичайно, ви повинні перекомпілювати матеріали.


0

Простота створення ігор заснована на обраній вами мові / середовищі програмування. Для просунутих програмістів кодування вашої гри безпосередньо на мові програмування за вибором (C / C ++ / Python / Java / тощо) може бути найкращим способом.

Для любителів / некодерів, які люблять простий інтерфейс перетягування для створення ігор, рекомендую "Stencyl" ( http://www.stencyl.com/ ).

На довідковому веб-сайті "Stencyl" є всі ресурси для початку роботи зі створенням ігор. Ви також можете безпосередньо перейти на сторінку довідки "Crash Course 2", щоб створити свою першу гру повністю з нуля у "Stencyl" ( http://www.stencyl.com/help/view/crash-course-invaders-1/ ) . "Курс аварії" подається в "частинах" і його дуже легко дотримуватися.


-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
Не дуже багато можливостей для відтворення ... ;-)
Елія Каган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.