8.01.2020
Рассказ о том, как я создавал (подставить нужное слово)
варианты: свою игру, операционную систему с нуля, космический корабль, антивирус
и далее по списку.
Вы можете пинать меня пинками, закопать пост лопатами или написать свои злобные
комментарии и я буду рад получить от вас все это :)))
У каждого есть свое собственное мнение обо всем на свете и конечно я тоже имею
на это право, потому и опубликовал данный пост.
Я не буду рассказывать о том, что проделал за это время, в какие игры поиграл
или о каких нашел информацию, а потом опубликовал чтобы ждать прихода таких
же единомышленников которых тоже заинтересовали данные игры и мы весело
обсуждали какие они хорошие и что нам в них понравилось, а что нет.
Я расскажу кое-о-чем-другом.
Я расскажу о том, как я вижу вообще все происходящее, приоткрою завесу и попробую
посмотреть на все это как бы со стороны.
ГЛАВА n.
Это не первая глава и не последняя, заключительная. Это некоторая глава с некоторым
неопределенным номером или без номера, отсутствие номера говорит о том, что глава
эта не первая, но и не последняя.
Уже проделана некоторая работа, которая предшествовала появлению данной главы
и будет проделана другая последующая работа.
Например я, в данный момент ищу способ формализовать свои целеустремления в сфере
создания некоторой специфичной игры.
Это компьютерная игра ? Возможно, но в контексте данных рассуждений пока это неважно,
а если вдруг будет важно, то я постараюсь ответить на все возникшие у вас вопросы.
Итак, мой корабль плыл по течению или застрял где-то на отмели. Не то чтобы я не
знал как сняться с мели и плыть дальше, а просто решил на время сойти на берег,
обсохнуть от морских брызг и обдумать дальнейший свой путь.
Отправляться в очередное плавание разработки своей игры я пока не спешил.
Океан огромен, полон опасностей и время которое я проведу в пути будет значительным.
А здесь на берегу, все тихо и спокойно. Ничто не тревожит и ничто не томит душу.
Хотя я конечно уже в предвкушении чего-то зажигательного и необычного. Но стоит помнить,
что в океане разработки, как впрочем и на берегу, не всегда и не все будет состоять
из сплошных карнавалов, фейерверков в честь победы и праздников посвященных веселому
пересечению экватора с участием самого Нептуна и других подводных гостей.
Океан разработки это чаще всего пустошь, уныние и скука. Это однообразная и повторяющаяся
изо дня в день рутина и цепочка однообразнейших и надоедливых действий, которые приходится
выполнять чтобы достичь очередного берега или хотя бы какого-то островка.
Но можно ведь и утонуть в безбрежных просторах разработки.
Разработка игры напоминает охоту на кита, который в свою очередь может оказаться охотником
на нас. Мы хотим поймать его, а он - наоборот.
И у кого на стороне будет удача - пока еще непонятно.
Как странно это звучит - игра которая разрабатывает нас, а не мы, которые разрабатываем игру.
Я конечно мог бы рассказать о тех вопросах, которые в данный момент меня тревожат, но скорее
всего они будут вам малоинтересны.
Ведь вы могли бы тоже делать свою игру и в ней у вас наверняка были какие-то свои проблемы и
вопросы о которых вы пока не хотели или попросту не готовы были еще говорить.
Так пусть случится то, что должно.
А именно - я буду плыть по своему океану, а вы - по своему. И никто никому не будет мешать.
Даже если океан один и тот же. Мы просто плывем по нему в разных местах.
Рассказы о том, какой очередной шикарный мега-супер-пупер проект я мечтаю сделать всем
уже порядком приелись и это очевидно.
К тому же если подаваемое блюдо явно с душком, то вы его явно пробовать не будете.
Но к счастью или к сожалению вы тут не найдете ни того ни другого.
Рассказ будет даже не про разработку какой-то конкретной игры, а лишь про абстракцию.
Итак, вот он я - стою здесь перед вами и хочу вам поведать свою историю. И данный пост
не содержит ни её начала ни конца, поскольку это лишь очередная глава этой истории.
Я хотел бы поговорить с вами в данном посте о:
Ошибках критериев качества.
Да кому они интересны ?
Куда интереснее что-нибудь непривычное или привычное, но показанное
в новом ракурсе.
Ты простой человек и у тебя есть желания и целеустремления.
GLOBAL GAMES
Некая великая цель.
Все возможно, вспомни о том, что даже Иисус был рожден в хлеву.
И никто никогда бы даже не догадался о том, кто он такой и что его
ждет в будущем.
Встретились три странника, один был хорошим рассказчиком, другой -
умел творить художественные изображения, которые поражали, а третий -
считал, что умеет делать что-то необычное, но ему часто говорили об
обратном, что он ничего не умеет.
Проблемой был выбор - не слушать никого, или учесть чужое мнение
и никуда не развиваться.
Какая из зол меньше ?
Нужно было просто идти вперед, забыв про чужое мнение. Да, нужно развиваться
и не думать, что твое развитие зайдет в тупик.
Чем больше будет проб и попыток, тем больше будет опыта и значит
качество того, что ты делаешь со временем будет улучшаться.
Если тебе постоянно думать что нет - вот это и есть тупиковый путь в который
ты загонишь себя сам. Кто сказал что нет ?
Возможно все. Даже зайдя в тупик можно найти выход.
Вдруг на тебя снизойдет озарение.
Но есть еще одна вещь, о которой нужно помнить. Все что ты хочешь
рассказать не всегда можно рассказывать. Есть вещи, о которых стоит
умолчать. Не всегда можно рассказывать все.
Подноготная и подробности не всегда позволительны.
Планы и цели. Скрытые идеи. Да просто секреты.
У человека можно спросить: умеет ли он программировать на некотором
языке программирования ?
А собственную операционную систему смог бы создать ?
А нужно ли это ?
Конечно каждый выбирает сам, свой путь. Но нужно это далеко не многим.
К примеру создание космического корабля для отправки людей в далекий космос.
Задача сложная, работа хорошо оплачиваемая, проект серьезный, возможно даже
интересный. Но посильна такая работа далеко не каждому в силу простой причины -
несоответствия цели и средств её достижения.
Поучаствовать в сногсшибательном проекте вероятно мечтает каждый, но не каждый
способен до конца пройти этот путь.
Думая что участвуя в таком проекте будут только вспышки вдохновения, счастья
и положительных эмоций они ошибаются, и пугаются тогда, когда видят обратную сторону -
нескончаемые проблемы и трудности которые приходится решать неординарным способом.
И тогда они уходят - потому что разочаровались.
Шанс который был им дан оказывается неиспользованным. Они начинают искать другой
проект, который бы был таким же сногсшибательным, но оказался бы в этот раз им
по силам.
Они это я. Я - это ты. Ты - тот кто сидишь перед экраном монитора и читает этот
текст.
Я обращаюсь именно к тебе.
Задумайся.
Ты всегда мечтал и лелеял мечту о создании какого-то взрывного проекта. Который
бы всех удивил. Заинтересовал настолько, чтобы они погрузились в него целиком.
И причиной была бы не цена, которую нужно заплатить за участие в этом деле, а то,
какие головокружительные результаты можно было бы получить.
Не стоит мириться с тем, что кажется тебе неосуществимым.
Если ты когда-нибудь столкнешься с трудностями ты всегда найдешь способ как их
обойти.
Даже если ты не умеешь создавать операционные системы, но хотел бы научиться,
ты найдешь способ как это сделать.
Задачу можно решать не в лоб и использовать те знания, которые у тебя уже
есть в запасе.
Тогда задача окажется вполне тебе по силам.
В первую очередь можно создавать не реальный объект, а его упрощенную модель.
Во-вторых использовать тот язык программирования, который ты уже хорошо знаешь
и в-третьих, помнить, что наша с тобой цель - не просто создать рабочую модель
операционной системы которая будет работать или космического корабля, который
полетит в далекий космос, а больше узнать о самом себе и том, какие темы
тебе действительно интересны и то дело, которым ты готов всерьез заниматься,
а не просто мечтать о несбыточном.
Ведь есть масса других задач и проблем которые можно решать и не стоит зацикливаться
только на операционных системах или космических кораблях, как бы ни притягательны
они не были.
Или вот еще одна тема - создание собственной антивирусной программы.
Если пойти по пути её моделирования - задача вполне по силам.
Следует понимать что такие задачи не содержат готовых рецептов и даже если рецепт
есть, потребуется масса времени чтобы вникнуть во все детали и реализовать все
именно так, чтобы это действительно работало и давало ожидаемый результат.
Не все готовы потратить на это массу времени, чтобы в итоге стать очередным
создателем очередной новой операционной системы, нового космического корабля
или нового антивируса.
Нужно расширять круг своих целей и искать такие задачи, которые были бы тебе
более интересны.
Цель максимум - создать что-то сногсшибательное.
Но можно оттолкнуться от того, что не все считают сногсшибательным то, что считаешь
сногсшибательным ты сам.
А хотелось бы выработать некоторую универсальную концепцию видения.
Но проблема в том, что разным людям интересно разное.
Кому то космические корабли, бороздящие просторы вселенной и их создание, а кому-то
и что-то попроще - вроде игры в которой все это можно делать.
Ну что ж, давайте начнем что-то делать.
обсуждение
9.01.2020
Как я искал ошибку в коде отвечающем за сортировку объектов по z.
Итак, наступили новогодние праздники и я, конечно же получил в свое
распоряжение достаточное количество времени, чтобы снова заняться
своим проектом, а именно игрой под условным названием Про робокопа.
Задача которая стопорила весь дальнейший процесс работы была банальной -
объекты в сцене не хотели выводиться правильно по глубине - по оси z.
Т. е. они выводились, но временами получалось что объект выводится
не так, как должен выводиться. Я это определял по появлению видоизмененной
тени под ногами персонажа. Если тень нормальная полупрозрачная - значит
все ок, если же какая-то слишком яркая с наличием цвета фона у спрайта,
а не у фона сцены - значит неправильно.
на картинке видно что у врагов и робокопа под ногами не тень, а цветовое
пятно, чего быть не должно.
Я долго не мог понять суть причины этой ошибки. Выставлял для объектов
постоянное значение z, проверял весь список думая что проблема в неправильном
порядке сортировки. Рассматривал и другие альтернативные варианты.
Но ответа все не было. Наконец я решил что в праздники не буду заниматься
больше этим вопросом, а займусь когда праздники кончатся.
Наконец праздники закончились и я снова вернулся к проблеме и снова не
мог найти ответ.
Провозившись еще около часа или больше я наконец уловил алгоритм появления
проблемы - а именно у главного персонажа, т. е. робокопа появляются
повторные шаги отрисовки, хотя всего должен быть 1 шаг поскольку робокоп
в сцене всего 1.
Откуда же взялись еще робокопы которых быть там не должно ?
Я снова и снова проверял код и убеждался что сортировка работает правильно,
что порядок у объектов в сцене правильный, что список сортировки тоже
формируется верно и там только 1 робокоп, а не несколько.
Откуда же берутся эти лишние робокопы которых нигде нет ?
Уж не пришельцы ли их сюда засылают ???
Просто мистика какая-то.
Внимательнее рассматривая код структуры которая хранит сортируемые
объекты я заметил такую закономерность:
в самом начале эта структура полностью очищается заполняясь нулями.
Но вот дальше она уже ни разу не очищается, хотя должна.
В этом и оказался корень проблемы.
Нужно было чистить эту структуру перед каждым проходом цикла
сортировки, после чего она стала нормально заполняться и
лишние робокопы больше не появлялись.
Но на этом как всегда решение не оказалось окончательным, пришлось
еще кое-что поправить, а также вернуть в исходное состояние код,
который был изменен для тестовых целей чтобы легче отслеживать
проблему.
И вот, наконец-то все заработало как и положено.
теперь под ногами врагов и робокопа нормальная тень
Данное изменение я также внес еще в 2 проекта поскольку в них
тоже был данный код, который отвечает за вывод объектов в сцене
с учетом их сортировки по z.
Но что странно в этих приложениях, а именно в игре ria pc game, а также
в её части, которая представляет аркадную версию игры, описанная мной
проблема не наблюдалась.
Вероятно окружение кода было построено так, что проблема просто была,
но не проявляла себя.
Так что, урок который можно вынести из этого, звучит так - даже если
вам кажется что ваш код уже нормально протестирован и его достаточно
просто перенести как есть и использовать, то это не всегда так.
Если код будет работать в каких-то новых для него условиях,
то может проявиться какая-то скрытая проблема, о которой вы даже не
знали. И тогда уже проверенный код который нормально и без проблем
работал где-то в других приложениях, придется перепроверять заново
и искать проблему, а также пути борьбы с ней.
Ну и конечно же, инициализируйте переменные перед тем как они впервые
будут использованы, не полагаясь на то, что они уже были инициализированы.
А именно это я и упустил из виду в своем случае. Мой просчет был не в том,
что я забыл инициализировать в самом начале, а и в том, что нужно было
в моем примере инциализировать при каждом проходе цикла, поскольку структура
хранила данные динамически сортируемых объектов и данные одного объекта
после сортировки могли перекрыть данные совсем другого объекта. В итоге
без инициализации, путем начальной очистки перед наполнением данной структуры
в очередной итерации цикла, в данных появлялись изменения, ну а про результат
вы уже знаете.
Кусок кода который вызывал проблему (закомментирован)
и решение ниже (вынесено за блок if)
if ( !z_vals )
{
z_vals = new DRAWLISTELEMENTARRAY[elements_num];
//SecureZeroMemory(z_vals, sizeof(DRAWLISTELEMENTARRAY)*elements_num);
}
SecureZeroMemory(z_vals, sizeof(DRAWLISTELEMENTARRAY)*elements_num);
Вот такая история.
оцените статью:
0
0
игра
играть
играть
видео-рассказ, уроки godot, виртуальный помощник по поиску информации
играть
читать
купить
скачать
игры Многоликий: dress - hordes эпизоды с 1 по 4
играть
скачать
купить
купить
игры, музыкальные клипы
скачать
скачать
смотреть
скачать/играть
музыкальный клип, игры
смотреть
играть
скачать
скачать
разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
смотреть
смотреть
смотреть
смотреть
игры, инструменты разработки, анимационный фильм, фильм.
купить
смотреть
смотреть
скачать
игры
скачать
скачать
скачать
купить
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), создание музыки в браузере (1)
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
бк 0010.01 - играть!
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), скачиваемые (1)
играть
играть
играть
скачать
игры в браузере
играть
играть
играть
играть
игры в браузере, скачиваемые игры
играть
скачать
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
Foxyland 2
quidget 2
играть
играть
полезный софт, игры в браузере
скачать
anova игра
A Knots Story
sabotage
сервисы, игры
24500 руб.
скачать
игра
играть
игры, программы
купить / скачать
купить
5500 руб.
скачать
поздравления, уроки рисования, уроки создания сайтов
читать
читать
читать
150 руб.
комиксы, музыка, рассказы
читать
читать
слушать
читать
игра для разработки, калькулятор услуг, cms, комикс
250 руб.
разработка на заказ
1250 руб.
350 руб.
игры для разработки, комиксы
скачать
читать
читать
скачать
игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
скачать
читать
150 руб.
350 руб.
Создай свою игру на fle game engine -
800 руб.
240 руб./скачать
скачать
скачать
Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
700 руб.
1250 руб.
150 руб.
500 руб.
Уроки Flash, бесплатные Flash - игры.
бесплатно
бесплатно
2500 руб.
14000 руб.
Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
500 руб.
12000 руб.
14000 руб.
бесплатно
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
Системы управления сайтом, уроки
1250 руб.
бесплатно
550 руб.
500 руб.
megainformatic cms admin - простая и компактная система
для работы и управления сайтом
350 руб.
5800 руб.
3000 руб.
500 руб.
megainformatic cms free и серия продуктов - Уроки Photoshop
бесплатно
650 руб.
700 руб.
750 руб.
Данная серия посвящена описанию приемов и методов создания изображений,
с помощью инструментария программы Adobe Photoshop. Кроме того, многие
описанные средства могут вам помочь при освоении и многих других программ
для работы с растровой графикой - GIMP, Corel Photo Paint и других.
бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!
300 руб.
бесплатно
бесплатно
бесплатно
Это серия распространяемых бесплатно игр. Вы не только можете поиграть,
но и скачать исходники, получив тем самым возможность внести изменения
в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно).
серия игр про Веселого Буквоежку, и бесплатно распространяемая игра
Нечто: Необъяснимое - в плену желаний
350 руб.
510 руб.
fle game engine
бесплатно
Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра,
А также продукт, который позволит Вам научиться создавать игры самостоятельно.
Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое
- в плену желаний
Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++,
directx, delphi и php.
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
500 руб.
300 руб.
Описаны практические примеры решения различных задач, возникающих при
создании игр и сайтов.
Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно.
уроки и продукты различной тематики
бесплатно
бесплатно
бесплатно
400 руб.
Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию
на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская
музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт
megainformatic cms express - система для быстрого создания Вашего сайта
на php + my sql.
Проекты игр, уроки
450 руб.
бесплатно
бесплатно
бесплатно
Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются
основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем
музыку в Fruity Loops Studio
megainformatic
cms express files - это простое, быстрое и очень компактное решение
для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql.
Вместо этого используются файловые базы данных. Поэтому Вы
можете использовать систему даже на хостинге с поддержкой php, но
без поддержки баз данных my sql.
Очень
проста в установке - достаточно вам скопировать все файлы на ваш
хостинг и сайт готов к работе !!!
В комплект входят 3 готовых шаблона, модули поиска и карты сайта,
а также статьи по основам создания сайта.