Як створити зациклений коридор в Unity (як у P.T. Silent Hills)

pic

Вступ

Чи коли-небудь ви хотіли відтворити ефект заплутаного коридору з нескінченними петлями, як у P.T Silent Hills, за допомогою Unity? Цей ефект, ідеально підходить для ігор жахів, змушує гравців сумніватися в реальності, коли вони нескінченно ходять по тому самому коридору.

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

Що вам знадобиться

  • Unity (будь-яка остання версія).
  • Базове розуміння скриптінгу в Unity.

Крок 1: Налаштування сцени

Читати далі

Зв’язок пам’яті: Гра, де ви досліджуєте пам’ять та етичні дилеми

Цифрові ігри відкривають нову еру в мистецтві оповідання. Сьогодні я хочу поділитися з вами ідеєю гри, яка перевірить ваші навички вирішення головоломок і підніме складні етичні питання: Ланцюг пам'яті (Mind Chain).

Що таке Ланцюг Пам'яті?

Ланцюг Пам'яті — це стратегічна та сюжетна головоломка, що розгортається в темному майбутньому, де використовується технологія маніпуляції пам'яттю. Гравці беруть на себе роль "агента пам'яті", мандруючи в умах персонажів, переставляючи складні ланцюги пам'яті та визначаючи, куди рухатиметься сюжет.

Вибір, яку частину пам'яті зберегти, а яку залишити позаду, — це нелегке завдання. Кожне ваше рішення впливатиме не тільки на персонажів, а й на загальний хід … Читати далі

Розробка ігор: Посібник зі здійснення вашої мрії

Розробка ігор — це процес, у якому можна поєднувати технічні знання та креативність для створення унікальних вражень. У цій статті ми розглянемо кроки, які допоможуть вам легко увійти в світ розробки ігор.

1. Чому розробка ігор?

Розробка ігор — це інструмент для розповідання історій та форма мистецтва, яка поєднує технології та креативність. Під час розробки гри варто почати з відповіді на такі питання:

  • Який тип гри ви хочете створити?
  • Які емоції ви хочете викликати у гравців?
  • Яка основна ідея чи "гачок" вашої гри?

Відповіді на ці питання стануть основою концепції вашої гри.

2. Почніть з правильних інструментів

Існує багато платформ … Читати далі

Оволодіння об’єктно-орієнтованими відносинами: різниця між асоціацією, агрегацією, композицією та узагальненням

Об'єктно-орієнтоване програмування (OOP) побудоване навколо того, як класи та об'єкти взаємодіють між собою. У цьому блозі ми детальніше розглянемо чотири основні стосунки OOP: Асоціація, Агрегація, Композиція та Узагальнення. Ми пояснимо теоретичні концепції цих стосунків, надамо практичні приклади та покажемо, як ефективно використовувати їх у вашому коді. Наприкінці статті ви матимете чітке розуміння цих важливих концепцій і зможете застосовувати їх для проектування кращих систем.

Асоціація

Визначення: Асоціація представляє собою стосунки між двома класами, де один клас використовує або взаємодіє з іншим, але не володіє ним.

Сценарій: Вчитель може навчати багатьох студентів, а студент може навчатися у … Читати далі

Використання FontAwesome з Rails через JS-активи

У цій статті ви дізнаєтесь, як додати tree-shaken версію FontAwesomePro до вашого Rails додатку.

  1. Додайте наступні пакети. Існує більше ніж 2 типи стилів для svg-ікон, тому якщо ви шукаєте певні, додавайте їх також. (Посилання на всі стилі)
npm install --save @fortawesome/fontawesome-svg-core  
npm install --save @fortawesome/pro-light-svg-icons  
npm install --save @fortawesome/pro-solid-svg-icons
  1. У вашому js/ts файлі ви можете вибирати, які саме іконки вам потрібні. Ось приклад мого коду:
import { dom, library } from "@fortawesome/fontawesome-svg-core";  
// Tree shaking imports  
import {  
 faArrowsRotate as falArrowsRotate,  
 faListUl as falListUl,  
 faLocationDot as falLocationDot,  
 faMessageLines as falMessageLines,  
 faNote as falNote,  
} from "@fortawesome/pro-light-svg-icons";  

// Deep import alternative  
Читати далі

Як підтримувати чисту та масштабовану структуру файлів у Flask

текст перекладу
Flask — це мікрофреймворк для Python, який надає гнучкість для створення веб-застосунків різного рівня складності. Добре організована структура файлів є важливою для підтримки масштабованості, читабельності та супроводжуваності вашого Flask-застосунку. У цій статті ми розглянемо найкращі практики організації вашого Flask-проекту для забезпечення ефективності та зручності розробки.

pic

Базова структура файлів Flask

Для невеликих проектів або прототипів достатньо простого оформлення:

project_name/  
|-- app.py  
|-- requirements.txt  
|-- templates/  
| |-- base.html  
| |-- index.html  
|-- static/  
| |-- css/  
| |-- js/  
| |-- images/
  • app.py: Основний файл застосунку, що містить конфігурацію додатка та маршрути.
  • templates/: Містить усі HTML шаблони
Читати далі

Оптимізація Dockerfile для Flask: Найкращі практики для DevOps і розробників

Покрокова інструкція зі створення Dockerfile для Flask-додатків, що скорочують час збірки та проблеми з деплоєм

pic

💡Вступ

Ласкаво просимо у світ DevOps! 🚀 Сьогодні ми поринемо у важливу навичку для кожного інженера DevOps: оптимізацію Dockerfile для Flask-додатків. Хоча новачки в DevOps часто зосереджуються на освоєнні базового синтаксису Dockerfile, досвідчені інженери знають, що справжня майстерність полягає в оптимізації — створенні Dockerfile, які є ефективними, безпечними та готовими до використання в продакшн-середовищі.

У цьому блозі ми пройдемо процес створення простого Flask-додатку. Спочатку створимо базовий Dockerfile, а потім вдосконалимо його, порівнюючи два варіанти, щоб зрозуміти різницю. Чи ви новачок, чи прагнете покращити свої навички … Читати далі

Спрощуйте свій проєкт на Django за допомогою власних адміністративних дій.

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

Багато хто, хто знайомий із сайтом адміністратора Django, впізнає випадаюче меню вгорі кожної сторінки моделі з однією дією: «видалити вибрані елементи». Чи знаєте ви, що дуже легко налаштувати це випадаюче меню … Читати далі

Просте, безпечне та стійке автентифікування сокетів у Django-Channels

текст перекладу

Фон

Нещодавно я досліджував варіанти автентифікації сокетів у Django Channels. Спочатку це здавалось досить простим — як знайти печиво на кухні бабусі. Згідно з документацією Channels, управління сесіями здійснюється за допомогою функцій login і logout, а AuthMiddlewareStack зберігає сесію користувача до її закінчення (або поки ваша кішка не вирішить сісти на клавіатуру).

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

async def user_login(self, content):  
 verify_code = self.scope.get("verify_code")  
 code = content.get("code")  
 mobile = self.scope.get("MOBILE")  
 if mobile and verify_code and code == verify_code:  
 user = await load_user_by_mobile(mobile)  
 del 
Читати далі