PDA

Просмотр полной версии : [Вопрос] Что, если: цикл уроков по скриптингу



Daniel_Cortez
20.09.2015, 18:08
Я изучаю Pawn уже 2 с лишним года и стараюсь делиться своими знаниями и опытом с другими скриптерами, составляя уроки, мануалы и прочие статьи по скриптингу.
Но есть нечто такое, чего ну никак нельзя изменить обычными уроками: "прафисианалы".


http://ihost.pro-pawn.ru/image.php?di=JNA4

http://ihost.pro-pawn.ru/image.php?di=T256

http://ihost.pro-pawn.ru/image.php?di=18BG

http://ihost.pro-pawn.ru/image.php?di=NL4H


Это всего лишь немногие примеры того, как нубы, не разбираясь в программировании, пытаются ещё и учить других.
В общем, это просто... "полный рантайм". И надо что-то делать с этим.
Можно перевести на русский язык весь pawn-lang.pdf (http://y-less.com/uploads/pawn-lang-3.0.3367.pdf), но вряд ли кто-то будет это читать: такая документация рассчитана на людей, хорошо знакомых с программированием, но уж точно не на нубов.

По-моему, тут нужен совсем другой формат.
Например, вот такой:
https://upload.wikimedia.org/wikipedia/ru/c/cf/Mythbusters_title_screen.jpg
Думаю, каждый из вас хотя бы раз смотрел эту передачу.
Есть идея сделать что-то похожее с опровержением (или доказательством) мифов о Pawn.
Структура каждого урока предельно проста: миф - опровержение - вывод.
Взрывов и голливудских спецэффектов не обещаю, но постараюсь сделать материал как можно более доходчивым. Черновые версии для нескольких статей уже есть.
Примеры мифов:
"Если строчек кода меньше, значит он оптимизированнее!"
"Командные процессоры нагружают сервер, лучше over9000 раз вызывать strcmp!"
"В командах на ZCMD/DC_CMD не нужны локальные переменные, лучше использовать ячейки массива params."
<предложите свой>


Как думаете, стоит ли вообще начинать такой цикл уроков? И если да, то под каким названием? (P.S.: Желательно что-нибудь без "Myth". И без "Busters". И без прочих намёков на программы канала Discovery.)
Буду рад услышать ваши мнения и примеры мифов, которые нужно доказать или опровергнуть. Заранее спасибо.

wAx
20.09.2015, 19:41
конечно нужно! название пусть придумывает кто-то с фанатизей =) (это явно не я)
ну а по поводу мифов, накину парочку
- Вредно использовать OnPlayerUpdate
- true/false лучше чем 1/0 xD

$continue$
20.09.2015, 21:00
Можно перевести на русский язык весь pawn-lang.pdf (http://y-less.com/uploads/pawn-lang-3.0.3367.pdf), но вряд ли кто-то будет это читать: такая документация рассчитана на людей, хорошо знакомых с программированием, но уж точно не на нубов.


Читать учебник по Pawn?
- Жесть, однако. Дочитав учебник - ты понимаешь, что зря ты потратил дни своей жизни.

По теме: Стоит. Название типо: Мифы парней с "Gavno - Info.Ru" :sarcastic:

Миф: bool в pawn - 1 байт.

Nurick
20.09.2015, 21:18
Соглашусь с выше сказанным! У многих начинающих да даже у опытных скриптеров станет меньше вопросов по данным темам.
- Что лучше использовать стандратные функции либо же их аналоги?
- Почему следует использовать меньше таймеров в скрипте/моде?

jeraqiv
21.09.2015, 11:03
На данный момент все видео-уроки по программированию на Pawn склонны к разработке каких либо систем. Очень печально что нету видео где человек научным языком объяснял те или иные темы. Большинство таких (видео-мейкеров по Pawn(o)) - просто мечтатели прославиться и попасть куда либо. Из-за этих людей следующие программисты Pawn будут не образованными и не профессиональными. Из этого следует что продвижение разработки игровых модификаций или модулей для SA-MP - снизится.

Каждый язык схож с другим - терминология. Тем более если сравнивать Pawn (основа которая Си и книга по Си не превышает 400 страниц) с тем-же С++ (где например книга Страуструпа имеет 1240 страниц) - небо и земля.

По теме:

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

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

Avertus
21.09.2015, 12:50
По теме:

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

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

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

Daniel_Cortez
23.09.2015, 20:54
Было-бы хорошо читать урок который касается применений алгоритмов в реализации каких либо игровых систем.

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


- Что лучше использовать стандратные функции либо же их аналоги?
Что именно вы понимаете под "аналогами", функции реализованные на чистом Pawn без использования нативных функций?
Или быдлокодерские функции типа PlayerToPoint, которые делают то же самое, что и IsPlayerInRangeOfPoint, но с лишней проверкой на подключение игрока (IsPlayerConnected)* ?
*Для тех, кто в танке: в IsPlayerInRangeOfPoint уже есть проверка на подключение: функция вернёт 0, если игрок не подключен.


- Почему следует использовать меньше таймеров в скрипте/моде?
Боюсь, с доказательством этого мифа будут серьёзные проблемы.
Прежде всего, нужно будет достать откуда-то сервер с большим количеством игроков.
Либо как-то смоделировать ситуацию с нагрузкой, как на сервере с кучей игроков, но тогда под вопрос может встать достоверность результатов.


- true/false лучше чем 1/0 xD

Миф: bool в pawn - 1 байт.
Проще и не придумаешь. Можно считать, что ещё одна статья уже готова.


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

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

Quman
24.09.2015, 12:38
Думаю было бы очень полезно, жду видеоролики.

$continue$
28.09.2015, 17:40
По названию можно что то типо:
1. True or False? | Programming Language Pawn
2. Миф или Реальность? | Язык программирования Pawn
3. Разрушитель мифов о языке программирования Pawn
4. Фантастика или реальность? | Язык программирования Pawn

Jackal
09.10.2015, 09:53
http://heavenlytruth.typepad.com/.a/6a0120a5701826970b0177446808df970d-800wi
Queen vs Pawn
"Ферзь против Пешки"

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

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

Почему такое название для цикла уроков?

Pawn (пешка) - обозначает неопытного начинающего скриптера, а Queen (Ферзь) - обозначает всевозможные препятствия, с которыми придется столкнуться по мере продвижения, в основе которых и лежат различные заблуждения. Только благодаря хорошо продуманной и правильно скоординированной "игре" возможно взять верх над "Ферзём", в чём и поможет цикл уроков Daniel Cortez.

http://www.cemarketingpros.com/mae/app/webroot/js/ckfinder/userfiles/images/Pawn-takes-queen.jpg

Daniel_Cortez
09.10.2015, 11:08
Pawn (пешка) - обозначает неопытного начинающего скриптера, а Queen (Ферзь) - обозначает всевозможные препятствия, с которыми придется столкнуться по мере продвижения, в основе которых и лежат различные заблуждения. Только благодаря хорошо продуманной и правильно скоординированной "игре" возможно взять верх над "Ферзём", в чём и поможет цикл уроков Daniel Cortez.

Это всё, конечно же, здорово, но многие читатели могут подумать, якобы это я позиционирую себя ферзём. Или, что ещё хуже, ассоциировать меня с другим... "профессионалом", который вообще никогда не устанет твердить, что он "легенда" (http://s1.hostingkartinok.com/uploads/images/2014/09/6db8023667745d10ebd3e024d4da3fbc.jpg) скриптинга и заявлять о себе в 3-м лице (не дай бог стать таким).

К сведению, пока что для статей есть рабочее название "Мифы о Pawn-скриптинге".

Desulaid
09.10.2015, 15:17
Байки из склепа (опять шоу детства вспомнил)
Мифические возможности Pawn

:grin:

Jackal
09.10.2015, 15:49
Это всё, конечно же, здорово, но многие читатели могут подумать, якобы это я позиционирую себя ферзём. Или, что ещё хуже, ассоциировать меня с другим... "профессионалом", который вообще никогда не устанет твердить, что он "легенда" скриптинга и заявлять о себе в 3-м лице (не дай бог стать таким).

К сведению, пока что для статей есть рабочее название "Мифы о Pawn-скриптинге".

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

Unreal
10.10.2015, 16:00
будет ждать о

• "В командах на ZCMD/DC_CMD не нужны локальные переменные, лучше использовать ячейки массива params."

jeraqiv
10.10.2015, 16:12
Мне кажется что не стоит делать подобного. Дело в том если учить людей основам программирования - то лучше дать источник на книжку от Денниса Ритчи или Стивена Праты (книги которые писали профессионалы).

Если речь идет об алгоритмах - читайте Кнута или Генри Уоррена.

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

Daniel_Cortez
10.10.2015, 21:02
Мне кажется что не стоит делать подобного. Дело в том если учить людей основам программирования - то лучше дать источник на книжку от Денниса Ритчи или Стивена Праты (книги которые писали профессионалы).

Если речь идет об алгоритмах - читайте Кнута или Генри Уоррена.

Не стоит изобретать велосипед который работает хуже чем его аналог.
Во-первых, в теме речь идёт о Pawn, а не о C или C++. И, как любой другой ЯП с интерпретируемым типом исполнения, Pawn имеет кучу специфичных для него ньюансов, связанных с производительностью и расходом памяти. Иными словами, глупо сравнивать его с Си. Это два разных ЯП.
Во-вторых, нет, это не сборник уроков по основам программирования.
Просто. Прочитайте. Первый. Пост.

Seregamil
10.10.2015, 23:04
Назови цикл "Мифы от скриптеров в pawno", тонко и подвох есть (:

убрал мат, выдано предупреждение \\DC

Daniel_Cortez
10.10.2015, 23:24
Убедительная просьба, не забывайте, что здесь не п.су и мат наказуем.
Но за предложенное название спасибо. ИМХО, лучше подойдёт "Мифы от программистов в pawno". Быть может, кто-то ещё помнит, раньше г-и именно так и назывался: "Портал о программировании в pawno".
Правда, 1-й выпуск уже готов, но это не так уж и страшно. Посмотрим, что по поводу этого названия скажут остальные.

UPD: Для тех, кто первый раз читает эту тему:

Приёмы для исследования кода на Pawn (http://pro-pawn.ru/showthread.php?12725)
Мифы о Pawn-скриптинге - #1 (http://pro-pawn.ru/showthread.php?12736)