Трудности при разработке игр.

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

«Оставь надежду всяк сюда входящий» — создание игры чаще всего, это не «круто» или «весело», а это работа или даже «ТРУД», к которому надо себя заставлять:

  1. Учиться — а куда же без этого. Если вы рассчитываете все делать самостоятельно, то придется мнооого учиться. Даже если вас в команде 3-4 человека, то все равно придется совмещать те же 3-4 роли).
  2. Выделять время — за 2-3 часа в неделю на что-то типа тетриса вам потребуется года полтора, если опыта мало, или полгода если он уже есть (имеется ввиду создание не «работающего прототипа», а полный цикл).
  3. Искать команду — если и тетрис можно сделать самому, то для всего остального нужно разделение труда. Как только мы видим что новый проект своими силами мы реализуем за 6-7+ месяцев нужно искать команду, обычно проекты забрасываются на этом сроке из-за «усталости».

Проект разработки можно разделить на несколько этапов — они могут и будут чаще всего идти частично параллельно, но обычно следующий этап нельзя начинать пока не наберется «критическая масса» с предыдущего и крайне не рекомендуется держать активными больше 2-х этапов — если 3, то это уже увеличение объема работ, ну а 4 — уже не «процесс», а «каша» которой и управлять нельзя и результат будет непонятный:

  1. Идея — да все банально, без создания воздушного замка в голове все последующие действия будут напоминать подергивание под музыку — «вроде и не месте стоим, но и танцем это не назвать». Под идеей, нет не так под ИДЕЕЙ, понимается не мысли «сделать новый варик», или «сейчас по быстрому забацаю КС». Под идей понимается вполне конкретное ТЗ, в любом виде, но оно должно быть! с описанием игры, мира, игрового процесса, фич, дизайна игры, дизайна локаций, используемых технологий, ГДЕ и КТО как вы ожидаете в эту игру будет играть — это из обязательного.
  2. Создание элементов — сначала идет кропотливая работа по созданию различных объектов, физики, скриптов, рисуются текстуры и фоны.
  3. Создание прототипа из элементов — как только элементов хватает чтобы собрать 1 демо уровень, сразу это делаем и проверяем концепцию игры, геймплей и др составляющие, на этом этапе еще как то можно повлиять на результат без сильных задержек в сроках. Но стоит помнить что это самый затратный и сложный этап — как только он выходит на финишную прямую что-то поменять будет сложно без существенных дополнительных ресурсов.
  4. Тиражирование — тут начинаем творить, у нас уже есть необходимые объекты (персонажи, элементы локаций, элементы интерфейса и тд) со всеми его возможными действиями, есть большая часть объектов, текстуры уже «натянуты» на объекты, по большей части, начинаем все ЭТО компоновать в «Сцены» ну или уровни.
  5. Тестирование — перед выходом «в люди», нужно протестировать ВСЕ что только можно, любая мелочь, которую «добавили в последний момент» может сделать игру «непроходимой» или «проходимой слишком просто», как показывает практика — попытка «выстрелить» есть только 1 — НЕЛЬЗЯ выпускать сырой продукт для общего использования!
  6. Сопровождение — а куда без него). Получаем фидбак и делаем исправления.
  7. Модернизация — Тестировать больше нечего, ключевые ошибки выловили и подчистии — проект взлетел? Если да, то отлично — самое время для реализации всего что «хотелось, но не моглось», а именно , повторяем 4-5 этапы и делаем новый контент (DLS). Добавляем новые фички и логику.  Главное на этом этапе вовремя понять что «хватит доить золотую корову»), и приступать к новым свершениям. Ну а если проект не взлетел, то порадоваться полученному опыту и с новыми силами браться за новые проекты.

Сейчас наверное многие начнут кричать про различные «гибкие» подходы, Agile или Scrum — НЕ рекомендую, если вы читаете эту статью и она вам кажется полезной, то вы в самом начале пути, а гибкий подход подразумевает достаточный опыт чтобы избегать наиболее критических его недостатков, вроде «отсутствие понимания итогового продукта» или «крупные изменения по ходу проекта». Поэтому «бейте себя по рукам» когда вам захочеться вентуться

В следующей части переходим к пункту 1 — Учиться), а именно обзор того что нужно знать, хотя бы на базовом уровне!

Excel POWER! — 1 Статья

Начинаю серию примеров по возможному использованию Excel саааавсем не так, как вы привыкли.

VBA дает Excel-ю кучу возможностей по оптимизации своего рабочего времени.

Как только у меня будет возникать какая то задача, которую я буду решать через Excel, то выложу пример реализации в Excel.

Итак сегодня у меня возникла следующая задача:

Есть одна ИС в которую пользователи добавляют файлы, она недавно стартовала, и теперь пользователям нужно в нее добавить МнОгО файлов. И тут обнаружился один неприятный факт — в ИС нельзя добавлять файлы, в имени которых есть больше 1 точки (для типа файла).

Мотивация: Переименовать 1 файл в ручную, например такой «2015.05.19 План раз. СМ Y16-17 (сн.) v2.1», займет примерно 10-15 сек. Вот только таких файлов около 2000, а это уже 15*2000/60 = больше 8 часов.

Вот что я сделал на Excel, используя возможности VBA — мои трудозатраты с «вспоминанием» как бы это можно сделать — около 4 часов.

Через VBA есть возможность подключить выполнение скриптового языка File System Object (FSO). Про него я наверное напишу отдельную статейку, уж больно много у него возможностей.

Итак даем пользователю возможность выбрать файл, в настройках он выбирает символ который должен быть заменен и новый символ для замены и говорит что поменять нужно во всех файлах из папки, где расположен данный файл. Потом через  FSO получаем список всех файлов в той же папке и начинаем по ним пробегать, переименовывая. Для создания нового имени сделана отдельная мини функция, чтобы случайно не «переименовать» разрешение у файла.

Что в итоге — написав 1 раз инструмент под конкретную задачу использовать его можно сколько угодно раз + мы получили экономию во времени СРАЗУ, получив в плюсе больше 4 часов.

Работайте продуктивно).

А вот и сам файл:

ReName_v1

ПС. ах да), все что выкладываю, предназначено для ОЗНАКОМЛЕНИЯ!, и используется на ваш страх и риск, я никакой ответственности за ваши действия нести не буду!

Если стал тормозить компьютер или ноутбук. Профилактика для «железа» и «софта».

Если тормозит или периодически выключается компьютер или ноутбук, не спешите обвинять во всем злых хакеров и их злобных вирусов или представителей «мелкомягких», достаточно часто проблеме связана с железом — ниже порядок моих действий при первых признаках торможения…

Сначала проверяем «железо»:

  • В 1 очередь нужно проверить температуру процессора / жесткого диска / видеокарты на перегрев — например программой AIDA64. Там есть тест по загрузке системы, если после его старта температура быстро доходит до 80+ градусов для процессора /видеокарты  или 50+ для жесткого диска, то вполне может быть что хватит обычной чистки от пыли и заметы термопасты — данную процедуру крайне желательно делать хотя бы раз в 1-2 года.
  • Нужно проверить жизнеспособность самого жесткого диска, на наличие ошибок и битых секторов, например программой Viktoriа. Там же считать данные SMART (и проверить например количество паркований головки, у каждого жесткого есть только ограниченного их «гарантированное» количество) и прикинуть сколько еще проживет жесткий диск (по моему опыту они живут в бюджетных ноутбуках 2-3 года при активном использовании ).
  • Обязательно нужно проверить оперативную память на ошибки, в пуск — выполнить ввести «mdsched» — запуститься штатное средство проверки windows. Так же проверяем на доступность: открываем диспетчер задач (правой кнопкой по строке задач — где Пуск и там есть «запустить диспетчер задач»). Ищем вкладку Быстродействие или Использование ресурсов и смотрим сколько у нас доступно оперативной памяти, если меньше 20%.

Только потом проводим софтовую профилактику:

  • Смотрим в журнале виндовс критические ошибки. Есть или нет и если есть, какие. В строке «выполнить» пуска — eventvwr.msc, или через Администрирование в Панели Управления. И смотрим там критические ошибки. Вполне возможно что-то повисло или чего то не хватает.
  • Открываем диспетчер задач (правой кнопкой по строке задач — где Пуск и там есть «запустить диспетчер задач»). Ищем вкладку Быстродействие или Использование ресурсов и смотрим сколько у нас доступно оперативной памяти.
  • Проверяем «Файл подкачки». Обычно его делают в 2 раза больше вашей оперативной памяти.
  • Устанавливаем обновления windows.
  • Выполняем обновление драйверов и системных утилит.
  • Делаем проверку на вирусы.
  • Выполняем чистку реестра.
  • Удаляем все приложения — нужные переустанавливаем.
  • Ну и на крайний случай — переустановка windows.

Эффективный способ очистить серебряные украшения и столовые приборы.

Серебро темнеет чаще всего из-за появления налета в микротрещинах или из-за окисления.

Для того чтобы очистить серебро есть несколько способов, вот 2 самых распространенных и эффективных:

1) Механический способ очистки серебра. Серебро отлично чиститься зубным порошком и /или содой и/или средством для мытья посуды (а еще лучше плиты). Для очистки можно использовать ворсистую ткань (можно марлю) или мягкую зубную щетку. В зубной порошок с содой можно добавить немного воды, чтобы получилась кашица — тогда очистка пройдет успешнее. Не переусердствуйте с усилием — таким составом можно поцарапать украшение.

3) Гальванический способ очистки серебра. Берем небольшую емкость в которую добавляем смятую фольгу и соды с солью (я использую такую консистенцию : 2 чайные ложки соды + 1 соли) . Полученный состав заливаем кипятком (Горячим!) и кладем туда серебро. Минут через 15-20 промываем водой и готово. Если загрязнение сильное то можно или повторить или в процессе немного нагреть воду — прокипятить.

 

 

 

LTE или FDD-LTE или 4G в России

Периодически покупаю смартфон в Китае, и в виду выхода у них сейчас большого количества моделей которые поддерживают 4G постоянно забываю какие же у нас частоты и band LTE в России используются операторами. Поэтому вот себе напоминалка.

LTE будет работать если в телефоне поддерживаются FDD band 7, 20 и/или TDD band 38

Вот ответ на вопрос  » Какие частоты LTE в России » :

Оператор Режим Диапазон (band) Частоты, МГц

Скартел

FDD 7 2500—2530 / 2620—2650
МегаФон FDD 20 847—854,5 / 806—813,5
FDD 7 2530—2540 / 2650—2660
TDD 38 2570—2595
ВымпелКом FDD 20 854,5-862 / 813,5-821
FDD 7 2550—2560 / 2670—2680
МТС FDD 20 839,5-847 / 798,5—806
FDD 7 2540—2550 / 2660—2670
TDD 38 2595—2620
Ростелеком FDD 20 832—839,5 / 791—798,5
FDD 7 2560—2570 / 2680—2690
Основа Телеком TDD 40 2300—2400

Как научиться SQL?

Ресурсы которые стоит почитать:
http://www.sql-tutorial.ru/ru/content.html
http://www.sql.ru/docs/sql/u_sql/index.shtml

По 2 ссылке онлайн версия книги «Понимание SQL» Мартина Грабера. Она же в FB2 формате, для прочтения офлайн:

Gruber_Ponimanie-SQL

И еще 1 очень неплохая книга для самоподготовки по SQL:

rukovodstvo_SQL

Для того чтобы суметь написать запрос и понимать как он отработает необходимо знать и понимать что означают следующие ключевые слова в синтаксисе SQL.

SELECT
INSERT
UPDATE
DELETE
FROM
GROUP BY
WHERE
HAVING
INNER JOIN
ORDER BY
UNION
DISTINCT

Нужно понимать что вариаций SQL очень много, практически в каждой БД используется своя модификация, которая часто очень сильно увеличивает возможности базового языка. Для оптимизации своего рабочего места обычно используется Excel или Access, в которых использована модификация Jet SQL. Она приближена к стандарту ANSI для SQL (общий стандарт — запросы написанные на котором должны выполняться на любой его модификации), который в книгах обычно и описывают, и позволяет использовать некоторые встроенные функции VBA.

Небольшое задание для самоподготовки. В нашем отделе используется для определения уровня знания SQL при приеме на работу новых кандидатов.

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

1)
select * from vw_income_docs as v where v.tpdprt=706 and v.id > 24485911073 order by v.id

2)
select t1.e_collection, t1.e_tma_category, t1.e_tma_tm, t1.e_tma_ware_subgroup, k.code_model,t1.moniker from
(select t.e_collection, t.e_tma_category, t.e_tma_tm, t.e_tma_ware_subgroup, t.id_mmodel,t.moniker from VW_WARE as t
where t.moniker like «CMT703T0*») as t1 inner join vx_model as k on k.id_model=t1.id_mmodel

3)
select count(t1.FirstQ) as kolvoM from (SELECT First(QuotaAW1213.Quota) AS [FirstQ]
FROM QuotaAW1213
GROUP BY QuotaAW1213.ShopID
HAVING (((First(QuotaAW1213.Quota))=»A1″))) as t1

4)
PARAMETERS dateBegin DateTime, tm Text ( 255 ), TGroup Text ( 255 ), Divs Text ( 255 ) ;
SELECT t2.model, t4.TM, t2.name, t2.TPGroup, t2.price, t3.Nshop, t3.upa, t1.date, t1.type, t1.pf, t1.plan
FROM ((
select ph, [date], ‘продажи ОЦ’, ‘факт’, RSumm from tren_prod where [date] between [dateBegin] and [dateEnd] and [Division]=[Divs]
union all
select ph, [date], ‘продажи РРЦ’ as type, ‘план’ as pf, plan*price from tren_plan_zakaz_union where [date] between [dateBegin] and [dateEnd] and [Division]=[Divs]
union all
select ph, [date], ‘продажи ОЦ’ as type, ‘план’ as pf, plan*price*(1-discount) from tren_plan_zakaz_union where [date] between [dateBegin] and [dateEnd] and [Division]=[Divs]
) AS t1
INNER JOIN (SELECT max(Nshop_tren.Nshop) AS Nshop, max(Nshop_tren.pres) FROM Nshop_tren WHERE Division=RD GROUP BY ph) AS t3 ON t1.ph = t3.ph) INNER JOIN tmp_art AS t2 ON t1.ph = t2.PH
WHERE (t2.RD=TRUE OR t2.DD=true) AND t2.TM=[tm] AND (t2.Group=[TGroup] or t2.Cat=[TGroup]);

Как создать файл большого размера в Windows ?

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

И для этого мне потребовалось создать произвольное количество файлов различного, преимущественного большого, размера — чтобы узнать скорость записи / чтения и реальный размер.

Возник соответственно вопрос откуда их взять — перекопировать различные видео  и муз файлы, остался как вариант, но он не всегда удобный.

После копания различных вариантов оказалось!:

Проблема » как создать файл в Windows » решается штатный инструментом для создания файлов произвольной длинны (в байтах) и называется он fsutil , запускается он из командной строки. Пишем :

fsutil file createnew c:\text.txt 100000000

И получаем 100 гигобайтый текстовый файл на диске С  и при этом файлы создаются почти мгновенно!

Учебник SQL часть 2.1 — Select запросы.

Запрос с использованием Select позволяет из всего списка записей получить только  те которые удовлетворяют условиям.
Классический запрос на выборку SQL имеет конструкцию ( в скобках необязательная часть) :
SELECT  <какие столбцы нужны, через «,» в формате «таблица.имя_столбца»>  FROM <из какой таблицы>  (WHERE <условие на значение>)
или
Select t.ФИО From Сотрудники as t Where t.ФИО Like «*Иванов*»
или этот же запрос для запуска на выполнение из Access VBA, с запросом на ввод данных для поиска будет выглядеть так:
DoCmd.RunSQL «Select t.ФИО From Сотрудники as t Where t.ФИО Like «» *» & InputBox ( «Введите фамилию для поиска», «Поиск по сотрудникам», «Вводить тут») & «* «
 
 —  данный запрос выдаст все записи из таблицы сотрудники, в которых в поле ФИО встречается «Иванов», знак «*» означает что перед или после «Иванов» могут быть еще какие то символы\слова и также попадут записи со значениями вроде «Иванова Наталья» или «Саломонов-Иванов Роман»