. Разработка интернет проекта с нуля ч.2 - Постановка задач. ⁠ ⁠
Разработка интернет проекта с нуля ч.2 - Постановка задач. ⁠ ⁠

Разработка интернет проекта с нуля ч.2 - Постановка задач. ⁠ ⁠

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

1. Четко сформулируйте то что нужно сделать;

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

- Нужен лендос на чистом коде. Дизайн придумать.

2. Развернуто опишите то на каких устройствах сайт должен работать и на каких разрешениях;

+ Корректное отображение в chrome 52+, ms edge 18+, firefox 56+. iPhone 6 и выше

- Сделать адаптацию, Для всех видов устройств и браузеров.

Примечание: вы можете спросить что не так в отрицательном примере не так? Все очень просто, сделать адаптацию под все браузеры и устройсва технически не возможно. Во первых всех устройств у разработчика просто напросто не будет, некоторые сейчас могут сказать про эмуляторы и я сразу вам скажу нет, очень часто я наблюдал проблему на реальном устройстве а на эмуляторе ее небыло ( привет тебе мой "любимый" iphone 4s ). Во вторых реализация хаков ( специального програмнного кода который решает только одну конкретную проблему) под все известные баги всех устройств и браузеров по объему кода будет больше чем сам сайт.

Я обычно решаю эту проблему так, если количество посещений с проблемного устройства или версии браузера превышает 5% от общего количества посещений сайта, в этом случае я реализую хак для ее устранения если же нет то я просто ее игнорирую.

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

Фуххх абзац получился большой. Наболело.

3. Пропишите порядок оплаты и принятия работы.

4. Проговорите ситуации когда может понадобится дополнительная консультация или же когда работа может быть невыполнена по техническим причинам.

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

Примечание: на самом деле это очень важный пункт помните очень важно что бы код не только работал но был опимальным и безопасным. Нередко ко мне обращаются люди у которых были взломаны сайты и в 80% случаев они были взломаны через самописные плагины т.к.

ПОМНИТЕ СКУПОЙ ПЛАТИТ ДВАЖДЫ, А В IT В 4 РАЗА БОЛЬШЕ.

Не знаете? Не умеете? Наймите консультанта он с экономит больше чем вы заплатите в будущем, т.к в случае взлома сайта или глючной работы кода вы платите НЕ ДЕНЬГАМИ А РЕПУТАЦИЕЙ САЙТА ИЛИ МАГАЗИНА.

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

P.S Заранее прошу прощения у всех за ошибки, с этим у меня всегда большая беда. Особенно когда быстро пишу.

ИТ-проекты пикабушников

138 постов 2.2K подписчик

Правила сообщества

0. Запрещены посты вне тематики сообщества

1. Уважайте труд людей, пишите только конструктивную критику,

2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц

Скорее меняй название. Дальше серьезно не читается

Добавляй ссылки на предыдущие статьи в начало поста

Жиры же обычно за глаза

О техзадании в it⁠ ⁠

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

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

Дальше начинается рекурсивный процесс декомпозиции целей на задачи, задачи детализируются и так далее. А результат декомпозиции записывается в ТЗ.

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

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

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

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

- пользователь просит сменить контактные даные уже после подписания документов, запрос от поддержки прилетает разработчикам

- из-за коронавируса в 2020 была приостановлена необходимость замены паспорта при достижении 20 и 45 лет

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

Степень детализации задач разная в разных организациях - бывает что разработчикам помогают бизнес аналитики. Начинающим разработчикам дают максимально детализированные задачи. Однако на максимальную оплату труда могут расчитывать те, кто готов разбираться в предметной области, а не работать по готовому заданию. Всем высоких доходов, спасибо за внимание!

Стремление к идеалу: как мы создавали, тестировали и дорабатывали настольный мольберт на основе обратной связи от покупателей⁠ ⁠

У меня своё производство мебели. Когда я только начал заниматься разработкой мебели, одной из немногих наших моделей был настольный мольберт для рисования. Самая первая модель была слишком громоздкой и сильно отличалась от моего понимания красивой мебели. Из минусов: частый брак из-за особенностей фанеры - мольберт “вело”, вес около 4 кг, выглядел он слишком громоздко, снизу не было полочки. Из плюсов: его всё-таки покупали.

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

Обычный напольный мольберт делать было не смысла, потому что аналогов очень много.

Тогда было недостаточно ресурсов, чтобы дорабатывать не самые популярные модели (был большой спрос на конторки для работы стоя — делали только их).

Прошло 3 года, и весной 2021 я принял решение перевыпустить настольный мольберт. Идея была проста: совместить настольные мольберты и получить универсальную модель.

Сначала нужно было определиться с размером мольберта. Прошлые модели были рассчитаны на лист А3, но только в горизонтальной ориентации. Я обратился к рисующим коллегам из отдела маркетинга за советом (сам я к рисованию имею довольно косвенное отношение). Они обе сказали, что лист А3 обязательно должен помещаться вертикально, потому что портреты, например, больше рисуют в вертикальном виде.

Дальше встал вопрос удобства использования: должен ли мольберт опускаться за край стола или он должен стоять полностью на столе и снизу иметь выемку для карандашей. Пришлось провести небольшое исследование.

Анализ конкурентов

Конкурентов именно по настольным мольбертам оказалось немного — в основном, делают напольные мольберты. Смотрели на маркетплейсах и на сайтах художественных магазинов. Нашли 2 основных модели: дешёвый вариант для небольших холстов в виде нескольких скрепленных дощечек и что-то похожее на нашу модель с полочкой внизу и несколькими углами наклона. Заметил, что ни у одной модели не было зажимов для бумаги и ни на одну нельзя было прикрепить лист вертикально и горизонтально. Эти 2 пункта должны были стать нашими преимуществами.

Примерно такие (нашёл у конкурентов):

Мнение художников

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

Тестирование

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

На основе данных выпилили тестовую модель с 7 углами наклона — решил, что их должно быть больше, чем у конкурентов. Но из-за этого мольберт снова оказался громоздким, и его было неудобно складывать и убирать. Опять же протестировали и решили оставить 4 основных угла наклона для разных техник. Цену поставил в 3500 р.

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

Вот так он выглядел:

Опять же из плюсов: подходит для листа А3 вертикально и горизонтально, снизу паз для художественных материалов, фиксатор для бумаги (кому-то удобно крепить лист малярным скотчем), ручка для переноски, относительно небольшой вес в 3 кг.

С такой моделью работали год, пока снова не появились ресурсы на доработку — наша талантливая разработчица сумела впихнуть в мольберт ещё 2 угла наклона. Немного увеличился расход фанеры, работы у сборщиков прибавилось, но цену решил не увеличивать, так был небольшой запас по маржинальности. Теперь у мольберта 6 углов наклона для любых техник рисования, он более устойчивый благодаря небольшому улучшению конструкции. Когда продавали прошлую версию мольберта, иногда получали отзывы, что цена не соответствует продукту — слишком дорого для такого функционала, упаковка некрасивая, нельзя прислать в подарок. Постарались соответствовать ожиданиям покупателей (про улучшение упаковки писал здесь). Итог: зарабатываем на мольберте чуть меньше, но теперь он устраивает всех, судя по отзывам.

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

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

Фулстек-извращенец⁠ ⁠

Как я пришёл к любимому делу (Создание клавиш для клавиатур) Часть 5⁠ ⁠

Уж не знаю, сколько из вас прочитало всю историю от начала до конца, но я и так ужимаю её насколько вообще возможно :)

Хочется поблагодарить всех, кто поддерживает, ставит плюсы, пишет комментарии. Двое Пикабушников даже решили рискнуть и сделали заказ. За что им несомненно благодарность. И кажется, у меня потихоньку появляется работа. :)

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

Это уже был огромный прогресс, хоть он и не ощущался. Я же видел, что ВСЁ ИДЁТ ПО ПЛААААНУУУУУ.

Как я говорил раньше - ключевой фигурой стали Dwarf Factory. Вот у каждого есть какие-то кумиры. Гитаристы восхищаются Steve Vai, Вокалисты - Freddy Mercury, а у нас таким кумиром стали Dwarf Factory. Когда ты знаешь всю скрытую часть работы, ты можешь по достоинству оценить и восхититься проделанной работой старших товарищей по цеху.

И именно на них мы начали равняться. Не походить, не выглядеть как они, а стремиться к их уровню. Планка качества в голове была выставлена и опуститься ниже неё при всём желании уже было невозможно. Почувствовав небольшой успех с основой, я уже на 100% уверовал, что всё остальное тоже получится, вопрос лишь был в том, сколько на это потребуется времени.

Но информации о том, как сделать клавишу по новой технологии просто не было. А откуда ей взяться, если ей владеют лишь Dwarf Factory? :)

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

Всю информацию о новой технологии, что мы смогли добыть, это ОДИН скриншот из видео с ютуб канала Dwarf Factory. В общем-то это ВСЁ, что мы имели.

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

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

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

Т.е. наша задача была х 2 сложнее, нам нужно было сначала понять как работает форма, а потом спроектировать всё в 3 отражённых плоскостях так, чтобы на выходе получилось то, что вы видите на скриншотах. Думать в обратном порядке это жёстко, мозг просто кипел, не слушался и постоянно отказывался думать, нужно было себя заставлять, помогать себе зарисовками и шаг за шагом додумывать. Это очень сложно объяснить тому, кто не знаком с силиконом, но поверьте, - сильнее моя голова не работала никогда в жизни :)

К сожалению, подробных записей я не вёл, и красивых чертежей напоказ не делал, всё что я смог найти из того времени касающееся чертежей это два фото выше. Это какие-то случайные "чертежи" из случайных этапов разработки, если кто-то захочет воспользоваться, могу вас сразу огорчить - до рабочего варианта вам будет ещё ой как далеко, да и технология не ограничивается одной лишь формой, там как минимум ещё 2 разработки :D

Где-то в это время я приобрёл себе фотополимерный принтер. Подзанял денег у друга, добавил своих и смог купить его. Это было однозначно лучшим решением в моей деятельности и я наконец-то избавился от человека-принтера в своей жизни. Разработки ускорились в десятки раз, так как печать занимала не 3-7 дней, а 3 часа)

Ну и потом примерно в течении 4х месяцев абсолютно каждый день мы работали над формой, зарисовывали, думали, я постоянно связывался с моделлером по дискорду и мы сидели часами и делали, что-то меняли, что-то добавляли или убирали. Каждое изменение сопровождалось заливкой силикона и последующей заливкой смолой, чтобы проверить, всё ли работает и что не так. Помимо всего этого мы работали над основными заказами и все 4 месяца мы испытывали колоссальный стресс ежеминутно :D

Мы горели по несколько раз на дню, горел партнёр - я брал инициативу на себя, горел я - инициативу брал партнёр.

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

Поначалу количество неудачных экспериментов было таким.

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

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

Но, как ни крути, мы сделали это и мы сами, практически без информации смогли освоить новую технологию доступную только 1-му бренду клавиш на данный момент. В моменты особого отчаяния я даже пару раз писал дворфам с просьбой подсказать, что мы упустили, но дворфы видимо поняли, что под них жёстко копают и не дали никакой информации. :D

Не знаю, откуда у меня в голове фраза - "Либо первый, либо второй, либо никакой", но для меня уже давно стало идеей фикс - стать лучше дворфов или хотя бы стать брендом клавиш №2 в мире. И я даже не сомневаюсь, что когда-то это произойдёт :D

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

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

Возможно, эта битва лишь в моей голове, но время покажет :)

Спасибо, что дочитали, благодарен за вашу поддержку

И по традиции - ни в коем случае не подписывайтесь на мой Instagram :)

Google Ads полностью приостанавливает свою работу в России⁠ ⁠

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

Что это означает? (Для несведущих)

Раньше, Google лишь перестал платить за российских пользователей. Но всё ещё более менее нормально себя чувствовали те, кто ориентировался на зарубежный рынок. (Например, для меня российский рынок приносил лишь 7% дохода) По нам больше ударило ужесточение валютного законодательства про продажу 80% экспортной выручки. Теперь же, после заморозки аккаунтов этой выручки не будет.

Разумеется, существуют альтернативы для рекламы от Google. Но реальность полностью соответствует одной известной цитате:

Кроме того, сам Google Play ограничивает допустимые рекламные сети для некоторых приложений, а пользователей в других маркетах меньше в разы.

Ну вариантов по классике три:

- Надеяться и ждать

- Переориентироваться на отечественный рынок

- Искать другие рекламные сети и надеяться, что они не наложат похожие санкции

- Искать нормальную работу

- Открывать счета/аккаунты за рубежом (Запрещено офертой Google)

Впервые за четыре года я был близок к тому, чтобы хоть что-то новое довести до релиза. Кажется, теперь придётся не спокойно учиться интегрировать Unity Ads в новом проекте, а срочно его прибивать к старым, чтобы было с чего честно платить налоги.

Ну а пока, остаётся лишь надеяться, что хотя бы аккаунты разработчиков в Google Play / App Store заблокированы не будет.

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

Steam в России все? Еще не все потерянно!⁠ ⁠

Для инди-разработчиков по всей стране наступили не лучшие времена.

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

Оплата через системы Яндекс и Qiwi были отключены еще в прошлом году.

В этом году всех ждал еще один сюрприз, перестала работать оплата с карт Visa и MasterCard.

Пополнить баланс или купить игру можно было только через систему PayPal но вскоре и она перестала работать. На данный момент мы больше не имеем возможность что либо оплачивать на площадке Steam находясь на территории РФ и с Российских банков.

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

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

В связи с этим я придумал (временное?) решение проблемы, пока можно продавать ключи через социальную сеть ВКонтакте.

Все нужное для организации интернет магазина уже есть на самой платформе:

Самое главное настроить каталог товаров и систему оплаты VKPay которая работает на всей территории России.

Плюсы такой системы: деньги приходят разработчику сразу, не нужно платить конские 30% комиссии Steam.

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

И еще ВКонтакте возьмет комиссию за выплату в размере 50 рублей.

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

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

Мое официальное обращение к игрокам:

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

KellyC Image Downloader - пакетная скачивалка картинок с сайтов⁠ ⁠

Занимаюсь разработкой инструмента для массового скачивания картинок с сайтов. Т.к. как правило не все картинки на ресурсах задерживаются на долго (правообладатели \ роскомнадзор и т.п.) привык сохранять творчество понравившихся авторов локально.

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

Принцип работы на примере Пикабу

Конкретно на пикабу при скачивании с закладок, сделал авто-сортировку по папкам с идентичными названиями.

Список ресурсов на которых проверял работоспособность

Там же можно найти примеры работы под конкретный сайт (в основном проверял на instagam \ twitter \ deviantart \ pinterest \ vk \ pixiv - для некоторых сайтов, оригиналы подгружаются после клика на "Загрузить доп. документы", см. примеры).

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

Любая критика, замечания приветствуются

Инициативный джун⁠ ⁠

Маленькая ложь, благодаря которой появился Pong⁠ ⁠

За фиктивным контрактом на разработку игры скрывалось полноценное дизайнерское исследование. Именно оно положило начало целой индустрии.В 1972 году миллионы людей в США и во всем мире познакомились с одной знаковой видеоигрой. Это был Pong. Его история рассказывалась публике уже десятки раз, и, конечно же, с каждым пересказом она становилась все более захватывающей. Бушнелл и Алкорн, так же как Джобс и Возняк, стали культурными идолами эпохи. К сожалению, их слишком часто изображают в виде безумных ученых, гениев, которые проснулись однажды утром, воскликнули «Эврика!» и принялись за создание первых в мире видеоигр и персональных компьютеров соответственно.

С чего все началось

Однако Pong не был первой видеоигрой с монетоприемником, не говоря уже о первенстве на рынке «игр на телевизоре». Скажем больше: компьютерные игры с мячиком и ракетками тоже не были в новинку для ранних компьютерных геймеров. Как вышло, что такая примитивная штука как Pong вообще завоевала сердца миллионов людей по всему свету?

Наверное, здесь стоит сделать короткое отступление и сказать пару слов о компьютерной истории.

Отправные точки отрасли компьютерных вычислений можно отыскать в технологиях Второй мировой войны. Армия США постоянно стремилась одержать техническое первенство, и несколько перспективных проектов — да и не очень перспективных тоже — получили финансирование в расчете на успех. Одним из таких проектов было создание высокоскоростного электронного устройства для расчета баллистических таблиц стрельбы, который в то время выполнялся вручную, преимущественно женщинами-математиками.

Разработка «электронного числового интегратора и компьютера», более известного под сокращенным именем ENIAC, началась еще в 1943-м, однако в полную силу он заработал только к 1946 году, став первым комплексным перепрограммируемым цифровым вычислительным устройством.

Задуманный и спроектированный Джоном Мокли и Джоном Экертом ENIAC размером с комнату повлиял на разработку все более компактных и мощных коммерческих компьютеров.

Эти события по-своему предвосхитили изобретение видеоигр. Военные разработки понемногу перекочевали в мир гражданской электроники. Ненадежные газоразрядные лампы понемногу вытеснились чипами. Дорогие компоненты стали стремительно дешеветь. Всё это подготовило почву для появления на рынке огромного количества видеоигр.

Та самая маленькая ложь

Непосредственно Pong разработали два инженера-электротехника — Нолан Бушнелл и Аллан Алкорн. Вместе с Тедом Дабни они основали компанию Atari Inc. в Саннивейле, штат Калифорния. Однажды Бушнелл, желая простимулировать Алкорна, сказал ему, что Atari якобы получила контракт от General Electric Co. на разработку некоего потребительского игрового продукта, и поручил построить новую игровую машину, пинг-понг с мячом, двумя ракетками и счетом, в которую можно было бы играть на телевизоре.

Нолан Бушнелл в своей домашней мастерской, Photo: Roger Ressmeyer/Corbis/VCG

«Не было никакого большого контракта», — признался позже Алкорн. «Нолан просто хотел дополнительно мотивировать меня на работу, чтобы я сделал что-то качественное и интересное. Это было похоже на упражнение по дизайн-мышлению: он выдумал как нельзя более простую игру, чтобы побудить меня разобраться с новыми технологиями».

Ключевым элементом системы, с которым Алкорну довелось экспериментировать, по его словам, была новая электронная схема перемещения объектов. Бушнелл разработал ее годом ранее, когда он работал в Nutting Associates. Он впервые использовал эту схему в аркадной игре под названием Computer Space. Игра была продана немалым тиражом в 2000 экземпляров, но так и не стала хитом.

Интерес Бушнелла к компьютерным играм возник еще в 1960-х, когда он был студентом.

Параллельно с учебой Бушнелл работал в парке аттракционов, а после колледжа любил поиграть в космические игры на компьютере PDP-10. Приблизительно тогда же к нему пришла идея построить собственный игровой автомат на базе PDP. Он узнал стоимость компьютера и разделил ее на сумму, которую зарабатывала средняя аркадная игра — и сразу же отказался от такой коммерческой затеи, потому что ее экономика трещала по швам. Машина ни при каком раскладе не могла окупиться.

А в 1971 году Бушнелл впервые увидел компьютер Data General, выставленный на продажу по цене 5000 долларов, и, произведя новые расчеты, понял, что игра на шести терминалах, подключенных к этому компьютеру, может оказаться прибыльной. Он начал разрабатывать космическую стрелялку для системы с разделением временем. Однако дело не обошлось малой кровью. Поскольку все игровые события нужно было просчитывать здесь и сейчас, компьютер перегружался и страшно тормозил.. Бушнелл попытался снять нагрузку с центрального компьютера, сделав терминалы более «умными», добавив в каждый из них генератор синхронизации, затем схемы для отображения звездного поля… и так до тех пор, пока компьютеру не осталась одна единственная задача: следить за тем, где находятся игроки. По воспоминаниям Бушнелла, в этот момент он понял, что центральный компьютер вообще не нужен — терминалы могут работать самостоятельно. Это озарение, с одной стороны, позволило отказаться от закупки компьютеров, а с другой кратно удешевляло производство игровых машин.

«Вообще-то заказ на покупку компьютеров был уже оформлен, но жена Бушнелла по рассеянности забыла отнести его на почту» — вспоминает Алькорн. И тут же добавляет: «Мы бы точно разорились, будь она чуть повнимательнее!».

Бушнелл пишет: «Экономическая модель проекта перестала считаться как «компьютер за $6000, плюс куча оборудования». Теперь нам хватало терминальных комплектующих за $400 долларов, монитора за $100 и машинного шкафа еще за $100. Цифры сошлись, и лед буквально оттаял в моих жилах!».

Разработанная Бушнеллом игра Computer Space понравилась только искушенным игрокам — тем, кто был ранее знаком с космическими играми на мейнфреймах, или тем «любителям», которые и по сей день часто посещают залы игровых автоматов. Она опередила свое время. А Pong, напротив, был слишком прост, чтобы такой интеллектуал, как мистер Бушнелл, мог рассматривать его как полноценную игру — и именно поэтому он имел успех.

Схема Бушнелла, предназначенная для управления перемещением объектов в Computer Space, оказалась слишком сложна для Алкорна. Он предпочел не тратить время на ее доскональное изучение и переработал ключевые узлы с нуля. Кроме того, перед ним стояла задача как можно сильнее снизить конечную стоимость комплектующих, и это потребовало большой изобретательности и некоторых компромиссов.

«В 1972 году на рынке еще толком не было дешевой оперативной памяти», — говорил он. «Мы столкнулись с необходимостью обеспечить движение шарика в любое из мест массива 200 на 200 точек без возможности сохранить это движение. Задачу удалось решить при помощи 10 готовых TTL-деталей. Мы построили особые генераторы синхронизации…».

Таким образом, шарик двигался относительно экрана как по вертикали, так и по горизонтали, наподобие кадровых «полос» на неправильно настроенном телевизоре. Алкорн вспоминает, что первоначально он использовал микросхему от Fairchild для создания дисплея со счетом, но она стоила 5 долларов, а он мог сделать то же самое за 3 доллара, используя TTL-детали, хотя подсчет очков получался более грубым. Собственно, на последнем варианте он и остановился.

Atari Pong, Wikimedia Commons

Возможно, вы никогда не обращали на это внимания, но мячик в Pong квадратный — это еще один компромисс. Учитывая, сколько схем потребовалось бы для круглого мяча, Алкорн задал коллегам риторический вопрос: «Кто будет платить лишний четвертак за такую мелочь как круглый мяч?».

Звуки, издаваемые игрой, также стали для основателей Atari предметом разногласий. Бушнелл хотел получить одобрительный рев многотысячной толпы, Дабни же был согласен на «освистывание».

«Как извлечь звуки из дешевых цифровых компонентов?» — задумался Алкорн. «Сначала я погорячился, сказал, что у меня в распоряжении нет подходящих деталей. Затем пошарил внутри генератора вертикальной синхронизации в поисках подходящих частот и в результате сделал самый дешевый генератор звука из возможных».

Разработка аппаратной части Pong заняла почти три месяца. Готовый прототип Алкорна включал 73 микросхемы, что, при цене около 50 центов за штуку, составляло 30-40 долларов США. «Слишком далеко от цены потребительского продукта. Плюс еще и упаковка! Я расстроился, однако Нолан моего пессимизма не разделял. Он сказал тогда: «Выглядит очень неплохо!».

Первый прототип Pong Бушнелл и Нолан установили в местном баре. На следующий же день владелец помещения позвонил им и попросил забрать. Дескать, машина чуть-чуть поработала и тут же сломалась. По прибытии проблема вскрылась моментально: монетоприемник был до отказа забит четвертаками.

📎📎📎📎📎📎📎📎📎📎