Вторник, 23 Июля 2019, 10:27

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 52
  • 1
  • 2
  • 3
  • 51
  • 52
  • »
Форум игроделов » Записи участника » zaicev9797 [1031]
Результаты поиска
zaicev9797Дата: Вторник, 25 Июня 2019, 22:09 | Сообщение # 1 | Тема: Воксели, Texture3d, волюметрика, шейдеры. Что посмотреть?
AbRaKaDaBrA
Сейчас нет на сайте
пытался разобраться, как работает вот это
https://www.youtube.com/watch?v=mvXCo_qG300
https://www.youtube.com/watch?v=LolerRBhaAs
и нифига не понял, кроме того что там используют воксели, 3ДТекстуры и возможно волюметрику (как я понял это все вещи приблизительно одной оперы)
Но вот чот найти что то этому поводу в ютубе не смог.
Кто что может подсказать, подкинуть?


проект Mysterious Space. The losted moment
zaicev9797Дата: Суббота, 15 Июня 2019, 05:59 | Сообщение # 2 | Тема: Массив содержащий компоненты игрового обьекта
AbRaKaDaBrA
Сейчас нет на сайте
Цитата drcrack ()
ООП, там все обьясняется с примерами

Дак вот читал же ведь. И в унике читали курс по ООП, но как правило примеры и там и там ограничиваются двумя - тремя классами с простейшими примерами типа банковских счетов, по которым сложно представить как работает тот или иной тип классов или паттерн. Может плохо искал, но вот не видел я более крупных примеров, где разрабатывается более менее обьемная взаимосвязанная система.
Цитата pixeye ()
Если игру то тебе действительно нужен настолько большой уровень абстракции ?

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


проект Mysterious Space. The losted moment
zaicev9797Дата: Пятница, 14 Июня 2019, 21:40 | Сообщение # 3 | Тема: Массив содержащий компоненты игрового обьекта
AbRaKaDaBrA
Сейчас нет на сайте
про виртуальные методы знаю. Но все дело в отсутствии практики с ними.
Вроде уже на втором курсе, и половине одногрупников курсачи на сях писать умудряюсь, а вот виртуальными методами так и не научился пользоваться.
В общем то я за помощью сюда и прибыл. Точно не за отправлением в детский садик. Вот если покажете пример решения и улучшения такого говнокода, вот это будет действительно круто.


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Пятница, 14 Июня 2019, 21:41
zaicev9797Дата: Пятница, 14 Июня 2019, 20:26 | Сообщение # 4 | Тема: Массив содержащий компоненты игрового обьекта
AbRaKaDaBrA
Сейчас нет на сайте
как можно сделать чтоб внутри класса GameObject можно было хранить массив или список наследников класса Component (например TransfromComponent : public Component или Collider : public Component и т.д.)
У Component есть метод Update. соответственно я хочу чтоб GameObject который содержит набор экземпляров разных наследников Component мог вызывать их Update.
Как такое можно сделать?

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

Короче выглядит это вот так, и что то мне подсказывает, что это лютая дичь
Код
class GameObject{
    TransformComponent *transform;
    Body *body;
    Collider *collider;
    DrawComponent *draw;
    Spacecraft *spacecraft;
    ParticleController *particleController;
    ParticleSystem *particleSystem;
    BackgroundController *backgroundController;
    FireController *fireController;
    Button *button;
    TextWindow *textWindow;
    FireLight *fireLightController;
    WeaponLight *weaponLightController;
    ExplosionLight *explosionLightController;
    Asteroid *asteroidController;
    ExplosionController *explosionController;
    PlayerController *playerController;
    EngineParticleController *engineParticleController;
    Bullet *bulletController;
    Weapon *weaponController;
    AsteroidSpawner *asteroidSpawnerController;
    bool destroy = false;
    String tag;
public:
    GameObject()
    {
  transform = NULL;
  body = NULL;
  collider = NULL;
  draw = NULL;
  spacecraft = NULL;
  particleSystem = NULL;
  particleController = NULL;
  backgroundController = NULL;
  fireController = NULL;
  button = NULL;
  textWindow = NULL;
  fireLightController = NULL;
  asteroidController = NULL;
  explosionController = NULL;
  playerController = NULL;
  bulletController = NULL;
  weaponController = NULL;
  weaponLightController = NULL;
  explosionLightController = NULL;
  asteroidSpawnerController = NULL;
    }

    void SetTransform(TransformComponent *_trnasform)
    {
  transform = _trnasform;
  tag = transform->GetTag();
    }
    void SetDrawComponent(DrawComponent *_draw){draw = _draw;}
    void SetCollider(Collider *_collider){collider = _collider;}
    void SetBody(Body *_body){body = _body;}
    void SetSpacecraft(Spacecraft *_spacecraft){spacecraft = _spacecraft;}
    void SetParticleController(ParticleController *_particleController){particleController = _particleController;}
    void SetBackgroundController(BackgroundController *_backgroundController){backgroundController = _backgroundController;}
    void SetButtonController(Button *_button){button = _button;}
    void SetParticleSystem(ParticleSystem *_particleSystem){particleSystem = _particleSystem;}
    void SetFireController(FireController *_fireController){fireController = _fireController;}
    void SetTextWindowController(TextWindow *_textWindow){textWindow = _textWindow;}
    void SetFireLitghtController(FireLight *_fireLightController){fireLightController = _fireLightController;}
    void SetAteroidController(Asteroid *_asteriodController){asteroidController = _asteriodController;}
    void SetExplosionController(ExplosionController *_explosionController){explosionController = _explosionController;}
    void SetPlayerController(PlayerController *_playerController){playerController = _playerController;}
    void SetEngineParticleController(EngineParticleController *_engineParticleController){engineParticleController = _engineParticleController;}
    void SetBulletController(Bullet *_bulletController){bulletController = _bulletController;}
    void SetWeaponController(Weapon *_weapon) { weaponController = _weapon; }
    void SetWeaponLightController(WeaponLight *_weaponLight) { weaponLightController = _weaponLight; }
    void SetExplosionLightController(ExplosionLight *_explosionLight) { explosionLightController = _explosionLight; }
    void SetAsteroidSpawnerController(AsteroidSpawner *_asteroidSpawner) { asteroidSpawnerController = _asteroidSpawner; }

    TransformComponent* GetTransformComponent(){return transform;}
    DrawComponent* GetDrawComonent(){return draw;}
    Collider* GetCollider() {return collider;}
    Body *GetBody(){return body;}
    Spacecraft *GetSpacecraft(){return spacecraft;}
    ParticleController *GetParticleController(){return particleController;}
    BackgroundController *GetBackgroundController(){return backgroundController;}
    Button *GetButton() { return button; }
    TextWindow *GetTextWindow(){return textWindow;}
    FireLight *GetFireLightController(){return fireLightController;}
    Asteroid *GetAsteroidController(){return asteroidController;}
    ExplosionController *GetExplosionController(){return explosionController;}
    PlayerController *GetPlayerController(){return playerController;}
    EngineParticleController *GetEngineParticleController(){return engineParticleController;}
    bool GetDestroy(){return destroy;}
    ParticleSystem *GetParticleSystem(){return particleSystem;}
    FireController *GetFireController(){return fireController;}
    Bullet *GetBulletController(){return bulletController;}
    Weapon *GetWeaponController() { return weaponController; }
    WeaponLight *GetWeaponLightController() { return weaponLightController; }
    ExplosionLight *GetExplosionLightController() { return explosionLightController; }
    AsteroidSpawner *GetAsteroidSpwnerController() { return asteroidSpawnerController; }
    String *GetTag(){return &tag;}
    void Update(RenderWindow &window)
    {
  //printf("\n\n%s \n", transform->GetName().toAnsiString().c_str());
  if (backgroundController != NULL){backgroundController->Update();}
  if (textWindow != NULL){textWindow->Update(window);}
  if (button != NULL){button->Update(window);}
  if (body != NULL){body->Update();}
  if (spacecraft != NULL){spacecraft->Update();}
  if (particleSystem != NULL){particleSystem->Update();}
  if (particleController != NULL){particleController->Update();}
  if (fireController != NULL){fireController->Update();}
  if (fireLightController != NULL){fireLightController->Update();}
  if (asteroidController != NULL){asteroidController->Update();}
  if (explosionController != NULL){explosionController->Update();}
  if (playerController != NULL){playerController->Update();}
  if (engineParticleController != NULL){engineParticleController->Update();}
  if (bulletController != NULL){bulletController->Update();}
  if (weaponController != NULL) { weaponController->Update(); }
  if (weaponLightController != NULL) { weaponLightController->Update(); }
  if (explosionLightController != NULL) { explosionLightController->Update(); }
  if (asteroidSpawnerController != NULL) { asteroidSpawnerController->Update(); }
  if (draw != NULL){draw->Draw(window);}
    }

    void Destroy()
    {
  if (transform != NULL){transform->Destroy();}
  if (collider != NULL){collider->Destroy();}
  if (draw != NULL){draw->Destroy();}
  if (body != NULL){body->Destroy();}
  if (spacecraft != NULL){spacecraft->Destroy();}
  if (particleController != NULL){particleController->Destroy();}
  if (particleSystem != NULL){particleSystem->Destroy();}
  if (backgroundController != NULL) { backgroundController->Destroy(); }
  if (button != NULL){button->Destroy();}
  if (textWindow != NULL){textWindow->Destroy();}
  if (fireController != NULL){fireController->Destroy();}
  if (asteroidController != NULL){asteroidController->Destroy();}
  if (fireLightController != NULL){fireLightController->Destroy();}
  if (explosionController != NULL){explosionController->Destroy();}
  if (playerController != NULL){playerController->Destroy();}
  if (engineParticleController != NULL){engineParticleController->Destroy();}
  if (bulletController != NULL){bulletController->Destroy();}
  if (weaponController != NULL) { weaponController->Destroy(); }
  if (weaponLightController != NULL) { weaponLightController->Destroy(); }
  if (explosionLightController != NULL) { explosionLightController->Destroy(); }
  if (asteroidSpawnerController != NULL) { asteroidSpawnerController->Destroy(); }
  destroy = true;
    }
};


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Пятница, 14 Июня 2019, 20:27
zaicev9797Дата: Пятница, 14 Июня 2019, 09:57 | Сообщение # 5 | Тема: как написать большую игру на C++ & SFML (не 3d)
AbRaKaDaBrA
Сейчас нет на сайте
вопрос скорее больше архитектуры касается нежели самого языка программирования.
Хочется спроектировать самостоятльно рабочую систему, дабы понимать хотябы приблизительно, как это работает у больших дядек типа unity или unreal
В идеале конечно хотелось бы иметь систему на подобии unity когда у нас есть некоторый обьект gameObject а к нему можно добавлять всевозможные компоненты типа физики, коллайдеров, логики искуственного интелекта или контроллера для игрока. А потом комбинируя различные компоненнты наделять игровые обьекты необходимыми свойствами и способностями. Как такое можно реализовать на C++, что почитать?
предположим что для мультимедийных функций я буду использовать sfml. Она легко подключается и в принципе проста в использовании, обеспечивает вывод графики и звука.


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Пятница, 14 Июня 2019, 10:26
zaicev9797Дата: Среда, 20 Марта 2019, 20:57 | Сообщение # 6 | Тема: Как сделать сложную игру на Android и не облажаться
AbRaKaDaBrA
Сейчас нет на сайте
В свете отупления телефонопользователей - актуальный вопрос, как мне кажется.

проект Mysterious Space. The losted moment
zaicev9797Дата: Понедельник, 25 Февраля 2019, 19:40 | Сообщение # 7 | Тема: СУБД для курсача
AbRaKaDaBrA
Сейчас нет на сайте
ну мне не так важно, чтоб летало. Мне важно чтоб вообще работало хотябы. Плюс задумка - шахматы. Там хоть 15 фпс будет - не проблема.
плюс если вдруг универовские компы реально не потянут, всегда можно показать на ноуте, а на нем точно заработет.
В общем Основной вопрос из топика таки остается открытым.


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Понедельник, 25 Февраля 2019, 19:45
zaicev9797Дата: Понедельник, 25 Февраля 2019, 18:01 | Сообщение # 8 | Тема: СУБД для курсача
AbRaKaDaBrA
Сейчас нет на сайте
Цитата martuk ()
ограничение учебных компьютеров

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


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Понедельник, 25 Февраля 2019, 18:03
zaicev9797Дата: Понедельник, 25 Февраля 2019, 17:07 | Сообщение # 9 | Тема: СУБД для курсача
AbRaKaDaBrA
Сейчас нет на сайте
(вообще то не совсем курсач, но не суть-важно)
Собственно поставлена задача запилить приложение которое будет работать с одной из двух представленных на выбор СУБД - Postgre либо Мускул.
Пришла идея сделать простые шахматы на движке Unity с перспективой дальнейшего апгрейда в полноценное приложение для залива на ГП.
Оправдано ли будет использование Unity для этой цели? Прошу поделиться доками, статьями и видосами (можно на англ.) по данной теме, если ответ на предыдущий вопрос утвердительный.
Рабочий прототип приложения нужно подготовить не позже чем через 3 месяца. Он точно должен работать на винде. Должен работать с таблицами БД. Вопросы безопасности для прототипа скорее всего не так актуальны.
А вот дальнейший апгрейд приложения уже подразумевает и всевозможную защиту данных, улучшения, кросплатформенность(ооочень желательно как минимум веб и андроид) и прочее.


проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 19:28 | Сообщение # 10 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
чтобы использовать GUI надо сейчас сидеть вспоминать его все методы (за год службы благополучно все забывается и плюс когда начинали новый GUI вводить я только пощупать его успелл) . а чтобы отскейлить плейн по оси Х ничего вспоминать не надо :D
короче говоря в данный момент вермени для меня это было гораздо проще


проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 17:14 | Сообщение # 11 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
ну чтобы менять fillAmount мне бы всеравно пришлось бы мутить схему с рефлексией. Ну и никто не говорил что я вот прям узнал способ, и сразу пошел его юзать. Я лишь на заметку взял, что если вдруг мне придется насоздавать 100500 различных хелсбаров для 100500 разных переменных, то я таким методом воспользуюсь
а зачем я из плейнов собираю это все - вполне понятно тсановится из:
Цитата seaman ()
Зато OnGUI вызывается несколько раз за кадр...

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


проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 15:54 | Сообщение # 12 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
а я не через гуай, такие примитивные вещи можно и самому из плейнов собирать, как мне кажется вполне себе вариант. так что мне побарабану)
одна пустышка, один квад краем касается пустышки. В итоге если сохранить начальный скейл одной из осейи потом скейлить пустышку по этой оси, то нормльный бар получается.


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Четверг, 28 Июня 2018, 15:56
zaicev9797Дата: Четверг, 28 Июня 2018, 14:20 | Сообщение # 13 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
ну и хелзбаров на экране единовременно не так уж много, так что не критично

проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 14:19 | Сообщение # 14 | Тема: как в редакторе фокусить объекты с trail renderer и particl
AbRaKaDaBrA
Сейчас нет на сайте
ну в общем то оооочень похоже на костыль. ну да ладно, если иного решения нет, то и такое сойдет

проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 13:34 | Сообщение # 15 | Тема: как в редакторе фокусить объекты с trail renderer и particl
AbRaKaDaBrA
Сейчас нет на сайте
ну в общем то я так и делаю сейчас, но прост таскать потом в рантайме ненужные пустые обьекты тоже как то не очнь весело.

Кстати еще в придачу вопрос про скорость перемещения камеры в редакторе. Ее какнибудь отредачить можно? медленнее сделать?


проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 13:32 | Сообщение # 16 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
да вроде не так уж и мудрено
Код
public int myVar = 42;

void OnGUI () {
if (GUILayout.Button("Output Variable Value")) {
int newVar = (int)this.GetType().GetField("myVar").GetValue(this);
Debug.Log("Variable value: " + newVar);
}
}


проект Mysterious Space. The losted moment

Сообщение отредактировал zaicev9797 - Четверг, 28 Июня 2018, 13:32
zaicev9797Дата: Четверг, 28 Июня 2018, 11:58 | Сообщение # 17 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
оооо, вот эт похоже на то что мне нужно, ушол курить

проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 11:55 | Сообщение # 18 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
если честно, просто с естетической точки зрения.
Просто кайфово же, когда просто передал значение по ссыллке, и не надо стопицот однотипных скриптов плодить, плюс еще в итоге меньше времени на компиляцию + меньший размер исходного файла. Все почучуть складывается и в итоге тогда проект больше походит на профессиональный продукт, нежели на школьную поделку и проще людей к совместной разработке привлечь.


проект Mysterious Space. The losted moment
zaicev9797Дата: Четверг, 28 Июня 2018, 11:20 | Сообщение # 19 | Тема: ссылка на переменную в инспекторе (адрес/указатель)
AbRaKaDaBrA
Сейчас нет на сайте
Предположим есть у меня какой то объект. Есть у него две переменных health и fuel и может потом я захочу к нему добавить еще shield.
И есть у меня два хелзбара для health и для fuel и потом я еще возможно захочу добавить бар для shield.
Мне очень лень писать практически один и тот же скрипт для каждого из хелзбаров, и менять там лишь только название переменной которую он берет из моего объекта.
Мне бы хотелось просто указывать в инспекторе адрес (ну типа как в плюсах к переменной можно либо по адресу либо по указателю добраться) или мб. имя переменной к которой конкретный хелзбар будет оращаться, т.к. в теории еще малоли для каких параметров кроме этих трех я захочу сделать бары, но алгоритм независимо от этого останется тем же.
Есть способ это сделать?


проект Mysterious Space. The losted moment
zaicev9797Дата: Среда, 27 Июня 2018, 11:57 | Сообщение # 20 | Тема: как в редакторе фокусить объекты с trail renderer и particl
AbRaKaDaBrA
Сейчас нет на сайте
Не получается достаточно близко сфокусироваться на объекте путем двойного щелчка в иерархии если к нему приаттачен trail renderer или particle system. Есть способ облегчить процесс?

проект Mysterious Space. The losted moment
Форум игроделов » Записи участника » zaicev9797 [1031]
  • Страница 1 из 52
  • 1
  • 2
  • 3
  • 51
  • 52
  • »
Поиск:

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