<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2211443685803605972</id><updated>2012-02-16T11:34:21.722-08:00</updated><category term='C++'/><category term='Steve Jobs'/><category term='Мечты'/><category term='игры'/><category term='PhysX'/><category term='программы'/><category term='World of Tanks'/><category term='гаджеты'/><category term='мультимедиа'/><category term='новое'/><category term='программирование'/><category term='Open Watcom'/><category term='help'/><category term='релизы'/><category term='OpenGL'/><title type='text'>Vitalij Serov</title><subtitle type='html'>Мой взгляд на программирование</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-8447890251163270079</id><published>2011-10-28T12:40:00.000-07:00</published><updated>2011-10-28T13:11:04.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='гаджеты'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='программы'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>DrivePanel 0.2</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Rru73wgIBEU/TqsE0RLjXPI/AAAAAAAAASg/hcEzXCqk7qw/s1600/drivepanel02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://3.bp.blogspot.com/-Rru73wgIBEU/TqsE0RLjXPI/AAAAAAAAASg/hcEzXCqk7qw/s400/drivepanel02.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;Программа для обеспечения быстрого доступа к&amp;nbsp;подключенным&amp;nbsp;носителям компьютера.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;Отображает винчестеры, флешь и дисковые носители в виде нескольких кнопок в верхней части рабочего стола.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;СКАЧАТЬ - (377 кб)&amp;nbsp;&lt;a href="http://narod.ru/disk/29805441001/Panel.exe.html"&gt;http://narod.ru/disk/29805441001/Panel.exe.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;ВНИМАНИЕ&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;Для автоматического запуска приложения скопируйте файл&amp;nbsp;&lt;/span&gt;&lt;u style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;Panel.exe&lt;/u&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;&amp;nbsp;в папку&amp;nbsp;&lt;/span&gt;&lt;u style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;Пуск-&amp;gt;Автозагрузка&lt;/u&gt;&lt;br /&gt;&lt;u style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;&lt;u style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;Версия 0.2&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;отслеживание только "реальных"&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: x-small; line-height: 18px;"&gt;носителей информации&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: x-small; line-height: 18px;"&gt;отслеживание динамического подключения носителей&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: x-small; line-height: 18px;"&gt;возможность работы в режиме "поверх окон" и обычном&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-8447890251163270079?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/8447890251163270079/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/10/drivepanel-02.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/8447890251163270079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/8447890251163270079'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/10/drivepanel-02.html' title='DrivePanel 0.2'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Rru73wgIBEU/TqsE0RLjXPI/AAAAAAAAASg/hcEzXCqk7qw/s72-c/drivepanel02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-4841373666450390706</id><published>2011-10-09T05:31:00.000-07:00</published><updated>2011-11-01T01:59:45.114-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>BlendELF 0.4</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lmkr0wohrGw/TpGSMnM-_2I/AAAAAAAAASI/H4WKvCr4WfU/s1600/balls_shot1_micro.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://4.bp.blogspot.com/-lmkr0wohrGw/TpGSMnM-_2I/AAAAAAAAASI/H4WKvCr4WfU/s400/balls_shot1_micro.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Lkb0X3-t9BI/TqrwbR58YUI/AAAAAAAAASY/Q4bDrQDdTLM/s1600/screenshot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/-Lkb0X3-t9BI/TqrwbR58YUI/AAAAAAAAASY/Q4bDrQDdTLM/s400/screenshot.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;Предлагаю вашему вниманию сборку движка &lt;a href="http://blendelf.com/"&gt;BlednElf&lt;/a&gt; (0.4 BETA) вместе со скриптом экспорта для &lt;a href="http://www.blender.org/"&gt;Blender 2.60&lt;/a&gt;&amp;nbsp;и&amp;nbsp;проектом&amp;nbsp;для &lt;a href="http://www.codeblocks.org/"&gt;CodeBlocks&lt;/a&gt;.&lt;br /&gt;Сборка полностью готова к работе и компилируется сразу после загрузки. В архиве лежит EXE файл для запуска скрипта LUA и DLL библиотека для подключения к вашим проектам без компиляции самого движка.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Целевая платформа сборки - Windows.&lt;br /&gt;Архив содержит все библиотеки и включаемые файлы для успешной компиляции в CodeBlocks&lt;br /&gt;Файл импорта доступен только в формате MinGW (libBlendElf.dll.a), буду очень благодарен если&amp;nbsp;кто нибудь&amp;nbsp;создаст lib файл для VisualC++ или скомпилирует движок в Linux.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;СКАЧАТЬ&lt;/u&gt;&amp;nbsp;&lt;a href="http://narod.ru/disk/30171471001/BlendELF_0.4.7z.html"&gt;http://narod.ru/disk/30171471001/BlendELF_0.4.7z.html&lt;/a&gt;&amp;nbsp;(112 мб)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Обновление&amp;nbsp;31.10.11&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;исправлен скрипт экспорта для версии 2,60a (экспорт арматуры)&lt;/li&gt;&lt;li&gt;исправлена кодировка файла init.lua для запуска на Unix системах(winehq совместимость)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Обновление 30.10.11&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;добавлена конфигурация для компиляции с консолью(помогает при отладке)&lt;/li&gt;&lt;li&gt;добавлен файл readme.txt&lt;/li&gt;&lt;li&gt;добавлена возможность автоматического открытия карт движком в режиме "полёта" (для открытия карты можно например перетащить "*.pak" файл на "blendelf.exe" или воспользоваться кучей иных способов)&lt;/li&gt;&lt;li&gt;несколько&amp;nbsp;мелких исправлений&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-4841373666450390706?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/4841373666450390706/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/10/blendelf-04.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/4841373666450390706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/4841373666450390706'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/10/blendelf-04.html' title='BlendELF 0.4'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-lmkr0wohrGw/TpGSMnM-_2I/AAAAAAAAASI/H4WKvCr4WfU/s72-c/balls_shot1_micro.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-3782560296770060018</id><published>2011-10-06T11:01:00.000-07:00</published><updated>2011-10-16T04:24:26.989-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Steve Jobs'/><title type='text'>Steve Jobs</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-riMqIfPw4e4/To3sAq0EeAI/AAAAAAAAARk/KW96wYUnB3M/s1600/t_hero.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://2.bp.blogspot.com/-riMqIfPw4e4/To3sAq0EeAI/AAAAAAAAARk/KW96wYUnB3M/s320/t_hero.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Ушел&amp;nbsp;легендарный человек.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-3782560296770060018?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/3782560296770060018/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/10/steve-jobs.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3782560296770060018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3782560296770060018'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/10/steve-jobs.html' title='Steve Jobs'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-riMqIfPw4e4/To3sAq0EeAI/AAAAAAAAARk/KW96wYUnB3M/s72-c/t_hero.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-1721425737445073195</id><published>2011-09-17T08:10:00.000-07:00</published><updated>2011-10-28T11:20:59.481-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='World of Tanks'/><category scheme='http://www.blogger.com/atom/ns#' term='программы'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>World of Tanks Cleaner v0.1</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MiLYwLyvQ24/TnS4nJtBQKI/AAAAAAAAAPo/kiXkINyX4e8/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="183" src="http://1.bp.blogspot.com/-MiLYwLyvQ24/TnS4nJtBQKI/AAAAAAAAAPo/kiXkINyX4e8/s400/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;WOTCleaner&lt;/b&gt; - это утилита для освобождения пространства на жёстком диске от ненужных файлов игры World of Tanks.&lt;/span&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Утилита способна освободить до нескольких гигабайт пространства &lt;u&gt;при полной работоспособности самой игры&lt;/u&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Вы можете и сами без программы освободить место на жёстком диске, для этого просто удалите все файлы в папке "Updates".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Использование&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Скачайте и запустите утилиту&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Нажмите кнопку "Обзор" и укажите путь к игре World of Tanks.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Нажмите кнопку "Начать" и дождитесь сообщения о конце операции.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Скачать&lt;/b&gt;(exe, 155 кб)&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://narod.ru/disk/25423220001/WOTCleaner.exe.html"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Narod&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://depositfiles.com/files/ihktazve5"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;DepositFiles&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-1721425737445073195?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/1721425737445073195/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/09/world-of-tanks-cleaner.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1721425737445073195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1721425737445073195'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/09/world-of-tanks-cleaner.html' title='World of Tanks Cleaner v0.1'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-MiLYwLyvQ24/TnS4nJtBQKI/AAAAAAAAAPo/kiXkINyX4e8/s72-c/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-7538467327252594531</id><published>2011-08-12T11:50:00.000-07:00</published><updated>2011-09-17T11:42:28.059-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>ТрафПатрул 2.55</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-Fu0X7r6CzBk/TIO8nSFDRLI/AAAAAAAAAJk/3ALMbO65Jtw/s1600/TraffPatrul_254_BETA.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="101" src="https://lh4.googleusercontent.com/-Fu0X7r6CzBk/TIO8nSFDRLI/AAAAAAAAAJk/3ALMbO65Jtw/s320/TraffPatrul_254_BETA.bmp" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: large;"&gt;ТрафПатрул 2.55&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Утилита для подсчёта трафика при сетевом подключении(локальная сеть или интернет). Благодаря простому и интуитивно понятному интерфейсу отлично подходит для неопытных пользователей, а так-же для всех тех, кто не хочет ломать голову над сложными и иногда не нужными функциями "навороченных" программ.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;u&gt;ТрафПатрул&lt;/u&gt;&amp;nbsp;имеет очень маленький размер - около&amp;nbsp;&lt;u&gt;250 кб&lt;/u&gt;, что позволяет её скачать даже при очень дорогом подключении к интернету.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Интерфейс программы устроен следующим образом: верхняя строка показывает общую статистику, вторая строка - входящую статистику, третья - исходящую. На изображении вверху всего потрачено 285,7 килобайт трафика, текущая скорость(скорость с которой программы сейчас передают данные) составляет 1,98 килобит в секунду, и с учётом настроек программы на интернет потрачено 1,94 рублей. Расшифровку следующих двух строк можно провести по похожей схеме...&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Cтоимость за мегабайт можно изменить с учётом вашего тарифного плана.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Таким образом,&amp;nbsp;&lt;u&gt;ТрафПатрул&lt;/u&gt;&amp;nbsp;- это идеальный выбор для людей которые хотят точно знать "Сколько денег я потратил(а) на интернет?"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Новая 2.55 версия:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- исправлены ошибки при работе с реестром&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- исправлена ошибка&amp;nbsp;некорректной&amp;nbsp;позиции всплывающего меню&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Новая 2.54 версия:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- убрано название валюты(теперь просто знак $)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- появилась опция игнор;ирования интерфейса «MS TCP Loopback interface» и благодаря этому увеличилась точность вычислений&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- и много других мелких исправлений и доработок&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Скачать (exe, версия 2.55, &amp;nbsp;193 кб):&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;a href="http://narod.ru/disk/21606778001/TraffPatrul_255.exe.html"&gt;narod&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;Скачать (exe, инсталятор,&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;версия 2.54&lt;/b&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;, 250 кб):&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;&lt;script src="http://freesoft.ru/res/inf.php?id=677889"&gt;&lt;/script&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-7538467327252594531?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/7538467327252594531/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/traffpatrul-255.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/7538467327252594531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/7538467327252594531'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/traffpatrul-255.html' title='ТрафПатрул 2.55'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-Fu0X7r6CzBk/TIO8nSFDRLI/AAAAAAAAAJk/3ALMbO65Jtw/s72-c/TraffPatrul_254_BETA.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-1063814496251781389</id><published>2011-08-09T06:23:00.000-07:00</published><updated>2011-09-17T11:43:17.290-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='гаджеты'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='мультимедиа'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>All CPU Meter RUS</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Русская версия гаджета&amp;nbsp;All CPU Meter&amp;nbsp;V3.7.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TtEzUjYyIc8/TkZXZkJHKMI/AAAAAAAAAPA/6d38Q0sElJM/s1600/All_CPU_Meter6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="205" src="http://2.bp.blogspot.com/-TtEzUjYyIc8/TkZXZkJHKMI/AAAAAAAAAPA/6d38Q0sElJM/s400/All_CPU_Meter6.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Zkh2ffP-p4w/TkExm6wgzVI/AAAAAAAAAO8/W9MGKcJirmY/s1600/allcpumeter.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-Zkh2ffP-p4w/TkExm6wgzVI/AAAAAAAAAO8/W9MGKcJirmY/s400/allcpumeter.JPG" width="266" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;На данный момент переведены только опции.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Системные требования&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;система с поддержкой&amp;nbsp;windows gadgets (windows 7)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;для отображения температуры процессора требуется утилита CoreTemp&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Скачать&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://narod.ru/disk/21597015001/All_CPU_Meter_V3.7_(RUS).gadget.html"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;narod - 130 kb&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-1063814496251781389?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/1063814496251781389/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/all-cpu-meter-rus.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1063814496251781389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1063814496251781389'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/all-cpu-meter-rus.html' title='All CPU Meter RUS'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-TtEzUjYyIc8/TkZXZkJHKMI/AAAAAAAAAPA/6d38Q0sElJM/s72-c/All_CPU_Meter6.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-3229833761933384393</id><published>2011-08-09T02:51:00.000-07:00</published><updated>2011-08-12T10:07:11.129-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='мультимедиа'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>Игра про Танки(2d)</title><content type='html'>Игра сделанная мной на движке совсем недавно на движке &lt;a href="http://love2d.org/"&gt;Love2d&lt;/a&gt;. Работает на двух платформах Linux и Windows. Разработка продолжается.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QwQT4bqjNFI/TkEAuq4AD_I/AAAAAAAAAOw/kVzkQ_thHj0/s1600/love+2011-08-09+13-35-23-30.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-QwQT4bqjNFI/TkEAuq4AD_I/AAAAAAAAAOw/kVzkQ_thHj0/s400/love+2011-08-09+13-35-23-30.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pn8HFbSFRQE/TkEA0lShQ8I/AAAAAAAAAO0/4GvuZG5n0co/s1600/love+2011-08-09+13-35-29-32.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-pn8HFbSFRQE/TkEA0lShQ8I/AAAAAAAAAO0/4GvuZG5n0co/s400/love+2011-08-09+13-35-29-32.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Управление&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px;"&gt;W,S,A,D - движение&lt;/li&gt;&lt;li style="margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px;"&gt;SPACE - выстрел&lt;/li&gt;&lt;li style="margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px;"&gt;ESC - выход&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Системные требования&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Системные требования Love2D&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Установка&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Первое скачать и установить Love2d (&lt;a href="http://love2d.org/"&gt;сайт&lt;/a&gt;, версия для &lt;a href="https://bitbucket.org/rude/love/downloads/love-0.7.2-win-x86.exe"&gt;Windows&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Скачать и запустить игру&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Скачать&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://narod.ru/disk/21598036001/tankGame.love.html"&gt;narod - 202 kb&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-3229833761933384393?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/3229833761933384393/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/game-about-tanks-2d.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3229833761933384393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3229833761933384393'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/game-about-tanks-2d.html' title='Игра про Танки(2d)'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-QwQT4bqjNFI/TkEAuq4AD_I/AAAAAAAAAOw/kVzkQ_thHj0/s72-c/love+2011-08-09+13-35-23-30.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-3485002015641879757</id><published>2011-08-09T02:27:00.000-07:00</published><updated>2011-08-09T02:28:39.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='мультимедиа'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>Игра про ШАР</title><content type='html'>Довольно давно на моём&amp;nbsp;жестком&amp;nbsp;диске лежит этот&amp;nbsp;проект, который сделан на движке &lt;a href="http://blendelf.com/"&gt;BlendElf&lt;/a&gt; и скомпилирован в &lt;a href="http://www.codeblocks.org/"&gt;CodeBlocks&lt;/a&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-mVFKzNBQs2Q/TiWsRfbVK9I/AAAAAAAAAOQ/Q6C5hpfFqmU/s1600/Druid+2011-07-19+20-06-42-92.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://1.bp.blogspot.com/-mVFKzNBQs2Q/TiWsRfbVK9I/AAAAAAAAAOQ/Q6C5hpfFqmU/s400/Druid+2011-07-19+20-06-42-92.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;В игре вам&amp;nbsp;предстоит помочь синему шарику пройти через преграды созданные злыми кубами и сразиться со злыми белыми шарами.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Управление&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;W,S,A,D - катится&lt;/li&gt;&lt;li&gt;LSHIFT - ускорение&lt;/li&gt;&lt;li&gt;ESC - выход&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;b&gt;Системные требования&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Windows XP, Vista, 7 (Linux Wine)&lt;/li&gt;&lt;li&gt;Процессор уровня Intel Pentium 4 или выше&lt;/li&gt;&lt;li&gt;256 мб оперативной памяти&lt;/li&gt;&lt;li&gt;128 мб видео памяти&lt;/li&gt;&lt;li&gt;видео ускоритель с поддержкой OpenGL 2 (shader model 3.0)&lt;/li&gt;&lt;li&gt;клавиатура, мышь&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Скачать&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Извините файл временно недоступен&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-3485002015641879757?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/3485002015641879757/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/game-of-sphere.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3485002015641879757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3485002015641879757'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/08/game-of-sphere.html' title='Игра про ШАР'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-mVFKzNBQs2Q/TiWsRfbVK9I/AAAAAAAAAOQ/Q6C5hpfFqmU/s72-c/Druid+2011-07-19+20-06-42-92.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-330490939620777255</id><published>2011-04-14T09:31:00.000-07:00</published><updated>2011-04-14T09:58:00.410-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='Мечты'/><category scheme='http://www.blogger.com/atom/ns#' term='PhysX'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>История развития</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-lGc0eEj-yJY/TacYaDQziXI/AAAAAAAAAM4/TSCtxseE0KQ/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://1.bp.blogspot.com/-lGc0eEj-yJY/TacYaDQziXI/AAAAAAAAAM4/TSCtxseE0KQ/s400/01.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Вначале был &lt;a href="http://irrlicht.sourceforge.net/"&gt;Irrlicht&lt;/a&gt; и &lt;a href="http://www.tokamakphysics.com/"&gt;Tokamak&lt;/a&gt;. В целом было неплохо, но физика&amp;nbsp;почему-то любила "подёргиваться" и неправильно&amp;nbsp;передавала&amp;nbsp;вращения&amp;nbsp;объектов. На сцене можно наблюдать корабль и "метеориты".&amp;nbsp;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1oYoknEfs9Q/TacZUNI6ZYI/AAAAAAAAAM8/G8KzsEmv16c/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="307" src="http://2.bp.blogspot.com/-1oYoknEfs9Q/TacZUNI6ZYI/AAAAAAAAAM8/G8KzsEmv16c/s400/02.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Затем Irrlicht был использован с &lt;a href="http://sourceforge.net/projects/irrbullet/"&gt;IrrBullet&lt;/a&gt;. Вращение&amp;nbsp;объектов&amp;nbsp;передавалось&amp;nbsp;правильно, стал возможен "играбельный" полёт. Сцена дополнилась&amp;nbsp;звёздами&amp;nbsp;на заднем плане.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YLTcYDs-V60/TacaTXGkrHI/AAAAAAAAANA/U7mjIOg2amY/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://4.bp.blogspot.com/-YLTcYDs-V60/TacaTXGkrHI/AAAAAAAAANA/U7mjIOg2amY/s400/05.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;И наконец та-же сцена но включено освещение и добавлены "реалистичные" метеоры. Самая интересная сцена из всех предыдущих. Стоит добавить в неё врагов и можно называть всё это ИГРОЙ. В последствии я предпринял попытку скрещивания &lt;a href="http://www.nvidia.ru/object/physx_new_ru.html"&gt;PhysX&lt;/a&gt; c&amp;nbsp;Irrlicht. Цель скрещивания - это более реалистичные столкновения и высокая&amp;nbsp;производительность&amp;nbsp;в Windows с карточкой NVidia. Однако я был разочарован тем что в PhysX не сталкиваются Mesh с Mesh. В итоге пришлось от PhysX отказаться, по причине того что к игре требуется библиотека размером 40 мб, тогда как игра весит 10 мб и библиотека эта функциональности или производительности не добавляет.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dDF9KpBOWZY/TacdA5RLZ_I/AAAAAAAAANE/nbD0Oetr5Nc/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="307" src="http://2.bp.blogspot.com/-dDF9KpBOWZY/TacdA5RLZ_I/AAAAAAAAANE/nbD0Oetr5Nc/s400/10.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;И наконец сейчас идёт портирование приложения из Irrlicht в &lt;a href="http://www.ogre3d.org/"&gt;Ogre&lt;/a&gt;. Именно Ogre должен обеспечить&amp;nbsp;неплохую графику и решить все те проблемы с картинкой которые возникали в Irrlicht. На картинке корабль расположен в центре космоса, никаких&amp;nbsp;объектов вокруг&amp;nbsp;пока нет. Восстановление сцены до уровня Irrlicht займёт ещё минимум неделю, но оно того стоит. Столь долгий срок связан с тем что&amp;nbsp;параллельно со&amp;nbsp;сменой графического движка меняется и структура приложения.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Стоит также отметить что при создании этого приложения я использую только свободное&amp;nbsp;программное&amp;nbsp;обеспечение, а именно:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/"&gt;Ubuntu 10.10&lt;/a&gt; (приложение работает через &lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blender.org/"&gt;Blender 2.57&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gimp.org/"&gt;GIMP 2.6.10&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Ogre 1.7.2 (irrlicht 1.7.2 )&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt; 10.05&lt;/li&gt;&lt;li&gt;&lt;a href="http://gcc.gnu.org/"&gt;GCC&lt;/a&gt; 4.4.1&lt;/li&gt;&lt;li&gt;Tokamak, PhysX, Newton, Bullet (окончательно не решено)&lt;/li&gt;&lt;/ol&gt;Итак на этом новости закончились, думаю обновление не за горами.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-330490939620777255?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/330490939620777255/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/04/evolution-image.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/330490939620777255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/330490939620777255'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/04/evolution-image.html' title='История развития'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-lGc0eEj-yJY/TacYaDQziXI/AAAAAAAAAM4/TSCtxseE0KQ/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-2732087411317331713</id><published>2011-03-25T11:05:00.000-07:00</published><updated>2011-03-25T11:06:35.404-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='Мечты'/><title type='text'>Новые идеи</title><content type='html'>Итак, мои надежды на скорый выпуск игры не оправдались. На данный момент есть маленькая демка, в которой&amp;nbsp;корабль&amp;nbsp;летает в космосе среди метеоритов. При столкновении с метеоритом, тот &amp;nbsp;красиво отскакивает. Дело не двигается дальше из-за постоянного усовершенствования технологий движка.&lt;br /&gt;Итак список используемых технологий на сегодня и идеи их замены&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bullet physics (планируется внедрение Nvidia PhysX)&lt;/li&gt;&lt;li&gt;Irrlicht(планируется OGRE)&lt;/li&gt;&lt;li&gt;Blender моделирование&lt;/li&gt;&lt;li&gt;Gimp текстуры&lt;/li&gt;&lt;/ol&gt;От идеи написания собственного движка пришлось отказаться, в силу того, что этот "самодельный велосипед" далеко не уедет.&lt;br /&gt;Сама по себе игра - это тот же космический шутер, но в силу популярности MMO игр возможно и моя игра получит многопользовательский режим. Ахх, мечты....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-2732087411317331713?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/2732087411317331713/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/03/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2732087411317331713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2732087411317331713'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/03/blog-post.html' title='Новые идеи'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-1589569631432106762</id><published>2011-03-25T10:37:00.000-07:00</published><updated>2011-04-14T02:34:06.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='PhysX'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Введение в PhysX</title><content type='html'>Предлагаю Вам мой перевод статьи&amp;nbsp;&lt;a href="http://knol.google.com/k/introduction-to-the-nvidia-physx-api#"&gt;http://knol.google.com/k/introduction-to-the-nvidia-physx-api&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nvidia PhysX &amp;nbsp;это свободная для использования библиотека, которая обеспечит реалистичную физику в ваших 3D-приложениях. Поддерживаются твёрдые тела, ткани, жидкости, и многое другое.&lt;br /&gt;Этот статья рассказывает о основных настройках для PhysX SDK и построение простой демо сцены с коробками, предполагается что вы знакомы с C++.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SDK&lt;/b&gt;&lt;br /&gt;PhysX SDK можно загрузить с&lt;a href="http://developer.nvidia.com/object/physx_downloads.html"&gt; http://developer.nvidia.com/object/physx_downloads.html&lt;/a&gt;. Бинарная(устанавливаемая) версия SDK является бесплатной, и есть также бесплатный плагин для 3D Studio Max и Maya.&lt;br /&gt;Загрузите соответствующий установочный пакет для вашей платформы. После установки у вас появятся все необходимые библиотеки и подключаемые библиотеки.&lt;br /&gt;&lt;br /&gt;В SDK входит удаленный отладчик, бесценный инструмент для отладки приложений, использующих PhysX API:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-6FalCt6A3EE/TYzAmcutWxI/AAAAAAAAAMw/3wurWvtnsCw/s1600/physx1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="https://lh3.googleusercontent.com/-6FalCt6A3EE/TYzAmcutWxI/AAAAAAAAAMw/3wurWvtnsCw/s320/physx1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Изображение 1: удаленный отладчик&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Удаленный отладчик показывает физику сцены со всеми субъектами, актерами, которые могут двигаться, и другими&amp;nbsp;статическими&amp;nbsp;субъектами, такие как дороги и здания. По сути в этом отладчике Вы увидите сцену с точки зрения PhysX&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Изменения конфигурации в Visual Studio&lt;/b&gt;&lt;br /&gt;Для программирования с PhysX SDK в Microsoft Visual Studio необходимо установить соответствующие каталоги для включаемых файлов, файлов библиотек и DLL файлов. Nvidia PhysX SDK хранит эти файлы в логическую структуру каталогов.&lt;br /&gt;&lt;br /&gt;Есть 5 модулей в NVidia SDK. Следующие пункты описывают множество каталогов для каждого из модулей. В этом уроке я сделать предположение, что PhysX SDK является достаточно полезным для вас, чтобы изменять общие настройки&amp;nbsp;Visual Studio(глобальные настройки включаемых файлов и&amp;nbsp;библиотек).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2,1 PhysXLoader модуль&amp;nbsp;&lt;/b&gt;&lt;br /&gt;PhysXLoader модуль загрузки&amp;nbsp;PhysX. Этот модуль создает и запускает основные объекты SDK. Загрузчик также использует правильную DLL версии SDK PhysX.&lt;br /&gt;&lt;br /&gt;Настройки для этого модуля:&lt;br /&gt;директория : &lt;physx path="" sdk=""&gt;/SDKs/PhysXLoader/include&lt;/physx&gt;&lt;br /&gt;Lib файл : &lt;physx path="" sdk=""&gt;/SDKs/lib/win32/PhysXLoader.lib&lt;/physx&gt;&lt;br /&gt;DLL файл : &lt;physx path="" sdk=""&gt;/Bin/win32/PhysXLoader.dll&lt;/physx&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2,2&amp;nbsp;Foundation модуль&lt;/b&gt;&lt;br /&gt;Этот модуль определяет контейнер, математику и вспомогательных функций для использования другими модулями. Матрицы (NxMat34) является классом, который определяется в этом модуле&lt;br /&gt;&lt;br /&gt;Настройки для этого модуля:&lt;br /&gt;директория :&amp;nbsp;&lt;physx path="" sdk=""&gt;/SDKs/Foundation/include&lt;/physx&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2,3 PhysX модуль&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Этот модуль определяет основные функциональные возможности SDK PhysX. С помощью этого модуля вы можете создавать твердые тела, жидкости, транспортные средства, одежду, ...&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Настройки для этого модуля:&lt;/div&gt;директория :&amp;nbsp;&amp;nbsp;&lt;physx path="" sdk=""&gt;/SDKs/Physics/include&lt;/physx&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2,4 Character модуль&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Character&amp;nbsp;(NPC, боты, персонажи) трудно имитировать стандартным объектом PhysX API. Рассмотрим, например, персонаж, который стоит на рампе. Игрок может стоять на рампе, но физический&amp;nbsp;объект&amp;nbsp;упадет&amp;nbsp;с&amp;nbsp;нее. По этой и другим причинам,&amp;nbsp;Character&amp;nbsp;объекты имеют отдельный API.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Настройки для этого модуля:&lt;/div&gt;директория :&amp;nbsp;&lt;physx path="" sdk=""&gt;/SDKs/NxCharacter/include&lt;/physx&gt;&lt;br /&gt;Lib файл : &lt;physx path="" sdk=""&gt;/SDKs/lib/win32/NxCharacter.lib&lt;/physx&gt;&lt;br /&gt;DLL файл : &lt;physx path="" sdk=""&gt;/Bin/win32/NxCharacter.dll&lt;/physx&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2,5 Cooking модуль&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Создание выпуклой сетки для использования в приложение является трудоемкой задачей. По этой причине модуль предоставляет функциональные возможности для выполнения этой операции.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Настройки для этого модуля:&lt;/div&gt;директория :&amp;nbsp;&lt;physx path="" sdk=""&gt;/SDKs/NxCooking/include&lt;/physx&gt;&lt;br /&gt;Lib файл : &lt;physx path="" sdk=""&gt;/SDKs/lib/win32/NxCooking.lib&lt;/physx&gt;&lt;br /&gt;DLL файл : &lt;physx path="" sdk=""&gt;/Bin/win32/NxCooking.dll&lt;/physx&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Инициализация PhysX SDK&lt;/b&gt;&lt;br /&gt;Инициализировать PhysX SDK очень просто:&lt;br /&gt;&lt;blockquote&gt;NxPhysicsSDK * pPhysicsSDK =&amp;nbsp;NxCreatePhysicsSDK (NX_PHYSICS_SDK_VERSION, NULL , NULL );&lt;/blockquote&gt;NxCreatePhysicsSDK создает объект NxPhysicsSDK и возвращает указатель на этот объект, если операция прошла успешно, в противном случае возвращается NULL.&lt;br /&gt;Если создание успешно можно подключиться к локальной или удаленной отладки на стандартный порт для этого визуального удаленного отладчика.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Создайте простую сцену PhysX&lt;/b&gt;&lt;br /&gt;Мы создадим простую сцену с плоскостью и одним ящиком, который находится в воздухе. Моделирование позволит ящику упасть на плоскость.&lt;br /&gt;&lt;br /&gt;Создание объекта PhysX, как правило, имеет вид:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Создать дескриптор&lt;/li&gt;&lt;li&gt;Создание реального объекта с помощью вызова соответствующей функции создания на NxPhysicsSDK или NxScene объекта.&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;4,1 Создание объекта NxScene&lt;/b&gt;&lt;br /&gt;Объект NxScene - пожалуй самый интересный&amp;nbsp;объект&amp;nbsp;для разработчика 3D-приложения. Вы можете создать несколько сцен в 3D-приложении, но это не дает возможность на совместное использование объектов между сценами.&lt;br /&gt;&lt;blockquote&gt;NxSceneDesc sceneDesc;&lt;br /&gt;sceneDesc.gravity.set (0, -9.81f, 0);&lt;br /&gt;NxScene * pScene =&amp;nbsp;pPhysicsSDK-&amp;gt;createScene (sceneDesc);&lt;/blockquote&gt;&lt;b&gt;4,2 Создание объекта NxActor (горизонтальной плоскости)&lt;/b&gt;&lt;br /&gt;NVidia PhysX SDK содержит несколько примитивных форм.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;коробка&lt;/li&gt;&lt;li&gt;плоскость&lt;/li&gt;&lt;li&gt;высотная сетка (ландшафты)&lt;/li&gt;&lt;li&gt;капсула&lt;/li&gt;&lt;li&gt;сфера&lt;/li&gt;&lt;li&gt;колесо&lt;/li&gt;&lt;/ol&gt;Можно создать NxActor объект, собранный из нескольких фигур. В нашем случае мы создадим дескриптор объекта актера и добавить одну плоскость формы объекта.&lt;br /&gt;&lt;blockquote&gt;NxPlaneShapeDesc planeDesc;&lt;br /&gt;planeDesc.normal = NxVec3 ( 0 , 0 , 1 );&lt;br /&gt;planeDesc.d = 0.0f ;&lt;br /&gt;NxActorDesc actorDesc;&lt;br /&gt;actorDesc.shapes.pushBack (&amp;amp; ​​planeDesc);&lt;br /&gt;NxActor * PACTOR = pScene-&amp;gt; createActor (actorDesc);&lt;br /&gt;PACTOR-&amp;gt; UserData = NULL;&lt;/blockquote&gt;&lt;br /&gt;Объекты сцены поддерживает право собственности на все объекты. В конце приложения достаточно "освободить" сцену, чтобы очистить все объекты.&lt;br /&gt;&lt;br /&gt;В 3D-приложений важно связать физики актеров с игрой игровых объектов. Это может быть сделано через UserData поле в объекте NxActor. UserData поле пустой указатель и может указывать на любой объект в приложении.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4,3 Установить параметры&amp;nbsp;&lt;/b&gt;&lt;b&gt;материала&lt;/b&gt;&lt;b&gt;&amp;nbsp;по умолчанию&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Материала в PhysX SDK не имеет дело с визуальным представлением актером, но только с физическими свойствами объектов. Это хорошая практика для установки параметров по умолчанию материала. По умолчанию будет использоваться материал для каждого актера, который не имеет явного указания другого материала.&lt;br /&gt;&lt;blockquote&gt;NxMaterial * defaultMaterial = pScene-&amp;gt;getMaterialFromIndex ( 0 );&lt;br /&gt;defaultMaterial-&amp;gt;setRestitution ( 0.3f );&lt;br /&gt;defaultMaterial-&amp;gt;setStaticFriction ( 0.5f );&lt;br /&gt;defaultMaterial-&amp;gt;setDynamicFriction ( 0.5f );&lt;/blockquote&gt;Три параметра:&lt;br /&gt;&lt;u&gt;реституция(&lt;/u&gt;Restitution&lt;u&gt;)&lt;/u&gt;&amp;nbsp;: Имеет диапазоне от нуля до одного. Если материал имеет реституции нуля, актеры с этим материалом не будет отскакивать при столкновении.&lt;br /&gt;&lt;u&gt;трения покоя&lt;/u&gt;(StaticFriction) : Это трение между двумя поверхностями, не движущихся объектов, например, стационарный ящик на рампе. Статического трения достаточно велик, в этом случае для предотвращения от скольжения вниз:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-06YF5Gz6oIA/TYzLkUGXVmI/AAAAAAAAAM0/rDxvPTCeokc/s1600/physx2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="https://lh5.googleusercontent.com/-06YF5Gz6oIA/TYzLkUGXVmI/AAAAAAAAAM0/rDxvPTCeokc/s320/physx2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Изображение 2: трения покоя&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;u&gt;динамическое трение(&lt;/u&gt;DynamicFriction&lt;u&gt;)&lt;/u&gt; : Это трение между двумя объектами, которые движутся относительно друг друга, например, если ящик скользит вниз по рампе. Динамическое трение должно быть меньше или равно трению покоя.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4,4 Создать коробку &amp;nbsp;&lt;/b&gt;&lt;br /&gt;Коробка создается так же как плоскость, но есть некоторые дополнительные параметры:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Размеры&lt;/u&gt; : половина ширины, длины и высоты коробки&lt;br /&gt;&lt;u&gt;положение&lt;/u&gt; : исходное положение для окна&lt;br /&gt;&lt;u&gt;скорость&lt;/u&gt; : начальная скорость для окна&lt;br /&gt;&lt;u&gt;угловое затухания&lt;/u&gt; : объект с малым угловым затуханием, значение (например 0,001) будет вращаться быстрее, чем объект с большим угловым затуханием, значение (например 0,5), если же силы приложены к обоим объектам.&lt;br /&gt;&lt;u&gt;Плотность&lt;/u&gt; : используется для расчета массы объекта.&lt;br /&gt;&lt;br /&gt;Коробка объект также нуждается в теле дескриптора. Существуют три вида субъектов:&lt;br /&gt;&lt;u&gt;статического актер&lt;/u&gt; : актер без тела, этот актер не может двигаться. (В теории возможно перемещение статического актера, но это не рекомендуется).&lt;br /&gt;&lt;u&gt;динамических актер&lt;/u&gt; &amp;nbsp;: актер с телом. Силы и крутящий момент могут быть применены к этому типу актера.&lt;br /&gt;&lt;u&gt;кинематических актер&lt;/u&gt; : этот тип актера может двигаться, но он не реагирует на силы &amp;nbsp;применяемые к нему.&lt;br /&gt;&lt;br /&gt;Приступим к созданию коробки&lt;br /&gt;&lt;blockquote&gt;NxActorDesc actorDesc;&lt;br /&gt;NxBodyDesc bodyDesc;&lt;br /&gt;bodyDesc.angularDamping = 0.5f ;&lt;br /&gt;bodyDesc.linearVelocity = NxVec3 ( 1 , 0 , 0 );&lt;br /&gt;actorDesc.body = &amp;amp;bodyDesc;&lt;br /&gt;NxBoxShapeDesc boxDesc;&lt;br /&gt;boxDesc.dimensions = NxVec3 ( 2.0f , &amp;nbsp;3.0f , 4.0f );&lt;br /&gt;actorDesc.shapes.pushBack (&amp;amp; ​​boxDesc);&lt;br /&gt;actorDesc.density = 10.0f;&lt;br /&gt;actorDesc.globalPose.t = NxVec3 (10.0f, 10.0f, 10.0f);&lt;br /&gt;pScene-&amp;gt; createActor (actorDesc) -&amp;gt; UserData = NULL ;&lt;/blockquote&gt;&lt;b&gt;5 Моделирования&lt;/b&gt;&lt;br /&gt;Для моделирования PhysX достаточно производить расчёт 60 раз в секунду.&lt;br /&gt;В нормальных условиях, &amp;nbsp;синхронизация с монитором, ограничит количество кадров (от 50 до 100 кадров в секунду). В этом случае моделирования физики могут быть интегрированы с оказанием цикла:&lt;br /&gt;&lt;blockquote&gt;/ / Начать моделирование в отдельном потоке&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px;"&gt;pScene-&amp;gt;simulate( 1.0f/60.0f );&lt;/span&gt;&lt;br /&gt;/ / Визуализация сцены (DirectX или OpenGL код)&lt;br /&gt;.......&lt;br /&gt;/ / Извлечение результатов моделирования&lt;br /&gt;pScene-&amp;gt; flushStream ();&lt;br /&gt;pScene-&amp;gt; fetchResults ( NX_RIGID_BODY_FINISHED , true );&lt;/blockquote&gt;Параметр &lt;u&gt;true&lt;/u&gt; означает блокирующий вызов функции, если указать &lt;u&gt;false&lt;/u&gt; то возможно реализовать цикл ожидания и в этом цикле выполнять полезную работу, ожидая завершения вычислений&amp;nbsp;PhysX.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Показ сцены&lt;/b&gt;&lt;br /&gt;PhysX&amp;nbsp;SDK содержит пример, который делает простую сцену с коробкой в OpenGL. Этот пример можно найти в каталоге SDK: &lt;physx path="" sdk=""&gt;/Samples/SampleBoxes&lt;/physx&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Очистка&lt;/b&gt; &lt;br /&gt;Наконец, у сцены и&amp;nbsp;объектов&amp;nbsp;физики SDK есть методы&amp;nbsp;очистки, которые&amp;nbsp;очищают&amp;nbsp;память, которая была использована для моделирования физики:&lt;br /&gt;&lt;blockquote&gt;if ( pPhysicsSDK != NULL )&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( pScene != NULL )&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pPhysicsSDK-&amp;gt;releaseScene( *pScene );&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pScene = NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NxReleasePhysicsSDK( pPhysicsSDK );&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pPhysicsSDK = NULL;&lt;br /&gt;}&lt;/blockquote&gt;Вот и вся статья, о всех неточностях перевода пишите в&amp;nbsp;комментариях.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-1589569631432106762?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/1589569631432106762/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2011/03/introduction-to-physx.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1589569631432106762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1589569631432106762'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2011/03/introduction-to-physx.html' title='Введение в PhysX'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-6FalCt6A3EE/TYzAmcutWxI/AAAAAAAAAMw/3wurWvtnsCw/s72-c/physx1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-5450880149606708320</id><published>2010-12-10T06:20:00.000-08:00</published><updated>2011-02-22T10:24:48.376-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>Новые шаги...</title><content type='html'>&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Вот решил написать маленький пост... Прежде всего хочу сказать, что разработка не "загнулась" и постепенно шаг за шагом я иду к поставленной цели - создать свою игру. Столь долгая тишина на сайте связана со сменой места работы и как следствие временный дефицит свободного времени. Но я делаю всё, по мере сил возможное, что бы проект не умер. так и не принеся мне дохода)). В первую очередь очередной скрин с картинкой работы приложения... &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jF5mxBU2Wok/TQIxC1noFtI/AAAAAAAAAL8/BBU50ACT-kI/s1600/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" n4="true" src="http://1.bp.blogspot.com/_jF5mxBU2Wok/TQIxC1noFtI/AAAAAAAAAL8/BBU50ACT-kI/s400/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;Вот так теперь выглядит тот самый самолёт из предыдущих демо версий. Как видно графика "подросла и окрепла". На корабле появились тени, свет теперь исходит от звезды и это пожалуй всё что сейчас можно рассмотреть на этой картинке. Помимо этого добавлено:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;поддержка скелетной анимации&lt;/li&gt;&lt;li&gt;физика на основе "&lt;a href="http://ru.wikipedia.org/wiki/Bullet_Physics_Library"&gt;Bullet Physics&lt;/a&gt;"&lt;/li&gt;&lt;li&gt;фрагментные и вершинные шейдеры&lt;/li&gt;&lt;li&gt;скриптовой язык &lt;a href="http://www.lua.org/"&gt;Lua&lt;/a&gt;&lt;/li&gt;&lt;li&gt;звуковые эффекты&lt;/li&gt;&lt;/ul&gt;В ближайшее время (максимум до конца года) будет выпущена первая играбельная демка, после выйдет Serov Space Strike.&amp;nbsp;Конкретные сроки не знает никто, но думаю не более двух месяцев. &lt;strong&gt;Т.е. к февралю должна выйти моя ИГРА!!!&lt;/strong&gt; &lt;br /&gt;Кстати после выхода этой игры или даже параллельно с&amp;nbsp;её разработкой&amp;nbsp;стартует ещё один,&amp;nbsp;на мой взгляд, перспективный проект.&amp;nbsp;Это некий симбиоз двух игр - "3D Инструктор" и "Дальнобойщики". Так что планов у меня на месяцы или даже годы&amp;nbsp;вперёд... &lt;br /&gt;Самому интересно чтоже выйдет!!!&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-5450880149606708320?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/5450880149606708320/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/12/about-game-dev.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/5450880149606708320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/5450880149606708320'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/12/about-game-dev.html' title='Новые шаги...'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jF5mxBU2Wok/TQIxC1noFtI/AAAAAAAAAL8/BBU50ACT-kI/s72-c/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-6790504549705108247</id><published>2010-09-14T03:06:00.000-07:00</published><updated>2010-09-14T03:07:07.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Кватернионы и маленький новый мир</title><content type='html'>&lt;ul&gt;&lt;li class="separator" style="clear: both; text-align: center;"&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jF5mxBU2Wok/TI9FW2ZScPI/AAAAAAAAALU/1iOpcKosZso/s1600/engine+2010-09-14+13-45-57-45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/_jF5mxBU2Wok/TI9FW2ZScPI/AAAAAAAAALU/1iOpcKosZso/s400/engine+2010-09-14+13-45-57-45.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;поворот корабля и камеры исправлены.&lt;/li&gt;&lt;li&gt;добавлен маленький кусочек земли, вокруг которого можно полетать.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Тот самый корабль из предыдущих демок теперь летает вокруг маленького кусочка земли. Качество земли низкое, но это не принципиально. Главное - камера движется без глюков, а повороты полностью предсказуемы.&lt;br /&gt;Главное новшество - введение в математическую библиотеку приложения "кватернионов". Благодаря им, и "комбинации матричных поворотов" исправлены основные ошибки поворота камеры и объекта.&lt;br /&gt;Стоит так-же отметить, что вместо &lt;u&gt;OpenGL&lt;/u&gt; функций &lt;u&gt;glRoatate&lt;/u&gt; и &lt;u&gt;glTranslate&lt;/u&gt; используются собственные функции работы с матрицами. Общий уровень математики сильно возрос, если сравнивать с предыдущими версиями.&lt;br /&gt;Размер программы примера возрос до 500 кб(появление объекта земли) в архиве.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://depositfiles.com/files/q6vr26ay9"&gt;СКАЧАТЬ (500 кб ZIP)&amp;nbsp;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-6790504549705108247?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/6790504549705108247/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/6790504549705108247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/6790504549705108247'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/blog-post.html' title='Кватернионы и маленький новый мир'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jF5mxBU2Wok/TI9FW2ZScPI/AAAAAAAAALU/1iOpcKosZso/s72-c/engine+2010-09-14+13-45-57-45.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-3290805353015479740</id><published>2010-09-08T10:25:00.000-07:00</published><updated>2010-09-08T10:26:05.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Новый полёт!</title><content type='html'>Очередная новость о разработке движка. Реализовано:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jF5mxBU2Wok/TIfFEUu350I/AAAAAAAAAKc/rHWnifnywaE/s1600/engine+2010-09-08+21-07-58-17.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_jF5mxBU2Wok/TIfFEUu350I/AAAAAAAAAKc/rHWnifnywaE/s400/engine+2010-09-08+21-07-58-17.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;подобие инерции&lt;/li&gt;&lt;li&gt;плавный газ и тормоз&lt;/li&gt;&lt;li&gt;полёт в двух осях свободы(есть баги)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Сцена осталась неизменна, Вы летаете вдоль ряда кораблей клонов. Отличие в том, что теперь можно полетать вокруг них и при этом движения корабля более реалистичны из-за инерции.&lt;br /&gt;&lt;b&gt;Управление:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;W - газ&lt;/b&gt;&lt;br /&gt;&lt;b&gt;S - тормоз&lt;/b&gt;&lt;br /&gt;&lt;b&gt;A - левый поворот&lt;/b&gt;&lt;br /&gt;&lt;b&gt;D - правый поворот&lt;/b&gt;&lt;br /&gt;&lt;b&gt;стрелка вверх - нос корабля задерётся, летим вверх&lt;/b&gt;&lt;br /&gt;&lt;b&gt;стрелка вниз - наоборот&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Самое необычное в этой версии - это матричные преобразования над векторами, впервые применённые в движке.&lt;br /&gt;При многочисленных поворотах возникают глюки камеры - побочный эффект как-бы...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://depositfiles.com/files/f32o1gmv6"&gt;СКАЧАТЬ&lt;/a&gt; пример к статье - 150 кб&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-3290805353015479740?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/3290805353015479740/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/engine-new-fly.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3290805353015479740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/3290805353015479740'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/engine-new-fly.html' title='Новый полёт!'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jF5mxBU2Wok/TIfFEUu350I/AAAAAAAAAKc/rHWnifnywaE/s72-c/engine+2010-09-08+21-07-58-17.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-2708034708922094904</id><published>2010-09-07T00:33:00.000-07:00</published><updated>2010-09-07T00:44:47.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='Мечты'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>Serov Space Strike идея игры</title><content type='html'>Хочу придать всеобщей огласке план(идею) игры которая сейчас мной создаётся, основой игры станет тот самый движок, который я пишу на протяжении последнего месяца...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Serov Space Strike&lt;/b&gt; (космическая стрелялка)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;графическая библиотека - &lt;a href="http://www.opengl.org/"&gt;OpenGL&lt;/a&gt;&lt;/li&gt;&lt;li&gt;звуковая библиотека - &lt;a href="http://connect.creativelabs.com/openal/default.aspx"&gt;OpenAL&lt;/a&gt;&lt;/li&gt;&lt;li&gt;среда разработки(компилятор) - &lt;a href="http://www.openwatcom.org/index.php/Main_Page"&gt;Open Watcom&lt;/a&gt;&lt;/li&gt;&lt;li&gt;язык разработки - &lt;a href="http://ru.wikipedia.org/wiki/C%2B%2B"&gt;С++&lt;/a&gt;&lt;/li&gt;&lt;li&gt;средство разработки моделей и сцен - &lt;a href="http://www.blender.org/"&gt;Blender&lt;/a&gt;&lt;/li&gt;&lt;li&gt;целевая платформа - &lt;a href="http://www.microsoft.com/"&gt;Windows PC&lt;/a&gt; (XP, Vista, Seven) &amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;Основная идея игры:&lt;/u&gt;&lt;br /&gt;Вы - пилот космического истребителя и единственная ваша задача - ВЫЖИТЬ. Вас атакуют другие истребители, а Вы беспощадно уничтожаете врагов...&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;u&gt;Подробнее:&lt;/u&gt;&lt;br /&gt;Истребитель игрока появляется в бесконечной синеве, игрок не знает ничего о себе. Единственное, что известно - вокруг враги. Они появляются на определённом удалении от игрока и начинают движение в его сторону. Возможно у игрока будут союзники, их наличие сильно разнообразит игру, т.к. все враги перестанут гоняться за одним игроком, а игрок сможет выбирать кого ему атаковать.&lt;br /&gt;Что-бы расправиться с противником у игрока в его распоряжении есть лазерная пушка, такие-же пушки есть и у врага.&lt;br /&gt;&lt;br /&gt;Планируется, что в игре будут юниты одного типа - истребители. Это упростит разработку на раннем этапе... Больше типов техники появиться потом(после разработки первой версии).&amp;nbsp;Кроме игрока и ботов будут присутствовать третий тип объектов - статика( валуны в космосе, которые при столкновении уменьшают уровень здоровья корабля ).&lt;br /&gt;&lt;br /&gt;Движок полностью самописный: столкновения на основе ограничивающих радиусов, физика кораблей - произвольная, но возможно для реалистичности прикрутить например &lt;a href="http://www.ode.org/"&gt;ODE&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Такова идея игры, вроде описал подробно.&lt;br /&gt;Пишите свои идеи и предложения!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-2708034708922094904?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/2708034708922094904/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/serovspacestrike.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2708034708922094904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2708034708922094904'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/serovspacestrike.html' title='Serov Space Strike идея игры'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-5638760569652601748</id><published>2010-09-06T11:48:00.000-07:00</published><updated>2010-09-06T11:58:44.240-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='новое'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='релизы'/><title type='text'>Полёт камеры в 3D</title><content type='html'>Предлагаю вашему вниманию очередную новость с фронта разработки "игрового движка". Был благополучно написан класс камеры который реализует слежение за объектом в 3D пространстве.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jF5mxBU2Wok/TIU1GSonNJI/AAAAAAAAAJ8/bBosT8zRFLM/s1600/engine+2010-09-06+22-31-30-82.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_jF5mxBU2Wok/TIU1GSonNJI/AAAAAAAAAJ8/bBosT8zRFLM/s400/engine+2010-09-06+22-31-30-82.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp; На изображении видно некое подобие космического корабля справа, а слева - ещё десять таких же кораблей построенных в ряд. С помощью стрелок на клавиатуре можно "управляя" кораблём пролететь мимо всех остальных кораблей...&lt;br /&gt;&lt;br /&gt;Хотя перемещение примитивно, а приложение выглядит грустно - камера работает, она следит за центральным кораблём, а корабль передвигается в трёхмерном пространстве, безмолвно минуя своих клонов.&lt;br /&gt;&lt;br /&gt;Дальнейшая работа над программой будет направлена на мягкость передвижения камеры и необходимость научить корабль летать, а не "скользить по рельсам".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://depositfiles.com/files/c2zf2uwox"&gt;СКАЧАТЬ&lt;/a&gt; пример к статье (150 кб)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-5638760569652601748?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/5638760569652601748/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/enginecameratest.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/5638760569652601748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/5638760569652601748'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/enginecameratest.html' title='Полёт камеры в 3D'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jF5mxBU2Wok/TIU1GSonNJI/AAAAAAAAAJ8/bBosT8zRFLM/s72-c/engine+2010-09-06+22-31-30-82.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-756797834288501929</id><published>2010-09-04T11:10:00.000-07:00</published><updated>2010-09-05T01:28:02.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Новости с фронта разработки</title><content type='html'>Краткая статья о том как пишется моё великое творение игровой индустрии. Думаю читателям будет интересно какие технологии использует приложение и как оно работает...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jF5mxBU2Wok/TIKIdVY6XlI/AAAAAAAAAJc/rmnA4CowRG4/s1600/engine+2010-09-04+21-56-11-04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_jF5mxBU2Wok/TIKIdVY6XlI/AAAAAAAAAJc/rmnA4CowRG4/s400/engine+2010-09-04+21-56-11-04.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Сначала ещё раз поясню, что движок пишется на языке &lt;i&gt;C++&lt;/i&gt; в среде компилятора &lt;i&gt;Open Watcom&lt;/i&gt;, графика выводится через &lt;i&gt;OpenGL&lt;/i&gt;(в будущем возможно появиться версия с поддержкой &lt;i&gt;DirectX 9&lt;/i&gt;).&lt;br /&gt;Используемый &lt;i&gt;СИ&lt;/i&gt; укладывается в стандарты и замена компилятора в случае чего не составит труда, это позволит перейти например в &lt;i&gt;Visual C++&lt;/i&gt;, но пока меня полностью устраивает &lt;i&gt;Watcom&lt;/i&gt;.&lt;br /&gt;Движок пишется в виде нескольких независимых классов реализующих разные функции, при этом я пытаюсь достичь такой гармонии, чтобы подмена одного класса не нарушила общей работы приложения, это необходимо для будущего совершенствования (например подключение &lt;i&gt;DirectX&lt;/i&gt; вместо &lt;i&gt;OpenGL&lt;/i&gt;).&lt;br /&gt;В довесок к собственно приложению (игре) были написаны ( и ещё будут ) дополнительные утилиты, например импортёр из формата &lt;i&gt;blender&lt;/i&gt; в &lt;i&gt;SOF&lt;/i&gt;, а сам формат(&lt;i&gt;serov object format&lt;/i&gt;) был спроектирован для хранения геометрии объектов и текстуры.&lt;br /&gt;На данный момент в приложении нет ни одной сторонней библиотеки(разработки), всё самописное. В будущем возможно появиться лишь сторонний физический движок, поскольку написать хороший собственный не получиться... Далее технология и нем;ного о ней:&lt;br /&gt;&lt;b&gt;ВВОД &lt;/b&gt;- клавиатура в текущей версии обрабатывается на примитивном уровне с помощью &lt;i&gt;GetKeyboardState&lt;/i&gt;, в будущем обязательный переход на &lt;i&gt;DirectInput&lt;/i&gt;, но пока пойдёт...&lt;br /&gt;&lt;b&gt;ВИДЕО&lt;/b&gt; - &lt;i&gt;OpenGL&lt;/i&gt; с использованием буферный объектов, минимальная версия &lt;i&gt;OGL&lt;/i&gt; для запуска текущей версии приложения 1.5, если версия ниже приложение просто не запускается...&lt;br /&gt;&lt;b&gt;ВРЕМЯ&lt;/b&gt; - расчёт прошедшего времени с помощью &lt;i&gt;QueryPerformanceCounter&lt;/i&gt;, для меня кстати было большим открытием, что одна милисекунда - это большой и "неточный" промежуток времени(&lt;i&gt;GetTickCount&lt;/i&gt; не подходит).&lt;br /&gt;&lt;b&gt;МАТЕМАТИКА&lt;/b&gt; - небольшие классы для матриц(4*4) и векторов(4), в будущем переход на &lt;i&gt;SSE&lt;/i&gt;, но пока просто &lt;i&gt;FPU&lt;/i&gt;.&lt;br /&gt;Ну вот собственно и всё, что пока было написано. Физика, движение камеры, логика находятся в зачаточном состоянии и не заслуживают пока внимания.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-756797834288501929?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/756797834288501929/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/engine.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/756797834288501929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/756797834288501929'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/09/engine.html' title='Новости с фронта разработки'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jF5mxBU2Wok/TIKIdVY6XlI/AAAAAAAAAJc/rmnA4CowRG4/s72-c/engine+2010-09-04+21-56-11-04.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-1614391666274998575</id><published>2010-08-26T04:22:00.000-07:00</published><updated>2010-09-05T01:29:24.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Самолёт в 3D</title><content type='html'>Серия статей о программировании движка продолжается, перед вами очередная(вторая) часть.&lt;br /&gt;На данный момент в движке реализовано&lt;br /&gt;- собственный файловый формат (SOF)&lt;br /&gt;- использование буферных обьектов&lt;br /&gt;Вот каким образом выглядел самолёт в Blender&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jF5mxBU2Wok/THZNiEs1TgI/AAAAAAAAAJI/4UZXE0oWyT0/s1600/blender+2010-08-26+14-47-01-76.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_jF5mxBU2Wok/THZNiEs1TgI/AAAAAAAAAJI/4UZXE0oWyT0/s320/blender+2010-08-26+14-47-01-76.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;А вот как он выглядит в окне программы...&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jF5mxBU2Wok/THZNuEJUOcI/AAAAAAAAAJQ/u-BdYGCbNJA/s1600/engine+2010-08-26+14-44-59-46.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_jF5mxBU2Wok/THZNuEJUOcI/AAAAAAAAAJQ/u-BdYGCbNJA/s320/engine+2010-08-26+14-44-59-46.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Если скачать пример к этой статье, то с помощью стрелок и клавишь 4, 6 на нумпаде можно осмотреть самолёт во всей его красе...&lt;br /&gt;Впереди много работы, но думаю через месяц можно будет на этом самом самолёте полетать...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://depositfiles.com/files/852991s2k"&gt;СКАЧАТЬ&lt;/a&gt; пример (550 кб)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-1614391666274998575?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/1614391666274998575/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/08/flyin3d.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1614391666274998575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1614391666274998575'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/08/flyin3d.html' title='Самолёт в 3D'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jF5mxBU2Wok/THZNiEs1TgI/AAAAAAAAAJI/4UZXE0oWyT0/s72-c/blender+2010-08-26+14-47-01-76.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-2454983480019361741</id><published>2010-08-19T07:33:00.000-07:00</published><updated>2010-09-05T01:29:50.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Летающие кубики OpenGL</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jF5mxBU2Wok/TG1ATXHEMCI/AAAAAAAAAI4/aVnMS43OKIY/s1600/vitalijserov_eng.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_jF5mxBU2Wok/TG1ATXHEMCI/AAAAAAAAAI4/aVnMS43OKIY/s320/vitalijserov_eng.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Привет всем тайным поклонникам моего творчества. Спасибо вам зо то, что ВЫ всё ещё появляетесь на сайте, несмотря на то, что программы уже давно не обновляются. В этой статье я хочу показать прогресс в написании собственной игры и даже привести пример(примитив, но сделал сам) разработки. Также хочу напомнить, что если вы хотите некого улучшения уже вышедших программ, то пишите на форуме. Полное молчание я расцениваю как их идеальность(никому не нужность).&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Итак, уже давольно давно я обьявил о начале разработки собственной 3D игры. Предпологалось, что игра будет в жанре "симулятор" и всё. Более ничего решено не было... &lt;br /&gt;Две недели назад были точно установлены ключевые моменты для разработки движка:&lt;br /&gt;1 - разработка на языке C++ (компилятор Open Watcom C++).&lt;br /&gt;2 - рендером выступит OpenGL(версия 2.1 минимум).&lt;br /&gt;3 - аудио вывод openAL.&lt;br /&gt;4 - разработка моделей Blender.&lt;br /&gt;5 - физика собственного написания.&lt;br /&gt;Движок планируется как бесплатное ПО с закрытым исходным кодом. В первых версиях будут предприняты все усилия для вывода картинки и "геймплея" на уровне игры "3D инструктор 2.0".&lt;br /&gt;Принципиальные отличия от више указанной игры(планируется):&lt;br /&gt;1 - частота кадров минимум 60.(Athlon 3000+)&lt;br /&gt;2 - загрузка памяти системы - менее 256 мб.&lt;br /&gt;3 - загрузка памяти видео карты - менее 64 мб.(потребуются вершинные шейдеры)&lt;br /&gt;Первую демо версию(рабочую) планирую написать к концу декабря 2010 года. За две прошедшие недели в ходе экспериментов в 3D пространстве было написано чудо, ссылка на которое есть внизу статьи. В мини примере реализовано:&lt;br /&gt;1 - вращения двух кубов ( стрелки )&lt;br /&gt;2 - управление камерой ( клавиши нумпада(8,4,6,2), плюс, минус )&lt;br /&gt;Миинимальные требования к игре - OpenGL 1.5 или выше...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://depositfiles.com/files/9rs15abwu"&gt;СКАЧАТЬ&lt;/a&gt; пример EXE (24 кб)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-2454983480019361741?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/2454983480019361741/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/08/fly-kub-opengl.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2454983480019361741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2454983480019361741'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/08/fly-kub-opengl.html' title='Летающие кубики OpenGL'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jF5mxBU2Wok/TG1ATXHEMCI/AAAAAAAAAI4/aVnMS43OKIY/s72-c/vitalijserov_eng.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-7799464320089954328</id><published>2010-07-30T04:16:00.000-07:00</published><updated>2010-09-05T01:30:55.135-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='мультимедиа'/><title type='text'>Исправление ошибки The KMPlayer ..</title><content type='html'>Наверно всем пользователям плеера KMP&amp;nbsp;знакома&amp;nbsp;такая досадная ошибка.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jF5mxBU2Wok/TFK0RjFhRmI/AAAAAAAAAIw/Uh_j1aqkYhE/s1600/error_kmp_class_not_register.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_jF5mxBU2Wok/TFK0RjFhRmI/AAAAAAAAAIw/Uh_j1aqkYhE/s320/error_kmp_class_not_register.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;После сообщения с текстом "Класс не зарегистрирован" плеер появляется как-бы с прозрачным окном и складывается ощущение, что плеер не работает, но если открыть им любой видео(аудио) файл воспроизведение начинается без ошибок.&lt;br /&gt;&lt;br /&gt;У людей которые писали о этом на форумах в большинстве случаев стоит Виста или Севен. Видимо из-за этого, максимум, что говорят им в ответ - запускайте программу от имени администратора.&lt;br /&gt;&lt;br /&gt;Поняв, что помощи ждать неоткуда, я начал экперементировать с этим плееров и вот результат моих изысканий... Виновником торжества оказался "Album Art" встроенный в KMP, этот "арт" представляет из себя красивую заставку для плеера(а также библиотеку файлов и что-то ещё).&lt;br /&gt;&lt;br /&gt;Что-бы плеер запускался без ошибок, Вам потребуется запустить "&lt;b&gt;KMPlayer Setup Wizard&lt;/b&gt;"(находится в "Все программы - The KMPlayer").&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1&lt;/b&gt; - Выбрать "User define Setting"&lt;br /&gt;&lt;b&gt;2&lt;/b&gt; - Жмём далее(Next) до пункта "Album Art" и выключаем его соответствующим флажком.&lt;br /&gt;&lt;b&gt;3&lt;/b&gt; - Жмём далее пока не увидим пункт Финиш.&lt;br /&gt;&lt;br /&gt;Кстати можно изменить и другии настройки, например я всегда ставлю настройку качества "Quality". После запуска The KMPlayer ошибка появиться больше не должна...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-7799464320089954328?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/7799464320089954328/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/07/check-error-kmp.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/7799464320089954328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/7799464320089954328'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/07/check-error-kmp.html' title='Исправление ошибки The KMPlayer ..'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jF5mxBU2Wok/TFK0RjFhRmI/AAAAAAAAAIw/Uh_j1aqkYhE/s72-c/error_kmp_class_not_register.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-2710376795390862827</id><published>2010-05-09T04:18:00.000-07:00</published><updated>2010-05-19T19:44:05.675-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Узнаём загрузку процессора в процентах</title><content type='html'>Ещё одна статья о программировании на языке СИ с плюсами в среде компилятора &lt;i&gt;Open Watcom&lt;/i&gt;. Сегодня я расскажу о собственном опыте по выяснению процентной загруженности процессора в операционной системе &lt;i&gt;Windows&lt;/i&gt;.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Немного теории... Итак, в соответствии с той статьёй по которой я сам вникал с эту тему(&lt;a href="http://pblog.ru/?p=98"&gt;&lt;i&gt;http://pblog.ru/?p=98&lt;/i&gt;&lt;/a&gt;) нужно вызвать функцию &lt;i&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms725506(VS.85).aspx"&gt;ZwQuerySystemInformation&lt;/a&gt;&amp;nbsp;&lt;/i&gt;которая даёт информацию по времени простоя и работы процессора в разных режимах, затем рассчитать проценты загрузки процессора вручную и вывести результат на экран...&lt;br /&gt;Одно большое "НО" - функция эта не содержится в стандартных заголовочных файлах и нужно либо &lt;a href="http://vitalijserov.blogspot.com/2010/04/lib-dll.html"&gt;создать lib файл&lt;/a&gt;, либо загрузить её динамически(я так и делал). Также придётся прописать все структуры вручную...&lt;br /&gt;В отличии от примера из выше указанной статьи я написал просто консольное приложение, программа просит нажать кнопку пуска 10 раз и делает замер загрузки процессора в промежутках между этими нажатиями.&lt;br /&gt;&lt;br /&gt;В коде происходит динамическая загрузка библиотеки и запрос адреса процедуры...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;lib = LoadLibrary("Ntdll.dll");&lt;br /&gt;ZwQuerySystemInformation func =(ZwQuerySystemInformation)GetProcAddress(lib,"ZwQuerySystemInformation");&lt;/blockquote&gt;&lt;br /&gt;Далее вызываем эту функцию 11 раз, один раз перед циклом и 10 раз в нём.&lt;br /&gt;&lt;blockquote&gt;func(SystemProcessorTimes,&lt;br /&gt;&amp;amp;CurrentSysProcTimes[0],&lt;br /&gt;sizeof(CurrentSysProcTimes),&lt;br /&gt;&amp;nbsp;0); &amp;nbsp;&lt;/blockquote&gt;Время замеряем с помощью GetTickCount(), тут же расчёт интервала времени.&lt;br /&gt;&lt;blockquote&gt;nowtime = GetTickCount();&lt;br /&gt;pertime = nowtime - oldtime;&lt;br /&gt;oldtime = nowtime;&lt;/blockquote&gt;Далее вычисляем время простоя процессора и процент его загрузки...&lt;br /&gt;&lt;blockquote&gt;temp /= 10000; //переводим из 100 наносекунд в миллисекунды&lt;br /&gt;temp /= GetProcessorsCount(); //делим на количество ядер&lt;br /&gt;temp = pertime - temp;&lt;br /&gt;temp = temp/(float)pertime*100;&lt;/blockquote&gt;&lt;br /&gt;Скачать файл с исходным кодом можно &lt;a href="http://depositfiles.com/files/83r3ex48a"&gt;здесь&lt;/a&gt;.&lt;br /&gt;Скачать EXE программу можно &lt;a href="http://depositfiles.com/files/u8ub8w23x"&gt;здесь&lt;/a&gt;.&lt;br /&gt;Если что, пишите свои вопросы, я постараюсь всем ответить.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-2710376795390862827?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/2710376795390862827/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/05/processor-usage-in-open-watcom.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2710376795390862827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2710376795390862827'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/05/processor-usage-in-open-watcom.html' title='Узнаём загрузку процессора в процентах'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-1848696066808594134</id><published>2010-04-21T08:16:00.000-07:00</published><updated>2010-05-19T19:40:47.717-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='Мечты'/><title type='text'>Сниффер в ТрафПатрул</title><content type='html'>На днях заметив на &lt;a href="http://programmersforum.ru/showthread.php?t=93135"&gt;форуме программистов&lt;/a&gt; пост посвященный написанию(доработке) &lt;a href="http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0"&gt;сниффера&lt;/a&gt;, я подумал, что неплохо бы было засунуть сниффер в &lt;a href="http://serovsoft.0fees.net/index1.php?page_id=11"&gt;ТрафПатрул&lt;/a&gt;.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Эта чисто теоретическая идея, если воплотить её в жизнь, добавила бы в ТрафПатрул одну новую и очень нужную функцию: &lt;b&gt;ТРАФПАТРУЛ БУДЕТ ЗНАТЬ КТО ВОРУЕТ &amp;nbsp;ТРАФИК&lt;/b&gt;. Т.е. будет выводится список программ с активным сетевым соединением. Так-же в моей голове поселилась идея о более красивом и удобном интерфейсе, чем у предыдущей версии, т.к. перекрывая собой правый нижний угол программа изрядно бесит большинство пользователей(почти не возможно или очень не удобно пользоваться корзиной). Вариантом нового оформления является работа программы через &lt;a href="http://www.opengl.org/"&gt;OpenGL&lt;/a&gt; интерфейс.&lt;br /&gt;Стоит отметить, что идея вставить в ТрафПатрул сниффер появилась очень давно, но реально воплотимой стала недавно.&lt;br /&gt;Время конечно покажет что удастся сделать, наверно как всегда всех планируемых функций я не воплощу, но постараюсь сделать многое... Естественно, что новый ТрафПатрул будет написан "с нуля", на языке C++ в среде &lt;a href="http://www.openwatcom.org/index.php/Main_Page"&gt;Open Watcom&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;п.с. на сайте файлового архива уже давно лежат исходные коды некоторых моих программ, в том числе и ТрафПатрула...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-1848696066808594134?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/1848696066808594134/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/blog-post_21.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1848696066808594134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/1848696066808594134'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/blog-post_21.html' title='Сниффер в ТрафПатрул'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-4835056416215625189</id><published>2010-04-17T22:31:00.000-07:00</published><updated>2010-05-19T19:44:51.239-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>"Хорошие" имена функций экспорта DLL</title><content type='html'>Опять статья и опять про компилятор &lt;b&gt;Open Watcom&lt;/b&gt;. На этот раз коротко о том, как создавать &lt;i&gt;DLL&lt;/i&gt; библиотеки в среде &lt;i&gt;Open Watcom&lt;/i&gt; и не просто библиотеки, а библиотеки с именами экспортных функций без всяких подчёркиваний и значков "&lt;i&gt;@4, @8, @12&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Коротко о том, что значат выше указанные комбинацией с символом собачки(&lt;i&gt;@&lt;/i&gt;), это удобный способ для контроля количества передаваемых параметров, например если передаём функции два &lt;i&gt;int&lt;/i&gt; параметра(каждый по 4 байта), то в экспорте появится функция "&lt;i&gt;_функция@8&lt;/i&gt;". Конечно это хорошо, что компилятор обеспечивает проверки разных уровней и уберегает нас от ошибок, но где например у &lt;i&gt;Microsoft&lt;/i&gt;`а вы видели такие несуразные имена функций. Всегда и везде экспортные функции не имеют лишних символов в названии. Итак, нам надо заставить &lt;i&gt;Open Watcom C &lt;/i&gt;заставить генерировать правильные имена функций в экспортной таблице &lt;i&gt;DLL&lt;/i&gt;(библиотека&amp;nbsp;динамической линковки на всякий случай). Для начала нужно создать проект &lt;i&gt;DLL&lt;/i&gt;, для этого создайте проект как описано &lt;a href="http://vitalijserov.blogspot.com/2010/04/open-watcom-c.html"&gt;здесь&lt;/a&gt;, но при выборе типа приложения вместо "&lt;i&gt;Windowed Executable&lt;/i&gt;" выбираем "&lt;i&gt;Dynamic Link Library [.dll]&lt;/i&gt;". &lt;br /&gt;Дальше создаём файл исходного кода и вставляем код, который видим внизу, единственное ограничение файл должен иметь разрешение "&lt;i&gt;.c&lt;/i&gt;"(к сожалению я так и не смог сделать нормальные имена в &lt;i&gt;C++ &lt;/i&gt;компиляторе и пока доступна версия только для СИ, это накладывает ограничения на возможности, т.к. нельзя использовать ООП(объектно ориентированное программирование)).&lt;br /&gt;Содержание '.c' файла для DLL:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;#include "windows.h"&lt;br /&gt;#include "stdio.h"&lt;stdio.h&gt;&lt;windows.h&gt;&lt;br /&gt;&lt;br /&gt;#define EXPORT FAR PASCAL __export&lt;br /&gt;&lt;br /&gt;long EXPORT FooMe1(WORD w1, DWORD w2, WORD w3) &lt;br /&gt;{ &lt;br /&gt;char buff[128]; &lt;br /&gt;sprintf( buff, "FooMe1: w1=%hx, w2=%lx, w3=%hx",w1, w2, w3 ); &lt;br /&gt;MessageBox( NULL, buff, NULL, MB_OK ); &lt;br /&gt;return( w1 + w2 + w3); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;long EXPORT FooMe2( DWORD w1, WORD w2 ) &lt;br /&gt;{ &lt;br /&gt;char buff[128]; &lt;br /&gt;sprintf( buff, "FooMe2: w1=%lx, w2=%hx", w1, w2 );&lt;br /&gt;MessageBox( NULL, buff, NULL, MB_OK ); &lt;br /&gt;return( w1 + 1 ); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;int PASCAL DllEntryPoint(HINSTANCE hinstDLL, &lt;br /&gt;DWORD fdwReason,    &lt;br /&gt;LPVOID lpvReserved) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;/*remove the warning of the compiler*/&lt;br /&gt;hinstDLL = hinstDLL;&lt;br /&gt;fdwReason = fdwReason;&lt;br /&gt;lpvReserved = lpvReserved;&lt;br /&gt;/*start is comlete, show the box*/&lt;br /&gt;MessageBox( NULL, "32-bit DLL Started", NULL, MB_OK ); &lt;br /&gt;return( 1 ); &lt;br /&gt;}&lt;/windows.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;В фалйле две функции&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;FooMe1&lt;/b&gt;,&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;FooMe2&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;они экспортные и функция страрта/стопа библиотеки &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;b&gt;DllEntryPoint&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;. После компиляции и сборке проекта в списке экспорта получим такие записи &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;_FooMe1@12&lt;/b&gt;, &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;_FooMe2@8&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt; - правда некрасиво. Кстати смотрим экспорт любой утилитой для &lt;a href="http://ru.wikipedia.org/wiki/Portable_Executable"&gt;PE&lt;/a&gt; файлов, я использую "&lt;i&gt;CFF Explorer&lt;/i&gt;" взятый с &lt;a href="http://cracklab.ru/download.php?action=list&amp;amp;n=MzU="&gt;cracklab.ru&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;Теперь начинаем мучить Open Watcom делая его имена экспорта нормально-человеческими. Я это делал долго, но оказалось дело в одном флажке, итак заходим в меню указанное на картинке...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jF5mxBU2Wok/S8qUoUATJHI/AAAAAAAAADA/k_fY_sJ2gwE/s1600/1111.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://1.bp.blogspot.com/_jF5mxBU2Wok/S8qUoUATJHI/AAAAAAAAADA/k_fY_sJ2gwE/s400/1111.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Дальше ставим галочку(флажок) в месте обведённом на следующей картинке...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jF5mxBU2Wok/S8qVTOE2KDI/AAAAAAAAADI/xveMXfIYLks/s1600/2222.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://3.bp.blogspot.com/_jF5mxBU2Wok/S8qVTOE2KDI/AAAAAAAAADI/xveMXfIYLks/s400/2222.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Компилируем и смотрим экспорт, УРА в экспорте имена &lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;FooMe1&lt;/b&gt;,&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;FooMe2&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&amp;nbsp;без всяких извращений...&lt;br /&gt;В ближайшее время надеюсь дополню статью, т.к. тут нет объяснения ситуации с компилятором C++. Компилятор СИ с плюсами вообще большой извращенец в именах экспортных функций он добавляет много-много всего. Например тот-же проект, но откомпилированный в ПЛЮСАХ даёт такие экспортные имена &lt;i&gt;&lt;b&gt;W?FooMe1$n(usulus)l&lt;/b&gt;, &lt;b&gt;W?FooMe2$n(ulus)l&lt;/b&gt;&lt;/i&gt;. Меня терзают жуткие сомнения, что всё дело в строке "&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;stdio.h&gt;&lt;windows.h&gt;&lt;b&gt;#define EXPORT FAR PASCAL __export&lt;/b&gt;&lt;/windows.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/i&gt;", её надо писать как-то по другому, но как. Однако как вариант можно использовать СИ и СИ++ файлы в одном проекте, при это экспорт делать из СИ файлов, а дальше вызывать СИ++ файл и работать в нём...&lt;br /&gt;Ещё одно замечание, если убрать из строки&amp;nbsp;"&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;stdio.h&gt;&lt;windows.h&gt;&lt;b&gt;#define EXPORT FAR PASCAL __export&lt;/b&gt;&lt;/windows.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/i&gt;" слово &lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;stdio.h&gt;&lt;windows.h&gt;&lt;b&gt;PASCAL&lt;/b&gt;&lt;/windows.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/i&gt;, то в строке экспорта появиться символ подчёркивания после имён функции(&lt;b&gt;FooMe1_&lt;/b&gt;, &lt;b&gt;FooMe2_&lt;/b&gt;), при этом параметры к функции будут передаваться через регистры(зависит от настроек компилятора). Сам по себе способ вызова через регистры лучше не использовать, т.к. возможны ошибки, особенно если DLL написанная в Open Watcom используется например в Delphi, хотя методом проб и ошибок можно настроить всё что угодно. Возможно например создать функцию c (void) параметрами, а саму функцию написать на встроенном ассемблере...&lt;br /&gt;&lt;br /&gt;Рекомендуемая на сайте &lt;a href="http://www.openwatcom.org/index.php/Writing_DLLs"&gt;Open Watcom&lt;/a&gt; строка декларации &lt;i&gt;&lt;b&gt;#define EXPORT __declspec(dllexport)&lt;/b&gt;&lt;/i&gt; по сути равносильна строке&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;i&gt;&lt;stdio.h&gt;&lt;windows.h&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;#define EXPORT FAR __export&lt;/b&gt;&lt;/span&gt;&lt;/windows.h&gt;&lt;/stdio.h&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;stdio.h&gt;&lt;windows.h&gt;.&lt;/windows.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Заметьте, что в статье нет ни слова о том как использовать DLL в своих EXE или DLL файлах предполагается, что Вы это умеете.&lt;br /&gt;Вопросы, замечания и вообще комментарии приветствуются....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-4835056416215625189?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/4835056416215625189/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/dll.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/4835056416215625189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/4835056416215625189'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/dll.html' title='&quot;Хорошие&quot; имена функций экспорта DLL'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jF5mxBU2Wok/S8qUoUATJHI/AAAAAAAAADA/k_fY_sJ2gwE/s72-c/1111.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-6010619323679572880</id><published>2010-04-15T08:38:00.000-07:00</published><updated>2010-05-19T19:45:38.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='Мечты'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Попытка подружиться с DirectX3D</title><content type='html'>Сегодня вечером был написан первый класс для будущего движка игры.&lt;br /&gt;Этот класс инкапсулирует в приложение интерфейс &lt;i&gt;IDirect3D9&lt;/i&gt;. Сам по себе класс на сегодняшний момент является чисто теоретическим и почти полностью повторяет одноимённый класс из &lt;i&gt;DirectX SDK&lt;/i&gt;. &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Интересен он может быть только потому, что &lt;i&gt;COM&lt;/i&gt; интерфейс в нём используется несколько по своему, а вызов осуществляется через ассемблерные вставки в язык СИ++. Стоит отметить, что я впервые писал для MASM подобного ассемблера(раньше увлекался &lt;i&gt;FASM&lt;/i&gt;`ом) и поэтому не исключены ошибки в коде.&lt;br /&gt;Самым хорошим качеством этого класса является абсолютная независимость от &lt;i&gt;LIB&lt;/i&gt; файлов. В планах написать таким образом целый &lt;i&gt;SDK&lt;/i&gt;. Разве плохо сделать &lt;i&gt;DirectX SDK&lt;/i&gt; без &lt;i&gt;LIB&lt;/i&gt; файлов и весом меньше оригинала в РАЗЫ. Естественно, что класс написан для &lt;b&gt;Open Watcom C++&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Приветствуются любые комментарии по теме...&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;class SVDirect3D9&lt;br /&gt;{&lt;br /&gt;bool fatalerror;&lt;br /&gt;bool created;&lt;br /&gt;/*poiters to functions*/&lt;br /&gt;void *pQueryInterface;&lt;br /&gt;void *pAddRef;&lt;br /&gt;void *pRelease;&lt;br /&gt;void *pRegisterSoftwareDevice;&lt;br /&gt;void *pGetAdapterCount;&lt;br /&gt;void *pGetAdapterIdentifier;&lt;br /&gt;void *pGetAdapterModeCount;&lt;br /&gt;void *pEnumAdapterModes;&lt;br /&gt;void *pGetAdapterDisplayMode;&lt;br /&gt;void *pCheckDeviceType;&lt;br /&gt;void *pCheckDeviceFormat;&lt;br /&gt;void *pCheckDeviceMultiSampleType;&lt;br /&gt;void *pCheckDepthStencilMatch;&lt;br /&gt;void *pCheckDeviceFormatConversion;&lt;br /&gt;void *pGetDeviceCaps;&lt;br /&gt;void *pGetAdapterMonitor;&lt;br /&gt;void *pCreateDevice;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;/*constructor, set the pointers of function*/&lt;br /&gt;SVDirect3D9(UINT sdk_version)&lt;br /&gt;{&lt;br /&gt;fatalerror = false;&lt;br /&gt;created = false;&lt;br /&gt;HINSTANCE dx9dll;&lt;br /&gt;dx9dll = LoadLibrary("d3d9.dll");&lt;br /&gt;if (!dx9dll)&lt;br /&gt;{&lt;br /&gt;fatalerror = true;&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;void *proc;&lt;br /&gt;proc = GetProcAddress(dx9dll, "Direct3DCreate9");&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;FreeLibrary(dx9dll);&lt;br /&gt;fatalerror = true;&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    sdk_version&lt;br /&gt;call    dword ptr proc&lt;br /&gt;mov     pQueryInterface,eax &lt;br /&gt;}&lt;br /&gt;if (!pQueryInterface)&lt;br /&gt;{&lt;br /&gt;FreeLibrary(dx9dll);&lt;br /&gt;fatalerror = true;&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;//set the pointer out table&lt;br /&gt;void *temp = pQueryInterface;&lt;br /&gt;temp += 4; &lt;br /&gt;pAddRef = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pRelease = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pRegisterSoftwareDevice = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pGetAdapterCount = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pGetAdapterIdentifier = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pGetAdapterModeCount = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pEnumAdapterModes = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pGetAdapterDisplayMode = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pCheckDeviceType = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pCheckDeviceFormat = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pCheckDeviceMultiSampleType = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pCheckDepthStencilMatch = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pCheckDeviceFormatConversion = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pGetDeviceCaps = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pGetAdapterMonitor = temp;&lt;br /&gt;temp += 4; &lt;br /&gt;pCreateDevice = temp;&lt;br /&gt;&lt;br /&gt;created = true;&lt;br /&gt;FreeLibrary(dx9dll);  &lt;br /&gt;}/*SVDirect3D9*/&lt;br /&gt;&lt;br /&gt;~SVDirect3D9&lt;br /&gt;{&lt;br /&gt;if (created) Release();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*function*/&lt;br /&gt;inline HRESULT QueryInterface(REFIID riid,&lt;br /&gt;LPVOID *ppvObj)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    ppvObj&lt;br /&gt;push    riid&lt;br /&gt;call    dword ptr pQueryInterface    &lt;br /&gt;}&lt;br /&gt;}                        &lt;br /&gt;inline ULONG AddRef(void)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;call    dword ptr pAddRef&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;inline ULONG Release(void)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;created = false;&lt;br /&gt;call    dword ptr pRelease&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;inline HRESULT RegisterSoftwareDevice(void *pInitializeFunction)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    pInitializeFunction&lt;br /&gt;call    dword ptr pRegisterSoftwareDevice&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;inline UINT GetAdapterCount(void)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;call    dword ptr pGetAdapterCount&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;inline HRESULT GetAdapterIdentifier(UINT Adapter,&lt;br /&gt;DWORD Flags,&lt;br /&gt;D3DADAPTER_IDENTIFIER9 *pIdentifier)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    pIdentifier&lt;br /&gt;push    Flags                 &lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pGetAdapterIdentifier&lt;br /&gt;}&lt;br /&gt;}                                    &lt;br /&gt;inline UINT GetAdapterModeCount(UINT Adapter,&lt;br /&gt;D3DFORMAT Format)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    Format&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pGetAdapterModeCount  &lt;br /&gt;}&lt;br /&gt;}                            &lt;br /&gt;inline HRESULT EnumAdapterModes(UINT Adapter,&lt;br /&gt;D3DFORMAT Format,&lt;br /&gt;UINT Mode,&lt;br /&gt;D3DDISPLAYMODE* pMode)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    pMode&lt;br /&gt;push    Mode&lt;br /&gt;push    Format&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pEnumAdapterModes]&lt;br /&gt;}&lt;br /&gt;}                                &lt;br /&gt;inline HRESULT GetAdapterDisplayMode(UINT Adapter,&lt;br /&gt;D3DDISPLAYMODE *pMode)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    pMode&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pGetAdapterDisplayMode&lt;br /&gt;}&lt;br /&gt;}                                &lt;br /&gt;inline HRESULT CheckDeviceType(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;D3DFORMAT DisplayFormat,&lt;br /&gt;D3DFORMAT BackBufferFormat,&lt;br /&gt;BOOL Windowed)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    Windowed&lt;br /&gt;push    BackBufferFormat&lt;br /&gt;push    DisplayFormat&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pCheckDeviceType       &lt;br /&gt;}&lt;br /&gt;}                            &lt;br /&gt;inline HRESULT CheckDeviceFormat(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;D3DFORMAT AdapterFormat,&lt;br /&gt;DWORD Usage,&lt;br /&gt;D3DRESOURCETYPE RType,&lt;br /&gt;D3DFORMAT CheckFormat)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    CheckFormat&lt;br /&gt;push    RType&lt;br /&gt;push    Usage&lt;br /&gt;push    AdapterFormat&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pCheckDeviceFormat    &lt;br /&gt;}&lt;br /&gt;}                                    &lt;br /&gt;inline HRESULT CheckDeviceMultiSampleType(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;D3DFORMAT SurfaceFormat,&lt;br /&gt;BOOL Windowed,&lt;br /&gt;D3DMULTISAMPLE_TYPE MultiSampleType,&lt;br /&gt;DWORD* pQualityLevels)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    pQualityLevels&lt;br /&gt;push    MultiSampleType&lt;br /&gt;push    Windowed&lt;br /&gt;push    SurfaceFormat&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pCheckDeviceMultiSampleType   &lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;inline HRESULT CheckDepthStencilMatch(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;D3DFORMAT AdapterFormat,&lt;br /&gt;D3DFORMAT RenderTargetFormat,&lt;br /&gt;D3DFORMAT DepthStencilFormat)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    DepthStencilFormat&lt;br /&gt;push    RenderTargetFormat&lt;br /&gt;push    AdapterFormat&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pCheckDepthStencilMatch   &lt;br /&gt;}&lt;br /&gt;}                                        &lt;br /&gt;inline HRESULT CheckDeviceFormatConversion(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;D3DFORMAT SourceFormat,&lt;br /&gt;D3DFORMAT TargetFormat)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    TargetFormat&lt;br /&gt;push    SourceFormat&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pCheckDeviceFormatConversion&lt;br /&gt;}&lt;br /&gt;}                                            &lt;br /&gt;inline HRESULT GetDeviceCaps(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;D3DCAPS9 *pCaps)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    pCaps&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pGetDeviceCaps &lt;br /&gt;}&lt;br /&gt;}                        &lt;br /&gt;inline HMONITOR GetAdapterMonitor(UINT Adapter)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pGetAdapterMonitor&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;inline HRESULT CreateDevice(UINT Adapter,&lt;br /&gt;D3DDEVTYPE DeviceType,&lt;br /&gt;HWND hFocusWindow,&lt;br /&gt;DWORD BehaviorFlags,&lt;br /&gt;D3DPRESENT_PARAMETERS *pPresentationParameters,&lt;br /&gt;IDirect3DDevice9** ppReturnedDeviceInterface)&lt;br /&gt;{&lt;br /&gt;__asm&lt;br /&gt;{&lt;br /&gt;push    ppReturnedDeviceInterface&lt;br /&gt;push    pPresentationParameters&lt;br /&gt;push    BehaviorFlags&lt;br /&gt;push    hFocusWindow&lt;br /&gt;push    DeviceType&lt;br /&gt;push    Adapter&lt;br /&gt;call    dword ptr pCreateDevice    &lt;br /&gt;}&lt;br /&gt;}                                                     &lt;br /&gt;}&lt;/span&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-6010619323679572880?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/6010619323679572880/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/directx3d.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/6010619323679572880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/6010619323679572880'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/directx3d.html' title='Попытка подружиться с DirectX3D'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-2254111119545355574</id><published>2010-04-14T05:21:00.000-07:00</published><updated>2010-05-19T19:46:22.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Маленький класс для работы с реестром</title><content type='html'>В предыдущих моих статьях для компилятора Open Watcom C/C++ был использован загадочный класс для работы с реестром, в этой статье я опубликую его исходный код и надеюсь, что он кому то пригодится...&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Класс этот чем-то напоминает примерно такой же класс из Delphi, однако дельфийский класс конечно намного круче.&lt;br /&gt;Ниже приведён текст класса, нужно сохранить его на своём компьютере в виде .h или .cpp файла.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;/*&lt;br /&gt;Vitalij Serov(serovsoft.0fees.net) for Open Watcom C++&lt;br /&gt;*/&lt;br /&gt;#include &lt;windows.h&gt;&lt;br /&gt;&lt;br /&gt;#define SIZE_OF_KEY_NAME 1024&lt;br /&gt;&lt;br /&gt;class SVReg&lt;br /&gt;{   &lt;br /&gt;unsigned int r_key;&lt;br /&gt;unsigned int access;&lt;br /&gt;HKEY key;&lt;br /&gt;char *keyname;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;&lt;br /&gt;SVReg(void);&lt;br /&gt;~SVReg(void);&lt;br /&gt;void SetKey(unsigned int new_root_key);&lt;br /&gt;bool Open(char* key_name, bool cancreate);&lt;br /&gt;void Close(void);&lt;br /&gt;bool Delete(char*);&lt;br /&gt;int ReadInt(char*);&lt;br /&gt;bool SetInt(char*,int);&lt;br /&gt;bool Exists(char*);&lt;br /&gt;bool SetStr(char*,char*);   &lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;SVReg::SVReg(void)&lt;br /&gt;{&lt;br /&gt;access = KEY_ALL_ACCESS;&lt;br /&gt;r_key = (unsigned int)HKEY_CURRENT_USER;&lt;br /&gt;key = 0;&lt;br /&gt;keyname = new char[SIZE_OF_KEY_NAME];   &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;SVReg::~SVReg(void)&lt;br /&gt;{&lt;br /&gt;if (key) Close();&lt;br /&gt;delete [] keyname;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void SVReg::SetKey(unsigned int new_root_key)&lt;br /&gt;{&lt;br /&gt;if (key) Close();&lt;br /&gt;r_key = new_root_key;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;bool SVReg::Open(char* key_name, bool cancreate)&lt;br /&gt;{&lt;br /&gt;if (*key_name == 0) return false;&lt;br /&gt;strcpy(keyname, key_name);&lt;br /&gt;if (cancreate)&lt;br /&gt;{ &lt;br /&gt;return (bool) (!(RegCreateKeyEx((HKEY)r_key, key_name, 0, NULL, 0, access, NULL, &amp;amp;key, NULL)));&lt;br /&gt;}else{&lt;br /&gt;return (bool) (!(RegOpenKeyEx((HKEY)r_key, key_name, 0, KEY_ALL_ACCESS, &amp;amp;key)));&lt;br /&gt;} &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;bool SVReg::SetStr(char* subkey,char* source)&lt;br /&gt;{&lt;br /&gt;if (!subkey) return false;&lt;br /&gt;if (!source) return false;&lt;br /&gt;int type = REG_SZ;&lt;br /&gt;HKEY lockey = key;&lt;br /&gt;if (!lockey) lockey = (HKEY)r_key;&lt;br /&gt;if (!RegSetValueEx(lockey,&lt;br /&gt;subkey,&lt;br /&gt;0,&lt;br /&gt;type,&lt;br /&gt;(unsigned char*)source,&lt;br /&gt;strlen(source))) return true; &lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;bool SVReg::SetInt(char* subkey,int data)&lt;br /&gt;{&lt;br /&gt;if (!data) return false;&lt;br /&gt;if (!subkey) return false;&lt;br /&gt;int type = REG_DWORD;&lt;br /&gt;HKEY lockey = key;&lt;br /&gt;if (!lockey) lockey = (HKEY)r_key;&lt;br /&gt;if (!RegSetValueEx(lockey, subkey, 0, type, (unsigned char*)&amp;amp;data, 4)) return true; &lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int SVReg::ReadInt(char* subkey)&lt;br /&gt;{&lt;br /&gt;if (!subkey) return 0;&lt;br /&gt;int data = 0;&lt;br /&gt;unsigned long type = REG_DWORD;&lt;br /&gt;unsigned long datasyze = 4;&lt;br /&gt;HKEY lockey = key;&lt;br /&gt;if (!lockey) lockey = (HKEY)r_key;  &lt;br /&gt;RegQueryValueEx(lockey, subkey, 0, &amp;amp;type, (unsigned char*)&amp;amp;data, &amp;amp;datasyze);  &lt;br /&gt;return data;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void SVReg::Close(void)&lt;br /&gt;{&lt;br /&gt;RegCloseKey(key);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;bool SVReg::Delete(char* subkey)&lt;br /&gt;{&lt;br /&gt;HKEY lockey = key;&lt;br /&gt;if (!lockey) lockey = (HKEY)r_key;&lt;br /&gt;return (!RegDeleteKey(lockey, subkey));    &lt;br /&gt;}&lt;/windows.h&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Пример использования этого класса можно найти в предыдущих статьях. Если вы увидели ошибку в работе класса, прошу об этом написать.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-2254111119545355574?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/2254111119545355574/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/blog-post_14.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2254111119545355574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/2254111119545355574'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/blog-post_14.html' title='Маленький класс для работы с реестром'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-8969287997304681109</id><published>2010-04-10T11:28:00.000-07:00</published><updated>2010-05-19T19:47:09.461-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Создание lib файла для DLL библиотеки</title><content type='html'>Итак, продолжение статей о компиляторе &lt;i&gt;Open Watcom&lt;/i&gt;.&lt;br /&gt;На этот раз коротенькая статья посвящена теме создания &lt;i&gt;LIB&lt;/i&gt; файлов для &lt;i&gt;C/C++&lt;/i&gt; компилятора при статической линковке...&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Собственно компилятор насыщен утилитами на любой вкус и цвет, среди них есть утилитка, которая создаёт эти самые &lt;i&gt;LIB&lt;/i&gt; файлы, утилита эта имеет недвусмысленное название &lt;i&gt;wlib.exe.&lt;/i&gt;&lt;br /&gt;В справке компилятора описан механизм использования этой утилиты, так же справку можно получить просто запустив эту утилиту из папки binnt. &lt;br /&gt;Ниже приведённый код &lt;i&gt;BAT&lt;/i&gt; файла иллюстрирует процесс создания &lt;i&gt;LIB&lt;/i&gt; библиотеки для &lt;i&gt;kernel32.dll&lt;/i&gt;. Причём &lt;i&gt;DLL&lt;/i&gt; мы скопируем в корень диска &lt;i&gt;C&lt;/i&gt;.&lt;br /&gt;&lt;blockquote&gt;C:\WATCOM\binnt\wlib.exe implib +kernel32.dll&amp;nbsp;&lt;/blockquote&gt;После выполнения &lt;i&gt;BAT&lt;/i&gt; файла в корневой папке диска &lt;i&gt;C&lt;/i&gt; появился &lt;i&gt;implib.lib&lt;/i&gt; который и является &lt;i&gt;LIB&lt;/i&gt; библиотекой. &lt;i&gt;implib&lt;/i&gt; в строке обращения это и есть имя будущей &lt;i&gt;lib&lt;/i&gt; библиотеки.&lt;br /&gt;&lt;br /&gt;Жду ваших комментариев и вопросов...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-8969287997304681109?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/8969287997304681109/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/lib-dll.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/8969287997304681109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/8969287997304681109'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/lib-dll.html' title='Создание lib файла для DLL библиотеки'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-4550630278181853015</id><published>2010-04-09T09:00:00.000-07:00</published><updated>2010-05-19T19:47:38.065-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Watcom'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Первый проект в Open Watcom C++</title><content type='html'>Как и планировал я делаю маленький пост о том, как сделать первый проект в среде компилятора Open Watcom.&lt;br /&gt;Статья эта нацелена прежде всего на пользователей уже знакомых с C++.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Почему-то Open Watcom сделан не совсем удобным образом, особенно неудобным он является для начинающего программиста. Ниже приведён список наиболее ярко выраженных недочётов компилятора:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;нет поддержки русских символов во встроенном редакторе&lt;/li&gt;&lt;li&gt;нет поддержки пробелов в файловом пути к проекту&lt;/li&gt;&lt;li&gt;нет хорошего мастера нового проекта&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;С первой проблемой&lt;/i&gt; легко справиться либо печатая русский текст например в блокноте и "вставлять" в редакторе Open Watcom, либо используя другой редактор кода(сам компилятор нельзя перенастроить на другой редактор).&lt;br /&gt;&lt;i&gt;Со второй проблемой&lt;/i&gt; нужно справляться путём недопущения в именах папок пробелов(например если проект лежит в папке "Мои документы", то он не откроется, во всяком случае будут глючить утилиты: редактор кода, ресурсов и т.д.).&lt;br /&gt;&lt;i&gt;С третьей проблемой&lt;/i&gt; боремся создавая все нужные файлы ручками&lt;br /&gt;&lt;br /&gt;Итак, пошаговое описание создания проекта в среде &lt;b&gt;Open Watcom C/С++&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Устанавливаем &lt;i&gt;Open Watcom&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Заходим в &lt;i&gt;Пуск &amp;gt;&amp;gt; Все программы &amp;gt;&amp;gt; Open Watcom C - C++ &amp;gt;&amp;gt; IDE&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Нажимаем &lt;i&gt;File &amp;gt;&amp;gt; New Project (Ctrl + N)&amp;nbsp;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Выбираем папку для проекта, учитываем, что в именах папок не должно быть пробелов. Так-же вводим имя файла проекта.&lt;/li&gt;&lt;li&gt;После нажатия кнопки "Сохранить" открывается окно, в котором прописываем поле "&lt;i&gt;Target Name&lt;/i&gt;" - это имя процесса после компиляции программы. Выбираем тип будущей программы, он разделён на целевую систему и тип исполняемого файла. Нас, как пользователей Windows, интересует "&lt;i&gt;Target Environment&lt;/i&gt; = &lt;i&gt;Win32&lt;/i&gt;", дальше если нам нужна консольная программа выбираем "&lt;i&gt;Character-mode Executable&lt;/i&gt;", а если программа с окнами(без консоли) то "&lt;i&gt;Windowed Executable&lt;/i&gt;". Жмём "&lt;i&gt;OK&lt;/i&gt;".&lt;/li&gt;&lt;li&gt;&amp;nbsp;Открылась окно проекта внутри IDE, теперь нужно добавить файл исходного кода... Во первых рекомендую сохранить проект. Затем заходим в папку проекта и вручную создаём файл исходного кода, например "main.c" или "main.cpp" (создать файл можно например создав пустой текстовой документ и сменить его расширение). Переключаемся в IDE и с помощью меню "&lt;i&gt;Sources&lt;/i&gt;" или щелчком в области окна проекта вызываем меню в котором выбираем пункт "&lt;i&gt;New&lt;/i&gt;&lt;i&gt; &lt;/i&gt;Source". В открывшемся меню выбираем наш файл и делаем двойной клик мышью. Имя файла появиться в меню снизу. Теперь закрываем диалог открытия файлов и видим наш ".c" или ".cpp" файл в проекте, открываем его и пишем свою программу, например:&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;return 0;&lt;br /&gt;}&lt;/blockquote&gt;&lt;ol&gt;&lt;li&gt;Сохраняем код и закрываем редактор.&lt;/li&gt;&lt;li&gt;&amp;nbsp;Теперь возвращаемся в IDE и нажимаем F5 или ищем иконку "Make All" или одноимённый пункт меню. После появления надписи "Execution Complete" можно нажимать на иконку бегущего человека, либо найти в меню пункт "Run" или запустить файл из папки проекта вручную.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;Собственно программа готова, можно экспериментировать с компилятором. Сам по себе Open Watcom вещь довольно интересная, по крайней мере попробовать стоит...&lt;br /&gt;п.с. комментарии как всегда приветствуются.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-4550630278181853015?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/4550630278181853015/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/open-watcom-c.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/4550630278181853015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/4550630278181853015'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/open-watcom-c.html' title='Первый проект в Open Watcom C++'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2211443685803605972.post-5307095635170832402</id><published>2010-04-08T09:21:00.000-07:00</published><updated>2010-04-09T02:40:28.836-07:00</updated><title type='text'>Блог стартовал, вспомним историю, заглянем в будушее...</title><content type='html'>Вот и совершился переезд на новый блог.&lt;br /&gt;Теперь мне не надо переживать над такими вещами как работа вспомогательных служб(RSS, свободное место, трафик и другие переживания связанные с хостингом).&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Да и просто мне наверно "по кайфу" постоянно начинать что-то новое... переезжать, закрывать старое. Если вспомнить историю создания сайта на хостинге &lt;b&gt;0fees.net&lt;/b&gt;, то непременно стоит отметить тот факт, что &lt;b&gt;spirt.0fees.net&lt;/b&gt; был с "ламерско - хакерским" уклоном, т.е. сайт должен был содержать незаконный контент и следовательно я избегал русских хостингов таких как &lt;b&gt;narod&lt;/b&gt;, да и php мне нужен был, а хороших русских хостингов, бесплатных, с php, без рекламы не существует наверно. &lt;br /&gt;Не помню как точно, но был найден &lt;b&gt;0fees.net&lt;/b&gt;&lt;b&gt; &lt;/b&gt;и был создан первый сайт &lt;b&gt;spirt.0fees.net &lt;/b&gt;который&lt;b&gt; &lt;/b&gt;перетекал в разные крайности (то становился форумом, то блогом, то снова форумом) и это происходило много раз подряд. В итоге за год существования я совсем не продвинулся в смысле раскрутки своего сайта, сайт просто не успевал набрать популярность, как я его снова закрывал и открывал новый. Первое время на сайте и публиковать было нечего, т.к. я ничего не умел... последствием этого были разные тупые статьи(например: "C++ или Delphi, что лучше?" или "Как взломать программу собственного написания" ), постепенно осознавая всю тупость этих статей, я дабы не позориться закрывал сайт или сносил WordPress. В шизоподобной страсти раскрутить свой сайт я зарегистрировался на сайте &lt;b&gt;programmersforum.ru,&lt;/b&gt; в те времена на этом форуме программистов меня привлёк раздел "Для спамеров", где я и описал свой сайт получив ничтожное количество посетителей и критику, критика конечно была конструктивной, да и на что я рассчитывал, завлекая профессиональных программистов на сайт ламера. Однако всё шло своим чередом... и постепенно мне очень понравился этот форум, люди там хорошие очень ))), именно благодаря им я стал писать свои поделки и откапав на одном сайте(не помню каком) исходник программы для слежения за количеством истраченного трафика, стал этот исходник модифицировать и постепенно исходник перерос в ТрафПатрул(кстати исходник самого последнего ТрафПатрула доступен на сайте www.kolhoz.megabyet.net). Потом было ещё несколько программ, какие-то из них были удачными, какие-то не очень. В конце концов я поступил в одно из местных училищ и количество свободного времени резко сократилось и темпы разработки упали.... Постепенно я почти полностью забросил свои "поделки", чему способствовали поломки компьютера.&lt;br /&gt;После восстановления компа и интернета, взглянув свежим взглядом на свои "программы" я понял, что все они - пузатая мелочь.&amp;nbsp; Хочется издать что-то действительно стоящее, большое, настоящее, и ещё хочется по настоящему зарабатывать.&lt;br /&gt;С целью отойти от разработки старых проектов, я публикую исходные коды всех программ на выше указанном сайте и ухожу в глубокую депрессию. Во время этой депрессии в моём мозгу будет зреть план захвата мира через программное обеспечение, а этот блог станет местом публикации статей о программировании и не только. Хотя в основном конечно программирование - главная тема блога.&lt;br /&gt;Думаю этот сайт останется надолго, во всяком случае очень этого хотелось бы...&lt;br /&gt;Желаю удачи, и хороших мне статей;))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2211443685803605972-5307095635170832402?l=vitalijserov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vitalijserov.blogspot.com/feeds/5307095635170832402/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/blog-post.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/5307095635170832402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2211443685803605972/posts/default/5307095635170832402'/><link rel='alternate' type='text/html' href='http://vitalijserov.blogspot.com/2010/04/blog-post.html' title='Блог стартовал, вспомним историю, заглянем в будушее...'/><author><name>Vitaly Serov</name><uri>http://www.blogger.com/profile/16928874537821388146</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-KaGQoO65qiE/TpCoYAIlysI/AAAAAAAAARs/qDHrrwPRoto/s220/CIMG11110740.jpg'/></author><thr:total>1</thr:total></entry></feed>
