Cheb's Game Engine

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Cheb's Game Engine

Сообщение Cheb » 27.03.2021 00:08:29

[залезает на броневик]
Долой LGPL,
Изображение
да здравствует MPL!
[слезает с броневика]

P.S. Ух ёлки, сколько я всего на винт намотал!
Chentrah
Copyright (C) 2002-2021 ChebMaster (######@chebmaster.com)

The source code is covered by following licenses:
The OpenGL and OpenGL ES 2.0 headers
under SGI Free Software License B

The JEDI DirectSound headers
under dual MPL 1.1 and LGPL

The Broadcom library headers (c) 2012, Broadcom Europe Ltd
under custom free permission
- see un_gles_raspberry_pi.h

The Vampyre Imaging library
(see the 3rdparty folder)
under dual MPL 1.1 and LGPL

The modified part of paszlib (un_unzip.pp)
under custom free permission
- see LICENSE-paszlib.txt

The modified parts of Free Pascal RTL (various parsers of debugging info)
under modified LGPL 2.1 allowing linking into executables regardless of license
- see LICENSE-FPC.txt

The rest of the engine
under MPL 2.0 - which allows use under GPL/LGPL 2.1 or later

If some source file does not contain license information
it means I forgot to embed the MPL2.0 notice.
Poke me with a stick.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Снег Север » 27.03.2021 08:25:53

было бы что лицензировать... :?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Cheb's Game Engine

Сообщение Seenkao » 27.03.2021 12:04:04

Снег Север, если ты не видел его работы, как ты можешь что-то обсуждать?
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: Cheb's Game Engine

Сообщение Cheb » 27.03.2021 13:07:02

Автором этого сообщения является Seenkao, находящийся в вашем чёрном списке. Показать это сообщение.

Просьба не флудить в теме моего движка.

Добавлено спустя 1 минуту 18 секунд:
Снег Север писал(а):было бы что лицензировать... :?

А это как фундамент. Построишь на песке - и вдруг всё развалится, только к отделке приступишь.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение runewalsh » 27.03.2021 22:29:20

Cheb писал(а):Построишь на песке - и вдруг всё развалится

Cheb писал(а):Почему я не сделал заглушкой "игрового процесса" свой вращающийся кубик? Потому что он падает.

Извините, не удержался))0. (Хотя было бы смешнее, если бы я сам не был таким же...)
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

Re: Cheb's Game Engine

Сообщение Cheb » 29.03.2021 03:09:49

Гы :D
Просто вдруг !внезапно! пришлось делать это меню на конкурс посреди рефакторинга, когда одно уже отвинтил, а другое ещё не привинтил.
Ещё месяц - другой по выходным - и верну всё к железобетонной стабильности, доделаю меню, выложу на геймдев.ру исправленный вариант - и двинусь дальше семимильными шагами.

Надо уже имплементировать расслояемый игровой мир и простейшую сетевую игру типа астероидов. Вот, кстати, мой вращающийся кубик, который шарик, и пригодится: игровое поле - шар, по нему скользит треугольник-герой и катаются свиборги-астероиды.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 29.03.2021 11:47:54

Cheb писал(а):вращающийся кубик, который шарик

Добавь хотя бы "сферический фон" . Сам удивился что такая простая штуковина насколько красиво смориться!
Зы
Кстати не знаешь как можно состыковать текстуру сферической панорамы чтобы "черной полоски" не было? (Возможно это потому что модель сферы генерируется мной а не используется готовая через gluSphere... но мой способ работает еще и как генерация кольца, полусферы или сегмента сферы )
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 29.03.2021 16:13:41

Чёрной полоски?!
Что-то не так с параметрами текстуры. Она должна быть закольцована на себя glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); и по краям не должно быть мусорных текселов заполненных чернотой.

Сферический фон добавлю, у меня давно слабана специальная утилита (жутко тормозная!) для генерации скайбоксов из спрайтов и простейших конических градиентов. Выходные форматы - небо дума, третьеквейкова кубмапа, сферическая карта. См. http://openarena.ws/board/index.php?top ... 4#msg55524
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 29.03.2021 16:33:56

1 Ок проверю ! (В дельфийском примере вроде никакой полосы нет и с некоторыми панорамами тоже никаких полос невидно )

2 Кхм ! Интересная фиговина. как раз думал гадал как качественно снять панорамы в например в блендере ( Но там по идее можно камеру раскрутить так что-бы захват был 360 градусов . )

3 Кстати, интересная фича для "Народного ХолоЛинза " была-бы в виде воссоздания реального кружения и простой оптической привязке к ниму вида из "навигационных-чб" камер (То есть все динамическое осталось бы ч/б, а фон все равно был бы цветной )

Добавлено спустя 12 минут 51 секунду:
Зы
Закольцовка вроде как работает ... Спасибо ! Ура великому гуру !!!!! :idea: :D
Последний раз редактировалось Alex2013 04.04.2021 11:08:48, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 30.03.2021 22:53:32

Ну, какой я гуру. Текстуры именно с того и начинались - раскрасить один ооочень большой полигон повторяющимся, занимающим мало памяти (т.е. влезающим в кеш) узором.

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

Плохая новость - проектом заниматься ближайшую неделю или больше срвсем не будет времени.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 04.04.2021 09:51:39

Решил разобраться с крахами, которые гарантированы, если несколько раз переключить модули туда-сюда.
Явный случай запоротой памяти.
Прошёлся по Чеперси поиском по ключевому слову var - возможно, я забыл перенести какую-нибудь глобальную переменную в общую переключаемую запись с централизованной инициализацией/финализацией?..

..тридцать.
Тридцать! :evil:
Включая тестовый экземпляр класса, который вообще не имеет права переживать диспетчер памяти инстансов, удаляемый при финализации состояния.
[лбомобстол]

На будущее - возможно, я сделаю эту запись threadvar, что позволит мне бесплатно иметь несколько копий Чеперси, работающих в разных потоках. Не могу пока придумать - зачем, т.к. передача объектов между ними возможна только через сериализацию/десериализацию (т.к. диспетчеры памяти разные).

Добавлено спустя 25 минут 52 секунды:
Заодно, решил проблему с глобальной настройкой интенсивности вибрации, на которую теперь множится запрошенная интенсивность. Если послать на геймпад слишком малое значение - моторы вибраторов просто не крутятся.
Выставил минимум амплитуды 0.3, если выходит меньше - вместо неё уменьшается длительность.
Надо ещё не забыть для малой длительности добавить дополнительное время на раскрутку.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 04.04.2021 11:30:16

Cheb писал(а):Прошёлся по Чеперси поиском по ключевому слову var - возможно, я забыл перенести какую-нибудь глобальную переменную в общую переключаемую запись с централизованной инициализацией/финализацией?..

Вот почему я ярый сторонник использования интерпретации скриптов во всех более менее сложных проектах .
Все просто "сделал дело" перешел на "другой уровень абстракции" а на нижний благостно забил огромный болт. :idea:
К тому же скрипты обычно значительно проще по исполнению и гарантировано инкапсулированы от основного код. Нужна высокая скорость выполнения ? Реализовал критическую секцию в виде внешней функции и "дело в шляпе". Обработка потока управления, "заскриптованных событий" и реализация "псевдоинтеллекта интерактивной среды" большой скорости выполнения не требуют .
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 04.04.2021 13:14:56

Исправил. Теперь гарантированно вылетает, ругаясь, что обращение к базе данных было не из того треда.

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

Когда эта $#%$#$ наконец взлетит -- а уже скоро -- я обрету невиданную мощь в своих руках.

Надо было ещё в 2009-м взяться за дело всерьёз, а не забрасывать - уверен, к 2012-му оно у меня давно работало бы.

Добавлено спустя 1 минуту 51 секунду:
P.S. Мне нужно чтобы *весь* мой код был лёгким и эффективным. Я не зря выбрал Raspberry Pi в качестве испытательной платформы - однопользовательская игра должна идти там на 60 fps (сетевую малина не потянет - чудес не бывает).

Добавлено спустя 20 минут 57 секунд:
Ага, чистый гений
Код: Выделить всё
  ptruint(CurrentThreadId):= 0;
  ptruint(NativeThreadId):= 0;
  SafeFreeAndNil(TestInstanceOfTChepersyObject);

Деструктор обращается к диспетчеру памяти, который по ассерту сличает CurrentThreadId с GetCurrentThreadId(). Хряп.

Добавлено спустя 5 минут 58 секунд:
Ага, теперь всё работает - за исключением загрузки ресурсов обратно из TMotherStream, который после нескольких итераций загадочным образом оказывается битый.
Опять кто-то память запарывает? Или алгоритмический ляп?

THE MODULE HAS CRASHED
Module logic thread #0:
failed to create the control logic

failed to load the session

Error loading database from TMotherStream

Deserialization error.
Data corrupt: indx is out of bounds! (1/-67...0) @87264 in TMotherStream

Call stack:
mo_cps_traversers.inc:345 (TDeserializer.OnObject) in chentrah.exe
mo_cps_traversers.inc:112 (TDeserilizer.Go) in chentrah.exe
mo_assets_stor.inc:44 (RetrieveAssets) in chentrah.exe
mo_logic.pp:555 (TLogic.CreateOrLoad) in chentrah.exe
mo_threads.pp:912 (TLogicThread.xecute) in chentrah.exe
:2272 in chentrah.exe
:2272 in chentrah.exe
7584343Dh in kernel32.dll
775C9812h in ntdll.dll
775C97E5h in ntdll.dll
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 04.04.2021 13:43:44

Cheb писал(а):Надо было ещё в 2009-м взяться за дело всерьёз, а не забрасывать - уверен, к 2012-му оно у меня давно работало бы.

Все гадают почему "пророчество Мая" не сработало ... А вот оно как ! Господин Cheb "процедурную генерацию высшего прядка" не допилил... :wink: (Это я на фильм "Эффект Манделы" намекаю )
Последний раз редактировалось Alex2013 05.04.2021 13:38:54, всего редактировалось 2 раз(а).
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 04.04.2021 15:58:10

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

Alex2013 писал(а):Все гадают почему "пророчество Мая" не сработало

Ох, ёлки :shock: Ведь и правда.
Получается, я - спаситель человечества?
..вспоминая фильм-катастрофу "2012"..

Добавлено спустя 33 минуты 11 секунд:
..ошибка в механизме буферизации записи. Оно их пишет, но они уходят куда-то в астрал.

Добавлено спустя 2 часа 8 минут 6 секунд:
..ошибка не в механизме буферизации, а в менеджменте индексов. Оно пишет единицу, как будто этот инстанс уже был окучен, в то время, как не было записано ещё ни одного.

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

И хватит на сегодня. До следующих выходных.

Добавлено спустя 17 часов 21 минуту 25 секунд:
Нету никакого специального маркера конца потока. Структура устроена так, что все объекты инкапсулированы в полях корневого - напрямую, в массивах, полях дочерних... Процедура сериализации обрабатывает ровно один объект рекурсивно и на этом завершается. Десериализация - соответственно.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

Рейтинг@Mail.ru
cron