Изобретения и техника12-14 г.

Как се прави видеоигра

Ще разбереш как работи игровият цикъл, какво са кадри в секунда, кой прави една игра и как да създадеш свой прототип.

Робко

Бип-буп! Загадка: една игра рисува целия екран отново и отново, 60 пъти всяка секунда, а ти дори не го забелязваш. Как го прави? Хайде да надникнем под капака.

Реши теста

История от живота

През октомври 1958 г. физикът Уилям Хигинботъм работел в американска научна лаборатория. Всяка година там имало ден на отворените врати, а посетителите се отегчавали от скучните табла с уреди. Той решил да ги забавлява: свързал малък аналогов компютър с осцилоскоп (уред с кръгъл екран) и направил игра на тенис, гледан отстрани. Двама души въртели копчета и натискали бутон, за да удрят светеща точка над мрежата. Хората се редели на опашка, за да играят. Играта е сред първите игри, направени само за забавление, а е била сглобена за около три седмици.

Разбери го стъпка по стъпка

  1. Игровият цикъл

    Сърцето на всяка игра е цикъл, който се повтаря непрекъснато: 1) прочети какво натиска играчът, 2) обнови света (движение, удари, точки), 3) нарисувай новата картина. Едно минаване през цикъла дава един кадър.

  2. Кадри в секунда (FPS)

    Ако цикълът се върти 60 пъти в секунда, казваме 60 FPS. Тогава за всеки кадър компютърът има около 1000 / 60 = 16,7 милисекунди. Ако не успее, играта започва да насича.

  3. Движение с формула

    Позицията на героя се смята така: нова позиция = стара позиция + скорост × време. Ако героят тича със 120 пиксела в секунда и кадърът трае 1/60 секунда, той се мести с 2 пиксела на кадър. Гравитацията пък всеки кадър добавя малко към скоростта надолу.

  4. Игрови двигател

    Повечето игри не се пишат от нулата. Използва се игрови двигател (game engine): готова програма, която рисува, пуска звук, смята физика и сблъсъци. За начинаещи блоковият Scratch е чудесен старт, а по-големите екипи ползват професионални двигатели и езици като C++ и C#.

  5. Екипът и тестването

    Голямата игра я правят десетки или стотици хора: дизайнери на игровия процес, програмисти, художници, аниматори, композитори, звукови дизайнери и тестери. Първо се прави прост прототип, после много хора го играят и екипът поправя скучното и трудното. Това се повтаря десетки пъти.

Представи си така: Играта е като тетрадка с рисунки в ъгъла: прелистваш бързо и човечето тича. Игровият цикъл е ръката, която прелиства, само че 60 страници в секунда и всяка страница се рисува в момента, според това какво натискаш.

ИнфографикаЧислата зад една игра
Време за 1 кадър при 60 FPS
1000 / 60 ≈ 16,7 ms
Време за 1 кадър при 30 FPS
1000 / 30 ≈ 33,3 ms
Движение
нова позиция = позиция + скорост × време
Гравитация
скорост надолу = скорост + g × време
Кадри за 1 минута при 60 FPS
60 × 60 = 3600
Игровият цикъл
вход → обновяване → рисуване → отначало

Решени примери

Герой тича със скорост 180 пиксела в секунда. Играта върви с 60 FPS. С колко пиксела се мести на кадър?

180 / 60 = 3 пиксела на кадър. Ако играта падне на 30 FPS, героят трябва да се мести с 6 пиксела на кадър, за да тича със същата скорост. Затова умножаваме по времето на кадъра, а не по броя кадри.

Защо в играта топката понякога минава през стената?

Ако топката е много бърза, за един кадър тя може да прескочи тънката стена: в единия кадър е пред нея, в следващия вече е зад нея. Програмистите решават това с по-малки стъпки на проверка или с по-дебели невидими стени.

Играта е готова, но тестерите казват, че нивото е скучно. Какво прави екипът?

Наблюдава къде играчите се отказват, сменя разположението на препятствията, добавя награда или изненада и тества отново. Забавлението рядко се получава от първия път, то се настройва.

Внимавай с тези грешки

  • Една игра я прави един гениален програмист.Малки игри може да направи и един човек, но големите се правят от екипи с много различни професии: изкуство, музика, сценарий, програмиране, тестване.
  • Най-важна е графиката.Красивата графика помага, но игрите се помнят заради това колко е забавно да ги играеш. Затова прототипите често са от прости квадратчета.
  • За да правиш игри, трябва първо да си отличник по всичко.Можеш да започнеш още сега със Scratch или с хартиен прототип. Математиката ти потрябва постепенно, когато искаш по-сложни движения.

Задачи

Лесни

  1. Назови трите стъпки на игровия цикъл в правилния ред.

    Подсказка

    Първо трябва да знаеш какво иска играчът, после да промениш света, накрая да го покажеш.

    Отговор

    Вход (какво натиска играчът), обновяване на света, рисуване на кадъра.

  2. Изброй поне 4 професии в екип, който прави игра.

    Подсказка

    Помисли какво виждаш, чуваш и правиш в една игра. Някой е направил всяко от тези неща.

    Отговор

    Например: програмист, художник, аниматор, дизайнер на нива, композитор, звуков дизайнер, тестер, сценарист.

Средни

  1. Играта върви с 30 FPS. Колко милисекунди има компютърът за един кадър? А колко кадъра ще нарисува за 10 секунди?

    Подсказка

    Една секунда има 1000 милисекунди.

    Отговор

    1000 / 30 ≈ 33,3 ms на кадър и 30 × 10 = 300 кадъра.

  2. Кола в игра се движи с 240 пиксела в секунда, а играта е 60 FPS. С колко пиксела се мести на кадър? Колко пиксела изминава за 5 секунди?

    Подсказка

    Скорост × време дава разстоянието.

    Отговор

    240 / 60 = 4 пиксела на кадър и 240 × 5 = 1200 пиксела за 5 секунди.

Трудни

  1. Екранът е широк 1920 пиксела. Герой с 4 пиксела на кадър при 60 FPS тръгва от левия край. За колко секунди ще стигне десния?

    Подсказка

    Първо намери скоростта в пиксели за секунда.

    Отговор

    Скоростта е 4 × 60 = 240 пиксела в секунда, а 1920 / 240 = 8 секунди.

  2. Измисли правилата на своята игра на една страница: цел, какво управлява играчът, едно препятствие, една награда, кога печелиш и кога губиш.

    Подсказка

    Ако приятел може да изиграе играта само като прочете листа ти, правилата са ясни.

    Отговор

    Свободен отговор. Добрата страница има ясна цел, поне едно предизвикателство и ясно условие за победа.

Мини проект · 40 минути

Хартиен прототип на игра

Цел: Да направиш и тестваш игра без компютър, точно както правят истинските дизайнери в началото.

  1. Нарисувай ниво на лист А4: старт, финал, препятствия, бонуси.
  2. Изрежи фигурка на героя от картон и вземи зар.
  3. Напиши 3-5 правила, например: хвърляш зар и се местиш, на червено поле връщаш 2 полета назад.
  4. Дай играта на двама съученици и само гледай, без да обясняваш. Записвай къде се объркват или скучаят.
  5. Промени едно правило и тествайте отново.
  6. Ако искаш, пренеси играта в Scratch с разрешение на родител или учител.

Накрая: Показваш нивото, правилата и какво промени след тестването и защо.

Тест с точки

10 въпроса, 18 точки, оценка накрая и разбор какво да преговориш.

Започни теста

Още от „Изобретения и техника“

Изобретения и техника12-14 г.3D принтерът: как се печата предметКак 3D принтерът превръща файл в истински предмет слой по слой, какво е слайсер, G-код и пълнеж, и как да сметнеш време за печат.Изобретения и техника12-14 г.Изкуственият интелект за децаКак машините „учат“ от примери, какво може и какво не може изкуственият интелект и как да го ползваш умно и безопасно.Изобретения и техника12-14 г.Изобретатели от България: Джон Атанасов и другиЩе научиш как Джон Атанасов създава електронния компютър и кои още българи оставят следа в науката.Изобретения и техника12-14 г.Изобретения по случайност: пеницилин, микровълнова и ощеКак плесен, разтопен шоколад и бодли от репей доведоха до пеницилина, микровълновата и велкро.Изобретения и техника12-14 г.Как работи интернетътЩе разбереш как едно съобщение се разбива на пакети, намира пътя си през рутери и кабели на дъното на океана и стига за части от секундата.Изобретения и техника12-14 г.Кодовете и шифрите: тайни съобщенияЩе научиш как работят шифърът на Цезар, морзовата азбука и Енигма и как се разбиват тайни съобщения.

Всички теми в „Изобретения и техника“