Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
 Что обсуждали люди в 2024 году? Самое время вспомнить — через виммельбух Пикабу «Спрятано в 2024»! Печенька облегчит поиск предметов.

Спрятано в 2024

Поиск предметов, Казуальные

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
2
Asmagor
1 месяц назад
Серия Unity3D

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3⁠⁠

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

Итак, напомню что я там хотел (требования к игре):
1. Большой мир (80-100 систем).

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3 Unity, Программирование, Российский игрострой, Странный юмор, Длиннопост

Пример Игрового мира для реализации.

2. Каждый уровень (звездная система) хранит своё состояние.
3. RPG система для юнитов. (уровень, экипировка, инвентарь). Квесты, события, песочница, сюжет, торговля.
4. RTS управление (перемещение в 3-х мерном пространстве). Захват систем, кол-во юнитов в сражении как в Homeworld2, Star Wolves 3: Civil War.
5.
6. Игра однопользовательская, для Windows. (Steam)

Что из этого удалось реализовать и на какой стадии оно всё находится? Для начала расскажу вам о настройках проекта:
1. Версия UnityEngine 2022.3.62f1 LTS. Тип проекта: 3D. Built-In Render Pipeline.
2. Сразу после создания переходим в Project Manager и выполняем в таком порядке: обновляем пакеты в In Project, потом устанавливаем новые пакеты в таком порядке - Addressables, 2D Sprite, AI Navigation, Cinemachine, Localization, Input System и перезапускаем редактор для вступления изменений необходимых для Input System.

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3 Unity, Программирование, Российский игрострой, Странный юмор, Длиннопост

Project Packages

3. После перезагрузки переходим в Window -> Asset Management -> Addressables -> Groups. В появившемся окне -> Create Addressables Settings. Я пока что разделил для себя ассеты в такие группы: Prefab_Camera, Prefab_Lights, Prefab_MainMenu, Prefab_PauseMenu, Prefab_UI, Prefab_GameObjects, Asset_Audio, Asset_Sound, Asset_Music, Asset_Image, Asset_Material, Asset_Skybox, Asset_Fonts, Asset_Localization, VFXSFX, Core. Возможно потом я пересмотрю подход к групперовке.

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3 Unity, Программирование, Российский игрострой, Странный юмор, Длиннопост

Мой вариант групп для проекта

4. Далее создаём папку для Localization. Переходим Project Settings -> Localization и создаём настройки локализации - Localization Settings в созданной ранее папке. Потом в обновившемся окне Project Settings -> Localization - добавим локали Add Locales. Я выбрал - EN, RU, и сохраняем их в Localization/Locales.
6. Теперь создаём таблицы для локализации Window- > Asset Management и в появившемя окне в левом верхнем углу -> New Table Collection. В появившемся окне Name -> MainMenu и нажимаем Create. Сохраняем по адресу: Localizatino/Tables. Закрываем пока это окно.

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3 Unity, Программирование, Российский игрострой, Странный юмор, Длиннопост

Localization Tables


5. Переходим в Project Settings - Player. Вводим название своей компании согласно вашей форме предпринимательства ))).( Я пока не менял Project Settings - Player -> Active Input Handling и оставил его в значении Both.)
6.Переходим в Project Settings - Text Mesh Pro и устанавливаем необходимый минимум - Import TMP Essentials.
7. Создаём папку - Inputs. Переходим в Project Settings -> Input System Package и создаём действия для всего проекта - Create and assign a default project-wide Action Settings и перемещаем их в папку.
8. Переходим в Project Settings -> Input System -> Settings и создаём Settings Asset. В обновившемся окне - Supported Devices -> добавляем Mouse и Keyboard.
8. Возвращаемся в Project Settings - Input System Package и создаём несколько Action Maps: Gameplay_RTS, MainMenu, PauseMenu, Dialogue, Management и Gameplay_DirectControl (я пока остановился на таких).Чуть позже - подробнее о настройках.

Для Menu: Переименовать New Action ->LMB_Click и в уго Binding -> Path -> Left Button [Mouse] и чуть ниже в Use In Control scheme - тут и далее везде ставим галочку Keyboard&Mouse.

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3 Unity, Программирование, Российский игрострой, Странный юмор, Длиннопост

9. Создаём папки для импортируемых ассетов: UI/Image/Texture, UI/Image/Icon, UI/Fonts, UI/Selection, Audio/Sound, Audio/Music, Skyboxes, Prefab/GameObjects, Prefab/UI, Prefab/Core. Потом заполним ассетами. Едем дальше.

10. Папке Scenes: Переименовать Sample Scene в MainMenu, потом добавить сцены Bootstrap, Gameplay и UI.
11. Создать папку Scripts. В папке создать Assembly Definition (MainAssemblyDefinition). В инспекторе при выбранном свежесозданном assembly definition: Namespace -> (название вашей игры или как вам заблагорассудится) и чуть ниже - Assembly Definition References -> Add и добавляем следующее:
com.unity.cinemachine; InputSystemForUI; Unity.Addressables; Unity.AI.Navigation; Unity.InputSystem; Unity.Localization; Unity.ResourceManager; Unity.TextMeshPro; UnityEngine.UI

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3 Unity, Программирование, Российский игрострой, Странный юмор, Длиннопост

12. Теперь перейдем на сцену Bootstrap удалим все объекты, создаём пустой объект Hierarchy -> RMB -> Create Empty, и переименвываем его в Bootstrap.
13. File -> Build Settings -> и перетащили Bootstarp Scene из папки Scenes в Scenes in Build.
14. В папке Scripts создайте новый скрипт с именем Bootstrap и прикрепите его к объекту на сцене.
15. File -> Save и Save Project. ВСЁ! Вот и закончили первоначальную настройку проекта.

В следующем посте: ассеты, скрипты.

Показать полностью 6
[моё] Unity Программирование Российский игрострой Странный юмор Длиннопост
6
PresidentOfGames
PresidentOfGames
2 месяца назад

Привет пикабу!⁠⁠

Мы команда инди разработчиков и сейчас делаем свой "Симулятор курьера"!

Привет пикабу! Gamedev, Инди игра, Игры, Инди, Unity, Российский игрострой
Привет пикабу! Gamedev, Инди игра, Игры, Инди, Unity, Российский игрострой
Показать полностью 1
[моё] Gamedev Инди игра Игры Инди Unity Российский игрострой
26
1
Asmagor
2 месяца назад

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 1⁠⁠

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

Итак... игра.

Посмотрев на то, что народ публикует под вывеской - "Я сделялъ" (тут картинка, где почки показывают мозгу камни) - я немного офигел и подумав решил, что буду делать игру RTS/RPG в космосе.
Почему RTS/RPG? Достойный вызов, изумруд в портфолио, да и не солидно делать, вот эти вот покатушки шариком, бесконечный бегун (runners)...


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


Почему в космосе, спросят самые любопытные? А, потому, что в этом случае надо меньше объектов.

В итоге посмотрев ещё несколько видосов от CodeMonkey (хитрый дядька, но об этом потом) я понял, что:
1. Сэттинг - будущее, 2250 год, космос.
2. Жанр - RTS/RPG
3. Платформа: Windows
4. Распространение: Steam
5. Тип: Singleplayer (пока что)

Задача максимум:
31.05.2025 - создать MVP* и опубликовать игру в раннем доступе по сходной цене.


*Шо такое MVP - Minimal Viable Product, тобишь, по-нашему, это будет - Минимально Жизнеспособный Продукт.

Я пропущу такие моменты (они, кстати, очень важны. Пожалуйста - не пренебрегайте.):

1. Составление Game Design Document
2. Составление Technical Design Document

Итак, немного о предстоящей игре.... Я вдохновлялся следующими играми: EVE Online, Homeworld2, Star Wolves 3: Civil War, X4

Игровой мир: Галактика, звездные системы, соединенные прыжковыми вратами или черными дырами, кстати галактика планируется на 60+ систем, но для начала попробую сделать хотя бы 10
4 Основные фракции - Калгарцы, Аракибы, Воссолны, Сларусы.
Второстепенные фракции - Пираты, Мусорщики, Наемники, Исследователи (ещё думаю).

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

Сюжет: В процессе т.к. еще не готова система диалогов и квестов.

Фишки игры: Ага, так я вам и сказал ) Узнаете в процессе.

Итак, начнем. Начнем мы с того, что будем использовать паттерн - Единая Точка Входа. Хотя следует сначала определится (где твоё место и что ты за птица (с)) c архитектурой проекта и его структурой.

1. Открываем Unity Hub
2. Качаем версию LTS 2023.3.61f1

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 1 Unity, Российский игрострой, Программирование, Странный юмор, Мат, Длиннопост

Так выглядит Unity 2023.3.61f1

3. Создаём проект на BRP (Built-in Render Pipeline)*
*Да, знаю, что будут делать URP (Universal Render Pipeline) проекты в новых версиях Unity по-умолчанию и дело движется к деприкации BRP.

Итак для себя я решил, что буду использовать следующие полезные (не факт) приобретенные знания:

Игра будет состоять из (пока) 7 сцен:

1. Bootstrapper - отвечает за инициализацию сервисов.
2. MainMenu - главное меню. Позволяет начать новую игру (продолжить - пока не работает), загрузить игру, изменить настройки (применить и сохранить),
3. Gameplay - сцена в которой и будет происходить всё действо.
4. UIScene - сцена загружающаяся поверх Gameplay и отвечающая за отображение HUD и других UI.... Так, надоело... HUD - Heads-Up Display, UI - User Interface.
4. EndGame - Тут будем показывать заставку/видео/кат-сцену Победы/Проигрыша/Секретная_Концовка (пока одна).
5. Utility - по идее должна использоваться для гарантированной выгрузки всего, что было в памяти, дабы предотвратить возможные (я ведь не волшебник, а только учусь) утечки памяти

Где, 1 - Bootstrap сцена, в которой мы будем инициализировать полезные нам сервисы, мэ-э-э-энеджеры и т.д. С этой целью создадим несколько скриптиков (придется попечатать немного):
- Удалить все объекты со сцены.
- Добавить объект, переименовать в Bootstrap (вообще без разницы, как вы его назовете - ни на что не влияет).
- В папочке (см. структуру проекта ниже) создаём скрипт: Bootstrap.cs который будет отвечать за инициализацию сервисов.
- Сервисы мы будем хранить и использовать централизованное (Service Locator шаблон). Более того Service Locator у нас будет не MonoBehaviour, а обычный Plain Old Class Object (POCO).

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 1 Unity, Российский игрострой, Программирование, Странный юмор, Мат, Длиннопост

Структура проекта. Всё красиво разложено по папочкам. Всё как мы любим.


Тут следует сделать небольшое отступление:
Классы которые наследуются от MonoBehaviour ВСЕГДА должны быть компонентом (прикреплены) GameObject и присутствовать на сцене.
*При смене сцены, например (сцена1 -> сцена2) все объекты сцены1 будут выгружены из памяти (т.е. канут в Лету)

В таком случае мы будем использовать шаблон Singleton (Одиночка.... одинокий одиночка.... лол)
Поскольку мы его применяем к Service Locator, следовательно сервисы, зарегистрированные в нем будут присутствовать во всех сценах.

Внимание вопрос:
Каким следует сделать Service Locator - MonoBehviour или POCO. Почему?

Я остановился на POCO:

using System;

using System.Collections.Generic;

using UnityEngine;


namespace SpaceMercsLife

{

/// <summary>

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

/// В данном случае мы используем ServiceLocator как POCO класс, что бы он был доступен везде.

/// По окончанию использования вызвать Dispose из другого класса - MonoBehaviour

/// </summary>

/// //: MonoBehaviour

public class ServiceLocator : IDisposable

{

// Словарь для хранения зарегистрированных сервисов. Ключ - тип сервиса, значение - экземпляр сервиса.

private readonly Dictionary<Type, object> _services = new Dictionary<Type, object>();

// Статическое поле для хранения единственного экземпляра ServiceLocator (Singleton).

private static ServiceLocator _instance;

// Статическое свойство для доступа к единственному экземпляру ServiceLocator.

// Ленивая инициализация: экземпляр создается только при первом обращении.

public static ServiceLocator Instance => _instance ??= new ServiceLocator();

/// <summary>

/// Регистрирует сервис указанного типа с предоставленным экземпляром.

/// Если сервис такого типа уже зарегистрирован, он будет перезаписан, о чем будет выведено предупреждение.

/// </summary>

/// <typeparam name="T">Тип регистрируемого сервиса (интерфейс или класс).</typeparam>

/// <param name="service">Экземпляр сервиса для регистрации.</param>

// Событие, вызываемое после регистрации сервиса.

public static event Action<Type, object> ServiceRegistered;


// Событие, вызываемое после отмены регистрации сервиса.

public static event Action<Type> ServiceUnregistered;

/// <summary>

/// Регистрирует сервис указанного типа (интерфейса) с предоставленным экземпляром.

/// Если сервис такого типа уже зарегистрирован, он будет перезаписан, о чем будет выведено предупреждение.

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса регистрируемого сервиса.</typeparam>

/// <typeparam name="TImplementation">Тип конкретной реализации сервиса.</typeparam>

/// <param name="service">Экземпляр сервиса для регистрации.</param>

public void Register<TInterface, TImplementation>(TImplementation service)

where TInterface : class

where TImplementation : class, TInterface

{

var interfaceType = typeof(TInterface);

if (_services.ContainsKey(interfaceType))

{

Debug.LogWarning($"Service {interfaceType} already registered. Overriding with {service.GetType().Name}...");

_services[interfaceType] = service;

}

else

{

_services.Add(interfaceType, service);

ServiceRegistered?.Invoke(interfaceType, service);

}

}

/// <summary>

/// Отменяет регистрацию сервиса указанного типа (интерфейса).

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса сервиса, который необходимо отменить регистрацию.</typeparam>

public void Unregister<TInterface>() where TInterface : class

{

var interfaceType = typeof(TInterface);

if (_services.ContainsKey(interfaceType))

{

_services.Remove(interfaceType);

ServiceUnregistered?.Invoke(interfaceType);

Debug.Log($"Service {interfaceType} unregistered.");

}

}

/// <summary>

/// Получает зарегистрированный сервис указанного типа (интерфейса).

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса запрашиваемого сервиса.</typeparam>

/// <returns>Экземпляр зарегистрированного сервиса.</returns>

/// <exception cref="Exception">Выбрасывает исключение, если сервис указанного типа не найден.</exception>

public TInterface Get<TInterface>() where TInterface : class

{

var interfaceType = typeof(TInterface);

if (!_services.TryGetValue(interfaceType, out var service))

{

throw new Exception($"Service {interfaceType} not found");

}


return (TInterface)service;

}


/// <summary>

/// Пытается получить зарегистрированный сервис указанного типа (интерфейса).

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса запрашиваемого сервиса.</typeparam>

/// <param name="service">Выходной параметр, содержащий экземпляр сервиса, если он найден, иначе null.</param>

/// <returns>True, если сервис найден, иначе false.</returns>

public bool TryGet<TInterface>(out TInterface service) where TInterface : class

{

var interfaceType = typeof(TInterface);

if (_services.TryGetValue(interfaceType, out var obj))

{

service = (TInterface)obj;

return true;

}

service = null;

return false;

}


/// <summary>

/// Удаляет все зарегистрированные сервисы и очищает события.

/// </summary>

public void Clear()

{

_services.Clear();

ServiceRegistered = null;

ServiceUnregistered = null;

// Можно добавить Debug.Log("ServiceLocator cleared.") для обратной связи.

}


/// <summary>

/// Реализация интерфейса IDisposable. Освобождает ресурсы, удерживаемые ServiceLocator.

/// В данном случае, очищает список сервисов, отписывается от событий и обнуляет ссылку на экземпляр.

/// </summary>

public void Dispose()

{

if (_instance != null)

{

_instance.Clear();

_instance = null;

}

GC.SuppressFinalize(this);

}

}

}

А вот на "прям вот сейчас, сию минуту" выглядит Bootstrap.cs

using UnityEngine;

using SpaceMercsLife.Service.Interfaces;

using SpaceMercsLife.Service.Implementation.Mono;

using SpaceMercsLife.Service.Implementation.POCO;

using System.Threading.Tasks;

using UnityEngine.SceneManagement;

using SpaceMercsLife.SLocator;


namespace SpaceMercsLife

{

public class Bootstrap : MonoBehaviour

{

private string configFileName = "game_config";

private string defaultLocale = "en";


private async void Start()

{

MonoBehaviourServicesRegistration();

await POCOServicesRegistration();

ReleaseResources();


await LoadGameSettings();


// Воспроизведение фоновой музыки

var audioService = ServiceLocator.Instance.Get<IAudioService>();

await audioService.PlayBackgroundMusicAsync("main_theme", volume: 1.0f, fadeInDuration: 2.0f);


// Загрузка сцены главного меню

var sceneService = ServiceLocator.Instance.Get<ISceneService>();

await sceneService.LoadSceneAsync("MainMenu", LoadSceneMode.Single, showLoadingScreen: true, uiSceneName: null);

}


private async Task LoadGameSettings()

{

// Загрузка графических настроек

var graphicsService = ServiceLocator.Instance.Get<IGraphicsService>();

await graphicsService.LoadSettingsAsync();


// Загрузка настроек ввода

var inputService = ServiceLocator.Instance.Get<IInputService>();

await inputService.LoadBindingsAsync();


// Загрузка настроек VFX

var vfxService = ServiceLocator.Instance.Get<IVFXService>();

await vfxService.LoadSettingsAsync();


// Загрузка настроек UI

var uiService = ServiceLocator.Instance.Get<IUIService>();

await uiService.LoadSettingsAsync();


// Инициализация камеры

var cameraService = ServiceLocator.Instance.Get<ICameraService>();

var mainCamera = cameraService.CreateCamera("MainCamera");

cameraService.SetMainCamera(mainCamera);


// Загрузка настроек камеры и мыши

await cameraService.LoadSettingsAsync();

}


private void MonoBehaviourServicesRegistration()

{

VFXService vfxServicePrefab = Resources.Load<VFXService>("Prefabs/VFXService");

SceneService sceneServicePrefab = Resources.Load<SceneService>("Prefabs/SceneService");


var vfxService = Instantiate(vfxServicePrefab);

DontDestroyOnLoad(vfxService.gameObject);

vfxService.Initialize(ServiceLocator.Instance.Get<IConfigurationService>());

ServiceLocator.Instance.Register<IVFXService, VFXService>(vfxService);


var sceneService = Instantiate(sceneServicePrefab);

DontDestroyOnLoad(sceneService.gameObject);

ServiceLocator.Instance.Register<ISceneService, SceneService>(sceneService);

}


private void ConfigInitialization()

{

var configService = new SimpleConfigurationService();

configService.LoadConfig($"Config/{configFileName}");

ServiceLocator.Instance.Register<IConfigurationService, SimpleConfigurationService>(configService);


var audioService = new AudioService(configService);

ServiceLocator.Instance.Register<IAudioService, AudioService>(audioService);


var graphicsService = new GraphicsService(configService);

ServiceLocator.Instance.Register<IGraphicsService, GraphicsService>(graphicsService);


var inputService = new InputService(configService);

ServiceLocator.Instance.Register<IInputService, InputService>(inputService);


var cameraService = new CameraService(configService);

ServiceLocator.Instance.Register<ICameraService, CameraService>(cameraService);


var uiService = new UIService(configService);

ServiceLocator.Instance.Register<IUIService, UIService>(uiService);


var localizationService = new SimpleLocalizationService();

localizationService.SetLocale(defaultLocale);

ServiceLocator.Instance.Register<ILocalizationService, SimpleLocalizationService>(localizationService);

}


private async Task POCOServicesRegistration()

{

ConfigInitialization();


ServiceLocator.Instance.Register<IResourceService, ResourceService>(new ResourceService());

ServiceLocator.Instance.Register<IPhysicsService, PhysicsService>(new PhysicsService());

ServiceLocator.Instance.Register<IEventBus, EventBus>(new EventBus());

ServiceLocator.Instance.Register<IStateMachineService, SimpleStateMachineService>(new SimpleStateMachineService());


var binaryDataService = new BinaryDataService();

await binaryDataService.InitializeAsync();

ServiceLocator.Instance.Register<IDataService, BinaryDataService>(binaryDataService);

}


private void ReleaseResources()

{

Resources.UnloadUnusedAssets();

}

}

}

А вот так вот выглядят все сервисы

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 1 Unity, Российский игрострой, Программирование, Странный юмор, Мат, Длиннопост
Показать полностью 3
[моё] Unity Российский игрострой Программирование Странный юмор Мат Длиннопост
17
1
Asmagor
2 месяца назад

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 0⁠⁠

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

Добрейшего Всем!


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

Канада, Калгари
01.03.2025
Я уже несколько месяцев на LayOff (это когда временно без работы, но трудовые отношения никто не разрывал). Переиграл во всё, что только можно и нельзя, 1191.3 часа в IronOrder1919, V Rising и Valheim со школьниками. Tarkov - э-э-эхххх.... был бы ноут по-мощнее - вообще бы не вылазил из неё. Вот список игр во что играл/ю:

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 0 Unity, Программирование, Российский игрострой, Странный юмор, Мат, Длиннопост



Но, рано или поздно, безделье надоедает* и я начал подумывать, чем бы занятся и заодно позаработать денег. Вариантов - раз, два и обчелся:

1. Доставка еды / Такси. Не канает - нет машины.
2. Перепродажа б/у вещей с Trift stores и GoodWill - объемисто, долгосрочно, перспективно. Но в одно лицо - это труба. Да и вещи там так, расхватывают, словно ты пытаешься у них эту самую шмотку, что ни на есть - последнюю, забрать.
3. И..... и больше нихрена я не умею.

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

Сцука, идея фикс - игра. Итак, ТС, какую же игру ты захотел сделать? Грабить корованы, лол?

Имея на руках ноутбук, мышку, наушники (с микрофоном) :

  • Device name LAPTOP-CFCEROC4

  • Processor Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 2.21 GHz

  • Installed RAM 12.0 GB (11.8 GB usable)

  • Video GPU:

    NVIDIA GeForce GTX 1050

    Dedicated GPU memory 0.0/4.0 GB

    Shared GPU memory 0.0/5.9 GB

    GPU Memory 0.0/9.9 GB

  • System type 64-bit operating system, x64-based processor

  • Pen and touch No pen or touch input is available for this display

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

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

1. Игровой движок. Unity.
Почему Unity? UnrealEngine - выкинуло из редактора из-за нехватки ресурсов. Godot - уже не очень помню почему, но - нет.
Unity Personal редакции позволяет заработать достаточно много 100 000 USD - 200 000 USD. Ссылка - https://unity.com/products/pricing-updates

2. Язык программирования. С#
Много лет назад, когда я был ешё молодым и ходил в КА "Шаг" - я учил С++. Поэтому сильно не выбирал. Кстати, обращаю Ваше внимание, что Unity поддерживает следующие языки программирования: C#, C/C++, Rust, IronPython, Lua, Java, JavaScript, SQL, HTML 5, and CSS

Для дальнейшего понимания, следует сделать небольшое отступление: из чего сделана игра? Каким представлением оперирует Unity?

В Unity есть такое понятие как сцена. Сцену еще можно представить как уровень / локацию, для понимания. Сцена - это контейнер.
Сцена состоит из GameObjects (объектов-контейнеров), которые, в свою очередь, состоят из компонентов. (https://docs.unity3d.com/2022.3/Documentation/Manual/Creatin...)

  1. Код. Скрипты. Тут всё понятно - используем выбранный язык программирования и в бой. Но есть нюанс ))))
    2. 3д объекты, которые состоят из mesh.

    Меш (mesh) — это фундаментальный элемент в 3D моделировании, представляющий собой сетку, состоящую из вершин, рёбер и граней.

3. Текстуры. Включая Skybox
4. Материалы.
5. Шейдеры
6. Аудио файлы (музыка, звуки)
7. Видео файлы (если будешь делать кат-сцены или просто видео)
8. Анимации
9. Текстовые файлы
10. Освещение
..... Вроде всё, на пока - хватит )))

И шо же делать, спросят самые непоседливые. А собственно говоря вот:

1. Unity Game Engine
2. VS Code
3. Blender 4
5. AudioCity
6. MeshLab
7. Photoshop


--------------------------------------------------------------------------------------------------------------
Канада, Калгари
03.03.2025
Полон энтузиазма, готов горы свернуть. "В Ютубе всё есть - полно учебных материалов! Бери - нехочу! Все даром рассказывают как делать игры!" Посмори вот тебе ресурсы:


1. Unity documentation (тут понятно - читать не особо весело, неправда ли?*)
2. Youtube - полно видео уроков. (вот тут прям начало припекать)
3. "Тематические" широко-известные в узких кругах сайты, где можно без регистрации и смс скачать книги! (чуть позже выложу свою коллекцию)
4. Парочка русских сайтов.
5. ИИ
6. GitHub

Штошььь... прямо скажем - не густо. Но глаза боятся - руки делают! (с) И я начал читать книжки.

Дабы не томить сильно:
1. ИИ - если ты не знаешь, что/о чём ты спрашиваешь - получишь чушь в ответ. Поэтому читай, для начала.
2. Youtube - для этих, не побоюсь этого слова - П*дарасов, Большой Буквы, есть отдельный котёл, в котором черти будут их жахать кочергой во все дыхательные и пихательные, пока за этим будет наблюдать стая бешеных и голодных собак.
Но следует быть объективным т.е. иметь холодную голову, горячее сердце и чистые руки, и признать что мне попались 3 - 4 годных товарища. От одного я случайно узнал о шаблоне проектирования - Единая Точка Доступа. Это мне помогло.
3. Книги - это просто поле для инфоциганства. Старые болезни.... Переписывают из книги в книгу одно и тоже. используют теже примеры, никакой новизны.*
*Если успею - выпущу свою книжку про Юнити, сцука, и пусть они все охренеют!

Немного отвлечемся:

Так выглядит "изучение":

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 0 Unity, Программирование, Российский игрострой, Странный юмор, Мат, Длиннопост

Открытые вкладки

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 0 Unity, Программирование, Российский игрострой, Странный юмор, Мат, Длиннопост

Книжки, Видео-материалы. На любой вкус и цвет.

В завершении нулевой части:

Самое важное в этой писульке от Федота - с чего следует начать (помимо языка программирования):

1. Шаблоны проектирования программного обеспечения.
3. Архитектура приложений / программного обеспечения.

PayPal аккаунт для пожертвований: stas.vdk@gmail.com

Блять, испанский стыд... с этими пожертвованиями конечно....

Показать полностью 3
[моё] Unity Программирование Российский игрострой Странный юмор Мат Длиннопост
4
2
user10218292
5 месяцев назад
Инди игры

Путешествие по мирам инди-разработки: от идеи до игры, которая покорит сердца⁠⁠

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

Первая искра: идея

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

Создание прототипа: от замысла к реальности

После того как вы определились с идеей, пришло время создать прототип. Это может быть элементарная версия вашей игры, где не все механики отшлифованы, но основной концепт уже работает. Используйте доступные инструменты — даже простые программы для создания игр, такие как GameMaker или Unity, помогут вам в этом. Чем меньше времени вы потратите на создание прототипа, тем быстрее сможете получить обратную связь!

Обратная связь: ваш лучший друг

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

Арты и звуки: погружение в атмосферу

Когда основные механики игры установлены, самое время работать над визуальным и звуковым оформлением. Возьмите за основу атмосферу вашей игры и создайте соответствующий арт. Вы не художник? Не беда! Существуют ресурсы, где можно найти бесплатные или недорогие арты и звуки. Но если вы готовы рискнуть, попробуйте создать что-то свое!

Запуск и продвижение: шаг в свет

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

Не останавливайтесь на достигнутом

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

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

И помните: ваша игра — это ваше видение, так что не забывайте быть смелыми и креативными. Удачи в разработке!

Показать полностью
Игры Разработка Российский игрострой Совет Текст
0
87
boev.fm
9 месяцев назад
Лига Геймеров

Коллега делает русскую Дюну⁠⁠

У меня на работе есть очень скромный коллега, который имеет свой пет-проект.

Идея проекта заключается в том, что он делает RTS в стиле сеговской Дюны 2.

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

П.С.: коллега не в курсе того что я здесь разместил его игрушку, по этому я думаю он приятно удивится, если там будет уже 10 человек, а не 8 как сейчас)

https://www.rustore.ru/catalog/app/pn.games.dune
https://t.me/saturn_rts

Коллега делает русскую Дюну Игры, Компьютерные игры, Дюна, RTS, Стратегия, Россия, Российский игрострой, Русский игропром, Игрушки, Gamedev, Telegram (ссылка), Длиннопост
Коллега делает русскую Дюну Игры, Компьютерные игры, Дюна, RTS, Стратегия, Россия, Российский игрострой, Русский игропром, Игрушки, Gamedev, Telegram (ссылка), Длиннопост
Коллега делает русскую Дюну Игры, Компьютерные игры, Дюна, RTS, Стратегия, Россия, Российский игрострой, Русский игропром, Игрушки, Gamedev, Telegram (ссылка), Длиннопост
Показать полностью 3
[моё] Игры Компьютерные игры Дюна RTS Стратегия Россия Российский игрострой Русский игропром Игрушки Gamedev Telegram (ссылка) Длиннопост
24
itforprof
itforprof
1 год назад

Нужна ли России суверенная игровая приставка?⁠⁠

В последнее время вопрос создания российской игровой консоли подняли на самом высоком уровне.

В конце марта президент поручил до 15 июня рассмотреть вопрос о производстве игровых приставок и консолей в России. На следующий день появились слухи, что проект отдадут на разработку VK, а выпуском устройств займется GS Group. А ещё через день вообще нашли готовый российский аналог PlayStation под названием PlaySpace. И даже назвали его цену — 47 тысяч рублей. Разработкой ноу-хау занимались в Донском государственном техническом университете.

Правда, при ближайшем рассмотрении PlaySpace оказалась студенческим проектом с самой дешёвой китайской начинкой. Но дедлайн 15 июня прошёл, и теперь Минпромторг всерьёз приступил к поиску подрядчиков, чтобы к 2026-2027 году предъявить геймерам «полноценную игровую консоль».

При этом нерешёнными остаются два ключевых пункта:

1) Кто, как и из чего будет эти консоли собирать?
2) Кто и во что будет на них играть?

И если первый пункт можно по аналогии другими отраслями решить за счёт великого китайского импортозамещения, то вопрос целевой аудитории остаётся открытым. Как справедливо пишут участники рынка, интересны и не сами консоли, а игры. Они же служат и главным источником дохода для компаний.

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

Нужна ли России суверенная игровая приставка? IT, Playstation, Xbox, Консоли, Игры, Облачный гейминг, Российский игрострой
Показать полностью 1
IT Playstation Xbox Консоли Игры Облачный гейминг Российский игрострой
20
MAS36
1 год назад

Главная ошибка при создании "Смуты"⁠⁠

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

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

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

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

Стратегия Смута (игра) Компьютерные игры История России Российский игрострой Смутное время Армия Русское царство (XVI-XVIII вв) Текст
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии