Есть ли простой «Hello World» для создания игр?


17

Кто-нибудь знает простой "Hello World" для создания игр для Ubuntu? Я видел видео «Начало работы с Quickly».

Есть примеры для платформеров или что-то в этом роде?

РЕДАКТИРОВАТЬ: Просто резюме ответов.

Движок Blender Game - использует питона

Pygame - Python

MonoGame http://monogame.codeplex.com/ - какая-то XNA?

QuakeC - это ароматизированный Quake C, как lang. Смотрите: Steel Storm http://one.steel-storm.com/


7
См: developer.ubuntu.com/community «. Участие в AskUbuntu> совместно отредактированный сайт вопросов и ответов для пользователей и разработчиков Ubuntu 100% бесплатно, регистрация не требуется Задать вопрос сейчас>» Я думаю , что askubuntu должен быть для разработчиков также.
Я

2
Я лично чувствую, что это хорошо, так как на developer.uc это упоминается в AU. Если ОП может получить немного более конкретную информацию о том, что они ищут, то это было бы лучше.
JRG

Ответы:


8

Blender может сделать 3D-игру с Python: http://www.blender.org/features-gallery/features/

Можно создать простую игру «Привет, мир!», Полностью интегрированную со звуком, симуляцией физики, GLSL, плагинами для многих вещей (включая сетевые и веб-плагины), хорошим и профессиональным рабочим процессом.

3D Platformer: http://www.youtube.com/watch?v=BGqyvX4P6Pg

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

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

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


Я думаю, что Ogre3D и Panda3D должны быть только трехмерными графическими движками и должны использоваться с 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 Я видел это видео. Есть ли у вас опыт использования Quickly в качестве отправной точки для разработчиков игр?
Я

Я думаю, что Быстро + Pygame (?) Хорошо работает для игр типа «как», «наведи и щелкни», может быть, не так много, чтобы создавать платформеры ...
am

Я не могу с вами согласиться. Есть люди, которые даже пытаются использовать код 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
@ Пабби, можешь назвать?
Я

4

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

Пожалуйста, проверьте http://www.pygame.org/wiki/tutorials

Надеюсь это поможет


Я видел + использовал Pygame некоторые. Знаете ли вы какие-либо реальные игры, которые были написаны в нем? Реальная = целая игра (не только демоверсии) с приличной графикой и геймплеем
утра

3

Panda3D - это хорошая кроссплатформенная библиотека для игр на Python и C ++. Он разработан и поддерживается группой в Carnegie Mellon и используется в нескольких коммерческих изданиях. Он добавляет более простые абстракции по сравнению с 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, который я когда-либо мог придумать для игры, использующей только код, а не быстро или pygame, содержит около 50 строк кода на C, который включает 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;   
}

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.