как запустить скрипт js после загрузки страницы

Как запустить js скрипт через 30 секунд после загрузки страницы?

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

ошибку показывает здесь

сейчас предположил что нужно заворачивать вторую часть кода в setTimeout

подскажите как, я просто не знаток js

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

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

Unexpected token ‘)’. Expected ‘>’ to end an object literal

как запустить скрипт js после загрузки страницы

Владимир, все разобрался, там их 2 было, один сразу заметил, а недостающую скобку не сразу

спасибо большое за помощь))

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

Andrew, там у меня между contentqxxxxxxx блок, сначала показывается он, а потом через 30 секунд начинает меняться каждые 30 секунд, однако я не учел сразу, что такой метод не нужен, т.к у пользователей открыто по 10 страниц, при этом на ночь и с включенными компьютерами, не знаю как так вышло, но сервер заddosил, у некоторых было по 400 000 запросов за 4 часа прямо из личного кабинета, в общем убрал, не знаю откуда такие цифры взялись это надо было 1000 страниц открыть разом, но факт остается фактом..и это были не боты а реальные пользователи, которые полетели в бан просто так автоматом

Источник

Как вызвать функцию JavaScript при загрузке страницы?

Традиционно, чтобы вызвать функцию JavaScript после загрузки страницы, вы должны добавить атрибут onload к телу, содержащему немного JavaScript (обычно это только вызов функции)

Есть ли другой способ вызвать функцию JavaScript при загрузке? Я бы предпочел не использовать jQuery, так как я не очень знаком с ним.

8 ответов

Если вы хотите, чтобы метод onload принимал параметры, вы можете сделать что-то похожее на это:

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

Для обнаружения загруженного HTML-кода (с сервера), вставленного в DOM, используйте MutationObserver или определяйте момент в функции loadContent, когда данные готовы к использованию.

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

Попробуйте следующий код:

Ваш первоначальный вопрос был неясен, если предположить, что правка / интерпретация Кевина верна, тогда этот первый вариант не применим

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

function () Анонимная функция, будет вызываться при возникновении события.

Источник

Как запустить скрипт после полной загрузки страницы?

как запустить скрипт js после загрузки страницы

3 ответа 3

Используй отдельно файл js и установи атрибут async

как запустить скрипт js после загрузки страницы

Сомнительный, однако рабочий вариант:

как запустить скрипт js после загрузки страницы

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

как запустить скрипт js после загрузки страницы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками javascript html alert prompt или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.1.40358

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Погружение в темные воды загрузки скриптов

Введение

В этой статье я хочу научить вас как загружать в браузер JavaScript и выполнять его.

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

Для затравки, вот как спецификация определяет различные способы загрузки и выполнения скриптов:

как запустить скрипт js после загрузки страницы

Как и все спецификации WHATWG, на первый взгляд данная спецификация выглядит как последствия кассетной бомбы на фабрике Scrabble. Но, прочитав ее на 5 раз и вытерев кровь из своих глаз, начинаешь находить ее довольно интересной:

Мое первое подключение скрипта

Ах, блаженная простота. В данном случае браузер скачает оба скрипта параллельно и выполнит их как можно скорее, сохраняя заданный порядок. «2.js» не будет выполняться пока не выполнится «1.js» (или не сможет этого сделать), «1.js» не выполнится пока не выполнится предыдущий скрипт или стиль, и т.д. и т.п.

Вот почему гуру и специалисты производительности советуют размещать элементы script в конце документа, потому что это блокирует меньше всего контента. К сожалению, это означает, что ваш скрипт не будет увиден браузером до того времени, как будет скачен весь HTML, а также уже запущена загрузка CSS, картинок и iframe-ов. Современные браузеры достаточно умны, чтобы отдавать приоритет JavaScript над визуальной частью, но мы можем сделать лучше.

Спасибо, IE! (нет, я это без сарказма)

WHATWG сделали это поведение явным, объявив, что «defer» не будет иметь никакого эффекта на скрипты, которые были добавлены динамически или не имеют «src». В противном случае, скрипты с «defer» должны запускаться в заданном порядке после того, как документ был распарсен.

Спасибо, IE! (ну ладно, теперь с сарказмом)

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

Допустим, что на странице есть параграф, ожидаемый порядок логов — [1, 2, 3], но в IE9 и ниже результат будет [1, 3, 2]. Некоторые операции DOM вынуждают IE приостановить выполнение текущего скрипта и перед продолжением начать выполнение других скриптов в очереди.

HTML5 спешит на помощь

HTML5 дал нам новый атрибут «async», который предполагает, что вы также не используете document.write, но при этом не ожидает окончания парсинга документа. Браузер параллельно скачает оба скрипта и выполнит их как можно скорее.

К сожалению, так как они постараются выполниться максимально скоро, «2.js» может выполниться раньше «1.js». Это отлично, если они не зависят друг от друга. Например, если «1.js» — это отслеживающий скрипт, не имеющий ничего общего с «2.js». Но если «1.js» — это CDN-копия jQuery, от которой зависит «2.js», то ваша страница будет устлана ошибками, как после кассетной бомбы в… я не знаю… здесь я ничего не придумал.

Я знаю, нам нужна JavaScript-библиотека!

В Святом Граале содержится набор скриптов, загружающихся сразу, без блокирования отрисовки страницы и выполняющихся максимально скоро, в том порядке, в котором мы их добавили. К сожалению, HTML ненавидит вас и не позволит вам этого сделать.

Проблема была решена с помощью JavaScript на разный манер. Некоторые способы требовали от вас вносить изменения в JavaScript, оборачивать всё в callback, который библиотека вызовет в правильном порядке (например, RequireJS). Другие использовали XHR для параллельной загрузки, а затем eval() в нужном порядке, который не работает для скриптов на другом домене, если там нет заголовка CORS и поддержки его в браузере. Некоторые использовали даже супер-магические хаки, как это было сделано в последнем LabJS.

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

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

Скрипт выше должен быть встроен в head страниц, начиная очередь загрузок как можно раньше, без нарушения постепенной отрисовки, и начиная выполнять как можно раньше, в заданном вами порядке. «2.js» может свободно загружаться до «1.js», но он не будет выполнен до тех пор, пока «1.js» успешно не скачается и выполнится или не сможет сделать что-либо из этого. Ура! Асинхронная загрузка, но выполнение по порядку!

Загрузка скриптов этим методом поддерживается везде, где поддерживается атрибут async, за исключением Safari 5.0 (на 5.1 все хорошо). Кроме того все версии Firefox и Opera, которые не поддерживают атрибут async, все равно выполняют динамически-добавленные скрипты в правильном порядке.

Это самый быстрый способ загружать скрипты, так? Так?

Ну если вы динамически решаете какие скрипты загружать — да, иначе — возможно, что нет. В примере выше браузер должен распарсить и загрузить скрипт, чтобы определить какие скрипты загружать. Это скрывает ваши скрипты от сканеров предзагрузки. Браузеры используют эти сканеры для обнаружения ресурсов, которые вы скорее всего посетите следующими и для обнаружения ресурсов страницы пока парсер заблокирован другим ресурсом.

Мы можем добавить обнаружаемость обратно, поместив это в head документа:

Эта статья меня удручает

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

С появлением HTTP2/SPDY вы сможете уменьшить накладные ресурсы до точки, где доставка скриптов в маленьких самостоятельно-кэшированных файлах будет самым быстрым способом. Только представьте:

Каждый enhancement-скрипт имеет дело с конкретным компонентом страницы, но требует вспомогательные функции в dependencies.js. В идеале, мы хотим загрузить все асинхронно, затем выполнить enhancement-скрипт как можно раньше, в любом порядке, но после dependencies.js. Это прогрессивное прогрессивное улучшение!

К сожалению, нет декларативного способа для того, чтобы достичь этого, только если модифицировать сами скрипты для отслеживания состояния загрузки dependencies.js. Даже async=false не решит эту проблему, потому что выполнение enhancement-10.js будет заблокировано на 1-9. По факту, есть только один браузер, в котором можно достичь этого без хаков…

У IE есть идея!

IE грузит скрипты не так, как другие браузеры.

IE начинает закачивать «whatever.js» сейчас, другие же браузеры не начнут загрузку до того момента, пока скрипт не будет добавлен к документу. У IE также есть событие «readystatechange» и свойство «readystate», которые сообщают о процессе загрузки. Это на самом деле очень полезно, потому что позволяет нам управлять загрузкой и выполнением скриптов независимо друг от друга.

Хватит! Как я должен загружать скрипты?

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

Именно этот. В конце элемента body. Да, быть веб-разработчиком — это как быть царем Сизифом (бум! 100 хипстерских очков за упоминание греческой мифологии!). Ограничения HTML и браузеров не позволяют нам сделать сильно лучше.

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

Иуу, должно быть что-то получше, что мы можем использовать сейчас?

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

Во-первых, мы добавим объявление subresource для предзагрузчиков:

Спецификация говорит: Скачивай вместе, выполняй по порядку после любого ожидающего CSS, блокируй отрисовку, пока не закончишь
Браузер отвечает: Да, сэр!

Defer

Спецификация говорит: Скачивай вместе, выполняй по порядку до DOMContentLoaded. Игнорируй «defer» для скриптов без «src».
IE

Источник

Пособие по запуску JavaScript: консоль, букмарклеты и прочее с примерами

Запускать JavaScript (или JS) код в браузере — обычный навык.

Если когда-то хотели апробировать свой первый JS-код, но боялись, этот пост для вас.

Цель поста для читателей — мочь самостоятельно запускать нужный код.

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

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

ПОМНИТЕ: не устанавливайте JS-код из сомнительных источников и когда не понимаете, что код делает!

как запустить скрипт js после загрузки страницы

§ I. ГДЕ запускать JavaScript код?

как запустить скрипт js после загрузки страницы

I.1. Через консоль браузера.

Чтобы открыть консоль нужно нажать ctrl+shfit+K или ctrl+shift+L.

Вставляете код, нажимаете enter, он сработает.

как запустить скрипт js после загрузки страницы

I.2. Через адресную строку браузера.

Это строка, где написан адрес сайта.

Стираете адрес сайта, вместо вставляете код, нажимаете enter, он сработает.

как запустить скрипт js после загрузки страницы

I.3. Через bookmarklet, или букмарклет, или «закладурку».

Это закладка браузера, в которой вместо сайта стоит JS-код.

Создаёте любую новую закладку. Затем находите закладку и исправляете её: вместо адреса сайта, который должен открываться, вставьте JS-код и сохраните.

Нажимаете на эту вкладку, срабатывает JS-код.

ПРИМЕЧАНИЕ: это один из удобнейших «многоразовых» способов запускать JS-код, в том числе в браузере смартфона!

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

I.4. Через обычный блокнот, сохранённый как HTML.

Открываете новый блокнот (notepad).

Вставляете туда нужный HTML с JS.

Нажимаете «Сохранить как», откроется меню. Тип файла — меняете «Текстовые документы (*.txt)» на «Все файлы (*.*)». Имя файла — мойкод.html. Его и открывать в браузере.

ПРИМЕЧАНИЕ: удобный «многоразовый» способ запускать JS-код на компьютере (без Интернета).

как запустить скрипт js после загрузки страницы

СПРАВОЧНО: HTML — это язык гипертекстовой разметки.

Любая открытая web-страница в браузере в общем случае — HTML.

как запустить скрипт js после загрузки страницы

I.5. Через блокнот в браузере (внося изменения в web-страницу).

Преимущества (многоразовое использование и не требуется Интернет), а также подход похожи на [I.4].

Открываете блокнот в браузере в качестве новой вкладки:

Затем в консоли находите элементы (HTML-код): открываете консоль (ctrl+shift+K или ctrl+shift+L), переходите в Elements.

Изменяете HTML-код, вставляя туда нужный HTML с JS.

Сохраняете страницу, закрываете её.

После сохранения её и открывать в браузере.

ПРИМЕЧАНИЕ: кстати, сам упомянутый браузерный блокнот удобен для своих заметок, которые можно потом сохранять в специальной папке (ctrl+s).

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

I.6. Через онлайн компилятор/интерпретатор.

Вставляете HTML и JavaScript в соответствующие поля, нажимаете «Save» для сохранения страницы с уникальным адресом (или «Run» для предпросмотра).

Для демонстрации сохранённого можно вставить в конец адреса «/show», будет видна просто страница:

ПРИМЕЧАНИЕ: удобнейший «многоразовый» способ запускать JS-код (когда есть Интернет).

как запустить скрипт js после загрузки страницы

I.7. Через специально установленные расширения (addon) браузера.

Вставляете код, сохраняйте. На соответствующих страницах должно работать.

ПРИМЕЧАНИЕ: удобно автоматически запускать JS-код сразу после загрузки (например, на конкретных сайтах с помощью @match).

как запустить скрипт js после загрузки страницы

§ II. ОСНОВНЫЕ ВИДЫ запуска JavaScrpt-кода?

Здесь речь будет идти о простейшем коде, запускающем окошко с текстом.

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

Применение: [I.1] консоль.

II.2. Протокол: немедленно вызываемая функция (или IIFE) объявляется и запускается.

Применение: [I.2] адресная строка браузера;

II.3. Userscript для Tampermonkey / Greasemonkey.

Применение: [I.7] специальные аддоны Tampermonkey / Greasemonkey.

II.5. Протокол: немедленно вызываемая функция, добавляющая на страницу код и кнопку, с помощью которой его можно запускать.

II.5.1. Протокол: немедленно вызываемая функция, добавляющая на страницу код и кнопку, с помощью которой его можно запускать: код на странице.

var scr1 = document.createElement(‘script’);
scr1.setAttribute(‘type’,’text/javascript’);
scr1.textContent=»var func1=function();»;
document.documentElement.getElementsByTagName(‘*’)[0].appendChild(scr1);

var btnDiv1 = document.createElement(‘div’);
btnDiv1.id = ‘btnDivId1’;
btnDiv1.style.position = ‘relative’;
btnDiv1.style.zIndex = 99999;
var btn1 = document.createElement(‘button’);
btn1.innerHTML = ‘Click’;
btn1.id = ‘btnId1’;
btn1.setAttribute(«onclick», «javascript:func1();»);

II.5.2. Протокол: немедленно вызываемая функция, добавляющая на страницу код и кнопку, с помощью которой его можно запускать: код по ссылке.

var scr1 = document.createElement(‘script’);
scr1.setAttribute(‘type’,’text/javascript’);
scr1.setAttribute(‘src’,’http://codepad.org/2NJ2YB3V/raw.txt’);
document.documentElement.getElementsByTagName(‘*’)[0].appendChild(scr1);

var btnDiv1 = document.createElement(‘div’);
btnDiv1.id = ‘btnDivId1’;
btnDiv1.style.position = ‘relative’;
btnDiv1.style.zIndex = 99999;
var btn1 = document.createElement(‘button’);
btn1.innerHTML = ‘Click’;
btn1.id = ‘btnId1’;
btn1.setAttribute(«onclick», «javascript:func1();»);

§ III. ОСНОВНЫЕ ТИПЫ запускаемых Javascript-кодов?

Разумеется, типов множество, но некоторые мы разобрали.

а) запускаемый сразу;

б) запускаемый после загрузки страницы;

в) запускаемый по кнопке;

г) запускаемый каждые N секунд — изучите самостоятельно!

Первые три вы знаете и видели.

Четвёртый нужно изучить самостоятельно, сделав по аналогии. И, если не выходит, пользуясь поиском в google. Или задавая вопросы на профильных сайтах, например, на stackoverflow или в соответствующих чатах.

Задание-1: чтобы закрепить знания, совет — проверить, «пощупать» каждый кусок кода, который приведён выше и удостовериться, что он работает.

Задание-2: измените КАЖДЫЙ приведённый выше кусок кода и удостоверьтесь, что он работает так, чтобы код запускался каждые 3 секунды.

Если обобщить, то измените в каждом куске

Как вы поняли, [II.1] уже сделан. Попробуйте сделать остальные.

Если у вас не получилась практика / иные причины, возможно, «маякните» в комментариях на предмет того, нужны ли «спойлеры» / ответы (хотя это несложно).

[Доп.советы, чуть более углублённые мелочи]

IV.1. О том, где может храниться JavaScript.

Он может быть как внутри самого файла HTML, так и быть внешним (ссылкой на код).

Во втором случае, то есть для хранения внешних, использовался сайт codepad.org, хотя есть и аналоги [но некоторые аналоги могут на уровне не давать возможность его подгружать в браузер, давая ошибку «CORS»; сейчас неважно, но просто учтите].

Там вставлялся код, выбирался «Plain Text», нажимался «Submit». После сохранения правой кнопкой мыши копировался адрес ссылки «Raw Code». Он-то и является ссылкой (использовалась в [II.4.2], [II.4.4], [II.5.2]).

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

На этом достаточно исчерпывающее пособие по запуску JavaScript подходит к концу.

Лицензия на текст, код и скрины: CC0.

UPD: ВНИМАНИЕ: В связи с закрытием сайта codepad.org просьба учитывать изменения, описанные в комментарии #comment_199553464

Найдены дубликаты

В связи с тем, что сайт codepad.org более не работает, соответствующие изменения:

В коде ссылку » http://codepad.org/AXduOuGF/raw.txt » заменить (считать заменённой) на

В коде ссылку » http://codepad.org/2NJ2YB3V/raw.txt » заменить (считать заменённой) на

В коде ссылку » http://codepad.org/2NJ2YB3V/raw.txt » заменить (считать заменённой) на

Фразу «использовался сайт codepad.org » заменить (считать заменённой) на

«но некоторые аналоги могут на уровне не давать возможность» —

удалить слова «на уровне «.

Весь абзац «Там вставлялся код, выбирался «Plain Text», нажимался «Submit». После сохранения правой кнопкой мыши копировался адрес ссылки «Raw Code». Он-то и является ссылкой (использовалась в [II.4.2], [II.4.4], [II.5.2]).» заменить (считать заменённым) на

«Там вставлялся код, выбирался «Text», нажимался «Run». После сохранения правой кнопкой мыши копировался адрес ссылки «Скачать». Он-то и является ссылкой (использовалась в [II.4.2], [II.4.4], [II.5.2]).»

Заменить (считать заменённой) на новую (прилагается).

Заменить (считать заменённой) на новую (прилагается).

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

В связи с настоящим форс-мажором — месяц назад закрылся сайт codepad.org (и вновь не открылся, кто бы мог подумать, он работал с 2008 года!) — часть предлагаемого типового кода, зависящая от сайта, перестала работать.

В связи с этим большая просьба, если это только возможно, внести небольшие коррективы, описанные в комментарии выше: #comment_199553464.

Код теперь дважды «зарезервирован», так что другие исправления в будущем, если внести изменения, не понадобятся. Ну не новый же пост создавать.

Но, наверное, было бы замечательно, если бы возможно было произвести коррекцию пунктов. Кнопки самостоятельного «редактировать» нет. А так пост будет максимально актуален и почти вечен.

Было желание опубликовать пост в Лига программистов, но там ограничение по карме, хотя там ему, мне кажется, самое место.

Возможно / разумно ли как-то попросить перенести?

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

С чего начать делать игру? Твои первые шаги!

Это статья для тех, кто хочет сделать игру, но не знает с чего начать.

Я постараюсь, по шагам, объяснить весь процесс от желания до релиза. Погнали!

как запустить скрипт js после загрузки страницы

Меня зовут Александр Дударев. Я гейм-дизайнер с 10-летним стажем. Работал в многих компаниях, например в Playgendary. Делал разное: и казуалки для мобилок, и танковый шутер для PC.

Теперь я инди-разработчик. Живу за счёт продажи своих игр. Выпустили 4 игры для PC и Консолей. Сейчас разрабатываю игру They Are Here: Alien Abduction Horror — хоррор от 1-го лица, про похищение пришельцами.

как запустить скрипт js после загрузки страницы

Шаг 1. Запасись энтузиазмом

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

Как пополнять запас энтузиазма? Смотри документалки, читай истории успеха разработчиков. Это мотивирует!

Например, вот классная документалка о инди-играх Indie Game: The Movie

Смотри по сторонам: на другие игры, фильмы, кино, на новые технологии. Желание изучить что-то новое или сделать что-то похожее — это то, что нужно.

Шаг 2. Собери команду или сделай всё сам!

как запустить скрипт js после загрузки страницы

Одному — проще. Проще придумать идею и принимать решения. Не надо спорить и описывать задачи. Сделать игру одному — возможно. Я например сделал 4 игры один.

С командой — лучше. Лучше получается качество. Твои решения критикуются, и результат улучшается. Можно распределить обязанности и сделать игру быстрее. Последнюю игру я делаю в команде со своей женой. Она отвечает за историю, критикует мои решения, помогает с артом, ищет стримеров.

Шаг 3. Сформулируй цель разработки

Очень важно понять — для чего тебе всё это?

как запустить скрипт js после загрузки страницы

1. Трудоустройство в геймдев компанию.

Вопросы: На какую должность хотим устроиться? В какую компанию(и)? Какими играми занимается компания(и)? Чему нужно научиться?

2. Научиться делать игры, освоить навык.

Продукт — опытный образец. Приоритет- новые знания.

Вопросы: Какой навык освоить? Как сделать какую-то конкретную штуку?

3. Рассказать о чём то важном.

Вопросы: Поймут ли мою идею? Как сделать продукт более массовым?

4. Сделать игру о которой мечтал.

Продукт — мечта. Приоритет — воплотить своё видение.

Вопросы: Что я хочу видеть? Чем можно пренебречь? Как закончить проект?

5. Построить свой бизнес.

Вопросы: Какие игры лучше продаются? Сколько времени займет разработка? Как сократить это время?

Цель может быть не одна. Цели могут меняться от игры к игре.

Шаг 4. Вспомни, что ты умеешь или любишь

Например, я и моя жена — фанаты фильмов ужасов про пришельцев. Типа «Знаки», «Мрачные небеса», «Секретные материалы». Поэтому нам проще работать над идеями и сценарием для They Are Here

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

как запустить скрипт js после загрузки страницы

Шаг 5. Выбери платформу

Если просто, то есть 2 пути: Мобилки или ПК + Консоли.

как запустить скрипт js после загрузки страницы

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

как запустить скрипт js после загрузки страницы

— Массовая аудитория. Дети, пенсионеры, скучающие продавщицы. Это не геймеры. Всё должно быть очень понятно и просто.

— Играют по 1 — 5 минут. В перерывах, в очередях, на работе. Чтобы «убить время».

— Ценится простая яркая графика.

— Упор на простой, но залипательный кор-геймплей.

— Некоторые жанры (головоломки, аркады) — наиболее просты в разработке. Можно сделать небольшой прототип (1-5 уровней) и показать его работодателю, например.

— Не требуется красивая или сложная графика. Главное — чтобы было понятно.

— Простой геймплей и гейм-дизайн.

— Будет плюсом, если сам привык к мобильным девайсам и играм.

— Очень. Высокая. Конкуренция. Игр миллионы и почти все они — бесплатные. Игроки приходят только с рекламы. Нет рекламы — нет игроков. Нет денег.

— Монетизация. Нужно встраивать рекламу или внутри-игровые покупки в игру. Знать куда и как. Тестировать чтобы всё это работало.

— Аналитика. Нужно понимать что такое LTV. Почему он должен быть > чем CPI. Встраивать аналитику в игру.

— Будь готов делать по 20 прототипов или улучшать продукт, пока LTV не станет > CPI.

— Заработать денег небольшой команде, можно только с издателем. Я лично не знаю других путей.

Если решишься, узнай подробнее про:

— Гипер-казуальные игры (всё по теме гейм-дизайна и производства).

— Как найти издателя гипер-казуальных игр.

— Казуальные игроки (сложность казуальных игр и туториалы).

— Аналитика мобильных игр (CPI, LTV, Retention).

— Монетизация мобильных игр.

— Оптимизация мобильных игр.

— Google Play и App Store. Регистрация аккаунта разработчика. Правила и рекомендации. SEO.

— Рекламные медиаторы и сети (Iron Source, AdMob и т.п.).

— Сервисы рыночной аналитики мобильных игр (Sensor Tower, App Annie).

Путь 2. ПК + Консоли

как запустить скрипт js после загрузки страницы

— Играют по несколько часов. Дома. Чтобы погрузиться в игру.

— Ценится реалистичная или стильная графика.

— Упор на интересную историю или глубокий геймплей.

— Меньше конкуренция, чем на мобилках. Особенно на консолях.

— Легче получить игроков и отзывы.

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

— Не надо возится с аналитикой и монетизацией.

— С детства понятная платформа (ПК / Консоль) и аудитория (Геймеры).

— Аудитория любит авторские, творческие, интересные игры.

— Будет плюсом, если сам играешь на компе или приставке.

— Плохо заходят простенькие игры (головоломки, аркады). Геймеры хотят получить опыт, вжиться в роль. Залипнуть надолго. Игра не должна выглядеть как что-то на пару минут.

— Игры дольше в производстве. Но можно хитрить — делать маленькие игры, которые выглядят как большие, а также использовать готовые ассеты.

— Нужно поработать над интересной идеей. Найти отличительные черты (USP), которые выделят проект.

— Нужно продумать интересную историю или геймплей.

— Более сложный геймдизайн.

— Большая требовательность к качеству графики.

Если решишься, узнай подробнее про:

— Геймдизайн компьютерных игр.

— Что такое вертикальный срез.

— Steam. Регистрация аккаунта разработчика. Оформление страницы. Тэги. Правила и рекомендации.

— Маркетинг и продвижение инди-игр на Steam (рекомендую http://howtomarketagame.com/ ) Как сделать крутой постер, трейлер, скриншоты, ГИФки.

— Портирование игр на консоли.

— Издатели игр на консолях.

— Конкурсы и фестивали инди-игр.

— Работа с инфлюенсерами (ютуберами, стримерами).

— Сервисы аналитики тэгов и жанров (SteamDB, Steamspy, SteamCharts, Game Data Crunch).

— Сервисы рассылки ключей (Keymailer, Woovit)

Шаг 6. Узнай про производство игр в целом

как запустить скрипт js после загрузки страницы

Не важно какую платформу ты выберешь. Интересуйся тем Как Делают Игры

Рекомендую погуглить про:

— Игровые механики, жанры и сеттинги.

— Геймдизайн. Есть книга Джесси Шелла, она хорошая, но большая. Можешь гуглить про конкретный жанр.

— Кор-геймплей и Мета-геймплей.

— Левел-дизайн. Лучше гуглить про отдельный жанр.

— Пользовательский интерфейс (UI) в играх.

— Ассеты и маркетплейсы.

Шаг 7. Выбери движок и глянь уроки

Движок — это программа, в которой собирается игра. Это большой кухонный комбайн, в котором есть всё. Там программируется логика, собираются уровни, выставляется освещение, настраивается анимация, создаются материалы, вставляются звуки и т.п.

как запустить скрипт js после загрузки страницы

Про выбор движка написано много статей — погугли.

Если ты один, и не знаешь языков программирования, рекомендую Unreal Engine 4. Почему?

Во-первых, «Blueprints» — это визуальное программирование на блоках. Это проще понять, чем классический «код».

как запустить скрипт js после загрузки страницы

Во-вторых, куча плюсов:

— Красивая графика «из коробки».

— Есть большой маркетплейс с гововыми ассетами

— Это популярный коммерчесский движок, на котором сделано очень много игр.

— Можно сделать игру под все платформы. Можно встроить рекламу, инапы, аналитику.

— Много уровков. Рекомендую канал «Unreal Engine Rus»

— Куча встроенных функций.

— Бесплатный до ляма баксов дохода.

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

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

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

Жанр — это твоя ниша. Жанр — это очень важно. Есть жанры, в которые никто не играет. А для некоторых нужно изучить много дополнительного материала.

Лучше выбрать жанр который:

— Популярен на платформе. Игры этого жанра часто покупают или скачивают. Используй сайты для аналитики жанров. Например, для Steam: «steamdb.info», «gamedatacrunch.com», «steamspy.com».

— Не слишком сложен в производстве. MMORPG — не твой выбор!

— Нравится тебе или команде. Ты разбираешься в нём или много играл в детстве.

как запустить скрипт js после загрузки страницы

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

Шаг 9. Придумай идею, концепцию, USP

Идея — ядро твоей игры. Зерно, из которого вырастет проект.

как запустить скрипт js после загрузки страницы

Какая идея хорошая?

— Понятная. Должна быть понятна каждому. Например, твоей маме.

Интересная. Уже хочется поиграть в это! Люди любят риск и новый опыт, который хотят, но не могут пережить в реальной жизни. Например GTA — это симулятор крутого парня, которым все хотят быть, но не могут.

— Популярная. Это не артхаус, не что-то странное или специфичное. Идея обращается к понятным образам из жизни или массовой культуры.

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

Что поможет тебе в выборе идеи?

— Каталог игр на твоей платформе. Смотри что популярно. Думай как это изменить, подать под другим углом. Хмм…игра про постройку железной дороги в топе. А что если, мы играем за машиниста?

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

— Массовая культура. Фильмы, книги, комиксы, короткометражки, гифки, картинки из интернета.

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

как запустить скрипт js после загрузки страницы

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

Питч — короткое предложение, описывающее идею. Например, They Are Here — ужастик про похищение пришельцами. Почитай подробнее про то «Как питчить игры».

На основе Питча, описываем концепт игры. Более развернутое описание игры на одну страничку. За кого мы играем? В чем цель? Что можно делать? Какие эмоции вызываем?

Продумай отличительные черты — USP, которые будут наглядно «продавать» твой проект.

USP вытекают из твоей идеи. Например, идея Панка — издевательство над культурой. USP Панка: вызывающее поведение, агрессивная музыка и странные прически.

как запустить скрипт js после загрузки страницы

Показывай свои USP везде — в трейлере, скриншотах, постере, описании игры. Говори про них общении с прессой и издателями.Тычь ими в лицо!

Например, у They Are Here — это пришельцы, кукурузные поля и огни в небе.

Шаг 10. Составь список ассетов и задач

Ассеты — это кирпичики, из которых состоят игры.

Составь список того, что нужно сделать. Хотя-бы крупными мазками. Сделать уровнь, найти музыку, вставить персонажа. А еще надо 20 видов мечей.

Оцени время, а потом умножь его на 2. Даже если тебе кажется это глупым. Умножь его в 2 раза!

как запустить скрипт js после загрузки страницы

Если видишь, что проект большой — отрезай всё ненужное. Ненужное — всё, что не показывает идею. Или редко появляется на экране.

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

Прикинь, что для мобильных гипер-казуалок нужно сделать минимум 30 минут геймплея. А для ПК и Консолей, лучше сделать игру на 2 часа. Если можешь больше — круто!

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

Шаг 11. Организуй процесс

Записывай, всё что надо сделать. Каждую мелочь. Иначе — забудешь.

Ставь задачи. Себе и команде. Рекомендую Trello (проще) или Asana (функциональнее).

Cобирай инфу по проекту в одном месте. Можно юзать доски типа “Miro” или вики типа Notion.

Если ты один, или у вас небольшая команда, не парься над большой и красивой документацией. Лучше покажи пример, начерти схему, объясни на пальцах ЧЁ НАДО сделать.

Референс — лучшее описание задачи для художника! Например, я сказал жене — хочу обложку как у Слендера, но с пришельцем. Этого — достаточно!

как запустить скрипт js после загрузки страницы

Собирай и храни нужную инфу. Ссылки на классные статьи. Контакты возможных партнёров. Скриншоты багов. И т.п.

Шаг 12. Сделай демку

Демо-версия / Вертикальный срез / MVP — очень близкие по смыслу понятия. Это маленький кусочек игры финального качества.

как запустить скрипт js после загрузки страницы

Демо-версия решает множество задач:

— Поможет записать видео, скриншоты, гифки

— Покажет окупаемость мобильной игры

— Поможет устроиться на работу

— Ускорит набор вишлсистов в Steam

— Получит отзывы от игроков и стримеров

— Можно участвовать в фестивалях и конкурсах

-Только с ней можно найти издателя.

Шаг 13. Не ленись! Работай!

Пара советов, как дожить до релиза:

— Не меняй идею на ходу. Сильно. По чуть-чуть можно.

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

— Составь график работы. Работай над игрой постоянно. Хотя бы по 3 дня в неделю, по 2 часа в день. Больше — быстрее!

— Надоела разработка? Поиграй в похожие игры. Посмотри похожие фильмы. Найди, что было бы круто сделать.

— Всё равно надоела? Мечтай о релизе. Представь как это будет здорово и вечно!

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

— Узнавай что-то новое про производство игр. Слушай подкасты, смотри доклады. Это мотивирует, помогает в производстве.

Спасибо, что дочитал!

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

Яндекс погода

Никогда особо не парился по поводу памяти в телефоне, но тут решил посмотреть список приложений с фильтрацией по размеру.

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

Секрет тяжести молота Тора:

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

Отзыв на Гитхаб

как запустить скрипт js после загрузки страницы

как запустить скрипт js после загрузки страницы

Чего ожидать от поста: очень личное мнение с точки зрения интервьюера топ IT-компании о том, что не так с быстрыми IT-курсами и о пробелах в знаниях их выпускников; советы в общих чертах, как же всё-таки войти в это самое АйТи. Пост ограничен профессией разработчика ПО ввиду жизненного опыта автора.

как запустить скрипт js после загрузки страницы

Что значит «войти в АйТи»?

Чего работодатели ждут от кандидатов?

как запустить скрипт js после загрузки страницы

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

* Умение более-менее свободно общаться на английском;

* Понимание организации сетей, сетевых протоколов;

* Понимание параллелльного программирования и многопоточности;

* Принципы трансляции программного кода в исполняемый код;

* Понимание концепций и синтаксиса какого-нибудь популярного языка программирования и умение применять их для решения учебной задачи;

* Владение терминами информатики и адекватное их применение в процессе решения задачи;

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

* Знание принципов объектно-ориентированного программирования;

* Умение внятно превращать мысли в слова.

От стажёров не требуется опыт работы по специальности, но желательно иметь несколько небольших проектов: учебные проекты и курсовые, pet-projects, участие в опен-сорсе.

Junior-разработчик, помимо означенных выше качеств, должен также:

* Иметь опыт разработки на стажировке в крупной компании и/или в качестве разработчика в небольшой или не широко известной компании;

* Быть способным реализовать поставленную хорошо очерченную задачу без постоянного надсмотра со стороны более старших разработчиков (часто при наличии готового плана реализации, разработанного старшими товарищами);

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

как запустить скрипт js после загрузки страницы

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

Учат ли этому «вайтишные» курсы?

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

как запустить скрипт js после загрузки страницы

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

Что же там тогда происходит?

Я посмотрела один широко рекламируемый курс по Java и попыталась систематизировать увиденное. Систематизировать оказалось немного. Плакала только горько, вина бутылку выпила.

как запустить скрипт js после загрузки страницы

И вот что я там увидела:

как запустить скрипт js после загрузки страницы

2. Сложно о простом. Чтобы объяснить условные операторы, совсем не нужно заводить программу на 100 строк, которая не влезает на экран и где сам лектор путается в логике. Зачем? Или это ещё один приём, чтобы вызвать у ученика ощущение себя как бесполезной воши, неспособной ничего достичь без богоподобного лектора курса?

как запустить скрипт js после загрузки страницы

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

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

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

как запустить скрипт js после загрузки страницы

К чему это приводит?

как запустить скрипт js после загрузки страницы

Вы скажете: «Да рядовому программисту это всё не нужно! За мои over 9000 лет в разработке мне никогда не приходилось писать сортировку самому!» Это может быть правдой.

как запустить скрипт js после загрузки страницы

Во-первых, без этих знаний в настоящее время новичок банально не пройдёт собеседование в более-менее приличной конторе, так что какая разница, что вам там приходилось или не приходилось.

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

как запустить скрипт js после загрузки страницы

Если не курсы, тогда что?

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

как запустить скрипт js после загрузки страницы

Значит ли это, что тёплого местечка в Гугле вам не видать, не просидев предварительно 4-6 лет за партой в пыльном универе? Отнюдь нет.

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

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

как запустить скрипт js после загрузки страницы

Как промежуточный вариант между самообразованием и полноценной вышкой существуют «школы курсов». Они не дают официальных дипломов об образовании, но они полностью бесплатны, преподают в них (да, снова связи. ) лучшие преподаватели вузов (знаю некоторых лично, потому что они и в СПбГУ преподают) и инженеры приличных компаний (Яндекс, JetBrains), а часть обучения составляют обязательные практические проекты.

В чём подвох? Чтобы поступить, нужно сдать экзамен на математику уровня примерно второго курса столичного вуза.

Я в курсе двух таких школ, которые к тому же сотрудничают между собой: Школа Анализа Данных (упор на машинное обучение) и Computer Science Center (более широкий спектр предметов). Готовьтесь потратить 2-3 года на обучение в любой из них (сравните с 4 годами полноценного бакалавриата, которые включают в себя также и математику, требуемую обеими школами на входе).

как запустить скрипт js после загрузки страницы

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

* Разделы математики, полезные разработчику ПО (со списком литературы);

* Темы информатики, с которыми должен быть знаком любой программист (со списком литературы);

* Список алгоритмов и структур данных, наиболее полезных на интервью и в разработке;

* Как выглядит типичный процесс собеседования на программиста в топ западные компании;

* Составляем резюме грамотно;

* Один день из жизни разработчика ПО, или что вы не знали о профессии программиста.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *