Безкоштовна мова для розвитку гри? [зачинено]


19

Отже, я намагаюся навчити свого набагато молодшого двоюрідного брата трохи програмуванню. Моя початкова думка була чимось на кшталт « Скретч» або « Аліса» , але в цьому було кілька недоліків.

  • Кожен, здається, насправді займається програмуванням ігор та розробкою відеоігор (адже всі люблять грати у відеоігри, а що стосується того, щоб грати у відеоігри, грати в свої власні може бути найбільш корисною) - але ні Аліса, ні Скретч, здається, не задовольняють гру розвиток

  • Аліса і Скретч здаються занадто по-дитячому, хоча я впевнений, що мій двоюрідний брат полюбляв би поспішати в ньому, я думаю, що він швидко це набридне

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

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

Тепер, тому я не хочу вибирати Алісу чи Скретч.

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

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

Я також подивився на таку мову, як Бліц, і це виглядає дійсно багатообіцяючим (плюс, я спробував це кілька років тому, і це було дійсно досить приємно). Мінус полягає в тому, що я повинен платити, що я однозначно проти.

Я подивився на SmallBasic , який здається перспективним, і я продовжую дивитись на нього. Але я мало що зробив (насправді я запускаю інсталятор під час введення цього тексту, тому незабаром повідомлю про свої думки).

ОНОВЛЕННЯ: Я швидко спробував SmallBasic, і це здається інтригуючим, але він також здається зовсім іншим в порівнянні з деякими іншими мовами - це не погано, але це просто незвично. Із речей, на які я дивився, Бліц все ще є моїм улюбленим, але я відмовляюся їхати туди через витрати.

Але в основному, що ви думаєте, про що я говорив дотепер, та мови, які я переглянув, і чи знаєте ви якісь інші, хороші альтернативи?


ОНОВЛЕННЯ: Ось що я вирішив зробити ...

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

У будь-якому разі я вибрав Python та Pygame. Python - це мова, з якою я досить добре знайомий, плюс я знаю, що навколо Python є досить хороша (і досить велика) спільнота. Крім того, я знаю, що документація Python є досить повною та простою в навігації. Також Pygame має чудову документацію та набір навчальних посібників. Я також змушую його використовувати / слідкувати за винайденням власних комп’ютерних ігор з Python , що здається дуже хорошою книгою, я придбав йому паперову копію як різдвяний подарунок, плюс я знаю, що його монітор не величезний, і це було б бути незручним постійно мінятись між текстом і редактором.

Я думаю, що це повинно пройти добре!

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


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

2
+1 Для того, щоб знати, де зупинитися, навчаючи когось молодшого. Ніяких нудних інформатики, просто круті результати. "створіть іскру, а потім дайте йому продовжувати вогонь з рештою вогню".
Енді Хант

1
@Bob Я працюю веб-розробником більше десяти років, але лише останнім часом займаюся тим, що люди насправді використовують безпосередньо. Я вже занадто довго займаюся глибокими речами. Хоча моя офіційна відповідь полягає в тому, що моя мотивація - це моя глибока любов до вирішення проблем, бла-бла-бла, минулий рік був першим у моєму професійному житті, що я мав шанс почути від випадкових людей, що вони насправді використовують те, що будую , і це допомогло їм якось невеликим чином. Почуття приголомшливе! Сподіваємось, ваш двоюрідний брат знаходить програмування таким же захоплюючим, як і ми ...
yannis

1
@MahmoudHossam Я обов'язково повідомляю вас
Боб

Відповіді:


12

Схоже, ніхто не викинув Python + Pygame . Залежно від віку / зрілості ваших двоюрідних братів це, безумовно, відкриває можливість безлічі класних речей. Це, звичайно, достатньо базового, щоб почати роботу, але завдяки його величезній стандартній бібліотеці, ви не можете дійсно нудьгувати з Python.


19

Я думаю, що сучасний еквівалент BASIC - це JavaScript. Дайте йому просту HTML-сторінку, на якій є вбудований скрипт, який створює полотно і малює на ньому форму, вкажіть його на деякі підручники і подивіться, що відбувається. Швидкий поворот (збережіть зміни та оновіть сторінку) та гідну підтримку налагодження.


додатковим плюсом є те, що він також може миттєво поділитися з друзями також
bunglestink

Ігри HTML5 є гарячою темою для індустрії мобільних ігор через її (майбутню?) Портативність / незалежність платформи. Інший - WebGL, який, на мою думку, є менш поширеним. Нові набори інструментів з’являються щодня.
mctylr

Це цікава ідея, і я думаю, що веб-розробка, безумовно, є хорошим майстерністю. Мені доведеться подумати над цим, але це здається цікавим.
Боб

5
Я не повністю згоден. Javascript набагато складніше вивчити, ніж Basic є / був (не те, що я знаю Basic, розум), і якщо ви хочете поєднати його з веб-сторінкою, ви також повинні дізнатися про HTML та веб-технології. Більш прості початки (я думаю) були б на сервері Javascript, наприклад, поєднуючись з NodeJS як полегшеним середовищем виконання або іншим інтерпретатором JS командного рядка.
Cthulhu

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

12

Не мова програмування, явно призначена для ігор, але дуже круті графічні ефекти можна зробити за допомогою досить невеликого коду з обробкою . Плюс до цього, це безкоштовно та відносно легко вивчити. IMHO - ідеальна мова для вивчення основ програмування, тим більше, що підручники навчають багатьох основних понять, таких як змінні, масиви, математичні операції тощо.


Я думаю, що ключовим моментом є наявність навчальних посібників. Я навчив себе програмуванню з копією комп'ютерних ігор Дейва Ахла 101 BASIC , і ключовим (для мене) було бачення коду та вибірки разом. Мені було набагато простіше працювати назад від виходу, щоб зрозуміти, як щось робилося, ніж сказати "зроби це, і дивись, що відбувається".
TMN

11

Я не грав з ним рік-два, але використання C # з XNA могло б стати гарним місцем для початку. З того, що я пам’ятаю, почати з нього досить просто. Хоча ця ланка, мабуть, більше для вас, ніж він.


1
У мене фактично є досвід роботи з C # і XNA (я працював із C # на минулій роботі). Я думаю, що це чудова рекомендація, але я не впевнений, чи це він занадто передовий для нього. Він може це зробити, але більшість дітей хочуть справжніх результатів за мінімальні зусилля та «навчання накладних витрат».
Боб

Оскільки це бібліотека .NET, я б припустив, що вона також доступна для використання в VB, що може дещо зменшити «накладні витрати» на C #.
Енді Хант

3
@AndyBursh, коли мене змусили вивчати ВБ, це дало мені головний біль, поки я не зупинився. Я ніколи не торкався цього.
codeparkle

@codesparkle Я повністю згоден, VB як мова дратує як усе пекло. Однак читати та писати прості речі досить просто, тому це часто приємна вступна мова. На жаль, у мові є жахливі ідіосинкразії, такі як жахливий код, який ви повинні написати, щоб передати від A до B!
Енді Хант

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

11

Спробуйте Greenfoot ,

Зображення http://www.greenfoot.org/images/screenshot.png?1310995619

Її основана на Java, і є всі ці підручники для використання на Youtube .

greenfoot забезпечує хороший підхід зверху вниз, призначений для новачків.

дивіться цю відповідь stackoverflow , що я зазначив: "Діти, насправді, це найшвидші учні, і вони роблять це шляхом узгодження зразків, екстраполяції, інтерполяції тощо".

тому після використання Java в зеленому стопі пізніше поняття буде легше зрозуміти лише тому, що вона відчуває себе знайомою.


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

@bob Все, що дає змогу писати код та швидко вирішувати цікаві проблеми, має стати хорошим вибором.
Сіамор

Це виглядає як дуже класний проект
KallDrexx

" відповідь stackoverflow ", на яку ви посилаєтесь, була видалена, і посилання більше не працює, ви б заперечували над оновленням відповіді?
гнат

4

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

Інший варіант - Second Life - це дуже гнучкий світ, де можна створювати ігри, симуляції, демонстрації, будь-що інше з приємною та чистою мовою сценаріїв .


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

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

@Bob, за допомогою Second Life ви можете створювати власні ігри, використовуючи стільки доступних функцій, скільки вам потрібно. Це просто платформа. І це безкоштовно. А деякі модні ігри - це абсолютно нові ігри, майже нічого спільного з їх базовою платформою.
SK-логіка

@Bob, що стосується побудови чогось із нуля, вибір мови повинен бути останнім, що слід врахувати. Платформа та бібліотеки були б важливішими. Я б запропонував XNA у цьому випадку (з вибором будь-якої мови .NET поверх нього).
SK-логіка

Добре, ідея Second Life насправді звучить досить круто. Я обов'язково погляну на це. Дякую за пропозицію! Як колишній розробник .NET, я напевно вважав це, але я не хочу вибирати щось надмірно складне для молодої аудиторії. Але я обов'язково загляну в це.
Боб

4

Наразі я завзятий користувач Game Maker . - Хоча повна версія не є безкоштовною (40 доларів), безкоштовної версії достатньо, щоб скуштувати основи ігрового дизайну. У ньому достатньо "вмісту" для того, щоб хтось із нових людей залишався зайнятим на кілька років. Якщо мені доведеться розмістити його десь, я б розмістив його десь між моддінгами та мовами, такими як python.

Він має кілька методів письма. Ви можете використовувати піктограми "перетягування та перетягування" та значно вдосконалену "мову сценаріїв" (GML). Я ніколи не розумію, чому люди так хочуть "написати код" - я бачу перетягування просто як спосіб візуалізації коду.

Ще одна перевага ігрового виробника - і тому, що після вивчення інших мов та 10-річного досвіду я дотримуюся гейммейкера - це те, що він допомагає організувати гру: у неї є кілька ресурсів, система подій тощо тощо.
Це не ідеальний інструмент для створення наступний світ Warcraft, однак для враження інших важливіше створити САМО.

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


+1 Я виявив Game Maker у середній школі і дуже розважився. Хоча необхідного кодування не так багато, ви можете полегшити свій шлях до нього, оскільки він відкриває вам змінні, і ви можете встановити формули для зміни цих змінних, коли відбуваються певні події. Тільки вбудовані події зіткнення дозволяють навантажувати творчі ігри. Вбудовані шаблонні ігри дозволяють корисно модифікувати. Я створив примітивні скроллери, зверху вниз, гру типу вимикачів блоків ... дуже весело.
Джошуахедлюнд

3

Справа в тому, що тисячі людей , які розвиваючі ігри в це флеш. "Офіційний" пакет розробки Flash від Adobe коштує грошей, але є безкоштовні альтернативи; На пошук FlashDevelop знадобилося менше години, щоб знайти, завантажити, запустити і отримати спалах "Hello World". Бібліотека Flixel забезпечує хороші допоміжні функції для ігор, включаючи фізику, частинки, створення легкого рівня для платформерів, має безліч зразків і їх легко налаштувати.


2

FWIW, я купив мою кузену " Земля LISP " для цієї ж мети. Книга проілюстрована мультфільмами, і все стосується створення ігор у LISP. Мій двоюрідний брат хотів створити текстові ігри, але, думаю, книга дасть йому хороший вступ до програмування.


Я читав Землю Ліса і це класна книга, але не знаю, чи завжди Лісп є найкращим початковим місцем для молоді. Синтаксис складається в основному з дужок, які здадуться простими, але я думаю, що це заплутається досить швидко, особливо коли ти дитина.
Боб

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

@ user16764 Дякую за пропозицію, я думаю, це буде прекрасним способом моделювати свої ідеї!
Боб

2

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


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

2

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

Я б запропонував вам використовувати python разом з pygame, щоб почати. Я знаю, що ви мали застереження щодо python, але вислухайте мене. Python - дуже проста мова. Я б заперечував, що відсутність суворого набору тексту робить його набагато кращим вибором, ніж щось на зразок C # для початку.

Мови, засновані на прототипі, є крутими, і деякі люди вважають, що їх дуже легко підібрати, проте я не думаю, що люди насправді розуміють поняття того, як об’єкти працюють в мовах, заснованих на прототипі, так легко, як вони можуть впорядкувати парадигму класу / об’єкта.

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

Можливо, після гри, написаної в пігамі, ви можете перейти до написання ігор, які також інтегруються з 2d фізичним двигуном, як box2d, який має чудові прив'язки пітона.

Що стосується навчання вашого двоюрідного брата пітона, я б ухилявся від того, щоб спочатку його вивчити мову, можливо, крах курсу в ідеях класу / об’єкта. Потім деякі основні синтаксиси мови, перш ніж кинути його в глибокий кінець, і змусити його шукати синтаксис та / або бібліотеки, коли йому / їй потрібно щось.

Нарешті, ще одна добра річ щодо python - це те, що ви можете легко переходити на 3d ігрові двигуни, зберігаючи свої навички з такими двигунами, як panda3d або навіть єдність (Boo дуже схожий на python).


2

Луа та LÖVE . Lua - одна з найпростіших доступних мов. Рамка LÖVE оптимізована для 2D ігор. Він також має резервний OpenGL з продуктивністю та іншими перевагами, які це приносить.


1

Ви можете спробувати Unreal Development Kit ( Особливості ). Дізнатися про інтерфейс може бути трохи важко. Але чудова справа в тому, що він також має двигун візуального сценарію, тому вам не потрібно мати можливість програмувати, щоб щось зробити. Потім він може щось зробити і програмувати невеликі частини цього самого. Мінусом може бути те, що він використовує власну мову сценаріїв.

Ще один двигун, який мені дуже подобається, це Unity3D ( Особливості ). У Unity немає візуального програмування, але він використовує дві загальні мови: C # та JavaScript. Він також підтримує діалект пітона під назвою Boo. Ці троє можуть взаємодіяти. Єдність також поставляється з великою кількістю готових сценаріїв.


Якщо метою є власна гра з 3D графікою, це найкращий підхід ІМО. Багато / більшість основних інструментів для ігор мають безкоштовні версії (для деяких потрібна зареєстрована версія їх основної гри). Більшість розповсюджується від модінгу до створення абсолютно нових ігрових середовищ. Кілька (не всі): Дитячий майданчик , Havok і Value Source . Є ще багато, про що я зараз не можу придумати.
mctylr

Єдність та Нереальність - це дуже здорово, але я думаю, що цільовий вік починається в підлітковому віці, яке трохи занадто старе.
Боб

@Bob: Я не думаю, що ти згадав про будь-який вік, тому я не знав, що запропонувати :)
Simon Verbeke


0

Я знаю, що ви шукаєте безкоштовні мови і є кілька хороших пропозицій інших плакатів. Оскільки ви стурбовані отриманням цікавих результатів, швидше, і оскільки Blitz здається такою, що ви хотіли б, окрім вартості, я б запропонував Phrogram . Це раніше був KPL (який був безкоштовним). Це не безкоштовно, але він дешевший, ніж Blitz, і він має багато тих же функцій, які, на мою думку, роблять його дуже придатним для використання в якості викладання мови, особливо для підлітків.

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


Фограма виглядає круто, і я не дуже налаштований проти оплати, але я вважаю за краще безкоштовні варіанти. Я проведу судовий процес і побачу, як він порівнюється з DarkBasic і Blitz.
Боб

0

Тут багато хороших пропозицій, я просто вигукую RoboCode . Існує маса прикладів для налаштування, і ви можете бути запущеними і працювати лише за кілька хвилин. Це додасть йому смаку програмування, але він, швидше за все, не навчиться гайкам і болтам насправді писати програму з нуля. Це також на базі Java, для чого це варто.


0

Я не можу зрозуміти, як ніхто не говорить про Games Factory! Це один з найкращих ресурсів для швидкої побудови комп’ютерної гри, без знання програмування.
http://www.clickteam.com/website/usa/downloads/index/7
Складається з редактора дошки розповідей - з кадрами. Ви розміщуєте різні об'єкти, якими плеєр може керувати різними способами (рух платформи, напрямок 8, тощо)
. Найважливішим аспектом є редактор подій - це величезна матриця, яку ви використовуєте для визначення того, що відбувається з визначені правила (Like - об'єкт (1) переміщено до кінця екрана, розташування об'єкта> 100, і т.д. ...).



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.