powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос что лучше?
25 сообщений из 54, страница 2 из 3
Вопрос что лучше?
    #40018389
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
Разрабатываю "Игровой движок". Возникла необходимость сохранять все Игровые объекты на сцене. ИГРОВОЙ ОБЪЕКТ помимо стандартных данных содержит нетипизированный указатель.

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

UtoECat
Вопрос: Что лучше в данной ситуации : БД или список строк?

Скажем так, тащить в проект лишнюю сущность незачем. БД не исправит ошибок, допущенных при проектировании.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018390
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*удалено
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018391
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECatесли не выйдет тогда уж прибегну к строкам.

Двигаться надо от простого к сложному, а не наоборот.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018400
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

UtoECatесли не выйдет тогда уж прибегну к строкам.

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

Нужно двигаться к максимально возможно эффективному и хорошему... На простом далеко не ускачешь.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018403
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UtoECat
Dimitry Sibiryakov

пропущено...

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

Нужно двигаться к максимально возможно эффективному и хорошему... На простом далеко не ускачешь.

Тебе говорят, что делать, а ты какую-то хрень несёшь. Зачем спрашиваешь тогда?
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018405
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer

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

1. ООП - зло, если будет использоваться слишком часто. Думаю вы это понимаете. 2 . С ООП как с концепцией я знаком хорошо, т.к первые шаги в программировании делал на C#. И с его синтаксисом и функционалом в дельфи соответственно тоже.
3.Что-ж вы сами это попросили. Мой движок представляет из себя средство по обеспечению хранения, доступа к ИГРОВЫМ ОБЪЕКТАМ ( ЭТО НЕ ООП!!!) , обеспечивает возможность взаимодействия объектов друг с другом и взаимодействие пользователя с ними соответственно, способ установки и контроля поведения объектов, а так-же обеспечивает (по крайней мере должен будет в будущем) обеспечивать оптимизацию алгоритмов происходящих под капотом.
Движок я уже переписываю третий раз и в основном это я делал для достижения более удобного и красивого распределения кода по юнитам и исправлению ошибок, а так-же для добавления в будущем новой системы присвоения и выборке текстур.
Движок использует для отрисовки игрового пространства библиотеку OpenGL и в будущем будет поддерживать работу со звуком через bass.dll .
Игровой объект , это рекорд тип . Пока он реализован так :
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TYPE TTRANSFORM = RECORD
X,Y,Z,SX,SY,R : REAL;
END;
TYPE TVISUAL = RECORD
R,G,B,A:BYTE; TEXTURE : INTEGER;
END;
TYPE TSEOBJECT = RECORD
TRNC : TTRANSFORM;VISUAL : TVISUAL;PARENT : INTEGER; ID:INTEGER; DATA : POINTER;
END;
TYPE PSEOBJECT = ^TSEOBJECT;


Функционал объектов, их отрисовка и прочее устанавливается объектом родителем. В объекте указан индекс родителя в МАССИВЕ РОДИТЕЛЕЙ. Сам родитель - абстрактный класс. Его финальная реализация (+\-)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TYPE TGAMEPARENT = CLASS (TSEPARENT)
  PROCEDURE objCREATE(VAR OBJ:TSEOBJECT);OVERRIDE;
  PROCEDURE objPROCESS (VAR OBJ:TSEOBJECT;var scene:tgamescene;INDEX : integer);OVERRIDE;
  PROCEDURE objDRAW(VAR OBJ:TSEOBJECT);OVERRIDE;
  function objCOLLISION(CONST currOBJ:TSEOBJECT;CONST withOBJ:TSEOBJECT):boolean;OVERRIDE;
  PROCEDURE objDESTROY(VAR OBJ:TSEOBJECT);OVERRIDE;
  FUNCTION  objSAVE(VAR OBJ:TSEOBJECT):STRING;OVERRIDE;
  PROCEDURE objLOAD(VAR OBJ:TSEOBJECT;const s : string);OVERRIDE;
  PROCEDURE objACTION(VAR OBJ:TSEOBJECT; ACTION : BYTE);OVERRIDE;
END;



Игровая сцена - рекорд тип, состоящий из массива игровых объектов, а так-же массивов идентификаторов объектов : Массив идентификаторов сортированных по Z объектов в поле зрения, Массив id объектов, родители которых имеют реализацию objProcess, И массив id объектов с которыми МОЖЕТ производится коллизия (объектов недекораций);

Концепция движка подразумевает лишь необходимость описать родителей и написать дополнительные внешние факторы добавления \изменения\удаления некоторых объектов для получения готового игрового проекта. Код потихоньку пишется, функционал растёт. Необходимость сохранения загрузки - вещь очень необходимая, и я уже нашёл способ того как это сделать о чём написал выше.

Сейчас я в основном посиживаю в low level модулях движка, где дописываю код, т.к сел переписывать буквально неделю назад ( когда компилятор запутался в моём коде в прямом смысле этого слова)
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018407
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ,

Я же сказал, что уже решил как делать ! Сначала тесану TFILESTREAM, а если не выйдет, то уж ваши строки буду юзать.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018427
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
Нужно двигаться к максимально возможно эффективному

Тогда прежде всего следует отказаться от Delphi и не трахать людям мозг. Чемпионом эффективности Delphi не будет никогда.

UtoECat
ООП - зло, если будет использоваться слишком часто.

Выберите что-нибудь одно: либо Вы новичок, который задаёт тривиальные вопросы, либо Вы знаток, который рассказывает как надо делать. Попытка сочетать то и другое показывает лишь невменяемость.

UtoECat
В объекте указан индекс родителя в МАССИВЕ РОДИТЕЛЕЙ

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

UtoECat
Сам родитель - абстрактный класс. Его финальная реализация (+\-)

Теперь объясните, какая разница, куда пихать результат метода objSAVE - в стрим, в текстовый файл или в БД? Исходный вопрос продолжает быть актуальным?
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018428
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж. Тяжело новичку в этом обществе старых троллей.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018431
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"новичок" случаем не такой же старый тролль?
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018435
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений
"новичок" случаем не такой же старый тролль?


тут вобщем-то 2 варианта - или от еще старее и толще, либо самое время начинать разбивать лицо в кровь ладонями, раз он пишет такое серьезно.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018453
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat, превращение объекта или целого дерева объектов в то, что можно записать в файл называется сериализация и есть много готовых решений для этого.
Я бы сначала рассмотрел возможность использовать встроенные средства Delphi (для формирования DFM, есть бинарный и текстовый варианты).
Древняя статья: https://rsdn.org/article/delphi/serialization.xml
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018456
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L1G,

нет у него объектов, которые классы.
Рекорды у него, смотри его последнее сообщение.
Вообще непонятно, что он хочет.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018461
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгений
"новичок" случаем не такой же старый тролль?

Кодит, похоже, на терминале ЕС - 7927: нижний регистр символов отсутствует...
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018467
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Вообще непонятно, что он хочет.

Как раз вполне понятно. Во-первых, он откопал какую-нибудь книгу конца девяностых типа "Секреты программирования игр" (помнится, выходила такая в издательстве "Питер" с примерно таким же содержимым). Во-вторых, раскопал какое-нибудь доисторическое говно типа KOL и решил, что это очень круто. Теперь пытается скрестить ежа с ужом кривыми руками, дабы получить немерянный рулез.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018472
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Капсовый код, о майн готт...
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018476
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,
1.А разве учиться на ошибках это плохо?
2. Я понимаю что такое указатели и массив родителей нужен для упрощения процесса сохранения
3. Данная тема закрыта
4. Не надо устраивать срач. Я же вас не заставляю использовать то, что я делаю, верно? Мой проект держится лишь на шестилетнем интузиазме и делается для собственного пользования и всю эту ох какую историю я рассказывать не буду.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018478
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

1.Хотел бахнуть я вообще-то сначала на С++, но меня мой знакомый уговорил на дельфи.
2. Я не совсем новичок.Первые вообще успехи я делал в ... А собственно не важно где.
3. Вопрос закрыт. Я опять же ЗАБЫЛ ПРО TFILESTREAM, потому что 1. Устал 2. Я про него мало чего читал.
4. Большая
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018481
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vizit0r,
Softwarer, книги тут не причём. Это полностью самостоятельно придуманная концепция.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018484
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
1.А разве учиться на ошибках это плохо?

Смотря на чьих.

UtoECat
3. Данная тема закрыта

Замечательно. И всего-то потребовалось вспомнить про ООП.

UtoECat
Мой проект держится лишь на шестилетнем интузиазме

То есть, после шести лет работы и троекратного переписывания Вы задаёте такие вопросы и продолжаете быть уверены, что всё делаете правильно?
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018491
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,
1. На своих-то
2. ИМХО вы вообще не читали здесь все сообщения. Мой вопрос был ЧТО ЛУЧШЕ ДЛЯ ХРАНЕНИЯ ДАННЫХ ОБ ИГРОВЫХ ОБЪЕКТАХ: Список строк или БД, но потом Я НАШЁЛ ТFILESTREAM и СКАЗАЛ :авторТема закрыта. Буду использовать TFILESTREAM, а если не выйдет, то тогда уж Список строк. Про ООП НЕ БЫЛО НИ СЛОВЦА (вообще мне стоило сразу сказать что такое игровой объект, как я понял из за этого были недопонимания).
3. С самого начала я полез в такую вещь как HiASM (основной пакет которого на дельфе кста), на нём просидел ПЯТЬ ЛЕТ, но осознал, что это всё фигня и каши на нём не сваришь; и потом перелез на C#, где мне не понравилось, а потом на дельфу собственно.
Разработка кода этого движка ведётся где-то всего 4-5 месяцев. Учил дельфи Три месяца до начала написания движка, т.е владею всеми основными понятиями ( только кроме дженериков, т.к посчитал их пока ненужными)
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018552
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
т.е владею всеми основными понятиями ( только кроме дженериков, т.к посчитал их пока ненужными)

нет, не владеешь.
Ничем не владеешь. Ни пониманием ООП, ни пониманием правильного кода, ничем вообще.

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

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

А ты упираешься в тупиковый подход, и тупо отрицаешь все остальное. Ну, дело хозяйское.
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018555
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UtoECat
Три месяца

Почему прописными буквами код пишешь?
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018577
loktevVasiliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UtoECat
Я НАШЁЛ ТFILESTREAM


Нет, используй TMemoryStream (MemoryStream.LoadFromFile) А когда нужно сохранить в файл, делай MemoryStream.SaveToFile.

К нему же используй вдогонку TWriter с TReader.

Получишь самые быстрые сохранения
...
Рейтинг: 0 / 0
Вопрос что лучше?
    #40018578
loktevVasiliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно сразу всю структуру сохранять
https://github.com/KrystianBigaj/kblib
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос что лучше?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]