05. Note.1 - History of Konkurs/Fagot training system.




1

Основные достижения в проекте.

Проект начался благодаря инициативы со стороны Министерства Обороны Молдовы в 1994 г. Мне предложили участвовать, я предложил сделать проект на базе нашей компании P&P Service и после того как был реализован весьма представительный видео-анимационный ролик сомнений у представителей МО не осталось.


Main achievements in the project.

The project began thanks to the initiative of the Ministry of Defense of Moldova in 1994. I was offered to participate, I offered to make a project on the basis of our company P&P Service, and after a very representative video-animation clip was realized, the representatives of the Ministry of Defense had no doubts.


Требования к решению включали среди прочего необходимость реализовать учебную и игровую части на компьютерах с производительностью не больше чем у IBM-PC/286, как единственно доступные по бюджету МД РМ. Стандартной конфигурации и памятью до 4 МБайт. (да да - мега, а не гига:)


The requirements for the solution included, among other things, the need to implement the educational and gaming parts on computers with a performance no higher than that of IBM-PC / 286, as the only ones available on the budget of MD RM. Standard configuration and memory up to 4 MB. (yes yes - mega, not giga :)


Анализ доступных решений/игр существовавших тогда на платформе 286 процессора (DOOM. Need for Speed,..) показал, что можно реализовать вполне динамичную игровую часть в 3D графике, но только в VGA (320x240) режиме. В только зарждавшемя тогда SVGA(640x480) режиме хороших примеров не было.


An analysis of the available solutions/games that existed at that time on the 286 processor platform (DOOM. Need for Speed,..) showed that it is possible to implement a quite dynamic game part in 3D graphics, but only in VGA (320x240) mode. There were no good examples in the SVGA(640x480) mode, which was then just emerging.


Однако часть особенностей назначения тренажера исключал возможность применения VGA режима, а именно:

1) Ракета может использоваться в диапазоне дальностей 500 - 4000 метров, что для целей типа танк, на дальности в 4000 метров, в поле видения оптического прибора наведения ракеты на цель, размер цели составлял 3 пикселя по высоте для VGA режима. В основных рабочих диапазонах дальности (3500-:1500)  угловые размеры целей оказывались порядка 4-:-30 пикселей, что оказывалось слишком малым разрешением для узнавания ориентации целей в различных направлениях движения.

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

(Это копия из ролика VHS качества, другого качества нет :(

Кроме того, режим SVGA, имел явные преимущества в целом по качеству картинки и мог считаться, безусловно, более перспективным.


However, some of the features of the simulator's purpose excluded the possibility of using the VGA mode, namely:

1) The missile can be used in the range of 500 - 4000 meters, which for tank-type targets, at a distance of 4000 meters, in the field of view of the optical device for pointing the missile at the target, the target size was 3 pixels in height for VGA mode. In the main operating ranges of the range (3500-: 1500), the angular dimensions of the targets turned out to be on the order of 4-:-30 pixels, which turned out to be too low a resolution for recognizing the orientation of targets in different directions of movement.

2) The large size of a very detailed cursor also turned out to be too clumsy and obscured the field of view visible in the optical device. (This is a VHS quality copy haven’t other quality :(

In addition, the SVGA mode had clear advantages in terms of image quality in general and could certainly be considered more promising.


А в чем проблема использования SVGA? В 4-ре раза большая нагрузка на слабый процессор и отсутствие единого стандарта. (Целый зоопарк адаптеров, для каждого свой набор графических примитивов). Долгое время не удавалось обновлять новый вид местности при движении курсора за подвижной целью и перерисовывать курсор в центре без паразитного эффекта мерцания курсора (см. решение проблемы ниже).


What's wrong with using SVGA? 4 times more load on a weak processor and the lack of a single standard. (A whole zoo of adapters, each with its own set of graphic primitives). For a long time it was not possible to update the new view of the terrain when the cursor moved behind a moving target and redraw the cursor in the center without the parasitic cursor flicker effect (see the solution below).


Устранение паразитного мерцания курсора и увеличение мягкости перерисовки изображений было нечаянно достигнуто, благодаря моему опыту разработок графических систем для телевидения. Где мне был дан урок большого значения синхронизации различных видеоисточников с помощью кадрового импульса для решения различных задач. И для тренажера удалось, за счет таймерного процесса отслеживать все появления кадрового импульса монитора (монитор не имел прерывания по кадровому импульсу) и далее синхронизировать процесс перестроения изображения в подобранный момент времени стояния кадра. Не смотря на накладные расходы, результат был потрясающий.



The elimination of cursor flicker and the increase in softness of image redrawing was inadvertently achieved thanks to my experience in developing graphics systems for television. Where I was given a lesson in the great importance of synchronizing various video sources using a frame pulse for solving various problems. And for the simulator, it was possible, due to the timer process, to track all the appearances of the frame pulse of the monitor (the monitor did not have an interruption on the frame pulse) and then synchronize the process of rebuilding the image at the selected moment in time when the frame was standing. Despite the overhead, the result was amazing.


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


The achievement of frame synchronization has had a number of apparent and alleged interesting stories. It was the desire to talk about them that prompted me to write this boring opus, but more on that later, but for now I want to brag about the unique process dispatching system implemented in the simulator.


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


But first, it’s worth admitting that the implementation of this scheme almost cost the failure of the entire project - everything is too complicated, at first it turned out badly, or rather, it didn’t work at all. But in justification, and how could it be without it, it should be mentioned that for a given approach (the number of necessary simultaneously working processes) and strict requirements for the behavior of components in the context of the military purpose of the simulator and the obvious weakness of the processor, whose parameters could not be exceeded, I can say that another scheme would be useless.


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

  1. Снимать вектор наклона пропорционального джойстика (неплохо моделировал кнюппель на реальном изделии) для цели определения вектора (направления и скорости) перемещения местности ввиду перемещения области визирования местности.

  2. Отслеживать все кадровые импульсы монитора и необходимую фазу для старта перерисовок.

  3. Запускать процесс перерисовок, без остановки регистрации реальных и виртуальных событий

  4. Отслеживание и отрисовка указателя мыши

  5. Диспетчер клавиатурных команд: на конкретных клавишах сидел процесс смены яркости центральной марки курсора (зеленое перекрестие), что использовалось для изменений контрастности в условиях разной освещенности + команда пуска ракеты.

  6. Расчет и подготовка и прорисовка новой фазы, ракурса, масштаба, положение (ФРМП)  движения цели

  7. Расчет новой ФРПМ движения ракеты или анимации взрыва.

  8. В новой версии добавился процесс озвучивания радио эфирного шума (благодаря асинхронной схеме озвучивания аудио потока)

  9. Через программно реализованный микшер реального времени мог проигрываться либо звук запуска/полета/взрыва ракеты или голосовые команды о целеуказании вместе с шумом.


Judge for yourself, it was necessary to monitor interrupts from the keyboard and the timer and organize the dispatching of independent processes through the timer, such as:

  1. Record the tilt vector of a proportional joystick (the joystick modeled well the special stick on a real product) in order to determine the vector (direction and speed) of the terrain movement due to the movement of the terrain sighting area.

  2. Keep track of all frame pulses of the monitor and the necessary phase to start redraws.

  3. Start the process of redrawing, without stopping the registration of real and virtual events

  4. Tracking and rendering the mouse pointer

  5. Keyboard command manager: on specific keys there was a process of changing the brightness of the central mark of the cursor (green crosshair), which was used to change the contrast in different lighting conditions + the rocket launch command.

  6. Calculation and preparation and drawing of a new phase, angle, scale, position (PhASP) of the target movement

  7. Calculation of a new PhASP of rocket movement or explosion animation.

  8. In the new version, the process of voicing the radio air noise has been added (thanks to the asynchronous scheme for voicing the audio stream)

  9. Through a software-implemented real-time mixer, either the sound of a rocket launch / flight / explosion or voice of commands about target designation could be played along with the noise.


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


In the first version, the program crashed from a sideways glance, shaking or draft. However, when I was given, lo and behold, a whole week for debugging and, lo and behold, an independent tester, then in the end he danced with his arms and legs on the computer, but the program did not crash, and almost 30 years of continuous operation of the simulator also speaks of the reliability of the program.


Стоит отметить и другие значимые достижения в проекте:

  1. Первый в Молдове (а может и не только) программный плеер видео реального (betacam качества) с диска (до этого работали плееры для клипов целиком загружаемые в память). Что стало возможным благодаря уникальной виртуальной асинхронности обмена с диском, что к уже имевшимся процессам управления ресурсами компа полностью заменяло таковые в MS-DOS.

  2. Сложный и гибкий (легко развиваемый и отлаживаемый) язык разметки статичных и динамичных страниц (по типу современного HTML) с возможностями организации интерактивного взаимодействия с пользователем. Благодаря использованию макро расширений ассемблера и язык описания и интерпретатор и программа содержания страницы могли отлаживаться в одном контексте одновременно.

  3. Встроенный в тренажер движок управления реляционной базой данных (Информикс), для целей регистрации планов и достижений обучаемых.


It is worth noting other significant achievements in the project:

  1. The first in Moldova (and maybe not only) a software player for real video (betacam quality) from a disk (before that, players for clips that were completely loaded into memory worked). What became possible thanks to the unique virtual asynchrony of the exchange with the disk, which, in addition to the already existing resource management processes of the computer, completely replaced those in MS-DOS.

  2. A complex and flexible (easily developed and debugged) markup language for static and dynamic pages (like modern HTML) with the ability to organize interactive user interaction. Through the use of macro assembler extensions, both the description language and the interpreter and page content program could be debugged in the same context at the same time.

  3. The relational database management engine (Informix) built into the simulator for the purpose of registering the plans and achievements of trainees.

2

Первая реальная история вокруг кадровой синхронизации.

Дело в том, что после 2-ой версии тренажера, когда он зазвучал. Я работал в одной коммерческой организации над другим важным для меня проектом в области баз данных, а в это время, наша (моя) команда, вначале “отлупила” меня - типа я тупой, отсталый, медленный, не надежный и короче пошел вон со своим ассемблером. Как оказалось они уже знали что получили карт бланш на новую версию тренажера +Фагот +Польский язык +видео реального качества с диска.


The first real story around frame synchronization.

The fact is that after the 2nd version of the simulator, when it sounded. I was working in a commercial organization on another database project that was important to me, and at this time, our (my) team, at first “beat” me - like I’m dumb, backward, slow, not reliable and, in short, went out with my assembler. As it turned out, they already knew that they had received carte blanche for a new version of the simulator +Fagot +Polish language +real quality video from the disk.


Ну типо - мы пойдем другим путем (надежным). Только Windows, только языки высокого уровня, только стандартные графические библиотеки типа Vesa. Тем более тогда уже появились 386dx процессоры. И нужно только повторить уже работающие программы на новом уровне, тра-та-та коржик с маком.


Well, supposedly - we will go the other way (reliable). Windows only, high level languages only, standard graphics libraries like Vesa only. Moreover, 386dx processors had already appeared then. And you just need to repeat already working programs at a new level, tra-ta-ta biscuit with poppy seeds.


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


But something went wrong, and I guess that (see the next alleged story), in the beginning they were not able to replicate the same dynamics and visual quality of the picture on the new toolkit. If they had condescended to consulting with me, perhaps they would have been helped out by the implementation of software synchronization with a farme pulse, even in the context of the stupid tools they used.


Потом они попытались подсунуть заказчику, совсем тупую схему игровой части - в плане (не 3Д) и без курсоров. И узнали, видимо, все что заказчик про них подумал. Потом они попытались хотя бы отладить плохо работающую программу. Но в условиях лютой ненависти к ассемблеру - 0 шансов. И наконец они взмолились (шучу:) ко мне - типо ну смотри твое детище жаждет переродится в новой ипостаси. И я, в момент завершения “чудовой” программы (аналог систем репликации), вместо того чтобы собирать “пряники”, помчался на крыльях любви, какие обиды когда дитятко плаче.


Then they tried to slip to the customer a completely stupid scheme of the game part - in plan (not 3D) and without cursors. And they learned, apparently, everything that the customer thought about them. Then they tried to at least debug the badly working program. But in conditions of fierce hatred for assembler - 0 chances. And finally they prayed (just kidding:) to me - like, well, look, your brainchild is eager to be reborn in a new incarnation. And I, at the moment of completion of the “wonderful” program (an analogue of replication systems), instead of collecting “carrots”, rushed on the wings of love, what insults when a child cries.


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


Then there was an epic with debugging, a new dispatcher and a graphics library, a new language/interpreter, a player from a disk and much more - work and be happy, but this turned out to be the latest version of our simulator. For reasons and conclusions, see the last story.

3

Первая предполагаемая история вокруг кадровой синхронизации.

Мои интерпретации ниже приведенных фактов требует подтверждения, но аналогии интересны сами по себе - судите сами:

  1. В 2010 году, профессор Корнельского университета компьютерных наук Кен Бирман предложил технологию вертикальной синхронизации VSync, которая предложила геймерам решения различных проблем во время игр и именно проблемы подрыва перестроения кадров. (VSync: History, Origin, and More) - урезанная версия нашей технологии. Без подстройки фазы синхронизации от объема перестроений в кадре для конкретных игр.

  2. В 2012 компания NVidia внедряет свою первую версию технологии G-Sync для адаптеров GeForce-680, которая среди тех же назначений имела технологию адаптации кадровой частоты монитора естественно при использовании аппаратно адаптируемых версий мониторов и адаптеров. Однако до подстройки фазы, похоже, дело дошло в поздних версиях технологий. (GeForce 600 series)

  3. В 2014 компания AMD внедряет свою чисто программную версию адаптации к кадровым импульсам - (FreeSync an adaptive synchronization technology).

  4. В 1996 году наша компания P&P Service презентовала в МО МД 3-версию нашего тренажера с технологией вертикальной адаптивной синхронизацией к кадровому импульсу и среди прочих гостей, одна копия программы была подарена американскому военному послу, присудствовашему на презентации.

Я не на что не намекаю, но 15 лет форы мы бездарно просрали.


The first alleged story is around frame sync.

My interpretation of the facts below requires confirmation, but the analogies are interesting in themselves - judge for yourself:

  1. In 2010, Cornell University computer science professor Ken Birman proposed the VSync technology, which offered gamers solutions to various problems during games, namely the problem of undermining frame rebuilding. (VSync: History, Origin, and More) is a stripped-down version of our technology. Without adjusting the synchronization phase from the amount of rebuilding in the frame for specific games.

  2. In 2012, NVidia introduces its first version of G-Sync technology for GeForce-680 adapters, which, among the same uses, had monitor frame rate adaptation technology naturally when using hardware-adaptive versions of monitors and adapters. However, phase adjustment seems to have come down to later versions of technology. (GeForce 600 series)

  3. In 2014, AMD introduces its purely software version of adaptation to farne pulses - (FreeSync an adaptive synchronization technology).

  4. In 1996, our company P&P Service presented the 3rd version of our simulator with the technology of vertical adaptive synchronization to frame pulse at MO MD and, among other guests, one copy of the program was gifted to the American military ambassador who was present at the presentation.

I'm not hinting at anything, but 15 years of handicap we mediocre pissed off.


4

История последняя и печальная.

К сожалению, как уже было сказано 3-яя версия оказалась последней, почему:

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

  2. МО запустило новый проект тренажера для СТРЕЛЫ, но между P&P и МО появился хитрый перец (Пержу из ТУМ), которой обманом представил наш тренажер потенциальным инвесторам как якобы им руководимый и уговорил их начать новую разработку под его руководством, а он якобы уже с нами договорится. Но условия его никого не впечатлили, они набрали студентов, и по моим сведениям успешно все похерили.

  3. В недрах P&P также не нашлось никого, кто поверил бы в перспективы наработок, например в игровой индустрии. Слишком сложно все и рискованно разрабатывалось и не в последнюю очередь, негативную роль сыграла большая зависимость от одного разработчика. Ну не хотел никто больше тратить свои ресурсы на освоение якобы бесперспективного ассемблера. Впрочем, как показало время они были почти правы. Почему почти? Потуму что, на мой взгляд нет ни одной объективной причины, почему ассемблер не занял доминирующего положения. С помощью макросов он прекрасно развивается до всех современных плюшек высокоуровневых языков, а причины в капризах рынка, как и лучшая на мой взгляд архитектура процессора DEC оказалась в тени унылого говна под названием х86.


The last story and sad.

Unfortunately, as already mentioned, the 3rd version turned out to be the last one, why:

  1. The failed work of managers from MO and P&P in an attempt to sell the simulator to others. After successfully participating in an arms exhibition in Poland, a false feeling arose that they say how everyone will pounce in line, meanwhile, breaking through to a specific arms market is not a pound of raisins to sell in the market.

  2. MO launched a new simulator project for ARROW, but between P&P and MO appeared a cunning pepper (Perju from TUM), who tricked our simulator into potential investors as allegedly led by him and persuaded them to start a new development under his leadership, and he allegedly already agreed with us. But his conditions did not impress anyone, they recruited students, and according to my information, they successfully screwed everything up.

  3. In the depths of P&P, there was also no one who would have believed in the prospects for developments, for example, in the gaming industry. Everything was too complicated and risky to develop, and last but not least, a large dependence on one developer played a negative role. Well, no one wanted to spend their resources on mastering the supposedly unpromising assembler anymore. However, as time has shown, they were almost right. Why almost? Because, in my opinion, there is not a single objective reason why the assembler has not taken a dominant position. With the help of macros, it perfectly develops to all modern high-level languages advantages, and the reasons are the whims of the market, as well as the best DEC processor architecture in my opinion, turned out to be in the shadow of a dull shit called x86.






Комментариев нет:

Отправить комментарий