Дизайн на видеоигри в Excel

  • Excel ви позволява да създавате прототипи на цялостни игри, като комбинирате формули, формати и VBA.
  • Технически ключове: OnKey, Game Loop, ScreenUpdating и Minimal Typing.
  • Реални примери: Тетрис, Судоку, Змия, Мондриан, Игра на живота и други.
  • Тестването и дебъгването със семена, лог файлове и малки функции подобрява качеството.

дизайн на игри в Excel

Ако обичате да експериментирате с електронни таблици, ще ви е интересно това: дизайн на видеоигри в Excel. Невероятно е какво можете да постигнете с клетки, условно форматиране и няколко макроса. В тази статия ще ви покажем как.

Как е възможно това? Какви трикове в Excel трябва да знаете, за да завършите успешно този процес? Тази статия ви дава отговорите, с... реални примери за игри, направени в Excel и планът за действие, който трябва да следвате, за да преминете от идеята до прототипа.

Защо да създавате видеоигри в Excel?

Разработването на игри в Excel винаги е съществувало; за много хора то е започнало като лично предизвикателство или дори професионално начинание: „Ще мога ли да го направя с електронна таблица?“ С течение на времето това безпокойство е послужило като тяхна визитна картичка: Ако можете да създадете игра в Excel, можете да моделирате процеси, да оптимизирате отчети и да овладеете автоматизацията..

Всеки, който види сложна игра, работеща в работна книга на Excel, веднага разбира техническото ниво на нейния създател: креативни формули, интелигентни структури от данни, събития и добре организирани макроси. Същите елементи, които движат Tetris или Minesweeper в Excel, са тези, които след това ускоряват бизнес таблата и шаблоните..

Освен това, много помощни програми, създадени за една игра (енджини за колизии, генериране на нива, обработка на входни данни, рендиране на форми), се използват повторно в други проекти. Този „библиотечен“ ефект на макроси и функции в крайна сметка спестява часове и повишава качеството на разработка в Excel..

Excel Web

Какви игри са създадени с Excel?

Списъкът е дълъг и разнообразен, от емблематични пъзели до математически симулации. Тези реални примери демонстрират потенциала на Excel като платформа за създаване на прототипи и обучение..

Tetris

Тетрис е класика, която е оформила няколко поколения, с любопитна история: имаше битка за нейното пускане на пазара между Atari и Nintendo и накрая, дистрибуцията на Nintendo, с Хенк Роджърс зад нея, я катапултира към успех благодарение на появата ѝ на Game Boy. В Excel са възпроизведени варианти като този, базиран на Flash Point на SEGA, ценен заради прецизния си геймплей..

Дори са публикувани различни издания на един и същ проект (например оригинална версия от 2005 г. и по-вярно копие, издадено през 2018 г.). Отвъд историческия намек, програмирането на Tetris в Excel е перфектно упражнение за справяне с ротации на фигури, откриване на цяла линия и синхронизиране..

Судоку

Excel е идеален за логическа игра като Судоку: мрежи, валидации, проверки и, ако е необходимо, асистенти, които да помагат на играча. Някои версии ви позволяват да маркирате кандидати, да изтривате опити, да искате подсказки и дори да решавате дъската автоматично. Техническият трик е да се комбинират функциите за търсене, броене и правило, за да се гарантира валидността на дъските..

Змия

Геймплеят е прост и пристрастяващ: движете се по определена дъска, събирайте „храна“, растете и избягвайте сблъсъци със стени или собствената си опашка. В Excel главата на змията се контролира със стрелките, а останалата част от тялото ѝ следва примера ѝ, като се мести с една клетка с всяко тик-такване на играта. Това заглавие ви учи как да се справяте ефективно с колизии, опашки и обновяване на екрана..

Почит към Пийт Мондриан

Любопитен и силно визуален проект: избор на цветове и изграждане на геометрични композиции, вдъхновени от Мондриан, в Excel. Това не е типична „игра“, а по-скоро игрив творчески инструмент. Използва се за практикуване на интерфейси с бутони, цветови палитри и рисуване с форми и рамки на клетки..

Този тип шаблон доказва, че Excel може да бъде и интерактивно платно: избирате нюанси, комбинирате правоъгълници и експериментирате. Освен това е отлична тестова платформа за макроси, които манипулират формати и слоеве..

Игра на живота

Известният клетъчен автомат е „игра с нула играчи“: вие предоставяте начално състояние и системата се развива без допълнителна намеса. В Excel това е имплементирано върху теоретично безкрайна мрежа, въпреки че на практика е ограничено до диапазона, който проектираме. Той е идеален за работа с квартали, условни правила и генериране стъпка по стъпка..

миночистач

Замислена от Робърт Донър през 1989 г., целта ѝ е да разчисти поле, без да взривява мини, подкрепено от числа, показващи колко мини има наоколо. Тя е широко адаптирана към Excel както от аматьори, така и от професионалисти. Това е чудесен тест за практикуване на броене, рекурсивно разпространение и минималистичен потребителски интерфейс..

Освен това е лесно да се загуби представа за времето: пристрастяващо е. Най-интересната техническа част обикновено е в двигателя, който разширява празните клетки, и в генерирането на безпристрастни мини..

Boxxle / Сокобан

Класическият метод за бутане на кутии до местоназначението им е известен с много имена, но същността му е винаги една и съща: бутане, не влачене; планиране; не блокиране на пътища. В Excel е идеален за практикуване на карти, откриване на препятствия и валиден контрол на движението..

Палачът

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

ТЕтрис

Как да създадете игра като тази във видеото: Практически процес

Представете си, че искате да пресъздадете мини-игра като тази в късометражния филм в YouTube: мрежа от клетки, движещи се фигури, логика на сблъсък и точкуване. Предлагам ясен работен процес, който работи както за малки прототипи, така и за по-амбициозни заглавия в Excel..

  1. Дизайн на таблото. Определете диапазона, който ще действа като „светът“ на играта (напр. B3:AE32). Задайте цветове за фон, рамки и, ако желаете, използвайте условно форматиране, за да маркирате състояния (храна, опасност, цел). Именуването на диапазони (Формули > Мениджър на имена) ви предпазва от загадъчни препратки.
  2. Представителство на държаватаРешете как ще съхранявате играта: клетки с кодове (0 празни, 1 стена, 2 играчи и т.н.) или масив в паметта (VBA), който след това ще рисувате върху листа. За бързи игри е достатъчно рисуването с цветове на клетки; за плавни анимации използвайте фигури (Shapes) и актуализирайте само най-важното.
  3. Въвеждане от потребителяИзползвайте Application.OnKey във VBA, за да заснемате клавиши със стрелки, интервал или други клавиши. Избягвайте да четете натисканията на клавиши в Worksheet_Change, защото клавиатурата не задейства промени в клетките. OnKey ви дава незабавен и плавен контрол върху движенията.
  4. Игров цикъл. Създайте цикъл, контролиран от глобален флаг (Running = True), който актуализира състоянието на равни интервали. Регулирайте темпото с Application.Wait или лек таймер и DoEvents, за да поддържате интерфейса отзивчив. Този „тик“ е сърцето на играта: той изчислява, открива колизии и рендира.
  5. Сблъсъци и правила. В зависимост от типа на играта, проверката за сблъсък се извършва спрямо стени, опашки, обекти или ограничения на обхвата. В Tetris ще добавите ротация и валидиране на празнини; в Snake - преминаване по опашка и произволна храна; в Minesweeper - броячи на обкръжаващите елементи. Добра идея е тази логика да се капсулира в малки, тестваеми функции.
  6. оказванеМинимизиране на трептенето: Деактивирайте актуализирането на екрана по време на тиктака (Application.ScreenUpdating = False) и го активирайте отново в края. Рисувайте само това, което се променя. Обновяването на по-малко клетки = повече FPS и по-добро изживяване.
  7. Резултат и състояние на игратаЗапазете резултата, нивото, животите и високия си резултат в специални клетки или в модул. Добавете бутон „Рестартиране“ и „Пауза/Продължение“. Видимите контроли насърчават тестването и улесняват отстраняването на грешки.
  8. ТестовеСъздавайте тестови сценарии: малки нива, ограничени позиции, фиксирани начални точки за случайност и „бавен“ режим за преглед на грешки. Записвайте събития (сблъсъци, поява) в дневник, за да анализирате необичайно поведение.

Полезни формули и техники за видеоигри в Excel

Отвъд VBA, функциите могат да решат много от задачите на енджина. Ето някои практични формули и ресурси за вграждане на логика в електронната таблица..

– Контролирана случайност: RANDBETWEEN и RAND за поставяне на храна или мини, комбинирани с ръчно задаване на семена, ако искате възпроизводимост. Използвайте клетка „Seed“ и насочете изчислението към повтарящи се сценарии.

– Индексиране на клетки: INDEX за четене на стойности на мрежата и OFFSET или CHOOSE за изчисляване на съседи или прости завъртания. С MATCH можете да локализирате координатите на ключови елементи.

– Броене и валидиране: COUNTIF/COUNTIFS за броене на околните мини, парчета в редица или сблъсъци; SUMPRODUCT за по-сложни модели в двуизмерни диапазони. В комбинация с динамични матрици, те позволяват изразителни правила.

– Условна логика: IF, IFS, SWITCH и LET за ясни структури; с LAMBDA (Microsoft 365) е възможно да се капсулират поведения (напр. „Съседи(x,y)“) без VBA. NAME + LAMBDA създава вашата персонализирана библиотека с функции.

– Условно форматиране: Автоматично оцветяване на състоянията въз основа на стойности или формули; избягвайте макроси за всяка визуална промяна. Използвайте го, за да маркирате колизии, цели или активни части.

– Валидиране на данни: Ограничава въвеждането от потребителя (напр. само букви без ударения в Hangman). Това намалява грешките и улеснява UX.

Ако решите да използвате VBA, минималният скелет за цикли и обработка на натискания на клавиши може да изглежда така (опростен и без зависимости): Този модел разделя входа, актуализирането и рисуването, така че проектът да се мащабира по-добре..

' Módulo de juego (ejemplo simplificado)
Option Explicit
Public Running As Boolean, DirX As Long, DirY As Long

Sub StartGame()
    Running = True
    DirX = 1: DirY = 0 ' movimiento inicial hacia la derecha
    Application.OnKey "{UP}", "GoUp"
    Application.OnKey "{DOWN}", "GoDown"
    Application.OnKey "{LEFT}", "GoLeft"
    Application.OnKey "{RIGHT}", "GoRight"
    GameLoop
End Sub

Sub StopGame()
    Running = False
    Application.OnKey "{UP}"
    Application.OnKey "{DOWN}"
    Application.OnKey "{LEFT}"
    Application.OnKey "{RIGHT}"
End Sub

Sub GameLoop()
    Do While Running
        Application.ScreenUpdating = False
        UpdateState
        RenderState
        Application.ScreenUpdating = True
        DoEvents
        Application.Wait Now + TimeSerial(0, 0, 0) + TimeValue("00:00:00.08") ' ~12.5 fps
    Loop
End Sub

Sub GoUp():    DirX = 0: DirY = -1: End Sub
Sub GoDown():  DirX = 0: DirY = 1:  End Sub
Sub GoLeft():  DirX = -1: DirY = 0: End Sub
Sub GoRight(): DirX = 1: DirY = 0:  End Sub

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

Бележки за поверителност и използване на бисквитки на платформи

Ако използвате общности като Reddit за вдъхновение или обратна връзка, имайте предвид техните известия за поверителност: те разкриват, че използват „бисквитки“ и подобни технологии, за да предоставят услугата, да подобрят качеството, да персонализират съдържанието и рекламите и да измерват ефективността си; предлагат опции за приемане на всички, отхвърляне на несъществено съдържание или коригиране на предпочитанията и предоставят връзка към тяхното известие за „бисквитките“ и политика за поверителност. Това е настоящият стандарт: прозрачност, потребителски контрол и гарантирана основна функционалност, дори ако отхвърлите ненужното..

Ресурси, файлове за изтегляне и как да споделяте работата си

Има уебсайтове, които публикуват своите игри в Excel, за да можете да ги изтеглите и да им се наслаждавате известно време, от Tetris до Sudoku, Snake, Mondrian, The Game of Life, Minesweeper, Sokoban/Boxxle или Hangman. Тази библиотека с примери служи като вдъхновение и като хранилище от техники за многократна употреба..

Публикуването на ваша собствена книга с инструкции, контроли и информация за авторите насърчава общността да я тества и подобрява. Включете страница „За нас“ с версии, промени и преки пътища. Колкото по-ясна е документацията, толкова по-качествена обратна връзка ще получите..

Когато споделяте, моля, посочете целевата версия на Excel (365, 2019 и др.) и дали изисква активиране на макроси. Предоставете версия „само с формули“, ако е възможно, и друга версия с VBA за най-добро преживяване. По този начин разширявате обхвата си и намалявате бариерите за навлизане..

Създаването на видеоигри в Excel не е просто любопитство: това е преносима лаборатория за изучаване на структури от данни, събития, производителност и потребителско изживяване, всичко това в инструмент, който вече сте усвоили. От тетрис, вдъхновен от Flash Point на SEGA и анекдота му с Nintendo и Хенк Роджърс, до судоку с улики, змия с динамични опашки или Миночистач на Робърт Донър, всеки пример ви учи на нова техника.С добре дефинирано табло за управление, изчистен цикъл на изпълнение и дисциплинирано тестване, ще постигнете забавни прототипи, които също така ще засилят способността ви да изграждате надеждни табла за управление и автоматизации в ежедневната си работа.