Как сделать скины в unity
Перейти к содержимому

Как сделать скины в unity

  • автор:

Кастомизация

Работающие контролы необходимы вашей игре и то, как контролы выглядят — очень важно для эстетики игры. В UnityGUI вы можете точно настроить внешний вид контролов с множеством деталей. Внешний вид контролов управляется стилями ( GUIStyles ). По умолчанию, когда вы создаёте контрол без указания GUIStyle, будет применён GUIStyle, используемый в Unity по умолчанию. Этот стиль встроен в Unity и может быть использован для быстрого прототипирования в опубликованных играх, либо если вы не желаете менять стиль своих контролов.

Когда у вас есть много стилей, с которыми вы работаете, вы можете определить их все в одном скине ( GUISkin ). GUISkin — это не более, чем коллекция GUIStyle’ов.

Как стили меняют внешний вид ваших GUI контролов

GUIStyle’ы разработаны так, чтобы походить на каскадные таблицы стилей (Cascading Style Sheet, CSS), применяемые в браузерах. Было адаптировано множество методологий CSS, включая разграничение отдельных свойств состояний для стилизации, и разделение между содержимым и представлением.

В то время как контрол определяет содержимое, стиль определяет представление. Это позволяет создавать такие комбинации как функциональный переключатель ( Toggle ), который выглядит как обычная кнопка ( Button ).

Два контрола Toggle с разными стилями

Разница между скинами (Skins) и стилями (Styles)

Как уже говорилось ранее, GUISkin — это коллекция GUIStyle’ов. Стили определяют представление GUI контрола. Вы не обязаны использовать Skin, если вы желаете использовать Style.

Один GUIStyle, показанный в инспекторе

Один GUISkin, показанный в инспекторе — заметьте, что он содержит множество GUIStyle’ов

Работа со стилями

Все функции GUI контролов имеют опциональный последний аргумент: GUIStyle для отображения контрола. Если его пропустить, будет использован Unity GUIStyle по умолчанию. В недрах это работает с помощью применения имени типа контрола в виде строки, так что GUI.Button() использует стиль “button”, GUI.Toggle() использует стиль “toggle” и т.д. Вы можете переопределять GUIStyle по умолчанию для контрола с помощью передачи его в качестве последнего аргумента.

/* Override the default Control Style with a different style in the UnityGUI default Styles */ // JavaScript function OnGUI () < // Make a label that uses the "box" GUIStyle. GUI.Label (Rect (0,0,200,100), "Hi - I'm a label looking like a box", "box"); // Make a button that uses the "toggle" GUIStyle GUI.Button (Rect (10,140,180,20), "This is a button", "toggle"); >// C# using UnityEngine; using System.Collections; public class GUITest : MonoBehaviour < void OnGUI () < // Make a label that uses the "box" GUIStyle. GUI.Label (new Rect (0,0,200,100), "Hi - I'm a label looking like a box", "box"); // Make a button that uses the "toggle" GUIStyle GUI.Button (new Rect (10,140,180,20), "This is a button", "toggle"); >> 

Контролы, созданные в коде приведённого выше примера

Создание публичной переменной GUIStyle

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

/* Overriding the default Control Style with one you've defined yourself */ // JavaScript var customButton : GUIStyle; function OnGUI () < // Make a button. We pass in the GUIStyle defined above as the style to use GUI.Button (Rect (10,10,150,20), "I am a Custom Button", customButton); >// C# using UnityEngine; using System.Collections; public class GUITest : MonoBehaviour < public GUIStyle customButton; void OnGUI () < // Make a button. We pass in the GUIStyle defined above as the style to use GUI.Button (new Rect (10,10,150,20), "I am a Custom Button", customButton); >> 

Изменение различных элементов стиля

После объявления GUIStyle, вы можете изменять его в инспекторе. Существует большое количество состояний (States), которые вы можете определять и применять к любому контролу.

Стили изменяются по отдельности для каждого скрипта и каждого GameObjectа

Любому состоянию контрола сперва должен быть присвоен цвет Background (фоновый цвет) перед применением указанного Text Color (цвета текста).

Для дополнительной информации об отдельных GUIStyle’ах, пожалуйста, прочтите страницу справки по компоненту GUIStyle.

Работа со скинами

В более сложных системах GUI, есть смысл хранить коллекцию стилей в одном месте. Это как раз то, что делают GUISkin’ы. GUISkin содержит множество разных стилей, полностью меняя внешнее оформление всех GUI контролов.

Создание нового GUISkin’а

Для создания GUISkin’а, выберите Assets->Create->GUI Skin в строке меню. После это будет создан новый GUI скин в папке вашего проекта. Выберите его, чтобы в инспекторе увидеть все стили (GUIStyles), определённые в скине.

Применение скина к GUI

Для использования созданного вами скина, назначьте его свойству GUI.skin в вашей функции OnGUI() .

/* Make a property containing a reference to the skin you want to use */ // JavaScript var mySkin : GUISkin; function OnGUI () < // Assign the skin to be the one currently used. GUI.skin = mySkin; // Make a button. This will get the default "button" style from the skin assigned to mySkin. GUI.Button (Rect (10,10,150,20), "Skinned Button"); >// C# using UnityEngine; using System.Collections; public class GUITest : MonoBehaviour < public GUISkin mySkin; void OnGUI () < // Assign the skin to be the one currently used. GUI.skin = mySkin; // Make a button. This will get the default "button" style from the skin assigned to mySkin. GUI.Button (new Rect (10,10,150,20), "Skinned Button"); >> 

Вы можете переключаться между любым количеством скинов в одном вызове OnGUI() .

/* Example of switching skins in the same OnGUI() call */ // JavaScript var mySkin : GUISkin; var toggle = true; function OnGUI () < // Assign the skin to be the one currently used. GUI.skin = mySkin; // Make a toggle. This will get the "button" style from the skin assigned to mySkin. toggle = GUI.Toggle (Rect (10,10,150,20), toggle, "Skinned Button", "button"); // Assign the currently skin to be Unity's default. GUI.skin = null; // Make a button. This will get the default "button" style from the built-in skin. GUI.Button (Rect (10,35,150,20), "Built-in Button"); >// C# using UnityEngine; using System.Collections; public class GUITest : MonoBehaviour < public GUISkin mySkin; private bool toggle = true; void OnGUI () < // Assign the skin to be the one currently used. GUI.skin = mySkin; // Make a toggle. This will get the "button" style from the skin assigned to mySkin. toggle = GUI.Toggle (new Rect (10,10,150,20), toggle, "Skinned Button", "button"); // Assign the currently skin to be Unity's default. GUI.skin = null; // Make a button. This will get the default "button" style from the built-in skin. GUI.Button (new Rect (10,35,150,20), "Built-in Button"); >> 

Изменение размера шрифта GUI

В этом примере показано как вы можете программно динамически изменять размер шрифта.

Сперва создайте новый проект в Unity. Затем создайте C# скрипт, назовите его Fontsize.cs и вставьте в него следующий код:

// C# example using UnityEngine; using System.Collections; public class Fontsize : MonoBehaviour < void OnGUI () < //Set the GUIStyle style to be label GUIStyle style = GUI.skin.GetStyle ("label"); //Set the style font size to increase and decrease over time style.fontSize = (int)(20.0f + 10.0f * Mathf.Sin (Time.time)); //Create a label and display with the current settings GUI.Label (new Rect (10, 10, 200, 80), "Hello World!"); >> 

Сохраните скрипт, прикрепите его к пустому GameObject’у и нажмите Play, чтобы посмотреть на то, как размер шрифта циклично увеличивается и уменьшается со временем. Вы можете заметить, что размер шрифта меняется не плавно. Это связано с тем, что есть определённый набор возможных размеров для шрифта (этот набор не бесконечен).

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

Создаём магазин скинов на Юнити

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

Подготовительная часть

И первым делом предлагаю подготовить нашу сцену для работы. Для этого с помощью окна Hierarchy создадим объект UI — Canvas. А уже внутри него создадим несколько UI элементов.

  • Создаём объект UI — Text — TextMeshPro, и назовём его Money. В этом текстовом поле будут отображаться количество наших монет.
  • Создаём объект UI — Button — TextMeshPro, и назовём его Start. Эта кнопка будет запускать нашу сцену с игровым персонажем. Можете написать текст на кнопке «Начать Игру».
  • Создаём объект UI — Image, и назовём его Scin1. В него загружаем спрайт скина первого персонажа. Внутри данного объекта создаём ещё 2 объекта типа UI — Button — TextMeshPro, с названиями Buy и Select. Эти кнопки отвечают за Покупку данного скина, и выбор(активацию). Поэтому можете вписать соответствующий текст на кнопках: «Купить» и «Применить».

Далее скопируйте объект Scin1, и продублируйте его столько раз, сколько у вас имеется скинов. У меня их три. И не забудьте изменить названия новых объектов на Scin2 и Scin3.

В итоге на игровой сцене и в окне Hierarchy у вас должно получится примерно так.

Если у вас получилось примерно так, то можно спокойно переходить к написанию скриптов.

Написание скриптов

Первым делом создадим c# скрипт для нашего магазина, в котором будет хранится вся главная информация по магазину. Назовём его ScinShop, и заранее присвойте его к объекту, например Canvas. Пока временно его отложим в сторону, так как код в данный скрипт напишем позже.

Так же нам необходимо создать скрипт для трёх наших скинов. Он нужен для того, чтобы хранить всю информацию по каждому скину: id скина, стоимость скина, куплен ли он, активирован ли он, и так далее. Поэтому создадим c# скрипт с названием Scin, и заранее присвоим его всем нашим скинам(объектам Scin1, Scin2 и Scin3).

Впишем в данный скрипт следующее содержимое:

using UnityEngine; using UnityEngine.UI; public class Scin : MonoBehaviour < public int cost; // стоимость скина public int scinID; // id скинакуплен ли скин? public bool isBuy; // куплен ли скин? public bool isSelected; // активирован ли скин? public Button buttonBuy; // ссылка на кнопку "купить" public Button buttonSelect; // ссылка на кнопку "применить" public ScinShop scinShop; // ссылка на скрипт ScinShop магазина, который находится на объекте Canvas public void Buy() < if (scinShop.money >= cost) < scinShop.money -= cost; scinShop.textMoney.text = "Монет: " + scinShop.money.ToString(); isBuy = true; buttonBuy.gameObject.SetActive(false); buttonSelect.gameObject.SetActive(true); PlayerPrefs.SetInt("money", scinShop.money); PlayerPrefs.SetInt("buy"+ scinID, 1); PlayerPrefs.Save(); >> public void Select() < scinShop.scins[scinShop.activeScinID].buttonSelect.gameObject.SetActive(true); scinShop.scins[scinShop.activeScinID].isSelected = false; scinShop.activeScinID = scinID; isSelected = true; buttonSelect.gameObject.SetActive(false); PlayerPrefs.SetInt("scinsID", scinID); PlayerPrefs.Save(); >>

Описание всех переменных описаны в самом скрипте, и поэтому разбирать их сейчас не будем, а лишь настроим все наши скины(Scin1, Scin2 и Scin3) в окне Inspector следующим образом:

  • В поле Cost указываем цену для каждого скина
  • В поле Scin ID для каждого скина указываем уникальный номер, начиная с 0. То-есть, если для Scin1 указан 0, то для Scin2 должно быть значение 1, а для Scin3 — значение 2
  • Поля Is Buy и Is Selected не трогаем. Они ВСЕ должны быть без галочек.
  • В последние 3 поля перетащите из окна Hierarchy объекты Buy, Select и Canvas.

Теперь давайте вкратце разберём выше написанный код, и начнём мы с метода Buy(), который находится в строках #15-28:

  • Сначала мы конечно же проверяем, хватает ли наших денег для покупки данного скина. Если да, то обновляем наши деньги.
  • В переменную isBuy указываем, что скин куплен, и с помощью метода SetActive() мы отключаем кнопку «Купить», и включаем кнопку «Применить».
  • Далее с помощью методов PlayerPrefs.SetInt() сохраняем данные о монетах, и купленном скине, и для страховки принудительно сохраняем данные с помощью PlayerPrefs.Save(), хотя это не обязательно.

Разбирать метод Select() мы не будем, поскольку здесь на 90% происходит всё тоже самое что и в методе Buy(), то-есть, нужные кнопки активируются, а не нужные — деактивируются, а так же сохраняются данные о скинах.

Отлично, скрипт Scin готов и настроен для каждого скина! Но обратите внимание на то, что в нём есть функции Buy() и Select(), которые необходимо добавить на событие наших кнопок «Купить» и «Применить». Сделаем это прямо сейчас.

Выбираем объект Buy, который находится внутри объекта Scin1, и в окне Inspector в поле On Click() перетаскиваем объект Scin1. После чего выбираем скрипт Scin и метод Buy.

Аналогичные действия проводит и с объектом Select, и для всех остальных объектов Buy и Select, находящихся в объектах Scin2 и Scin3.

Мы почти завершили работу магазина скинов, осталось совсем чуть чуть. Вернёмся к скрипту ScinShop, который мы создали ранее, и в который мы ничего не написали. Исправим это недоразумение. Впишем в данный скрипт следующий код:

using UnityEngine; using TMPro; public class ScinShop : MonoBehaviour < public int money = 500; // количество ваших денег при старте игры public TextMeshProUGUI textMoney; // ссылка на текст на игровой сцене, в котором отображено количество денег. public Scin[] scins; // ссылки на все ваши скины (объекты Scin1, Scin2, Scin3) public int activeScinID = 0; // номер скина, который куплен и активирован изначально private void Start() < //PlayerPrefs.DeleteAll(); if (PlayerPrefs.HasKey("money")) < money = PlayerPrefs.GetInt("money"); >if (PlayerPrefs.HasKey("scinsID")) < activeScinID = PlayerPrefs.GetInt("scinsID"); >scins[activeScinID].isBuy = true; scins[activeScinID].isSelected = true; PlayerPrefs.SetInt("buy" + activeScinID, 1); PlayerPrefs.SetInt("scinsID", activeScinID); textMoney.text = "Монет: " + money.ToString(); for (int j = 0; j < scins.Length; j++) < if (PlayerPrefs.GetInt("buy" + j) == 1) < scins[j].isBuy = true; >if (scins[j].isBuy == true) < scins[j].buttonBuy.gameObject.SetActive(false); >if (scins[j].isSelected == true || scins[j].isBuy == false) < scins[j].buttonSelect.gameObject.SetActive(false); >> > > 

Объяснять созданные переменные мы не будем, так как они описаны в самом скрипте. Давайте лишь все эти переменные настроим в окне Inspector для объекта Canvas, перетащив в поля соответствующие объекты:

Ну а теперь вкратце разберём выше написанный код, который находится в методе Start():

  • В строке #15 с помощью метода PlayerPrefs.HasKey() мы проверяем, есть ли в PlayerPrefs сохранённая переменная с названием money. Если да, то это означает, что данные о монетах уже сохранялись, и значения о количестве монет необходимо брать из PlayerPrefs. А если такой переменной нет, то данные о количестве монет необходимо брать из переменной money, объявленной в строке #6. Аналогичная проверка с номером активного скина происходит и в строке #20.
  • Следующие 4 строчки обновляют данные о купленных и активированном скине.
  • В строке #31 мы создали цикл, который будет выполняться 3 раза, чтобы сделать обход по всем нашим скинам. В этом цикле мы создаём проверку для наших кнопок покупки и кнопок выбора скина. То-есть, данный код не отображает кнопку «Купить», если скин куплен. А так же не отображаем кнопку «Применить», если скин ещё не куплен, либо если он уже применён, и является в данный момент активным.

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

ВАЖНО: Для очистки данных из PlayerPrefs, необходимо раскомментировать строчку кода из строки #13.

Завершение

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

Кнопка начать игру уже готова на игровой сцене. Давайте создадим для неё c# скрипт с названием StartGame, и сразу же присвоим её объекту Start. Впишем в него следующий код:

using UnityEngine; using UnityEngine.SceneManagement; public class StartGame : MonoBehaviour < public void Game() < SceneManager.LoadScene("Game"); >>

Единственное что есть в данном скрипте, это метод Game(), который с помощью метода SceneManager.LoadScene() запускает сцену с названием Game. Этот метод необходимо присвоить кнопке Start, с помощью окна Inspector, через поле On Click(), как мы делали это ранее.

Теперь создадим сцену с названием Game, и с помощью окна Hierarchy создадим в нём любой 2д объект, который будет являться нашим персонажем, назовём данный объект Player. И создадим для него скрипт, с названием ScinPlayer. Впишем в него следующий код:

using UnityEngine; public class ScinPlayer : MonoBehaviour < private SpriteRenderer spriteRenderer; public Sprite[] scins; private void Start() < int scinsID = PlayerPrefs.GetInt("scinsID"); spriteRenderer = GetComponent(); spriteRenderer.sprite = scins[scinsID]; > >

В строке #6 мы храним ссылки на наши спрайты скинов, поэтому предлагаю сразу с помощью окна Inspector перетащить из окна Project все наши спрайты скинов.

Вернёмся к разбору кода: в методе Start() мы присваиваем тот спрайт нашему персонажу, который мы сохраняли в переменную scinsID.

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

Магазин скинов в Unity! ПОЛНЫЙ ГАЙД! Паттерны, сохранения, оптимизации ⁠ ⁠

Всем привет! Сегодня разберем как сделать магазин скинов для игры на Unity. Это полный пошаговый гайд (туториал), где мы с вами с 0 создадим магазин скинов с разными категориями. Посмотрим на использование паттернов в коде, перенесем выбранного персонажа в игру, разберем оптимизации, адаптирование интерфейса и еще много всего. Будем использовать такие паттерны, как стратегия, фабрика и визитер, которые тут будут очень кстати. Также рассмотрим как вывести модельку персонажа на UI! Я долго работал над этим роликом, поэтому надеюсь он вам поможет для создания своей игры! Всем приятного просмотра)

213 постов 2.6K подписчика

Подписаться Добавить пост

Правила сообщества

• Запрещается постить вопросы, мемы и прочую ерунду — для этого есть форумы и другие специализированные ресурсы.

• Распространение и обсуждение пиратского ПО, кейгенов, ключей и прочих пиратских файлов запрещено.

• Соблюдайте сетевой этикет. Оскорбительное поведение и мат (в том числе сокращенный или завуалированный) караются баном.

• Запрещается разводить полемики на тему «какой движок круче». Здесь мы обсуждаем только Unity.

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

Похожие посты
3 дня назад

Использую технологии предков для создания зеркал в своей игре :)⁠ ⁠

ZERO PROTOCOL — это сюжетный научно-фантастический триллер от первого лица, в котором игроку предстоит раскрыть секреты антарктического исследовательского комплекса IAS и попытаться выжить.

Показать полностью

Это страница журнала «Лучик». Ежемесячный 80-страничный журнал для детей школьного возраста и их родителей.

Подписаться

5 дней назад

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу?⁠ ⁠

Вот многим не нравится, что русский язык засоряют иностранными словами. Некоторые предлагают их вообще запретить, а за употребление – штрафовать. А им отвечают, что «уборщица» – это, дескать, непрестижно и унизительно, а «менеджер по клинингу» – звучит гордо и «повышает мотивацию». И начались эти споры 400 лет назад, в царствование первых Романовых – Михаила Фёдоровича и Алексея Михайловича.

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Эрик Пальмквист. Прием царем Алексеем Михайловичем иностранного посольства. XVII в.

Основной «заграницей» для России тогда была Польша – и тогдашние «западники» были «полонофилами», то есть любителями всего польского. Среди них в моде были и польская одежда, и польские кушанья, и – само собой! – польские слова. Какие? Ну, например: «забияка», «мужчина», «отчизна», «повидло», «уважать», «мещанин».

При Петре Первом русский язык стал наводняться «бургомистрами» и «обер-шаутбенахтами», а в царствование Елизаветы Петровны на смену немецкой моде всерьёз и надолго пришла мода французская. Русский писатель Александр Сумароков в пьесе «Пустая ссора» ядовито высмеивал модные разговоры на «смеси французского с нижегородским»:

Деламида: Вы так мне флатируете, что уж невозможно, по чести.
Дюлиж: Вы мне еще не верите, что я вас адорирую.
Деламида: И я вас очень эстимую, да для того-то я и за вас нейду; когда б вы моим мужем стали, так хотя вы и многие калитэ имели, мне б вас больше эстимовать было уже нельзя.
Дюлиж: Разве бы вы любить меня не стали?
Деламида: Любить мужа, ха! ха! ха! Это посадской бабе прилично!
Дюлиж: Против этого спорить нельзя, однако ежели б вы меня из адоратера сделали своим амантом, то б это было пардонабельно.

Пьеса эта была поставлена на сцене в 1750 году, а через полвека дошло до того, что дворяне стали и вовсе переходить на чистый французский. (Помните начало романа «Война и мир»?) В родном языке им попросту не хватало слов, чтобы выразить свои мысли! Известный факт: Александр Сергеевич Пушкин сначала выучился читать и писать по-французски – и лишь потом освоил русскую грамоту.

И вот в 1824 году министром народного просвещения в России был назначен. адмирал. Да-да-да, самый настоящий адмирал флота Александр Семёнович Шишков.

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Александр Семёнович Шишков (1754–1841)

Шишков был не просто адмиралом – он был ещё и философом, литературоведом, писателем, литературным критиком – и яростным поборником чистоты русского языка. Над Шишковым многие посмеивались (в том числе и Александр Сергеевич), но тот был категоричен и непреклонен.

Вместо «галош» Шишков предлагал ввести слово «мокроступы». Вместо «тротуара» – «топталище». Злые языки утверждали, что фразу «франт идёт по бульвару в театр» «по-шишковски» следовало говорить так: «Хорошилище идёт по гульбищу в позорище».

И всё же в главном Шишков был несомненно прав:

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

И вот с этим мы очень и очень согласны. И поэтому в каждом номере «Лучика» играем с читателями в игру, в которой надо попробовать угадать, что такое «смятение», а что такое «замятье», или про какого человека говорят, что он «суетный», а про какого – что «ветреный».

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Ну, а теперь про мат. В чём его опасность для мозга. Ну, что некультурно и можно от собеседника «в ухо выхватить» и получить сотрясение, это понятно, а в чём ещё?

Дело в том, что у матерных слов, как и у жаргонных, сленговых, есть одна особенность (которая, кстати, и делает эти слова такими привлекательными и прилипчивыми). Они «бьют по площадям» – охватывают сразу много значений. В этом, повторим, их сила, и в этом же заключается их коварство.

Представьте себе большой концертный рояль. У него 88 клавиш.

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Да, у этого рояля всего восемьдесят две клавиши! Потому что это первый рояль работы мастера Себастьяна Эрара, 1821 год. Мы выпендрились (соригинальничали, надеясь произвести впечатление)

Нажатием каждой клавиши можно извлечь только один определённый звук. Допустим, ноту «до» четвёртой октавы. Или ноту «до» контроктавы. На большом рояле целых восемь по-разному звучащих «до» помещается… Благодаря этому на нём можно много всего сыграть.

А теперь представьте себе игрушечный рояльчик, у которого только двенадцать клавиш. Здесь одна клавиша отвечает за все ноты «до» сразу. Она «многозначная». Но что на таком инструменте можно сыграть? Да почти ничего. Только простенькую мелодию «настучать». Сложного произведения не получится.

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

А теперь представьте что «рояль» – это наш язык, наше сознание. Допустим, мы знаем слово «птица», но не знаем слов «курица», «орёл», «пташка», «желторотый», «певунья», «карга», «пернатое», «дичь»… Наш язык станет проще, но проще станет и наше мышление.

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

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

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Ну зачем, в самом деле, отличать вяз от ясеня, если и то, и другое – «дерево»? Зачем отличать кронштейн от втулки, если и то, и другое – «железка»? Зачем говорить в одной ситуации «предлагаю перекусить», а в другой «соблаговолите отобедать», если можно сказать «го похаваем»?

А когда столкнёшься со сложной жизненной ситуацией, просто скажи:

– Да я это… Чё-то как-то это, короче.

И получится как в стихотворении Чуковского: «Но он только «му» да «му», а к чему, почему – не пойму! – Повесьте, пожалуйста, трубку!»

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

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

Это форс-мажор, уважительная причина. Говорите, что получится, главное – чтобы вы знали, что говорить в тех случаях, когда не ударили! А их, согласимся, в нашей жизни бывает гораздо больше.

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Если у вас есть дети, присоединяйтесь к «Лучику» – будем учиться думать и говорить по-русски вместе! Вот, ссылка на страницу подписки на журнал. А дорого, потому что он толстый, 80-страничный (и не только о языке). И обратите внимание: с 27 по 31 мая будет 30-процентная скидка на подписку.

  • Полистать журналы можно здесь
  • Подписаться с доставкой в почтовый ящик – на сайте Почты России
  • Купить – на Wldberries
  • Скачать бесплатно и без регистрации – здесь

Почему опасно ругаться матом, и что делать, когда ударил молотком по пальцу? Вопрос, Ответ, Культура, Воспитание детей, Образование, Русский язык, Критическое мышление, Развитие, Урок, Воспитание, Детская литература, Учеба, Обучение, Логика, Родители и дети, Детский журнал, Взросление, Родители, Иностранные языки, Длиннопост

Показать полностью 10
Поддержать
11 дней назад

Бумер-шутер в стилистике ZX Spectrum с современной динамикой⁠ ⁠

Бумер-шутер в стилистике ZX Spectrum с современной динамикой Инди игра, Разработка, Steam, Gamedev, Игры, Doom, Шутер, Уникальность, Видео, YouTube, Длиннопост

Exosuit | Cover Art

Всех пламенно приветствую! Хочу показать общему взору мою небольшую игрушку. По большей сути — это шутер от первого лица в стилистике ZX Spectrum. Визуально игра Вам так же может напомнить всем известный DOOM 1993-го года.

Бумер-шутер в стилистике ZX Spectrum с современной динамикой Инди игра, Разработка, Steam, Gamedev, Игры, Doom, Шутер, Уникальность, Видео, YouTube, Длиннопост

Окружение и уровни Exosuit представляют из себя разного рода большие и открытые локации с элементами метроидвании.

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

Бумер-шутер в стилистике ZX Spectrum с современной динамикой Инди игра, Разработка, Steam, Gamedev, Игры, Doom, Шутер, Уникальность, Видео, YouTube, Длиннопост

Один из уровней. В отличие от классических шутеров 90-ых здесь сделан большой акцент на платформинг.

Вопреки распространённой тенденции и взгляду на бумер-шутеры в Exosuit делается большой упор не только на горизонтальное перемещение, но и на вертикальное. Большинство мест в локациях можно исследовать сверху до низу.

Бумер-шутер в стилистике ZX Spectrum с современной динамикой Инди игра, Разработка, Steam, Gamedev, Игры, Doom, Шутер, Уникальность, Видео, YouTube, Длиннопост

Стычки часто происходят на больших и открытых локациях.

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

Бумер-шутер в стилистике ZX Spectrum с современной динамикой Инди игра, Разработка, Steam, Gamedev, Игры, Doom, Шутер, Уникальность, Видео, YouTube, Длиннопост

Но иногда бои проходят в более «интимных» пространствах.

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

Exosuit уже можно купить VK Play (для РФ), на itch и 22-ого апреля в Steam. Кто хочет просто пощупать игрушку, то в Steam доступна DEMO с большим первым уровнем, примерно на час игры.
Steam: https://store.steampowered.com/app/2879300/Exosuit/
VK Play: https://vkplay.ru/play/game/exosuit/
itch: https://sneaky-panda.itch.io/exosuit

Так же, если кому-то понравился проект, можете следить за моим творчеством и будущими играми в паблике ВК: https://vk.com/emergency_exit_dev

Показать полностью 4 1
15 дней назад

Делаем хоррор игру про пришельцев «They Are Here». Как вам эта сцена?⁠ ⁠

They Are Here — это сюжетный хоррор от первого лица. История про журналиста, ставшего свидетелем

похищения пришельцами на ферме Грейсвуд. Игра вдохновлена такими фильмами, как «Знаки» и «Секретные материалы».

Показать полностью
16 дней назад

Список вводных и завершающих слов и предложений⁠ ⁠

Сохраните, чтобы не потерять 😉

  1. above all / прежде всего
  2. after all / в конце концов
  3. and all / и вcё oстальное
  4. and so on / and so forth / и тaк дaлее
  5. as a matter of fact / фaктически
  6. as things stand now / пpи тeкущем пoложении дeл
  7. as things turned out / кaк пoтом oказалось
  8. as to / as for / чтo кaсается
  9. at a glance / c пeрвого взглядa
  10. at any rate / вo вcяком cлучае
  11. at first / вo-первых
  12. at least /пo кpайней мeре
  13. believe it or not / вeришь или нeт
  14. by the way / кcтати
  15. deep down /в глyбине дyши (нa cамом дeле)
  16. first of all / пpежде вcего
  17. for all / for all that / тeм нe мeнее
  18. for example / for instance / for one thing /нaпример…
  19. for one thing / пeрвым дeлом
  20. for the most part / пo бoльшей чaсти
  21. I dare say / oсмелюсь cказать
  22. I wonder…/ интeресно
  23. if I remember rightly / eсли я пpавильно пoмню
  24. if I’m not mistaken / eсли я нe oшибаюсь
  25. in a nutshell / вкpатце
  26. in all probability / in all likelihood / пo вcей вeроятности
  27. in any case / в любoм cлучае
  28. in any event / в любoм cлучае
  29. in fact / нa cамом дeле
  30. in my opinion / пo мoему мнeнию
  31. In other words / дpугими cловами
  32. in short / in brief / in a word / кoроче
  33. in the long run / в кoнечном cчёте
  34. it turned out that / oказалось, чтo
  35. just for the record / пpосто нa зaметку
  36. let alone / нe гoворя o тoм, чтo
  37. look here / пoслушайте
  38. needless to say / cамо cобой pазумеется
  39. not to mention / нe гoворя yже o
  40. on the contrary / нaоборот, нaпротив
  41. or what? / или чтo?
  42. or whatever / или чтo-то eщё
  43. something tells me / чтo-то мнe пoдсказывает
  44. that is to say / тo eсть
  45. that’s flat / этo oкончательно
  46. that’s the way things are going / вoт тaк oбстоят дeла
  47. the thing is / вcе дeло в тoм
  48. to say nothing of / нe гoворя o
  49. to say the truth / пo пpавде cказать
  50. to sum up / пoдводя итoг
  51. what’s more / бoлее тoго

Показать полностью
Поддержать
19 дней назад

Когда сдаешь проект после 1 года усердной разработки:⁠ ⁠

21 день назад

Вот что бывает, когда говоришь аниматору: «Сделай красиво, на свой вкус», без технического задания⁠ ⁠

22 дня назад

Выложила свою первую языковую игру в App Store!⁠ ⁠

Когда я преподавала английский, мне хотелось создать игру, помогающую в изучении языка. Около месяца назад я зарелизила LangLike в Google Play, а на днях игра наконец-то вышла в App Store (все бесплатно и без рекламы). Буду рада фидбеку и готова добавлять новые языки, фишки, опции в игру.

Показать полностью
24 дня назад

Дрожали ли у русских послов коленки?⁠ ⁠

«Настоящий художник должен быть правдив», – говорит учительница рисования в фильме «Приключения Электроника». Ах, если бы.

Сейчас мы рассмотрим две военно-исторические картины и сравним то, что на них изображено, с тем, что известно об этом событии историкам.

Дрожали ли у русских послов коленки? История России, Военная история, Искусство, Образование, Детская литература, Воспитание, Воспитание детей, Культура, Развитие, Урок, Родители и дети, Детский журнал, Учеба, Научпоп, Дети, Школа, Обучение, Длиннопост

История первая. Бреда

Во время войны за независимость Нидерландов, в 1624 году, испанские войска под командованием капитан-генерала Амброзио Спинолы осадили голландскую крепость Бреду. На тот момент это была одна из самых современных и великолепно укреплённых крепостей Европы. Испанская армия незадолго до этого потерпела несколько досаднейших военных неудач, и взятие Бреды для неё было крайне важным. Крепость оборонял гарнизон из 5 000 солдат и добровольцы из местного населения. Испанское войско насчитывало около 80 000 солдат, как испанцев, так и наёмников – в основном немцев.

Дрожали ли у русских послов коленки? История России, Военная история, Искусство, Образование, Детская литература, Воспитание, Воспитание детей, Культура, Развитие, Урок, Родители и дети, Детский журнал, Учеба, Научпоп, Дети, Школа, Обучение, Длиннопост

Диего Веласкес. Сдача Бреды. 1635 г.

Защитники Бреды мужественно оборонялись почти целый год. Командующий голландскими войсками Фредерик Оранский несколько раз пытался деблокировать Бреду, однако силы испанцев были слишком велики. Кроме того, защитники крепости получили известие о смерти правителя Нидерландов, Морица Оранского. Запасы продовольствия и боеприпасов подходили к концу. Наконец, губернатор Бреды Юстино Нассау согласился на переговоры о сдаче.

Нассау поставил испанцам три условия: во-первых, защитники покидали крепость строем, с оружием в руках, под барабанный бой. Во-вторых, жителям города предоставлялось право исповедовать ту религию, которую они захотят (испанцы были католиками, а большинство голландцев – протестантами). В-третьих, испанцы не должны были грабить город. Последнее условие вызвало ярость у наёмников-немцев: как же так, они останутся без добычи! Едва не поднялся бунт в войске. Тогда Амброзио Спинола и испанские офицеры поклялись заплатить наёмникам из собственных денег – лишь бы Бреда стала испанской! 5 июня 1625 года Юстино Нассау во главе вооружённых солдат и ополчения вышел из ворот города и вручил ключи от крепости Амброзио Спиноле. Именно этот момент изображён на картине Веласкеса «Сдача Бреды».

А теперь посмотрите ещё раз внимательно – как художник изобразил победителей, как – побеждённых…

История вторая. Псков

Во время Ливонской войны, в 1581 году, польско-литовские войска под командованием короля Стефана Батория вторглись на русскую территорию и осадили Псков. Стефан Баторий был по происхождению венгром и не знал ни слова по-польски (с подданными он говорил на латыни), однако был блестящим и энергичным полководцем. Всего лишь за 5 лет он реформировал устаревшую польскую армию и отобрал у русских все завоевания в Ливонии (современная Прибалтика). Для того, чтобы окончательно разгромить армию царя Ивана Грозного и вторгнуться в коренную Россию, нужно было сперва захватить город Псков – тоже мощную, прекрасно защищённую крепость, ничем не хуже Бреды.

В составе армии, состоящей не только из польских рыцарей, но и из немецких наёмников (в те времена без немецких наёмников не обходилась ни одна война, заметьте!) были и сам король, и его главнокомандующий, коронный гетман Ян Замойский. Первый штурм города состоялся 8 сентября 1581 года – русский гарнизон и жители города ожесточённо сражались, и польско-литовское войско было вынуждено отступить. Осенью было проведено ещё несколько попыток штурмовать стены и башни Пскова – но защитники оборонялись мужественно и отражали все атаки врага.

Дрожали ли у русских послов коленки? История России, Военная история, Искусство, Образование, Детская литература, Воспитание, Воспитание детей, Культура, Развитие, Урок, Родители и дети, Детский журнал, Учеба, Научпоп, Дети, Школа, Обучение, Длиннопост

Карл Брюллов. «Осада польским королем Стефаном Баторием в 1581 году». 1843 г.

Наступила суровая зима; король Стефан вместе с немецкими наёмниками уехал в город Вильно, оставив вокруг так и не взятого города осаду из поляков и литовцев во главе с Замойским. Польские рыцари, жестоко страдающие от зимних холодов, были на Замойского злы, дело пахло открытым неповиновением. Нужно было или снимать осаду – или начинать с русскими мирные переговоры.

Дрожали ли у русских послов коленки? История России, Военная история, Искусство, Образование, Детская литература, Воспитание, Воспитание детей, Культура, Развитие, Урок, Родители и дети, Детский журнал, Учеба, Научпоп, Дети, Школа, Обучение, Длиннопост

Ян Матейко. «Баторий под Псковом». 1873 г.

В 1582 году был заключен Ям-Запольский мирный договор: Россия теряла все завоевания, сделанные в Ливонской войне, однако смогла сохранить свои исконные земли – Новгород, Смоленск, Москву. Произошло это прежде всего благодаря отважным защитникам Пскова.

Что же мы видим на картине Яна Матейко? На ней под сенью златотканого шатра гордо сидит победоносный король Стефан Баторий – справа от него стоит гетман Замойский в красном жупане, а слева – папский легат Антонио Поссевино в чёрном облачении. Русские, униженно прося о мире, бухаются королю в ноги, боярин-посол Григорий Нащокин плачет и еле стоит, а Киприан, архиепископ Полоцкий и Великолуцкий, стоя на коленях, протягивает королю Стефану хлеб-соль.

Всё это враньё от начала и до конца! Например, архиепископ Киприан героически погиб (или был казнён поляками) ещё в 1579 году, при осаде Полоцка. Вместе с последними защитниками города он укрылся в соборе Святой Софии, дальнейшая судьба его неизвестна.

Боярин Нащокин вообще никогда не был в осаждённом Пскове, в 1581-82 годах он был в Москве. С королём Стефаном он встречался ранее, в 1580 году, но ни одна хроника не говорит о том, что при виде короля у него тряслись ноги – напротив, тогдашние русские дипломаты были воспитаны так, чтобы везде «блюсти царёву честь». Настолько, что в западной Европе русских дипломатов считали слишком гордыми и заносчивыми!

Псков Стефан Баторий не брал, из-под крепости он уехал несолоно хлебавши с первыми же морозами, никто ему никаких ключей от города (и уж тем более хлеба-соли!) на коленях не предлагал. Вот такая вот чистой воды «фантазия художника». Любопытно, правда?

Как устроена бесконечность? Сколько в лошади лошадиных сил? Почему журнал по-английски – магазин? Как готовили картошку на её родине – в Южной Америке?

Дрожали ли у русских послов коленки? История России, Военная история, Искусство, Образование, Детская литература, Воспитание, Воспитание детей, Культура, Развитие, Урок, Родители и дети, Детский журнал, Учеба, Научпоп, Дети, Школа, Обучение, Длиннопост

Рассказывает журнал «Лучик». Познакомиться с журналом (Скачать бесплатно и без регистрации) можно здесь: https://www.lychik-school.ru/archive
Наш Телеграм-канал: https://t.me/luchik_magazine

Показать полностью 4
Поддержать
26 дней назад

Эффект Хичкока в игре⁠ ⁠

Добавил в игру эффект (на переход в режим «Матрицы»), который впервые использовался в фильме Альфреда Хичкока «Головокружение» (Vertigo), 1958. Эффект называют по разному: эффект «раздвигающегося пространства», «обратный трекинг», «контр-зум», и т.д.

В кино этот эффект достигается так:

  1. Камера приближается к объекту
  2. Одновременно вращается кольцо масштабирования

Причем (1) и (2) синхронизируются так, чтобы размеры объекта съемки оставались неизменными.

Я же пытаюсь повторить этот эффект у себя в игре путем хитрого манипулирования параметрами параллакса. Почти получилось. Как сморится в игре? Интересно?

Добавьте игру в Wishlist на страничке в Steam, если вам интересны такие эксперименты с эффектами и стилем.

Показать полностью
28 дней назад

Анимация для кат-сцены⁠ ⁠

Уже два с половиной года работаю над своей игрой. Закончил лицевую анимацию для кат-сцен.

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

Orbital Patrol: The Lani Goodspeed Story — реализация планетарных и космических боев в механике 2D шутера с боковой прокруткой. История лейтенанта Лани Гудспид о борьбе с механоидной расой инопланетных захватчиков.

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

Первый трейлер игры:

Пример кат-сцены с диалогами:

Ну и ссылка на страницу в стиме. Если понравилась моя игра, добавляйте ее в список желаемого. Буду очень рад поддержке 🙂

Показать полностью 3
28 дней назад

Когда в первый раз используешь «плюсы»:⁠ ⁠

Когда в первый раз используешь «плюсы»:

28 дней назад

Ответ на пост «»Программисты не умеют программировать»»⁠ ⁠

В этом отношении мне в своё время понравилась программа для создания гильошей от фирмы-разработчика «CERBER». Одна из первых версий программы была написана на машинных кодах и весила меньше одного (!) мегабайта. Естественно, что декомпилировать и взломать её так никто и не смог, а бесплатная версия сохраняла готовые гильоши только в формате *.BMP.

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

Для ЛЛ, гильош — это защитный элемент из кривых линий на ценных бумагах и денежных знаках.

Ответ на пост «

28 дней назад

Ответ KindlyProgrammer в «»Программисты не умеют программировать»»⁠ ⁠

Банальщина, но вдруг кому пригодится.

В англоязычном менеджменте есть четыре грейда развития специалиста, которые описываются забавной игрой слов:

1. I don’t know what I don’t know — Я не знаю что я не знаю.

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

2. I know what I don’t know — Я знаю что я не знаю.

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

3. I know what I know — Я знаю что я знаю

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

4. I don’t know what I know — Я не знаю что я знаю.

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

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

Если интересно — погуглите сами по названиям стадий.

Показать полностью
28 дней назад

Ответ на пост «»Программисты не умеют программировать»»⁠ ⁠

А я соглашусь, хоть и сам программист.

Я типичный крудошлеп, без бэкграунда в computer science. Кое-как выучил Java Core, кое-как посмотрел Spring, что-то там по реляционкам — и устроился на работу джуном аж за 35к в Хабаровске в местный бодишоп. Там, понятное дело, уже подтянулся к остальным, через три месяца круды пилил не хуже местных «мидлов». Через семь месяцев Сбербанк схантил за 100к с переездом в Москву, я и согласился — что я, дурак что ли?

Там зарплата довольно быстро выросла до 135к, и в принципе на этом этапе я считал, что схватил госпожу удачу за хвост — я весь такой умный, зарабатываю x2 по Москве и x5 по России. Правда, когда я попробовал пройти собес в другую компанию (по-моему, Luxoft), моя радость быстро омрачилась — меня спросили что-то примитивное, в духе «а как устроена HashMap в Java», а я вообще ни сном, ни духом. Какие хэш-функции, нафиг они нужны? Какие коллизиии? Какая потокобезопасность? Ребята, есть класс HashMap, как его использовать, я знаю, что вам еще надо то?

Впрочем, печалился я недолго — просто выучил ответы на типовые вопросы Java / Spring собеседований, благо, таких материалов в интернете море. Да, на одном собесе не смог реверснуть связанный список и пролетел, зато на другом были довольно типовые вопросы, и я без особых проблем перешел уже на 250к в другой бодишоп.

Был ли я хорошим крудошлепом? О да, я мог быстро написать хороший, покрытый тестами круд на Java. Был ли я хорошим программистом? О нет.

  1. Многопоток — паника
  2. Другой ЯП — паника
  3. Вообще что угодно, связанное с алгоритмами или нестандартными структурами данных — паника
  4. Внутрянка Java (как устроена JMM, как работает GC и т.д.) — паника
  5. Просьба задизайнить приложение сводилась к разбиению на микросервисы. Любые попытки вывести на темы доступности / производительности / консистентности данных — паника.
  6. Любые попытки выйти за пределы базовых понятий реляционок — паника.

И вот уже второй год я пытаюсь закрыть эти пробелы и дать самому себе нормальное образование в computer science.Алгоритмы, concurrency, базы данных, распределенные системы и вычисления, внезапно — базовая математика (дискретка, комбинаторика, теорвер), битовые манипуляции. Пригодилось ли мне это на работе? Нет, я все так же пилю круды в массе своей (сейчас меньше, т.к. работа связана больше с менеджментом). Разве что знания системного дизайна здорово выручает при создании архитектуры приложений. Но.

В моем коде кардинально уменьшилось количество ошибок. Я способен в голове без особых проблем продумать довольно сложный алгоритм и превратить его в код с минимальным количеством ошибок. Новые знания в БД позволяют мне разбираться в таких вещах, как индексация, нормализация и денормализация, не говоря уже о том, чтобы в принципе не пихать в реляционки все по умолчанию, как я это делал раньше. Мой кругозор в принципе стал гораздо шире. И что характерно — еще никогда я не чувствовал себя таким идиотом, и еще никогда мне не казалось, что я настолько мало знаю.

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

В общем, иногда синдром самозванца — это не синдром самозванца, просто внешний мир намекает вам, что вы реально нихрена не знаете. Так что учитесь, блин.

Показать полностью
29 дней назад

Переход в «Матрицу» внутри игры⁠ ⁠

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

  1. Боссы не могу навредить в ближнем бою — можно проскочить сложные участки.
  2. Видны скрытые проходы в стенах.
  3. ОДНАКО нельзя играть в автоматы, открывать карту и совершать другие взаимодействия с интерактивными элементами.

Записал ролик. Понятно вообще, что происходит?

Добавляйте игру в список желаемого на страничке игры в Стиме, если вам нравится стиль.

Показать полностью
29 дней назад

Ответ на пост «»Программисты не умеют программировать»»⁠ ⁠

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

Так, из Windows 11 тупо убрали целый ряд функций, которые были ещё в Win10, превратив ОС в чуть более красивый огрызок «Десятки» с небольшим числом полезных новинок, часть которых до сих пор недоработанные (скажем, вкладки в «Проводнике» не запоминаются при перезапуске компьютера, так на фига они нужны такие одноразовые?). Кое-что вернули спустя время, а что-то по-прежнему отсутствует: нельзя посмотреть секунды, нажав по часам, календарь на панели задач не отображает напоминания о событиях, саму панель задач нельзя переставить и закрепить на ней мини-проводник, до сих пор нет единообразия в стиле заголовков окон, нет возможности сразу открывать полное контекстное меню и т.д.

Много раз говорили, что Win11 — та же Win10, только слегка изменённая, что она даже распознаётся где-то как «Десятка», и исходя из этого можно предположить, что не вырезать полезные функции было бы несложно, тут не надо быть семи пядей во лбу, однако ведь вырезали зачем-то. И непонятно, кого тут винить: «гениев» программирования или дефективных менеджеров. В «Центре отзывов» тьма жалоб на эту вырезню, поэтому не похоже, чтобы MS всё это делала «по просьбам трудящихся». Будь у меня выбор между какой-нибудь Win98 с возможностями «Десятки» и Win11, предпочёл бы первую, невзирая на доисторический интерфейс.

Гайд VRChat – как добавить и скачать свои аватары и скины для VRChat, SDK VRChat

Привет, ребята! С вами simhost и гайд по игре VRChat, который научит вас тому как добавить и скачать свои аватары и скины для VRChat. Ведь всем хочется свой скин и аватара в VRChat. А теперь поехали!

Как поменять аватар и скины в VRChat

Итак, для начала научу вас менять аватары и скины в VRChat из тех, которые уже существуют. Ведь наверняка вам уже хочется побыть Наклзом?  Для того нажмите клавишу ESC и выберите пункт меню “Worlds”
Нажмите кнопку Search (крайняя справа) и на появившейся клавиатуре наберите английское слово avatar.

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

Далее подходим к любой модели и нажимаем на неё правой кнопкой мыши (тачпада) и применяем скин на себя. Можете наслаждаться!

Ресурсы где можно скачать интересные аватары и скины для VRChat

Очень много интересны Аватаров и Скинов для VRChat мы нашли и скачали на Deviantart — (кнопка в правом верхнем углу после того как вы перешли на нужную вам модель) – может и вам будет , то по душе. Очень большая база 3D моделей находится по ссылке на ресурсе Sketchfab, большая часть их которых доступна бесплатно. Ну и конечно не стоит забывать старый добрый ресурс , где огромный выбор персонажей из наших с вами любимых игр. Ну а сами разработчики VRChat рекомендуют ресурс A sset Store , где большинство моделей идеально подстроены под их игру и там также есть куча бесплатных образцов.

Как добавить свою собственную модель с помощью SDK и UNITY в VRChat.

Итак, тут все немного сложнее. Для начала вам нужно установить 2 программы

Ну и конечно же Обязательно зарегайтесь на сайте VRCHAT.COM

После установить обе программы.

Зайдя в Unity 5.6.3, щелкните правой кнопкой мыши и выберете import package-custom package и выбираем в загрузках скаченный VRChat SDK, чтобы добавить его в Unity. Теперь вкладка VRChat SDK появиться сверху.

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

Чтобы добавить скачанную модель в игру, вам надо будет зайти на вкладку VRCHAT SDK и нажать кнопку Show bulid Control Panel и далее войти в свой аккаунт VRCHAT (Sign In) и лишь после появится кнопка Build and Publish, с помощью которого вы адаптируете модель, дадите ей имя и нажмете кнопку UPLOAD, загрузив в игру.

Гайд VRChat – как добавить и скачать свои аватары и скины для VRChat, SDK VRChat

Читайте также другие гайды и советы по прохождению. Хотите узнать больше советов или секретов, читайте другие гайды :

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *