Страница 24 из 24

Re: Cheb's Game Engine

СообщениеДобавлено: 19.09.2017 09:29:56
Лекс Айрин
Cheb писал(а):Года три уже подыскиваю замену, но в упор не вижу в продаже ничего, хотя бы равноценного.


Ну-ну... поищи. Сейчас все уперлось в 2 причины:
1) уменьшение элементной базы очень затруднено. (плато возможности)
2) мощнее просто мало кому нужно. (плато желания) Для чего-то более-менее серьезного есть станционары.
Вот когда появится реальная система, которая будет нужна людям и будет требовать более мощного нетбука/планшета, тогда дело сдвинется с места. А пока это все аналоги записной книжки нет смысла заморачиваться. Пипл хавает? Хавает! Продаем то, что есть.

Cheb писал(а):Выломавшуюся петлю - притянул винтами M3x10, брутально просверлив насквозь корпуса.


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

Re: Cheb's Game Engine

СообщениеДобавлено: 19.09.2017 16:12:14
Cheb
Пипл хавает? Хавает! Продаем то, что есть.

Воистину :(
На самом деле, аналоги в продаже есть - но... жаба. Ибо от 60 до 70 т.р.
Потихоньку приступил к реализации своего Хитрого Плана, к новому году расскажу, что получится :mrgreen:

можно еще подключить внешний моник,

99% времени так.

тогда крышку можно банально снять.

И, как минимум, потерять WiFi, поскольку антенна - в крышке. Не говоря уже, что получился бы неполноценный десктоп вместо полноценного мобильного девайса.

Re: Cheb's Game Engine

СообщениеДобавлено: 19.09.2017 16:47:09
Лекс Айрин
Cheb писал(а):И, как минимум, потерять WiFi, поскольку антенна - в крышке. Не говоря уже, что получился бы неполноценный десктоп вместо полноценного мобильного девайса.


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


Cheb писал(а):На самом деле, аналоги в продаже есть - но... жаба. Ибо от 60 до 70 т.р.

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

Re: Cheb's Game Engine

СообщениеДобавлено: 20.09.2017 12:52:51
Cheb
хоть приклеить к корпусу.

Не буду спорить - скажу только, что все эти альтрешения удобные, как плавать в сапогах.

это считай, что нет. Отдать за ноут цену сервера начального уровня, имхо, это только если уж денег совсем много.

Моя жаба выражает полное согласие :mrgreen:

З.Ы. Наткнулся на одну строчку кода, поразившую меня в самое сердце. Немедленно включил в свои исходники.
Главное - доделать и не сдаваться!
Код: Выделить всё
{
    "Dreams are promises to yourself. You should never break a promise."
                                    Monkey D. Luffy, "Boy With a Scar" by Syluk


З.З.Ы.
Настроился на долгий, изматывающий поиск неуловимого бага, но оказалось, что в текстуре сжатого шрифта пиксел, который должен быть в левом верхнем углу, оказался сдвинут вниз. Приступ косорукости когда ставил его. Оттого гистограммы профайлера и исчезали при переключении на сжатый шрифт. :oops:

Re: Cheb's Game Engine

СообщениеДобавлено: 20.09.2017 17:22:57
Лекс Айрин
Cheb писал(а):Не буду спорить - скажу только, что все эти альтрешения удобные, как плавать в сапогах.


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

Пока что можно только телевизор использовать как монитор. А хотелось бы, например, слушать музыку с компа через телефон. Настроив трансляцию на компе.

Re: Cheb's Game Engine

СообщениеДобавлено: 01.10.2017 20:42:13
Cheb
Упетлился в сторону: настолько задрали непрерывно вылазящие траблы с поддержкой юникодных путей - то один кусок окаменелого говнокода с намертво вшитой опорой на AnsiString всплывёт, то другой - что решил снести к ядрёной фене под корень, переопределить свои версии функций RTL, которые на винде тоже работали бы в utf-8 и объединить с двумя существующими хаками для 2.6.4 и 3.0, которые обеспечивают utf-8 поддержку ini файлов.

Заодно выполол кучу мест в коде, где обеспечивалась совместимость с Windows 98 развесистыми условными директивами.

Почти всё доделал, но этот чёртов TProcess! Мне эту самку собаки с нуля передирать, со всеми потрохами :evil: Не, нуегона. следующие выходные.

с возможностью, например, передать видео более подходящему устройству,[...] А хотелось бы, например, слушать музыку с компа через телефон.

Воистину :evil:

Re: Cheb's Game Engine

СообщениеДобавлено: 02.10.2017 11:46:19
olegy123
Лекс Айрин писал(а):
Cheb писал(а):Не буду спорить - скажу только, что все эти альтрешения удобные, как плавать в сапогах.


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

Пока что можно только телевизор использовать как монитор. А хотелось бы, например, слушать музыку с компа через телефон. Настроив трансляцию на компе.

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

Re: Cheb's Game Engine

СообщениеДобавлено: 02.10.2017 12:11:07
Лекс Айрин
olegy123 писал(а): не исключено что их мир создан тяжелыми наркотиками.


В данном случае, пофиг.

olegy123 писал(а):По опыту скажу, что этим занимаются полтора человека во всем мире


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

Ну... индокод не может существовать на уровне интеграции системы, поэтому опытные программисты тоже должны участвовать.

olegy123 писал(а):Поэтому не скоро твои мечты исполнятся..

Пока да. Но когда начнется активное внедрение расширенной реальности, то придется... а то, что штепсель один... тут уж никуда не деться. Хотя есть сомнения, так как желающих использовать свой формат более одного.

Re: Cheb's Game Engine

СообщениеДобавлено: 02.10.2017 13:48:49
olegy123
Лекс Айрин писал(а):
olegy123 писал(а):а идею воплощают индусы с корочками об окончании недельных образованием - за доширак.

Ну... индокод не может существовать на уровне интеграции системы, поэтому опытные программисты тоже должны участвовать.
недавно из за выявленной дырке в OpenSSL пришлось банкам перевыпускать карты.Недавно еще одну дырку приоткрыли в SSH дающий доступ к системе..
Apple использует ядрышко BSDшное..

PVS-Studio периодически показывают, публикую блоги - так вот продают продукт за много долларов, и им дают протестировать - там код писали обдолбыши.. Это то что видно, а то что не видно..
У нас вакансии: суппорт продуктов со знанием языков. Сам заказчик сидит в калифорнии, периодически жарит телок в порнохабе, сам код пишут индусы и китайцы, а секс с клиентами проводят по телефону из мухостранска. Вот такой современный глобальный софт-бизнес.

Добавлено спустя 8 минут 43 секунды:
Лекс Айрин писал(а):
olegy123 писал(а):Поэтому не скоро твои мечты исполнятся..

Пока да. Но когда начнется активное внедрение расширенной реальности, то придется... а то, что штепсель один... тут уж никуда не деться. Хотя есть сомнения, так как желающих использовать свой формат более одного.
Ха, я тут решил поиграть в игру в маске от телефона..за 40к..
Игра пошла, но надписи не видно..
Вот хочу когда разбогатею сделать два телефона.. где общая картинка была бы в 4k. по 2K на каждый глаз
там все просто - стримить в поток и проигрывать.. почему нельзя?

Re: Cheb's Game Engine

СообщениеДобавлено: 02.10.2017 14:12:51
Лекс Айрин
olegy123, а что ты хотел? Это, батенька, мир на С/С++, когда проверок на граничные/допустимые условия не делается, ибо лень заморачиваться.

А ведь есть определенные, довольно серьезные, методики отладки кода еще времен больших компов.И неважно кто сделал, главное, что проверку код прошел/не прошел.

Re: Cheb's Game Engine

СообщениеДобавлено: 02.10.2017 21:04:31
Cheb
Автором этого сообщения является olegy123, находящийся в вашем чёрном списке. Показать это сообщение.

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

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

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

Лекс Айрин писал(а):
olegy123 писал(а):[...]

[...]

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

P.S. Проблема с TProcess рассосалась сама: костыли на его основе использовались только в линуксе, а в линуксе никаких проблем с юникодностью нет.
(если кому интересно: для обращения ко всяким терминальным приблудам линя, вроде получения названия дистрибутива или температуры ядер RaspberryPi)

Проект, наконец, собрался - и упал сразу после запуска.
Надо олаживать - вот радость то.

Re: Cheb's Game Engine

СообщениеДобавлено: 04.10.2017 11:50:30
Cheb
[тяжкий вздох]

Изображение

UPD, 05.11.17: Прогресса доолго ещё не будет.
- разгребаю барахло. Бывает так, что перед гостями срочно прибраться, вещи кучей в коробку, коробку - на антресоль, на потом. У меня двадцать лет таких "потом" накопилось, выматывает так, что отпуск не помогает.
- продолжаю писать фанфик-кроссовер Ранмы и Шантэ, на двух языках одновременно.
- веду подготовительные работы к созданию самодельного портативного компьютера. Алиэкспресс трещит от натуги, жаба забилась в уголок и даже уже плакать не может.
- восстанавливаю радиолюбительскую лабораторию (запиханную на антресоль в 90-х). Текущий результат: удавил бы того гада, что в детстве подсунул мне тот припой, которым всю жизнь пользовался. Он, оказывается, высокотемпературный! ПОС-61 по сравнению с ним - просто смазка к салазкам в рай. Не удивительно, что все мои детские поделиЯ спаяны через ... одно место.

UPD, 09.01.18: Всё ещё вожусь с хтоническим юбер-девайсом, мастеря ящик.
Вчера вышел нежданчик: выяснилось, что жифорсина не лезет. Пришлось взяться за ножовку:
Изображение

Если кому интересно, мой фанфик пишется хорошо: Танцуй-танцуй заварушка

UPD, 10.01.18: Переосмысление парадигмы
Общего самодельного менеджера памяти не будет. Будет сугубо специализированный менеджер памяти посредством собственной NewInstance для TManagedObject: инстансы будут храниться не в хипе, а в специальных пулах памяти, выделяемых постранично от ОС. Как и в более раннем варианте, это нужно для особых полей, хранимых компактно:
- флаги: чтоб было.
- индекс для обхода графа: это поле модифицируется у каждого обходимого объекта, и хранение его внутри инстанса - дикое загрязнение кеша. В идеале, должны не только храниться отдельно, но и очистка этих полей после обхода графа должна осуществляться освобождением памяти, где они лежали.
- счётчик ссылок: нужно сохранять возможность модификации когда память пула защищается от записи (нужно для отладки).

Структура такая: при старте менеджер резервит у ОС блок памяти, на гигабайт примерно. Пулы коммитятся внутри него с таким выравниванием, чтобы из любого указателя получался указатель на начало пула путём тупого округления по маске. А в начале пула лежит указатель на собственно его служебную запись, являющуюся обычным объектом в хипе. Все хранилища для специальных полей в нём - обычные массивы в том же хипе.
Таким образом количество велосипедов сводится к минимуму.
Для большей тупизны каждый пул расчитан на инстансы строго одного размера, и принадлежит конкретному потоку (я тут убедился, что GetCurrentThreadId() - эпически быстрая вещь, в линуксе это просто алиас pthread_self() ). Выделяются блоки без всяких блокировок, а освобождаются из не своего потока - посредством передачи сообщений "тут у тебя блок освободился" потоку-владельцу, и уж на этом механизме-то критические секции стоят. А освобождает поток-владелец когда заметит, что очередь сообщений не пуста.
Поскольку такие случаи - нештатные, получаем 99% операций выделения/освобождения - быстрые, без критических секций.

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

Re: Cheb's Game Engine

СообщениеДобавлено: 11.01.2018 18:50:28
Cheb
Заставил таки движок, собранный третьим паскалем, работать из папки "/人◕‿‿◕人\".

Копать пришлось глубоко, причина оказалась тривиальна: см. тему Эпичный нежданчик с RawByteString

В движке применяется целый слой заплаток, виндовый екзешник - гарантированно юникодный при сборке как в fpc 2.6.4 (я собираюсь поддерживать его ещё долгие годы) так и в fpc 3.0.4. Кодировка для работы с файлами на всех платформах - utf8.

Код: Выделить всё
function ParamStr(num: integer): TFilenameString;
var
  TST: UnicodeString;
begin
  if num > 0 then Result:= system.ParamStr(num)
  else begin
    SetLength(TST, Max_Path + 2);
    SetLength(TST, GetModuleFileNameW ( THandle(0),  @TST[1], Length(TST) - 1));
    Result:= UnicodeToFileName(TST);
  end;
end;

Procedure FileClose (Handle : THandle);
begin
  // I simply CANNOT BELIEVE they dragged this bug along into 3.0.2 RTL!
  // Can cause crashes of a program running in Wine.
  //  if Handle <= 4
  //    then exit;
  if Handle <= 0 then exit;
  CloseHandle(Handle);
end;

Function FileOpen (Const FileName : TFilenameString; Mode : Integer) : THandle;
begin
  result := CreateFileW(PWideChar(FilenameToUnicode(FileName)), dword(AccessMode[Mode and 3]),
                       dword(ShareModes[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
                       FILE_ATTRIBUTE_NORMAL, 0);
end;

constructor TFileStream.Create(const AFileName: TFileNameString; Mode: Word; Rights: Cardinal);
var
  h: THandle;
begin
  FFileName:= AFileName;
  If (Mode and fmCreate) > 0 then
    h:= FileCreate(AFileName,Mode, Rights)  // it IS already unicode in 3.0.0
  else
    h:= FileOpen(AFileName, Mode);

  If (h = feInvalidHandle) then
    If Mode = fmcreate then
      Die(RuEn('Не удалось создать файл "%0"','Failed to create file "%0"'),[AFileName])
    else
      Die(RuEn('Не удалось открыть файл "%0"','Failed to open file "%0"'),[AFileName]);
  inherited Create(h);
end; 

Function FindFirst (Const Path : TFileNameString; Attr : Longint;
                                              out Rslt : TSearchRec) : Longint;
begin
  Name:= Path;
  Rslt.Attr:=attr;
  Rslt.ExcludeAttr:=(not Attr) and ($1e);
                 { $1e = faHidden or faSysFile or faVolumeID or faDirectory }
  { FindFirstFile is a Win32 Call }
  Rslt.Handle:= FindFirstFileW (PWideChar(FilenameToUnicode(Path)),Rslt.FindData);
  If Rslt.Handle=Invalid_Handle_value then
   begin
     Result:=GetLastError;
     exit;
   end;
  { Find file with correct attribute }
  Result:= FindMatch(Rslt);
end;

Function FindNext (Var Rslt : TSearchRec) : Longint;
begin
  if FindNextFileW(Rslt.Handle, Rslt.FindData) then
    Result := FindMatch(Rslt)
  else
    Result := GetLastError;
end;