Четверг, 28 Марта 2024, 19:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Actors (Мой framework для Unity3d на котором я пишу игры.)
Actors
XakepДата: Вторник, 28 Мая 2019, 17:16 | Сообщение # 21
めちゃくちゃちゃ
Сейчас нет на сайте
Понятно, согласен в общем-то. Вообще интересный проект, ECS я люблю, время от времени задумываюсь над тем, чтобы вернуться в геймдев, если все таки надумаю попробую этот фреймворк, звездочку на гитхабе поставил, так что не потеряется :)
pixeyeДата: Суббота, 15 Июня 2019, 14:54 | Сообщение # 22
Red Winter Software
Сейчас нет на сайте
у гитхаба в бете запущена программа спонсоров. В общем суть, что любой желающий сможет поблагодарить опенсорщиков парой долларов : ) типа патреона ток на гитхабе.
Сейчас собирают претедентов на бетку. Буду признателен если проголосуете за меня : ) мой профиль если что.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

pixeyeДата: Пятница, 28 Июня 2019, 11:52 | Сообщение # 23
Red Winter Software
Сейчас нет на сайте
Cryoshock Mini для тех кто интересуется темой ECS - обновляю учебный проект на фреймворке c учетом изменений.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Пятница, 28 Июня 2019, 11:58
pixeyeДата: Четверг, 04 Июля 2019, 20:45 | Сообщение # 24
Red Winter Software
Сейчас нет на сайте
Добавил поддержку распараллеливания для рассчетов : )

Код

namespace Pixeye.Source
{
 sealed class ProcessorTest : Processor, ITick
  {
  public Group<ComponentPosition> groupThreaded;

  public ProcessorTest()
  {
   groupThreaded.MakeConcurrent(100000, Environment.ProcessorCount - 1, HandleCalculation);
  }

  public void Tick(float delta)
  {
   if (Input.GetKeyDown(KeyCode.Alpha1))
   {
    for (int i = 0; i < 500000; i++)
    {
     var e = Entity.Create();
     e.Set<ComponentPosition>();
    }
   }

   // One thread
   if (Input.GetKeyDown(KeyCode.Alpha2))
   {
    for (int i = 0; i < groupThreaded.length; i++)
    {
     ref var entity    = ref groupThreaded.entities[i];
     ref var cPosition = ref entity.ComponentPosition();
     for (int j = 0; j < 1000; j++)
     {
      cPosition.pos.x += 1 * delta;
     }
    }
   }

   // MultiThread
   if (Input.GetKeyDown(KeyCode.Alpha3))

    groupThreaded.Execute(delta);
  }

  static void HandleCalculation(SegmentGroup segment)
  {
   for (int i = segment.indexFrom; i < segment.indexTo; i++)
   {
    ref var entity    = ref segment.source.entities[i];
    ref var cPosition = ref entity.ComponentPosition();
    for (int j = 0; j < 1000; j++)
    {
     cPosition.pos.x += 1 * segment.delta;
    }
   }
  }
    }
}





ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Четверг, 04 Июля 2019, 20:46
pixeyeДата: Суббота, 31 Августа 2019, 00:34 | Сообщение # 25
Red Winter Software
Сейчас нет на сайте
Выкатил новую версию (2019.08.30) фреймворка.

- Добавлены процессоры с автогруппами
- Переработаны и оптимизированы события групп сущностей
- Переработан и оптимизирован настроечный код для компонентов.

Больше об изменениях почитать можно тут.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Суббота, 31 Августа 2019, 10:07
pixeyeДата: Понедельник, 16 Сентября 2019, 11:38 | Сообщение # 26
Red Winter Software
Сейчас нет на сайте
Версия 2019.9.15

Потребует рефакторинг компонентов. Был существенно упрощен boilerplate код для них.

Код

static partial class component
    {
                // нужно для exclude фильтра групп. Опционально.
  public const string health = "Pixeye.Source.ComponentHealth";

  public static ref ComponentHealth ComponentHealth(in this ent entity)
   => ref StorageComponentHealth.components[entity.id];
    }

    sealed class StorageComponentHealth : Storage<ComponentHealth>
    {
                // создает новый компонент. Быстрее чем new T();
  public override ComponentHealth Create() => new ComponentHealth();
                // Когда компоненты на кадре умирают их можно почистить через этот метод. Опционально.
  public override void Dispose()
  {
   for (int i = 0; i < disposedLen; i++)
   {
    ref var component = ref components[disposed[i]];
    component.val = 0;
    component.valMax = 0;
   }
  }
    }


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Понедельник, 16 Сентября 2019, 11:45
pixeyeДата: Понедельник, 30 Сентября 2019, 16:47 | Сообщение # 27
Red Winter Software
Сейчас нет на сайте


Как работаю с 2д анимациями на Unity


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Понедельник, 30 Сентября 2019, 16:48
pixeyeДата: Понедельник, 02 Декабря 2019, 11:46 | Сообщение # 28
Red Winter Software
Сейчас нет на сайте


Пишем свой обработчик твинов


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Actors (Мой framework для Unity3d на котором я пишу игры.)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг