SaGe

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

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

Re: SaGe

Сообщение mishel56 » 02.03.2019 20:05:30

veb86 писал(а):На моем уровне я могу сказать что я вижу разницу в С++ и Pascal только синтаксическую. В С++ говорят сложнее работать с памятью, а в остальном он лидер, он везде, в микроконтроллерах, в программах, повсюду, он как английский язык... Для меня разница между языками не очевидна, но я слабый программист... Еще говорят что приложения в С++ сделать гораздо сложнее... у меня ноль самостоятельных приложения на С++, ну в принципе на FreePascal у меня тоже можно считать ноль.

Извиняйте,- я тут новенький и когда дочитаю до конца темы, сие текст может быть неактуальный, - но я всегда читаю от начала до конца, - а не наоборот... :lol:
Привык комментировать, если что не так извиняйте...

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

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

Да будет свет!
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: SaGe

Сообщение mishel56 » 02.03.2019 20:13:38

Vadim писал(а):Мне, к примеру, больше нравится Паскаль потому, что у меня плохое зрение и я хорошо вижу Begin ... End, но очень плохо { ... }. Так что получается Паскаль - он для человека...

Улыбнуло :D
У меня так же плохое зрение и я так же плохо вижу { ... } на СИ.

Спасибо за пять минут смеха или выпитый стакан сметаны!
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: SaGe

Сообщение Cheb » 16.03.2019 14:55:16

>1. Сколько лет Вам было когда Вы начали его писать и сколько лет Вы его пишите?
29
16

>2. Вот Вы сели делать 9-й движек на FreePascal, Вы знали что основные графические движки на С++?
И чо?

>3. Какой практический смысл Вы видели в появления 9-го движка, который будет все равно хуже unity, unreal engine и других распространенных?
Позарез нужная киллер-фича, кторой в тех движках нет, и отсутствие 95% ненужного мне мусора, на освоение которого надо тратить силы и время и который может устраивать мне неявные подлянки.

>4. Какую задачу Вы перед собой ставили или цель была связано чисто с любопытством того, как устроены игровые движки?
Написать убийцу Морровинда. Цель многократно менялась, т.к. не бросать же наработки

>5. Вы знали что Вы не найдете помощников в своем проекте?
А зачем мне помощники, пока у меня готовой альфа-версии игры нет?
Помощники - это худохники, это ассеты.

>6. Вы пробовали выслать свои наработки в unity, unreal engine, crysis и д.р с целью трудоустройства?
Накой оно им я мне они? Это хобби, для души.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: SaGe

Сообщение Лекс Айрин » 16.03.2019 17:25:27

На самом деле засилье наСИльников, жутко раздражает. Есть куча языков круче С, даже сишарпа, есть и более удобные. Некоторые позволяют оперировать текстом с лёгкостью жонглера, некоторые заточены под ИИ и базы данных, есть самомодифицирующиеся языки, но все их перечёркивает неудобный С. На самом деле нужно иметь хотя бы три языка разного типа. Допустим, С/паскаль, Лисп и кобол. Кстати один из недостатков С его плохая проверка границ, неважно текста или массива.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: SaGe

Сообщение Vadim » 16.03.2019 18:28:00

Лекс Айрин писал(а):Кстати один из недостатков С его плохая проверка границ, неважно текста или массива.

У Си вообще куча гемороя. Пару раз у меня было, что компилятор указывал ошибку в той строке, где её в принципе нет. Правда это было уже давненько, наверное этот косяк поправили... :-) Или указатель и целочисленный тип - это одно и тоже...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: SaGe

Сообщение Лекс Айрин » 16.03.2019 19:12:53

Vadim, это да... А уж то, что символ это число, со всеми вытекающими и путаница со знаковыми/беззнаковыми числами... И это только то, что в голову приходит. Не, некоторые трюки подобного рода можно и в fpc повторить,только специально и с кучей расставленных флажков. И да, большая часть всего геморроя сделана с оглядкой на С.
Кстати, адресная арифметика, насколько я знаю, есть и в fpc, только она никому особо не нужна. Если только взять кусок памяти и работать четко с ним.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: SaGe

Сообщение runewalsh » 18.03.2019 00:44:51

Код неплохо написан, мне нравится. Особенно нейминг переменных, я-то обычно выдаю разную дичь вроде c[cc].npt := CalcNpt(nptw). (Что делают МУТАТОРЫ?)
Но не запустилось:
Без имени-2.png

Судя по логу, не загрузилась OpenAL32.dll:
Код: Выделить всё
[2019.03.17/0][23:28:39/39] -->OpenGL      : GL     : Loaded 21/21, 100% from 'OpenGL32.dll'.
[2019.03.17/0][23:28:39/39] -->OpenGL      : GLU    : Loaded 51/51, 100% from 'GLU32.dll'.
[2019.03.17/0][23:28:39/39] -->OpenAL      : Failed to load!
[2019.03.17/0][23:28:39/39] -->OpenAL      : Can't load from library: -> OpenAL32.dll

Скачал DLL-ку с openal.org — тоже краш, в логе:
Код: Выделить всё
[2019.03.17/0][23:40:42/18] -->OpenAL      : Loaded 89/90, 98.888% from '..\Libraries\Windows 32\OpenAL32.dll'.
[2019.03.17/0][23:40:42/18] -->OpenAL      : Can't load function: -> alHint
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: SaGe

Сообщение SanchesMaan » 23.03.2019 13:21:40

runewalsh писал(а):Судя по логу

Если вы приложите весь LOG file, то, возможно, я помогу вам разобраться. Еще было бы полезно знать какая у вас ОС. Я проверял EXE только в операционной системе Windows 7.

P.S.
runewalsh писал(а):краш

Размещенный вами фрагмент LOG файла - не краш, а просто warning. Краш, который можно увидеть, посмотрев скриншот, случился явно не из-за библиотеки OpenAL потому что аудиорендер реализован не полностью, однако реализованная его часть (программный код) содержит проверку "загруженности" этой библиотеки. Если по каким либо причинам библиотека не загружена, то функции из этой библиотеки использоваться не будут.
SanchesMaan
новенький
 
Сообщения: 13
Зарегистрирован: 24.09.2017 12:48:45

Re: SaGe

Сообщение runewalsh » 23.03.2019 13:47:32

Да там кроме этого ничего интересного (I think... стек разве что).
Код: Выделить всё
*************************************************
* (v)_(O_o)_(V)  SaGe Engine Log  (V)_(o_O)_(v) *
*************************************************
[2019.03.23/6][12:24:39/63] -->      << Log created >>
[2019.03.23/6][12:24:39/63] -->Console caller : Enter "Shows all 3D/2D scenes".
[2019.03.23/6][12:24:39/63] -->SaGe Engine version 0.1.2.18812 (Debug) [2019/2/20] (Windows 32 bit)
[2019.03.23/6][12:24:39/65] -->Operating system: Windows 7 Ultimate Service Pack 1 (Version 6.1 Build 7601)
[2019.03.23/6][12:24:39/66] -->OpenGL      : GL     : Loaded 21/21, 100% from 'OpenGL32.dll'.
[2019.03.23/6][12:24:39/66] -->OpenGL      : GLU    : Loaded 51/51, 100% from 'GLU32.dll'.
[2019.03.23/6][12:24:39/66] -->OpenAL      : Failed to load!
[2019.03.23/6][12:24:39/66] -->OpenAL      : Can't load from library: -> OpenAL32.dll
[2019.03.23/6][12:24:39/66] -->Run (Class: Graphical applications, Context: WinAPI, Render: OpenGL)
An unhandled exception occurred at $004B8341:
EAccessViolation: Access violation
  $004B8341
  $004F97D2
  $004F9B35
  $764FC4E7
  $764FC5E7
  $764F4F0E
  $764F4F7D
  $7780702E
  $004F9E13
  $004FA309
  $004F9269
  $004BA85A
  $004BAA62
  $004B97DB
  $0050F2D7
  $00510882
  $0045E0D1
[2019.03.23/6][12:24:39/87] -->      << Log destroyed >>
TSGLeaksDetector : Total 3 leaks.
TSGLeaksDetector : Leaks : (3) -> TSGContextHandler(1)    - 1 TSGContextWinAPI(1)     - 1 TSGScreen(1)            - 1
TSGLeaksDetector : Lines without references (5) --->
  TSGDllManager(1)         TSGDll[*?](25)           TSGTextMultiStream(1)    TSGTextLogStream(1)      TSGTextConsoleStream(1)


Кстати, я себе с акцесс виолейшном не очень давно такую штуку придумал (ну или как придумал, так много кто делает), которая если не упрощает отладку, то по крайней мере делает внешний вид ошибки чуть приятнее, чем «EAccessViolation: Access violation».

Под Windows можно выставить свой top-level exception filter (SetUnhandledExceptionFilter).
Если исключение не то, что нас интересует (STATUS_ACCESS_VIOLATION) — просто делегируем вызов старому обработчику.
А при STATUS_ACCESS_VIOLATION извлекаем из EXCEPTION_RECORD информацию: адрес, по которому произошло обращение — ExceptionInformation[0], и операцию (чтение/запись/выполнение) — ExceptionInformation[1]. И дальше по обстоятельствам: например, используем их для формирования сообщения об ошибке вида «чтение по неверному адресу XYZ».

Кроме того, из адреса кода, вызвавшего исключение (RTL обычно называет его просто Address) можно получить модуль (exe или dll), в котором произошла ошибка, как VirtualQuery(Address, info) + GetModuleFIleNameW(info.AllocationBase). Что позволяет вывести уже почти человеческое «qwerty.dll выполнила запись по неверному адресу XYZ».
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: SaGe

Сообщение Лекс Айрин » 23.03.2019 13:52:48

Мда... Что только люди не придумают, чтобы под отладчиком не работать))))
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: SaGe

Сообщение SanchesMaan » 23.03.2019 14:06:16

runewalsh Спасибо, очень интересно, возможно запрограммирую когда-нибудь.

А вот... Судя по утечкам памяти... Не были вызваны деструкторы классов TSGContextHandler, TSGContextWinAPI, TSGScreen. Можно сделать с большой вероятностью предположение, что ошибка связана с ОС (точнее с инициализацией окна в ОС).
Код: Выделить всё
TSGLeaksDetector : Total 3 leaks.
TSGLeaksDetector : Leaks : (3) -> TSGContextHandler(1)    - 1 TSGContextWinAPI(1)     - 1 TSGScreen(1)            - 1
TSGLeaksDetector : Lines without references (5) --->
  TSGDllManager(1)         TSGDll[*?](25)           TSGTextMultiStream(1)    TSGTextLogStream(1)      TSGTextConsoleStream(1)

Класс рендера не создавался вообще. Это значит ошибка произошла до создания рендера.
Операционная система:
    Windows 7 Ultimate Service Pack 1 (Version 6.1 Build 7601)
Такая же установлена на моём компьютере. Какая-то магия.

Возможно ошибки не будет если запустить приложение в полноэкранном режиме. Для этого запустите командную строку в папке с бинарниками и выполните команду(Main.exe названия EXE; gui опции графического режима; f включение полноэкранного режима):
    Main.exe -gui -f
Последний раз редактировалось SanchesMaan 23.03.2019 16:29:23, всего редактировалось 17 раз(а).
SanchesMaan
новенький
 
Сообщения: 13
Зарегистрирован: 24.09.2017 12:48:45

Re: SaGe

Сообщение runewalsh » 23.03.2019 14:08:31

Лекс Айрин
Но я же не разработчик. Сама по себе надпись «EAccessViolation: Access violation» выглядит контрчеловечно. (Во-первых, это вообще нельзя было преобразовывать в исключение, но это уже к RTL вопросы.)
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: SaGe

Сообщение Лекс Айрин » 23.03.2019 14:23:02

runewalsh, если ты что-то программируешь, то ты уже разработчик.
В отладчике есть такая фишка как стек вызовов. И используя его ты можешь сильно сузить число мест, где искать ошибку. Да и сами ошибки в нем намного информативнее. Иногда вплоть до указан я конкретной причины. Плюс, стоит хотя бы иногда прогнать в режиме контроля утечек памяти. Конечно, это требует перекомпиляции лазаруса, но обычно это не играет особой роли, если прога ещё пишется.
Я сам делал по старинке, но в итоге нахватал ошибок, которые долго исправлял.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: SaGe

Сообщение runewalsh » 23.03.2019 15:44:57

SanchesMaan писал(а):Для этого запустите командную строку в папке с бинарниками и выполните команду(Main.exe названия EXE; gui опции графического режима; f включение полноэкранного режима)

Всё равно то же самое. :(
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: SaGe

Сообщение Лекс Айрин » 23.03.2019 16:57:14

Ах да, забыл, для обычного пользователя нет разницы, что за ошибка, главное чтобы их не было.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Пред.

Вернуться в Разное

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

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

Рейтинг@Mail.ru