Свободный язык разработки игр? [закрыто]


19

Итак, я пытаюсь научить своего младшего двоюродного брата немного программированию. Моей первоначальной мыслью было что-то вроде Scratch или Alice , но в этом было несколько недостатков.

  • Кажется, что все действительно увлекаются программированием игр и разработкой видеоигр (потому что все любят играть в видеоигры, и если вы играете в видеоигры, то играть в свои собственные игры может быть самым полезным), но ни Алиса, ни Скретч, похоже, не обслуживают игру. развитие

  • Алиса и Скрэтч кажутся слишком ребяческими, хотя я уверен, что моему двоюродному брату понравится в этом баловаться, я думаю, он быстро надоест

  • Я хочу язык, который можно использовать для разработки действительно классных вещей, которые поразят его друзей. Я помню, как писал BASIC в тот день, пригласил всех своих друзей и продемонстрировал свое творение, и я просто чувствую, что Алиса и Скретч просто не апеллируют одинаково

  • Я хочу язык, который требует, чтобы мой двоюродный брат писал код. Теперь, это не только потому, что я думаю, что вывод кода является хорошей подготовкой для других языков программирования, но и потому, что он дает ему возможность практиковаться в наборе текста и, возможно, привыкнуть к некоторым немного более эзотерическим символам на клавиатуре.

Вот почему я не хочу выбирать Алису или Царапину.

Я также не хочу выбирать язык как C или Java, или даже Python или Ruby в этом отношении. Мой двоюродный брат уже сообщил мне, что он любит играть в видеоигры и хочет делать свои собственные, и что он любит пользоваться компьютерами. На мой взгляд, даже простой язык, такой как Python или Ruby, просто занимает слишком много времени, чтобы создавать классные вещи. В идеале он садился, проводил день или два (или, может быть, даже до недели, но, надеюсь, меньше) и имел бы работающую двухмерную игру. Я не говорю, что вы не можете сделать это на Python или Ruby, но я просто говорю, что это будет сложно для начинающего программиста. Кроме того, я не хочу увязать его со всем, что связано с информатикой, как это может произойти позже. Я просто хочу помочь ему создать искру, а затем позволить ему продолжать огонь.

Я смотрел на такие языки, как Lua, и, хотя это кажется распространенным явлением в игровом программировании, я не уверен, что это лучший выбор - но если вы, ребята, думаете иначе, пожалуйста, дайте мне знать.

Я также посмотрел на такой язык, как Blitz, и он выглядит очень многообещающе (к тому же, я попробовал его несколько лет назад, и это было действительно очень приятно). Недостатком является то, что я должен платить, что я категорически против.

Я посмотрел на SmallBasic , который кажется многообещающим, и я продолжу смотреть на него. Но я ничего не сделал (на самом деле, я запускаю установщик, когда набираю это, поэтому я вскоре сообщу о своих мыслях по этому поводу).

ОБНОВЛЕНИЕ: я быстро попробовал SmallBasic, и это кажется интригующим, но, по сравнению с некоторыми другими языками, оно также выглядит совершенно по-другому - это неплохо, но просто необычно. Из всего, что я посмотрел, Blitz по-прежнему мой любимый, но я отказываюсь туда из-за стоимости.

Но в основном, что вы, ребята, думаете о том, что я сказал до сих пор, о языках, на которые я смотрел, и знаете ли вы какие-либо другие, хорошие альтернативы?


ОБНОВЛЕНИЕ: Вот что я выбрал, чтобы сделать ...

Я понял, что хотя я хотел бы помочь своему двоюродному брату, я не могу быть с ним все время, и я не могу помочь ему каждый раз, когда ему нужна помощь. Итак, я хотел выбрать то, что имеет хорошую документацию, хорошее сообщество и хорошую книгу, которой он может следовать.

В любом случае, я выбрал Python и Pygame. Python - это язык, с которым я довольно хорошо знаком, плюс я знаю, что вокруг Python есть довольно хорошее (и довольно большое) сообщество. Кроме того, я знаю, что документация по Python довольно полная и с ней легко ориентироваться. Pygame также имеет отличную документацию и набор учебных пособий. Я также заставляю его использовать / следить за « Придумай свои собственные компьютерные игры с Python» , который кажется очень хорошей книгой, я купил ему бумажный экземпляр в качестве рождественского подарка, плюс я знаю, что его монитор не очень большой, и он будет неудобно постоянно переключаться между текстом и редактором.

Я думаю, что это должно идти хорошо!

РЕДАКТИРОВАТЬ: Я не хочу подразумевать, что мой выбор является окончательным или что это правильно. Я просто думаю, что это лучше всего подходит для этой ситуации. Я думаю, что каждый, кто хочет научить кого-то моложе, должен просмотреть выбор и найти лучшее решение для конкретного человека, учитывая такие вещи, как возраст, уровень квалификации и интерес.


15
+1 I want a language that can be used to develop really cool stuff that will impress his friends.Это все еще моя основная мотивация для программирования, после 25 лет в нем ...
Яннис

2
+1 За то, что ты знаешь, где остановиться, когда учишь кого-нибудь младшего. Нет скучной информатики, просто классные результаты. «Создай искру, а затем позволь ему продолжать огонь».
Энди Хант

1
@Bob Я работаю веб-разработчиком уже более десяти лет, но только недавно занимался чем-то, что люди действительно используют напрямую. Я слишком долго занимался глубоким задом. Хотя мой официальный ответ заключается в том, что моей мотивацией является моя глубокая любовь к решению проблем, бла-бла-бла, прошедший год был первым в моей профессиональной жизни, когда мне посчастливилось услышать от случайных людей, что они на самом деле используют то, что я создаю. и это помогло им каким-то небольшим образом. Чувство потрясающее! Надеюсь, ваш двоюродный брат находит программирование
столь

1
@MahmoudHossam Я обязательно дам тебе знать
Боб

Ответы:


12

Похоже, никто не выбросил Python + Pygame . В зависимости от возраста / зрелости ваших двоюродных братьев, это, безусловно, открывает множество интересных вещей. Это, безусловно, достаточно просто, чтобы начать, но с его огромной стандартной библиотекой, вы не можете скучать с Python.


19

Я думаю, что современным эквивалентом Бейсика является Javascript. Дайте ему простую HTML-страницу, на которой есть встроенный скрипт, который создает холст и рисует на нем фигуру, покажите ему несколько уроков и посмотрите, что получится. Быстрый поворот (сохранить изменения и обновить страницу) и достойную поддержку отладки.


еще один плюс в том, что он может мгновенно делиться с друзьями
bunglestink

HTML5- игры - горячая тема для индустрии мобильных игр, благодаря ее (будущей?) Мобильности / независимости от платформы. Другой - это WebGL, который, я считаю, встречается реже. Новые наборы инструментов для них появляются ежедневно.
Mctylr

Это интересная идея, и я думаю, что веб-разработка, безусловно, хороший навык. Я должен думать об этом, но это кажется интересным.
Боб

5
Я не совсем согласен. Javascript немного сложнее выучить, чем Basic (был, я не знаю, Basic, ум), и если вы хотите объединить его с веб-страницей, вы должны также изучить HTML и веб-технологии. Более простые начинания (я думаю) были бы в Javascript на стороне сервера, например, в сочетании с NodeJS в качестве облегченной среды выполнения или другого интерпретатора JS командной строки.
Ктулху

+1 для JavaScript - да, часть HTML (5) - это дополнительное обучение, но опять же, HTML довольно прост - я помню, как научился делать кнопку HTML и хвастаться, когда я изучал GWBasic :)
yati sagade

12

Не язык программирования явно для игр, но очень крутые графические эффекты могут быть сделаны с использованием довольно небольшого кода с обработкой . Плюс, это бесплатно и относительно легко учиться. ИМХО идеальный язык для изучения основ программирования, тем более что в учебных пособиях рассказывается о многих базовых понятиях, таких как переменные, массивы, математические операции и т. Д.


Я думаю, что ключевым моментом является наличие учебных пособий. Я учил себя программированию с копией 101 BASIC Computer Games Дейва Ала , и ключом (для меня) было видеть код и пример вывода вместе. Я обнаружил, что намного легче работать в обратном направлении от вывода, чтобы выяснить, как что-то было сделано, чем получить сообщение «сделай это и посмотри, что произойдет».
TMN

11

Я не играл с ним в течение года или двух, но использование C # с XNA может быть хорошим началом. Из того, что я помню, начать это довольно легко. Хотя эта ссылка, вероятно, больше для вас, чем для него.


1
На самом деле у меня есть некоторый опыт работы с C # и XNA (я работал с C # на прошлой работе). Я думаю, что это отличная рекомендация, но я не уверен, что она слишком сложна для него. Он мог бы сделать это, но большинство детей хотят реальных результатов при минимальных усилиях и «затратах на обучение».
Боб

Поскольку это библиотека .NET, я бы предположил, что она также доступна для использования в VB, что уменьшит некоторые «затраты на обучение» в C #.
Энди Хант

3
@AndyBursh, когда я был вынужден изучать VB, у меня болела голова, пока я не остановился. Я никогда не трогал это с тех пор.
codesparkle

@codesparkle Я полностью согласен, VB как язык раздражает, как весь ад. Тем не менее, это довольно легко читать и писать простые вещи, так что это часто хороший вводный язык. К сожалению, в языке есть некоторые ужасные особенности, такие как ужасный код, который вы должны написать, чтобы привести от А к В!
Энди Хант

XNA действительно немного продвинута для начала. Я делал это до тех пор, пока не нашел Unity, которая использует тот же язык, но гораздо более визуальный подход с гораздо более быстрыми результатами. @AndyBursh: он не доступен для VB.NET, только для C # .NET
Саймон Вербеке,

11

Попробуйте Greenfoot ,

Изображение http://www.greenfoot.org/images/screenshot.png?1310995619

Он основан на Java, и есть все эти учебные пособия для использования его на Youtube .

greenfoot предоставляет хороший нисходящий подход, предназначенный для начинающих.

посмотрите на этот ответ , описанный мной в сообщении stackoverflow , который я заметил там: «На самом деле дети - самые быстрые ученики, и они делают это путем сопоставления с образцом, экстраполяции, интерполяции и т. д.»

поэтому после использования java в greenfoot на некоторое время более поздние концепции будут легче понять только потому, что они кажутся знакомыми.


Greenfoot выглядит как довольно аккуратный проект. Я не большой поклонник Java как первого языка, но Greenfoot делает его достаточно простым для молодых программистов. Я все еще играю с этим, но я думаю, что это может быть один.
Боб

@bob Все, что заставляет вас писать код и быстро решать интересные задачи, должно быть хорошим выбором.
Сиамор

Это похоже на действительно крутой проект
KallDrexx

« Ответ стекопотока », на который вы ссылаетесь, был удален, и ссылка больше не работает, не могли бы вы обновить ответ?
комнат

4

Звучит как типичный случай для моддинга . Многие игры очень гибкие и расширяемые, от старого доброго Quake I (с его языком QuakeC) до TES IV Oblivion или десятков игр, которые можно расширить с помощью Lua.

Другой вариант - Second Life - это очень гибкий мир, в котором можно создавать игры, симуляторы, демонстрации и все остальное, используя приятный и чистый язык сценариев .


Я бы согласился по большей части, но я думаю, что он хочет создавать свои собственные игры. Я думаю, что это скорее индивидуальный сценарий, но мой двоюродный брат и его друзья не увлекаются играми, которые очень хорошо поддаются моддингу ... Плюс, я думаю, что половина удовольствия - это создание чего-то (в основном) с нуля. Сказать «эй (папа или друг) посмотрите на эту игру, которую я сделал все сам» отличается от высказывания «эй, смотри, я сделал мод для этой игры, в которую я едва играю»
Боб

То, что я пытаюсь сказать, - это то, что дети хотят гордиться своей работой, создавать вещи с нуля и создавать вещи, которые дают довольно крутые результаты. Я думаю, что игровой моддинг может быть лучше ориентирован на подростков.
Боб

@Bob, с Second Life вы можете создавать свои собственные игры, используя столько доступных функций, сколько захотите. Это просто платформа. И это бесплатно. А некоторые игровые моды являются совершенно новыми играми, почти не имеющими ничего общего с базовой платформой.
SK-logic

@Bob, что касается создания чего-то с нуля, выбор языка должен быть последним, что нужно учитывать. Платформа и библиотеки были бы более важными. Я бы предложил XNA в этом случае (с выбором любого из языков .NET поверх него).
SK-logic

Хорошо, идея Second Life звучит довольно круто. Я обязательно посмотрю на это. Спасибо за предложение! Как бывший разработчик .NET, я определенно подумал об этом, но я не хочу выбирать что-то слишком сложное для молодой аудитории. Но я обязательно посмотрю на это.
Боб

4

В настоящее время я заядлый пользователь Game Maker . - Хотя полная версия не бесплатная (40 долларов), бесплатной версии достаточно, чтобы попробовать основы игрового дизайна. В нем достаточно «контента», чтобы кто-то новичок мог оставаться занятым в течение нескольких лет. Если бы мне пришлось разместить его где-нибудь, я бы поместил его где-то между моддингом и языками, такими как python.

У этого есть несколько методов письма. Вы можете использовать «иконки перетаскивания» и гораздо более продвинутый «язык сценариев» (GML). Я никогда не понимаю, почему люди так хотят «писать код» - я вижу перетаскивание как способ визуализации кода.

Другое преимущество геймейкера - и причина того, что после изучения других языков и 10 лет опыта я остаюсь геймейкером - это то, что он помогает в организации игры: у него есть несколько ресурсов, система событий и т. Д.
И т. Д. Это не идеальный инструмент для создания следующий мир варкрафта, однако, чтобы произвести впечатление на других, важнее создать ЧТО-ТО.

Я не могу порекомендовать другие варианты - лично я доволен разработчиком игр и в настоящее время больше интересуюсь изучением языков общего назначения.


+1 Я обнаружил Game Maker в старшей школе, и мне было очень весело с ним. Несмотря на то, что не так много необходимого кодирования, вы можете упростить его, поскольку он предоставляет вам переменные, и вы можете задать формулы для изменения этих переменных при возникновении определенных событий. Одни только встроенные события столкновений позволяют создавать множество творческих игр. Встроенные шаблоны игр позволяют полезный моддинг. Я сделал примитивные боковые скроллеры, нисходящие, игру типа блок-брейкера ... очень весело.
joshuahedlund

3

Дело в том, что тысячи людей , которые развивающие игры в это флэш. «Официальный» пакет разработки Flash от Adobe стоит денег, но есть бесплатные альтернативы; FlashDevelop занял у меня меньше часа, чтобы найти, загрузить, запустить и запустить флешку «Hello World». Библиотека Flixel предоставляет хорошие вспомогательные функции для игр, включая физику, частицы, простое создание уровней для платформеров, имеет множество сэмплов и проста в настройке.


2

FWIW, я купил свою кузину " Land of LISP " для этой же цели. Книга иллюстрирована мультфильмами и посвящена созданию игр в LISP. Хотя мой двоюродный брат хотел создавать только текстовые игры, но я думаю, что книга даст ему хорошее представление о программировании.


Я читал Land of Lisp, и это классная книга, но я не знаю, всегда ли Lisp - лучшее место для начинающих. Синтаксис состоит в основном из круглых скобок, которые кажутся простыми, но я думаю, что он довольно быстро сбивает с толку, особенно когда вы ребенок.
Боб

Для текстовых игр вы должны познакомить своего двоюродного брата с Inform или TADS
user16764

@ user16764 Спасибо за предложение, я думаю, что он станет для него отличным способом смоделировать свои идеи!
Боб

2

Язык, с которого я начал, был Dark Basic Pro . Я отошел от этого довольно быстро, потому что разработка игр - это не моя чашка чая, но это был мощный язык. Я не зацикливался на этом уже несколько лет, поэтому не уверен, насколько он хорош сейчас (последний раз я использовал его, когда DirectX 9 был новым и передовым). Но это позволяет быстро приступить к кодированию и созданию трехмерной графики с небольшим количеством кода (а также с чистым кодом).


Dark Basic выглядит довольно аккуратно, и по своей цели он похож на Blitz, но вам все равно придется за это платить.
Боб

2

Одной из самых сложных частей в разработке игр, хотя она менее распространена в разработке 2D-игр, является создание графики. Итак, если предположить, что вашему двоюродному брату не нужно заниматься созданием художественных оценок или он очень хорош в 2D-искусстве, тогда я думаю, что цель достижима.

Я бы предложил вам использовать Python вместе с Pygame, чтобы начать. Я знаю, что у вас были сомнения относительно питона, но выслушайте меня. Python - это очень простой язык. Я бы сказал, что отсутствие строгой типизации делает его намного лучшим выбором, чем что-то вроде C #.

Языки, основанные на прототипах, хороши, и некоторые люди находят их очень легко подобрать, однако я не думаю, что люди действительно понимают концепции того, как объекты работают в языках, основанных на прототипах, так же легко, как они могут обмануть парадигму класса / объекта.

В Pygame также есть множество примеров того, что ваш двоюродный брат и вы могли бы перейти к изучению основ, и во многих отношениях это очень простая структура, которая не столько скрывает от вас, сколько заставляет вас изучать многие основы, чтобы выполнять более сложные задачи. вещи.

Возможно, после игры, написанной на pygame, вы можете перейти к написанию игр, которые также интегрируются с физическим движком 2d, таким как box2d, который имеет отличные привязки к python.

Что касается обучения вашего двоюродного брата по питону, я бы отказался от того, чтобы он сначала выучил язык, возможно, ускоренный курс по изучению идей класса / объекта. Затем некоторый базовый синтаксис языка, прежде чем бросить его в глубокий конец и заставить его / ее искать синтаксис и / или библиотеки, когда ему / ей что-то нужно.

Наконец, еще одна хорошая вещь в Python, это то, что вы можете легко переходить на движки 3D-игр, сохраняя свои навыки с такими движками, как panda3d или даже Unity (Boo очень похож на Python).


2

Луа и Лёв . Lua - один из самых простых доступных языков. Фреймворк LÖVE оптимизирован для 2D игр. Он также имеет бэкэнд OpenGL, с его производительностью и другими преимуществами.


1

Вы можете попробовать Unreal Development Kit ( Возможности ). Может быть немного сложно узнать об интерфейсе. Но самое замечательное в этом то, что он также имеет визуальный механизм сценариев, поэтому вам не нужно программировать, чтобы что-то создавать. Затем он может что-то сделать и сам запрограммировать небольшие части. Недостатком может быть то, что он использует свой собственный язык сценариев.

Еще один движок, который мне действительно нравится, это Unity3D ( Особенности ). Unity не имеет визуального программирования, но использует два распространенных языка: C # и JavaScript. Он также поддерживает Python диалект под названием Boo. Эти три могут взаимодействовать. Unity также поставляется с множеством готовых скриптов.


Если целью является их собственная игра с 3D-графикой, то это лучший подход IMO. Многие / большинство основных игровых наборов инструментов имеют бесплатные версии (некоторые требуют, чтобы у вас была зарегистрированная версия их основной игры). Большинство простираются от моддинга до создания совершенно новых игровых сред. Несколько (не все): Playground , Havok и Value Source . Есть еще много вещей, о которых я не могу думать прямо сейчас.
Mctylr

Unity и Unreal действительно крутые, но я думаю, что целевой возраст начинается с подросткового возраста, который слишком стар.
Боб

@Bob: я не думаю, что вы упомянули какой-либо возраст, поэтому я не был уверен, что предложить :)
Simon Verbeke


0

Я знаю, что вы ищете бесплатные языки, и есть другие хорошие предложения от других авторов. Поскольку вы стремитесь к быстрому получению интересных результатов, а Блиц - это то, что вам нужно, за исключением стоимости, я хотел бы предложить Phrogram . Раньше это был KPL (который был бесплатным). Он не бесплатный, но он дешевле, чем Blitz, и у него много тех же функций, которые, я думаю, делают его очень подходящим для использования в качестве языка обучения, особенно для подростков.

Вы можете делать довольно сложные вещи с Phrogram, и есть довольно хорошо зарекомендовавшее себя сообщество пользователей Phrogram и KPL, которые выложили много кода для изучения.


Phogram выглядит круто, и я не особо настроен против оплаты, но я бы предпочел бесплатные варианты. Я сделаю пробную версию и посмотрю, как она сравнивается с DarkBasic и Blitz.
Боб

0

Множество хороших предложений, я просто выскажу RoboCode . Есть много примеров, которые можно настроить, и вы можете приступить к работе всего за несколько минут. Это даст ему вкус программирования, но он вряд ли научится понимать, как писать программу с нуля. Это также на основе Java, для чего это стоит.


0

Я не могу понять, как никто не говорит о фабрике игр! Это один из лучших ресурсов для быстрого создания компьютерной игры без знания программирования.
http://www.clickteam.com/website/usa/downloads/index/7
Он состоит из редактора раскадровки - с фреймами. Вы помещаете различные объекты, которые могут контролироваться игроком различными способами (движение платформы, 8 направлений и т. Д.)
. Самый важный аспект - это редактор событий - это огромная матрица, которую вы используете для определения того, что происходит из предустановленных событий. определенные правила (Like - объект (1) перемещен в конец экрана, местоположение объекта> 100 и т. д.).



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