Каковы хорошие игры для «крыльев»? [закрыто]

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

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

292 голоса | спросил 3 revs, 3 users 100%
Drew
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

28 ответов


208

Breakout

Простая игра, так как у вас нет особого состояния, о котором нужно беспокоиться (это массив значений кирпича - если у вас только один кирпичный цвет, это массив флагов), то нет никакого AI, и вы получите сделать немного физики, чтобы мяч правильно отскакивал.

Пасьянс

Правила немного сложнее, чем Breakout, и интерфейс к нему много отличается. Это заставляет вас думать о разных методах реализации игры. то есть то, что работает в одной игре, не обязательно то, что вы использовали бы в другом.

Pac-Man

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

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

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
248

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

.

Если вы хотите написать RPG, выясните простейшую, наиболее управляемую концепцию RPG, вы можете придумать , что вы хотите сделать и сделать это. То же самое, если вы хотите сделать sci-fi шутер, или платформер с ужасом или что угодно. Выберите то, что вы закончите, и вы все равно захотите закончить после того, как все будет весело, но вы все еще смотрите на десятки часов работы, прежде чем вы действительно закончите.

Лучшая игра, чтобы «заработать свои крылья»? Тот, который вы закончили. Мне все равно, сколько полупрограммированных демонов PONG /Breakout /Galaga /Tetris, которые вы написали, вы не разработчик игр, пока не выпустили фактически завершенную игру.

Кроме того, никто не хочет играть еще одну версию этих 40-летних игр, и, по крайней мере, некоторые из пунктов написания игр предназначены для людей, чтобы играть , правильно?

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
179

Я отправил эту лестницу в TIGsource некоторое время назад. Он начинается с самого простого и очень сложного.

  • «Угадайте номер» /Hangman (базовый интерфейс, выберите данные из базы данных)
  • Tic-Tac-Toe /Rock-Paper-Scissors (пошаговый геймплей, противник AI)
  • Арканоид /Понг (коллизии, стабильная частота кадров, оценка, уровни)
  • Tetris (структуры данных и то, как они относятся к играм)
  • 1942 /Shoot-em-up (враги, пули)
  • простая платформа /пинбольная игра , если ваш движок делает платформеры (столкновения на основе силы тяжести)
  • Бомберман /Пакман (движение на основе плитки, сложный AI противника)
  • Двухпользовательская игра любого из вышеперечисленных типов (двух игроков)
  • Roguelike /Diablo (управление запасами, множественные вражеские ИИ, сохранение и загрузка сложных игровых состояний).
  • Faceball /Wolfenstein 3D (базовое 3D-движение и рендеринг)
  • Сетевая пошаговая игра (базовая сеть)
  • Платформер третьего лица Gimmicky 3D (физика, сложное трехмерное движение)
  • Сетевая игра в режиме реального времени (синхронизация клиент-сервер, отставание)
  • MMORPG (Постоянный мир)
ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
63

Самое важное правило обучения игровому программированию: программирование обучения сложно. Изучение игрового дизайна сложно. Учиться, как сделать хорошее игровое искусство или аудио, сложно. Попытка сделать все это одновременно - это рецепт неудачи. Изучайте одно за раз.

Следствие: программируйте игру, в которой дизайн, искусство и звук уже сделаны. Сделайте клоны, а не оригинальные игры.

В моих классах я всегда рекомендую начать эти игры, чтобы:

1) Тетрис. Искусство - это цветные прямоугольники, которые даже полный кнут может рисовать в Microsoft Paint. Вам не нужен звук. Программирование относительно простое, но все же требует нескольких ключевых вещей: понимание разницы между внутренним игровым состоянием и тем, что нарисовано на экране; возможность рисовать на экране, период (возможно, включающий спрайты и блаженство); возможность принимать пользовательский ввод в режиме реального времени, а не просто использовать getch () или scanf (), где вам нужно их ждать.

2) Прорыв /Арканоид. Искусство все еще окрашено в прямоугольники, и вам все равно не нужен звук. Использует все основные понятия Tetris, а также некоторое базовое обнаружение столкновений и физику 2D, так как мяч должен двигаться и плавно двигаться.

3) Gradius /R-Type. Вы можете найти некоторые бесплатные тайники для этого. Здесь фон прокручивается, поэтому вам нужно немного узнать о том, как работает графическая память, используя такие методы, как перелистывание страниц и двойная буферизация и рисование вне границ видимого экрана. У вас также есть динамические вражеские и пулевые породы, поэтому вам нужно научиться очищаться после себя (т.е. избавиться от врагов и пуль, покидающих экран, чтобы ваша игра не просачивала память, как сито).

4) Super Mario Bros. Как и в предыдущем проекте прокрутки, кроме прокрутки теперь находится под контролем игрока, а не автоматически. Вы также должны иметь дело с гравитацией и всеми забавными предметами столкновения, которые идут вместе с ним (например, не падать через пол только потому, что вы были на несколько пикселей выше в последнем кадре и хотите переместиться на несколько пикселей ниже в следующем кадре ). Также обратите внимание, что гравитация условна: она влияет на игрока и некоторых врагов, но обычно это не платформы или плавающие монеты или что-то еще, что немного отличается от реального мира.

Если вы можете сделать все четыре из них, вы должны быть в состоянии сделать практически любую 2D-игру, которую вы хотите; все инструменты есть. Если вы хотите сделать 3D-игру ... сначала изучите 2D, потому что это намного проще, и вам не нужно понимать математику как глубину, и вам все равно нужно понять 2D-материал ... и тогда, когда вы с этим начинаем работать с некоторыми базовыми 3D-инструментами (такими как Torque или Unity, или играми с открытым исходным кодом, такими как оригинальная Doom и Quake).

Удачи!

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
38

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

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

Вы знаете, как люди говорят о том, что вы должны изучать различные языки программирования, чтобы съесть их мышления и их сердца и их печень и тем самым обрести свою могучую силу? Есть настоящая правда: после вашего первого чистого или почти чистого языка программирования, даже на императивных языках, вы в конечном итоге напишите в основном побочные эффекты, потому что они настолько лучше определены, и все, что вы пишете даже в языках, не соответствующих этой форме, будет лучше для него. Неважно, какой язык он имеет - haskell, ml /ocaml /smlnj, formulaONE, c ++ templates, что угодно - вы все еще будете изучать, как выполнять многие классы работы, не полагаясь на состояние эффекта onside. В первый раз, когда вы узнаете прочный, машинный язык программирования, вы узнаете об абстракции типа размера. В первый раз, когда вы изучаете декларативный или ограниченный язык, вы узнаете об ограничении в качестве дискреционного инструмента. В первый раз, когда вы изучаете язык поиска по отступлению, вы научитесь молиться Ia! Ia! C'thulhu F'tagn Nagn !, а затем мы вернемся к еде сердец и печени, и круг жизни будет выполнен.

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

Кляп здесь (как я вижу, по крайней мере) заключается в том, что вы хотите охватить большой список тем. Это похоже на отключение навыков на листе персонажей - вы предоставляете себе больше механизмов, с помощью которых можно справиться с конкретной ситуацией. Да, они способны к уровню, но с одной или двумя точками, как вы можете по всем направлениям, означает, что когда придет время использовать его, вы не начинаете с нуля, и знаете, какая тактика доступна для увеличения.

Итак, посмотри.

Сначала вы хотите вырезать зубы. Они также полезны, когда вы учитесь настраивать таргетинг на новую платформу или когда вы восстанавливаетесь от амнезии. Они должны быть быстрыми, а не удивительными.

В порядке:

  1. Управление экраном. Bluescreening отлично подходит для этого, потому что тогда у вас есть веские основания полагать, что вы на пути к Microsoft.
  2. Проверка ввода. Fooscreen, где foo синий для вверх, красный для вниз и т. Д. Проверьте все свои ключи; есть более чем достаточно цветов, или вы можете использовать четырехцветную карту, если вам абсолютно необходимо сохранить малиновый цвет для более важных вещей.
  3. Текстовый и спрайт-рендеринг. Так как у вас также есть проверка ввода, игра с памятью в виде плитки - неплохая идея.
  4. Таймеры. Время для клона Марио или арканоида.
  5. Звук и музыка. Улучшите крио марио. Не так много.

После того, как вы потеряете это, вы готовы настроить таргетинг на платформу, и обучение может начаться.

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

  • Анимация. Почти все, что вы делаете, может вызвать анимированные спрайты. Получите независимый анимационный движок под вашим поясом, даже если это программист. Создание простой игры-головоломки, чья черепаха черепа достаточно.
  • Сложный подсчет очков. Получите всех пяти врагов в крыле? Бонус. Земля три удара подряд? Бонус. Пройдите через весь уровень, не пропуская пулю? Огромный бонус.
  • Pathfinding. Этого требует много игр, но игра с защитой от башни - простейшая. Вы можете начать сначала с первой и первой глубины, если вы никогда не делали этого раньше, но вы не закончили, пока не выполнили A * с нуля (НЕ КОПИРОВАННЫЙ КОД) хотя бы один раз.
  • Вражеское поведение. Незнакомое автоматизированное поведение будет охватываться вашим марио, но реактивное поведение тоже важно. Это хороший повод для создания тактической игры или рогалии. (Предупреждение: выработайте на roguelike на всю оставшуюся жизнь.)
  • Динамическое освещение 2d. Это также хорошая причина, чтобы написать roguelike. Arc-based shadowcasting - важный способ взглянуть на группировку и разделение, что, в свою очередь, важно для целого множества структур данных.
  • 2d Физика. Это появляется во множестве игр, на множестве уровней детализации. Попробуйте платформер (mario-ish), который можно упростить; танковая игра (выжженная земля-иш), которая может быть одинаково упрощена; и, в конечном счете, игра, подобная N Ninja, которая заставляет вас справляться с бегом по углам, импульсу и т. д. (вы можете сделать это с помощью системы выравнивания с ограничивающей осевой осью довольно просто.) Физика и столкновение довольно тесно связаны.
  • Обнаружение столкновений. Есть смехотворно простые случаи, такие как сетчатые Арканоиды и клоны Марио, умеренно сложные случаи, такие как N ниндзя и действительно сложные случаи, такие как игры на песочнице (невероятная машина, современные арканоиды, такие как BreakQuest и т. Д.). Во многих случаях вы можете обойтись что-то вроде AABB , но если вы настроены на математику, это может быть полезно на самом деле реализовать что-то полное. Как минимум, ознакомьтесь с полной библиотекой, такой как APE или Box2D.
  • Риски /вознаграждение в удовлетворении игры. Простые игры в кости (выкапывайте что-то под названием «Skunk» из 50-х годов) и игры с рискованным путем (жизнь, кандиленд) - отличные примеры простых быстрых способов узнать это, делая.
  • Выразительные вариации в механике. Пригвоздите себя к небольшому количеству правил, затем научитесь извлекать из них массу вариаций. Обычные игры на карточной карте - отличный способ работать с этим; загляните в колоды Дворжака и в реальные игры, такие как Mille Bornes, Rage и Uno, а затем создайте свои собственные. Они не могут быть похожими.
  • Сгенерированный контент. Простые картографические стратегические игры, roguelikes и некоторые виды головоломок - отличные способы научиться этому. Бонусные баллы, если это некая игра, которая обычно не известна для создания контента.
  • Style. Не вкручивайся: это большое дело. Сделайте игру, а затем скините ее в четыре совершенно разные игры. Действительно разные. Одна детская игра, даже. (Подумайте об этом: Mega Man имеет прекрасный смысл, как приключение волшебника в ад или как Rogue от X-Men, или ...) Теперь, заберите четыре группы людей, чтобы забить одну из ваших игр. После этого попросите их забить следующую игру, против часовой стрелки, вокруг кольца и т. Д. Обратите внимание на то, насколько радикально их скоринговые изменения основаны на темах и предыдущих ожиданиях.
  • Создание последовательности плана игрока. Логические игры - это самые чистые способы сделать это.
  • Управление ресурсами
  • Обновление
  • Время нарастания давления

... eh. Мне стало скучно.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
30

Tetris

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

Затем возьмите эту оригинальную идею и поставьте ее на вращение. Я изучил основы 3D-графики /opengl, написав трехмерную версию Tetris для моего класса компьютерной графики в колледже.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
25

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

Список выглядит следующим образом (некоторые из них приведены в других ответах):

  1. Tetris
  2. Breakout
  3. Side Scroller /Platformer
ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
15

Мне нравится начинать все мои ребята с Монополии. Обычно я использую Монополию Бретта Шучерта «код ката» в качестве основы упражнения, но я добавляю много на него. Есть несколько причин, почему мне очень нравится это делать.

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

  2. Практически все знают правила монополии, и вся игра может быть завершена за один день. Это дает новым разработчикам быстрый выигрыш и действительно получает свое участие.

  3. Первоначальные требования начинаются с управления клавиатурой, но затем я добавляю требование для элементов управления мышью позже. Это заставляет разработчиков задуматься о нескольких вещах, о том, как реорганизовать существующий код, программировать изменения частей системы на интерфейсы вместо конкретных классов, лучше /правильные абстракции, что единичный тест, что не единичный тест, ПОЧЕМУ для модульного теста и что делает для модульных тестов GOOD.

Иногда мы подключаем более сложный ИИ, иногда мы этого не делаем. Иногда мы работаем с другими настольными играми с немного более сложной логикой, такой как Chutes and Ladders или что-то в этом роде. Иногда мы полностью оторваемся от настольных игр и играем в покер или блэкджек.

Для меня действительно важная роль заключается в том, что люди получают быструю победу, и они видят, насколько гибко вы можете создавать программное обеспечение, когда будете следовать хорошим стандартам программирования. Эти упражнения очень быстро укрепляют доверие. Иногда более опытные разработчики любят делать это самостоятельно, просто чтобы отдохнуть от более сложных проектов или применить новую технику, которую они только что узнали (закон demeter?).

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
15

Выбрать-Your-приключение

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

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

Создание такой игры должно научить вас делать gameloop, базовый ввод в консоль и основные сценарии. Это очень просто для новичка и легко начинать прыгать в , так как вам не нужен графический движок , чтобы написать игру. Продвинутые новички, вероятно, напишут скриптовый движок.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
13

В моем опыте с начинающими программистами прогрессия обычно выглядит примерно так:

  1. Pong
  2. Tetris
  3. Огромные удивительные впечатляющие 50 часов игрового процесса 3D RPG (обратите внимание: большинство людей бросают часть программирования на этом этапе)
ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
12

Прорыв, понг или астероиды.

Существует огромная разница между игрой и прототипом . Если вы серьезно относитесь к завершению игры вашей мечты, вам следует закончить свои игры «начального уровня». Создание игровой части игры - это только половина битвы. Все дополнительные вещи, такие как меню и высокие оценки, часто пропускаются или игнорируются, но они занимают больше времени, чем ожидали люди.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
11

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

Понг - хороший пример.

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

Как только вы пойдете, вы обнаружите, что понг на самом деле немного сложнее, чем кажется на первый взгляд. (Я преподаю программирование парня, и он использует понг в качестве своего учебного проекта. Мы добавили некоторые функции, и теперь он отвлекается от обучения программированию, изучая, как делать все эти интересные функции:)

Как только вы закончили приложение №1 до тех пор, пока оно не будет готово давать /продавать другим, THEN возьмите что-то более сложное (Тетрис, приключение или что угодно) , чтобы начать изучать новую технологию, сделать то, что вы программируете, мозг мертв просто.

Другие примеры:

  • Угадайте число (между 1 и 1000)
  • Мастер-разум (расширенное предположение о количестве.)
  • SimplePaint
  • Змеи /червь /все, что Вы звоните, это.

Но, опять же - начните с чего-то, что слишком легко, так что вы действительно можете что-то сделать, оглянуться и посмотреть, что происходит. Разница между написанием ONE-приложения на языке /платформе /SDK /движке и написанием приложений ZERO HUGE . Разница между 1 & 2 или 2 & 5, тем более, поэтому вы можете делать более крупные шаги, но сделать шаг от 0 до 1 - крошечным крошечным; это будет больше, чем вы думаете!

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
9

Ознакомьтесь с этим веб-сайтом: 12 идей в области компьютерных игр

Некоторые из этих игр включают в себя то, что говорили другие:

  1. Pacman
  2. Tetris
  3. Pong

Но это также говорит о некоторых других играх, которые вы могли бы попробовать:

  1. Tic-Tac-Toe
  2. Кто хочет стать миллионером?
  3. И клон Mario.

Кроме того, это дает представление о том, что вы должны делать первым, так как это дает ощущение сложности для каждой игры (и, следовательно, план того, как вы должны решать игры):

  1. Новичок
  2. Intermediate
  3. Дополнительно
  4. Best
ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
5

Многие люди начинают с Breakout, потому что он имеет функции:

  • Вход: перемещение весла вперед и назад
  • Простой столкновение: мяч отскакивает от лопастей, кирпичей и стены.
  • Изменение «Состояние игры:» Обновление балла, когда мяч попадает в кирпичи и удаляет кирпичи, уменьшая количество шаров, когда мяч попадает в нижнюю часть экрана, проигрывая игру, когда количество мячей == 0 и т. д.
  • Это также довольно мягкое введение в графику, поскольку все прямоугольники и круги
ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
5

Самая сложная часть написания игры - или любого программного обеспечения - выясняет, что делать. Вам абсолютно нужна спецификация! Это забавная часть о создании клона существующей игры: спецификация уже существует. Ваша спецификация «Продукт должен делать все, что делает другой продукт», и если у вас есть копия другой игры под рукой, то это довольно легко проверить.

Как только вы выяснили , что вам нужно сделать, выяснение , как делать это действительно не так сложно, если вы компетентный программист. Я не имею в виду опытного или опытного программиста; это означало бы, что вы уже знаете, как делать большую часть того, что вы пытаетесь сделать. Но вам нужно понять, как мыслить в абстракциях и решать проблемы и логические мыслительные навыки, которые имеют фундаментальное значение для программирования. Если вы можете это сделать, вы можете сделать что угодно.

Сказав это, я не согласен с тем, что большинство людей говорит о попытке научиться писать игры, написав что-то очень простое. Награда прямо пропорциональна усилиям, которые вы вложили в нее. Если вы научитесь писать игры, написав очень простую игру, все, что вам известно в конце, это , как писать действительно простые игры, , и это не принесет вам много пользы.

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
5

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

Когда я начал свою первую игру, у меня был нулевой опыт разработки игр, но я занимался разработкой приложений для предприятий и бизнес-приложений в течение нескольких лет. Мой первый игровой проект был пошаговой стратегической игрой, и в архитектурном плане это выглядело не так, как от корпоративного приложения. Он использовал систему клиент /сервер, а связь осуществлялась через дуплексный сервисный канал WCF. Большинство операций с игроками были поставлены в очередь как «заказы» и отправлены на сервер в конце хода. Вся обработка обработки происходила на сервере, после чего каждому юзеру были отправлены обновления юниверсов.

Этот первый проект позволил мне войти в игру, начав меня на знакомой территории. По мере развития проекта я научился думать больше, как разработчик игр, и меньше, чем разработчик корпоративных приложений. Конечный результат работал очень хорошо, и это было немного более впечатляюще, чем Battleship или Tic-Tac-Toe:).

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
4

Nibbles и Space Invaders

Относительно простые AI, Graphics, Gameplay, Controls, и им не нужно иметь звуковые эффекты или музыку, если вы не захотите добавить это. Я начал с этих двух при изучении программирования в QBasic для MS-DOS и Я думаю, что это отличные первые игры. Pac-Man был бы моим другим выбором.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
3

Игры в стиле Moonlander велики (там, где у вас есть ракета, на которую влияет сила тяжести, игроки контролируют направление и тягу, ограниченное топливо при использовании тяги). Усиление опыта внедрения очень простой физики и системы столкновений может быть довольно примитивным. Нет AI, чтобы волноваться и, самое главное, его забава и захватывающая:)

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
2

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

Что-то вроде Gauntlet, потому что вам нужна система сущностей, вражеский AI, пикапы, карты плитки, обнаружение столкновения, забивание и т. д. Это все, но не так, как подавляющее.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

Клон клон Zelda хорош и обладает некоторыми навыками, о которых здесь не упоминалось. Прокрутка большой карты плиток и простых 8-позиционных элементов управления движением хорошо знать. Бонусные очки, если вы можете делать врагов, но я не стал бы слишком беспокоиться об этом.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

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

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

Я всегда начинал игру Tanks /Gorillas /Worms. Это дает вам упражнение на простом графическом дисплее и чтение пользовательского ввода, а также игровой цикл, применяющий гравитацию к снаряду и тестирование на обнаружение конфликтов.

После этого игра будет похожа на очень простой платформер или shoot-em-up, где вам нужно будет читать пользовательский ввод в режиме реального времени, а не инструкции INPUT, которые работают для Gorillas:)

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

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

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

Я всегда утверждал, что если вы программист игры, вы должны быть в состоянии сделать какую-то форму Space Invaders . Черт, игра достаточно проста, что вы тоже сможете делать свою графику.

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
1

Это действительно зависит от того, какие навыки у вас есть у обычного программиста. Нужна ли ваша математика? Ваши знания в области графики? У вас есть оба обертывания?

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

После этого небо предел. Опять же, прицелитесь высоко. Попробуйте платформер с наклонным рельефом, parralax, и у вас есть хороший мешок из 2d tech handy. Добавьте пинбол (подготовьтесь к расстройству), и ваша математика улучшится.

Оттуда переходите к третьему измерению, изучайте основные навыки (анимацию, рендеринг), и вы должны быть относительно хорошо экипированы, чтобы иметь дело с большим разнообразием игр.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
0

Я бы сказал, что игра Tower Defense - лучшее место для начала. Вы также можете начать с модификации уже существующих игр /движков (WarCraft III /HalfLife2 SDK /и т. Д.), Чтобы понять общую логику, а затем перейти к использованию собственной базы кода.

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32
0

Моя первая игра была чем-то вроде Super Mario.

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

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

ответил Rob Wells 18 PM00000040000003231 2009, 16:09:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132