• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Разное Философия модмейкера

Наяд

Участник форума
Регистрация
21 Ноя 2009
Сообщения
1.050
Благодарности
0
Баллы
220
  • Первое сообщение
  • #1
Копаясь в архиве статей по модострою Warcraft 3, набрел сегодня на одну крайне занятную статью. Если вкратце, она повествует об организации и доведении до конца модмейкерских проектов и психологии модостроителей в целом. Ведь всем нам известно, что практически в каждой игре с модкитом существует множество незаконченных модов. Почему же это происходит? В данной статье рассматриваются все известные причины забрасывания модмейкерами своих проектов и даются подробные объяснения и советы как этого избежать, а также граммотно и эффективно организовать и довести до финального релиза свое творение. Хотя статья создавалась модмейкером варкрафта и для варкрафта, все написанное целиком и полностью присуще и готическому модострою, да и вообще всему модостроению к компьютерным играм. Статья по большей части предназначена для новичков и модмейкеров, начинающих/собирающихся работать в команде, но, уверен, "модостроителям-победителям" тоже будет весьма интересно ее почитать. Я, к примеру, в свое время многие типичные ошибки, описанные в статье, испытал на собственной шкуре (да и сейчас нашел много полезного для себя, чего даже и не предполагал ранее). Даже жалею, что не прочитал ее раньше, ибо по незнанию благополучно завалил пару собственных проектов:D. Хотя с другой стороны, учеба на своих ошибках гораздо эффективнее, чем чтение туторов и статей, но на это порой уходит масса времени, да и не факт, что из каждой ошибки человек сможет извлечь урок.

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

PS: Большая просьба не оставлять комментарии, если вы не прочитали статью!


Философия успешного модмейкера или как довести свой проект до конца

Автор: Sergey

Часть 1: О чем эта статья​

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

Все подобные вопросы я отношу к категории «смысл жизни картостроителя». Каждый картостроитель сам решает для себя эти вопросы. Я изложу свой собственный взгляд на картостроительство и, исходя из него, буду давать рекомендации, к чему в идеале должен стремиться картостроитель. Это мои взгляды и мои рекомендации. Соглашаться с ними или нет – ваше право.
Если интересно, то мои взгляды основаны на:
- опыте картостроителя – я один из самых древних картостроителей war3
- опыте работы в фирме
- прочитанным книгам (менеджмент, психология, технологии обучения)
- оптимизме
- и др.
Благодарности​
Выражаю благодарность участникам, которые помогли мне с написанием этой статьи:
DioD, Mefist, Zlaya1000 и др.

Часть 2: Философия успешного картостроителя​

Что представляет собой картостроительство? С одной стороны, картостроительство – это времяпровождение, игра, хобби. С другой стороны, это занятие далеко не худшее из всех доступных. Картостроитель может развить в себе определенные способности:
– художественные
- литературные
- программистские и т.д.
Картостроитель имеет возможность:
- поработать самостоятельно, понять на что ты способен
- организовать команду или поработать в команде
- потренироваться писать статьи и т.д.
Из отрицательных черт я бы назвал постоянное сидение перед компьютером (в ущерб здоровью и интересам реального мира).
В то же время, картостроительство – это еще и клуб по интересам. А любой клуб предполагает не только творческую работу, но и общение. Люди стремятся не только работать над проектами, но и поговорить, поспорить, получить обратную связь в виде похвалы, критики и т.п.

Я выделю три основных направления, которые имеющие значение для картостроителя:
1. Реализация проектов
2. Совершенствование навыков
3. Общение

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

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

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

Кого из картостроителей считать победителем, кого проигравшим? Это тонкий вопрос. Например, если из 50 проектов до релиза доживают 3-4, то получается, что по большей картостроители – проигравшие? Я предлагаю взглянуть на эту проблему более широко.

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

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

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

3. Победитель – тот, кто получил от пребывания больше пользы, чем вреда и достиг поставленных целей. Таких картостроителей немного. Некоторые из них периодически выкладывают свои творения в паблик (в них некоторое время режутся люди в battle.net). Например, Bloody Chainsaw – типичный автор. Изредка, они берутся за более сложные задачи вроде кампаний и доводят их до конца (например, Zuriel).
Характерная черты победителя:
- организован
- хорошо представляет себе, чего хочет достичь
- имеет реалистичный план действий (в отличие от победителя, у проигравшего нет плана - одни задумки).


Если говорить обо мне самом. Я написал много статей по картострою и более чем доволен тем, что они оказались полезны. В этом я победитель. Я один из немногих могу похвастаться, что довел до конца свой проект. В проект МОМ я вложил немало труда (даже при условии, что тогда у меня не было собственного компьютера и интернета, и иногда приходилось работать в компьютерном клубе). В этом я проявил себя, как победитель. С другой стороны, МОМ оказался не так уж интересен игрокам, быстро устарел не получив признания. Я рассчитывал на большее. Стало быть, в целом это все таки не-победа. То же самое можно сказать об остальных моих проектах. Но, несмотря на провалы, от участия в этих проектах я получал для себя больше пользы, чем вреда.

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

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

Часть 3: Как довести свой проект до конца​

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

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

Четыре составляющих успеха:
I. Планирование
II. Организация
III. Мотивация
IV. Контроль


I. Планирование
Приступая к проекту, вы должны четко представлять:
1. Чего хотите достичь.
Сформулируйте каким должен быть конечный результат. Что будет на выходе вашего проекта, как это будет выглядеть.
2. Что и в каком порядке будете делать.
Распишите последовательность действий и составьте список всего, что вам понадобится для его осуществления (знания, программы, картостроители определенной специальности и т.д.).
3. Как достичь запланированного.
Тут вам может помочь только собственный опыт. Если вы плохо представляете, что вам потребуется для завершения проекта или как этого достичь - то лучше не начинать.

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

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

II. Организация
Организуйте свой труд. Сами решите, сколько времени уделять проекту. Работать ли над ним каждый день или только по выходным.
Понятно, что кроме картостроительства у каждого человека много других дел. Например, учеба. К тому же, надоедает постоянно работать над одним и тем же проектом. Тем не менее, нужно работать по плану и по возможности не срывать сроки.

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

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

III. Мотивация
Возможно, это самое важное для картостроителя. Мотивировать самого себя и участников команды. Потому что из-за недостатка мотивации гибнет 99% несостоявшихся проектов. Другое дело, что в некоторых случаях проекту действительно лучше развалиться - например, если он был плохо спланирован и разработчики понятия не имели, какой объем работы от них потребуется. Или походу обнаружили, что их проект уже устарел и не будет никому интересен. Но если разработчик сделал 60 и более % работы и неожиданно потерял интерес к своему детищу - это уже не нормально.

Прежде чем браться за проект подумайте:
- Ради чего вы это делаете?
- Что надеетесь получить?
- Достаточно ли этого, чтобы вы проделали все запланированное?

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

Есть несколько простых правил, при помощи которых можно мотивировать себя и других на работу над своим проектом. Грубо говоря, превозмочь лень.
1. Разбить работу на части (для чего и нужен план).
2. Поощрять словами себя и других в начале работы.
3. Поощрять себя и других в конце работы.
4. Работать ровно столько пока, вам нравится работать (если вы заканчиваете работу будучи уставшим и в плохом настроении, то очень скоро пропадет желание работать над проектом).
5. По возможности, самое сложное делайте в начале или середине, а не в конце.
6. Поощрять (хвалить) себя и других надо сразу же после совершения действия, которое хотите поощрить.
Запоздалая похвала имеет совсем не ту силу, что и своевременная. Преждевременная похвала (до того как действие совершено) поощряет не само действие, а неудачную попытку его совершения.

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

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

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

Работа в команде

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

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

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

Несколько советов

1. Учитесь извлекать пользу из своих неудач. Неудачи бывают у каждого. Особенно у новичков. Это вполне естественно. Важно, чтобы от неудач тоже была польза.
2. План, план и еще раз – план.
3. Без реальной необходимости не вносите существенных изменений в план. Если в процессе появились новые идеи – поместите их в новый план, реализацией которого вы займетесь после того, как будет сделан старый.
4. Не распыляйте силы. Чем больше на вас весит проектов, тем меньше вероятность доделать хоть один из них. Участники нескольких проектов, как правило, не очень надежны.
5. Не очень опытные лидеры часто склонны переоценивать свои собственные силы и возможности команды. Поэтому, перед тем как работать в команде, потренируйтесь работать в одиночку и оцените собственные возможности.
6. Если вы любите делать всё сами или не уверены в команде можно собрать идеи и другую полезную информацию с вашей команды и распустить например на неделю, а потом показать результаты. Если вы не выдадите результаты вам перестанут доверять.
7. Не устраивайте в проекте долгих простоев. Это приводит к снижению мотивации других участников. Как правило, после долгого простоя, команду придется собирать заново.
8. Приглашайте людей только тогда как сделали что-то сами, люди должны основываться на ваших достижениях. Сложно делать то чего не видел, - это вызывает недоверие и нежелание помогать проекту.
9. Никогда не советуйтесь с людьми если уже всё решили - это приведёт к недоверию. Но если вам говорят "ты делаешь это неправильно" стоит прислушаться. Во-первых, в критике может быть зерно истины, во-вторых, участник может решить, что вы не цените его мнение и обидеться.
10. Важно создать условия при которых каждый член команды будет ценить свой вклад в разработку и свое место в команде, а план будет считаться коллективной идеей.
11. Чем пафосней ваш проект, тем больше шансов, что он развалится. Пафосность – это признак того, что цель разработчиков – привлечь к себе внимание. Цель – общение, а не работа.
12. Как ни печально, но факт. Молодые участники как правило более безответственны. Переломный возраст примерно 16-17 лет.


Оригинал статьи
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Мм, если по делу, то я уже какое-то время слежу за дискуссиями между ГенераломЛи и остальными пользователями сего форума... не отписывался раньше по той причине, что меня в таких спорах стабильно посылают... "расставлять свет в Спейсере":D
Но вообще очень неприятны эти ссоры... мне кажется, что мододелы(имею в виду тех, кто уже сделал свой мод) и будущие мододелы(те, кто "в процессе") должны держаться кучи, поскольку былого огонька в глазах новичков лично я не вижу, работать никто не хочет. А Готику хочеться поддержать на плаву как можно дольше.
Как по мне, ГенералЛи вполне может создать мод(исходя из его вопросов в темах по модострою). Думаю, другие тоже это понимают. Но такие моменты, как тотальное несоглашение со статьями, на которых выросло не одно поколение мододелов, пари, заключенное по сути с самим собой, грубо говоря "распальцовка"... они вызывают антипатию. Между строк почти в каждом посте читается "я знаю лучше"... но продуктов умения, тем не менее, не видно. Само собой, никто, и он в том числе, никому ничего не должен... но и мы не должны читать эти плевки в лица всех подряд...
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Feuermagier, не спорьте с повором о том, как готовить. Удивлен, что Мiльтен так же опозорился, поставив "лайк" под постом.

Видишь ли в чем дело, Мiльтен и Feuermagier на этом форуме давно и хорошо известны. И весьма уважаемы за их вклад в мододельство для Готики. А ты здесь, извини за откровенность, пока еще никто и звать тебя никак. Если ты хотел хорошего к себе отношения, то начал ты не с того. Вместо того, чтобы представить что-то сообществу (причем не в виде ссылки на форумы "краснодеревщиков и вышивальщиков крестиком", а в виде мода для Готики, каких-то полезных материалов. Даже руководства по созданию мода или какого-то этапа по его созданию), ты начал обсирать автора руководства, которое здесь давно выложено и довольно широко одобрено.

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

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

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

Я не пытаюсь тебя чему-то учить или, тем более, воспитывать. Не мое это дело. Просто объясняю тебе свое видение данной ситуации. Может быть я и не прав. Но вижу именно так.
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Хо хо, товарищ, вы семь лет потратили зря. Диздоки для модов хоть и не являются полноценными, но быть обязаны, ибо это план работ, руководство к действию
Объясните мне зачем тратить кучу времени. В скобках я писал если вы заметили, что речь идет о небольшой разработке, которой занимается один человек.
Если я и так все знаю)
Зачем? Расписывать основу сюжета, планируемые элементы?
А вашего "энтузиазма" хватит на их реализацию?

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

Мы описали некую фишку в диз. доке, мы анонсировали что это будет реализовано.
И что мы получим если наш проект будет в некоторой степени завершен, а мы не реализовали ту "фишку"?

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

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

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

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

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

Hell999, Я как тролль 80 лвл я не могу не пытаться отстоять свою честь уж тем более перед теми, кто начинает заверять что я чего-то не знаю в своей области. Извините, нов ней я один из лучших.(я делаю это не специально, просто у меня правда такое по жизни закрепилось, с вами мне сложно вы не знаете кто я и что я, а когда я открываюсь хоть на толику предоставляя тот же "мой первый проект", вижу что люди даже перейти по ссылке в гугле отказываются и пишут фразы аля "нет у тебя проектов", смысл показывать и остальные?).

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

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

Я изучаю вас,а вы мея.

Да меня мало кто любит, да мои методы парой радикальны, скверны, противоположны методам других. Но разве однообразное мышление рождает прогресс? Вовсе нет. Я изучаю ваше мышление, чтобы откорректировать свое, приобрести что-то новое. Я вовсе не собираюсь учить ВАС и до новичков готико-строения мне так же дела нет.

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

kraw, любит меня пускай жена. А больше я ни от кого любви видеть не желаю)
Я не собираюсь тут втираться в доверие или быть чьим-то другом.
Я такой какой я есть и говорите что хотите, вам меня не изменить. Если бы я хотел быть вашим "другом", что бы вы ко мне хорошо относились, то я вел бы себя иначе, но лицемерство не по моей части. Если я не согласен с чем-то я выскажусь и как сегодня не голословно, а с ссылками и предложением альтернатив.

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

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

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Не выдирайте фразы из контекста)
Я как тролль 80 лвл я не могу не пытаться отстоять свою честь уж тем более перед теми, кто начинает заверять что я чего-то не знаю в своей области. Извините, нов ней я один из лучших.
В вк3 я один из лучших. Об этом меня не спрашивали - я не говорил. Спросили - сказал.
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Как было бы здорово, если бы звание героя человек тоже вручал бы себе сам.
 

Phoenix NewDragon

Участник форума
Регистрация
10 Дек 2009
Сообщения
3.918
Благодарности
1.255
Баллы
455
Как было бы здорово, если бы звание героя человек тоже вручал бы себе сам.
Ну,я вот сам себе вручил статус бога)
По сути - не вижу смысла в споре. Вообще не люблю наезды друг на друга, по делу или просто так. Для таких дел есть таверна, Котовник - всё тихо, мирно, даже войны проходят так, что можешь не понять, что кто-то умер.
И вообще,я хотел объединить всё творчество готоманов в один ресурс. А так вот почитаешь, как ругаются модмейкеры - и думаешь: а стоит? Всё равно ведь никто не оценит, все видят только своё мнение. Пусть даже это мнение правдиво, нужно высматривать зерна истины и в прямо противоположном...

//на большинство людей, пытающихся наехать на GeneralLee, гнать грешно. Слишком много сделали для Готики и этим снискали уважение. Но - стоит ли всей толпой набрасываться на одного человека? (я, как всегда, в репертуаре "виноваты все, и я тоже")
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Мне кажется слегка не логично было бы пост, который посвящен этой статье, писать в таверне)

За статус Бога плюсую) Того же мнения.
 

kiko.-_-

Участник форума
Регистрация
17 Мар 2010
Сообщения
2.320
Благодарности
501
Баллы
315
Как было бы здорово, если бы звание героя человек тоже вручал бы себе сам.
что-то делать и в чем-то разбераться - разные вещи, так что понятие "герой"...
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.170
Баллы
340
Господа, не кормите тролля. :D
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
3.14...ц :eek:
GeneralLee
"Я памятник воздвиг себе нерукотворный..."
Случайно не родственник Лебедева? Тоже неоцененный по заслугам... ::)
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
GeneralLee,
Всего из твоего цитировать не стану только мелочи...

В чем проблема?
1. Наверное в том что ты форумом ошибся, этот изначально создавался для модостроителей "Готики" и ничего другого, хотя это самое другое не воспрещается, но...
2. МапМейкерсто на ВК и прочее, не тоже самое что моддинг "Готы", тут башкой немного думать надо в отличие от первого, как и прочего. :)
3. Все что ты пишешь в пунктах и так расписано 1000 раз, если читать туторы...

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


Feuermagier,
Так вот, любой учебник, в том числе и вики говорит о том, что левел дизайнер, это не тот кто просто делает декор, это тот, кто делает ГЕЙМПЛЕЙ.
Давно так не смеялся, честно-честно... :D
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Я немного в шоке с вас господин MaGoth, это уже провокация со стороны администрации. Уж не думал, что придется опускаться до демонстрации исходников.

2. МапМейкерсто на ВК и прочее, не тоже самое что моддинг "Готы", тут башкой немного думать надо в отличие от первого, как и прочего.

Небольшой скрипт от моего проекта:
#guard Anti_Leak_Library
library ALL {
include "cj_types_priv.j"
native int GetPlayerUnitTypeCount(player p, int unitid)
//Убираем конфликты с AntiBJ base
setdef GetPlayerStartLocationLoc(p) = ALL_RemoveLocation(GetStartLocation##Loc(GetPlayerStartLocation(p)))
setdef GetUnitsInRangeOfLocAll(r, l) = ALL_DestroyGroup(ALL_GetUnitsInRangeOfLocMatching(r, l, null))
setdef GetUnitsInRectAll(r) = ALL_DestroyGroup(ALL_GetUnitsInRectMatching(r, null))
setdef GetUnitsOfPlayerAll(p) = ALL_DestroyGroup(ALL_GetUnitsOfPlayerMatching(p, null))
setdef LoadLocationHandleBJ(childKey, parentKey, table) = ALL_RemoveLocation(LoadLocation##Handle(table, parentKey, childKey))
setdef LoadRectHandleBJ(childKey, parentKey, table) = ALL_RemoveRect(LoadRect##Handle(table, parentKey, childKey))
setdef LoadGroupHandleBJ(childKey, parentKey, table) = ALL_DestroyGroup(LoadGroup##Handle(table, parentKey, childKey))
setdef LoadForceHandleBJ(childKey, parentKey, table) = ALL_DestroyForce(LoadForce##Handle(table, parentKey, childKey))
setdef <call AddSpecialEffectLocBJ>(l, s) = call ALL_AddSpecialEffectLocBJ(l, s)
setdef <call AddSpecialEffectTargetUnitBJ>(a, w, s) = call ALL_AddSpecialEffectTargetUnitBJ(a, w, s)
//Области, созданные в функции CreateRegions, не будут прогоняться через RemoveRect
setdef Rect(minX, minY, maxX, maxY) = ALL_RemoveRect(Re##ct(minX, minY, maxX, maxY))
define {
<InitCustomTriggers()> = { InitCustom##Triggers(); ALL_Remove = true }
GetPlayerStartLocationLoc(p) = GetStartLocationLoc(GetPlayerStartLocation(p))
GetUnitsInRangeOfLocAll(r, l) = GetUnitsInRangeOfLocMatching(r, l, null)
GetUnitsInRectAll(r) = GetUnitsInRectMatching(r, null)
GetUnitsOfPlayerAll(p) = GetUnitsOfPlayerMatching(p, null)
LoadLocationHandleBJ(a, b, h) = LoadLocationHandle(h, b, a)
LoadRectHandleBJ(a, b, h) = LoadRectHandle(h, b, a)
LoadGroupHandleBJ(a, b, h) = LoadGroupHandle(h, b, a)
LoadForceHandleBJ(a, b, h) = LoadForceHandle(h, b, a)
<call AddSpecialEffectLocBJ>(l, s) = bj_lastCreatedEffect = AddSpecialEffectLoc(s, l)
<call AddSpecialEffectTargetUnitBJ>(a, w, s) = bj_lastCreatedEffect = AddSpecialEffectTarget(a, w, s)

<GetCameraEyePositionLoc()> = ALL_RemoveLocation(GetCameraEyePosition##Loc())
<GetCameraTargetPositionLoc()> = ALL_RemoveLocation(GetCameraTargetPosition##Loc())
GetDestructableLoc(d) = ALL_RemoveLocation(ALL_GetWidgetLoc(d))
GetItemLoc(i) = ALL_RemoveLocation(ALL_GetWidgetLoc(i))
<GetOrderPointLoc()> = ALL_RemoveLocation(GetOrderPoint##Loc())
GetRandomLocInRect(r) = ALL_RemoveLocation(GetRandom##LocInRect(r))
GetRectCenter(r) = ALL_RemoveLocation(GetRect##Center(r))
<GetSpellTargetLoc()> = ALL_RemoveLocation(GetSpellTarget##Loc())
GetStartLocationLoc(i) = ALL_RemoveLocation(GetStartLocation##Loc(i))
GetUnitLoc(u) = ALL_RemoveLocation(GetUnit##Loc(u))
Location(x, y) = ALL_RemoveLocation(Loc##ation(x, y))
MeleeGetLocWithinRect(l, r) = ALL_RemoveLocation(ALL_MeleeGetLocWithinRect(l, r))
MeleeGetProjectedLoc(l, targ, dist, a) = ALL_RemoveLocation(MeleeGet##ProjectedLoc(l, targ, dist, a))
OffsetLocation(l, x, y) = ALL_RemoveLocation(OffsetLoc##ation(l, x, y))
PolarProjectionBJ(l, r, a) = ALL_RemoveLocation(ALL_PolarProjectionBJ(l, r, a))
WaygateGetDestinationLocBJ(u) = ALL_RemoveLocation(Waygate##GetDestinationLocBJ(u))
GetRectFromCircleBJ(l, r) = ALL_RemoveRect(ALL_RectFromCenterSizeBJ_GetRectFromCircleBJ(l, r, .0, false))
OffsetRectBJ(r, x, y) = ALL_RemoveRect(OffsetRect##BJ(r, x, y))
Rect(minX, minY, maxX, maxY) = Re##ct(minX, minY, maxX, maxY)
RectFromCenterSizeBJ(l, width, heigth) = ALL_RemoveRect(ALL_RectFromCenterSizeBJ_GetRectFromCircleBJ(l, width, heigth, true))
RectFromLoc(min, max) = ALL_RemoveRect(RectFrom##Loc(min, max))
CountLivingPlayerUnitsOfTypeId(id, p) = GetPlayerUnitTypeCount(p, id)
GetUnitsInRangeOfLocMatching(r, l, b) = ALL_DestroyGroup(ALL_GetUnitsInRangeOfLocMatching(r, l, b))
GetUnitsInRectMatching(r, b) = ALL_DestroyGroup(ALL_GetUnitsInRectMatching(r, b))
GetUnitsInRectOfPlayer(r, p) = ALL_DestroyGroup(ALL_GetUnitsInRectOfPlayer(r, p))
GetUnitsOfPlayerAndTypeId(p, id) = ALL_DestroyGroup(ALL_GetUnitsOfPlayerAndTypeId(p, id))
GetUnitsOfPlayerMatching(p, b) = ALL_DestroyGroup(ALL_GetUnitsOfPlayerMatching(p, b))
GetUnitsOfTypeIdAll(id) = ALL_DestroyGroup(ALL_GetUnitsOfTypeIdAll(id))
GetUnitsSelectedAll(p) = ALL_DestroyGroup(ALL_GetUnitsSelectedAll(p))
GetForceOfPlayer(p) = ALL_GetForceOfPlayer(p)
GetPlayersAllies(p) = ALL_DestroyForce(ALL_GetPlayersAllies(p))
GetPlayersByMapControl(mc) = ALL_DestroyForce(ALL_GetPlayersByMapControl(mc))
GetPlayersEnemies(p) = ALL_DestroyForce(ALL_GetPlayersEnemies(p))
GetPlayersMatching(b) = ALL_DestroyForce(ALL_GetPlayersMatching(b))
<call ALL_AddSpecialEffectLocBJ>(l, s) = {
if ALL_Remove {
bj_lastCreatedEffect = null
DestroyEffect(AddSpecialEffectLoc(s, l))
} else {
bj_lastCreatedEffect = AddSpecialEffectLoc(s, l)
}
}
<call ALL_AddSpecialEffectTargetUnitBJ>(a, w, s) = {
if ALL_Remove {
bj_lastCreatedEffect = null
DestroyEffect(AddSpecialEffectTarget(s, w, a))
} else {
bj_lastCreatedEffect = AddSpecialEffectTarget(s, w, a)
}
}
}

enum (ALL_Leak) {
private LocationLeak
private RectLeak
private GroupLeak
private ForceLeak
}

private constant timer Timer = CreateTimer()
private int MaxVar = -1
private int array LeakNum
private location array LocationVar
private rect array RectVar
private group array GroupVar
private force array ForceVar
private group Group
private force Force
public bool Remove = false

private void RemoveLeak() {
int i = 0
do {
if i:LeakNum < GroupLeak {
if i:LeakNum < RectLeak {
RemoveLocation(i:LocationVar)
} else {
RemoveRect(i:RectVar)
}
} elseif i:LeakNum < ForceLeak {
DestroyGroup(i:GroupVar)
} else {
DestroyForce(i:ForceVar)
}
exitwhen i == MaxVar
i++
}
MaxVar = -1
}

public rect RemoveRect(rect leak) {
if Remove {
MaxVar++
MaxVar:RectVar = leak
MaxVar:LeakNum = RectLeak
if MaxVar == 0 { TimerStart(Timer, .0, false, function RemoveLeak) }
}
return leak
}
public rect RectFromCenterSizeBJ_GetRectFromCircleBJ(location l, real width, real height, bool b) {
real x = GetLocationX(l), y = GetLocationY(l)
if b {
width = width * .5
height = height * .5
return Re##ct(x - width, y - height, x + width, y + height)
}
return Re##ct(x - width, y - width, x + width, y + width)
}

public location RemoveLocation(location leak) {
if Remove {
MaxVar++
MaxVar:LocationVar = leak
MaxVar:LeakNum = LocationLeak
if MaxVar == 0 { TimerStart(Timer, .0, false, function RemoveLeak) }
}
return leak
}
public location GetWidgetLoc(widget w) {
return Loc##ation(GetWidgetX(w), GetWidgetY(w))
}
public location PolarProjection##BJ(location l, real r, real a) {
a = a * .017
return Loc##ation(GetLocationX(l) + Cos(a) * r, GetLocationY(l) + Sin(a) * r)
}
public location MeleeGetLoc##WithinRect(location l, rect r) {
real minX = GetRectMinX(r), maxX = GetRectMaxX(r), \
minY = GetRectMinY(r), maxY = GetRectMaxY(r), \
x = GetLocationX(l), y = GetLocationY(l)
if x < minX {
x = minX
} elseif x > maxX {
x = maxX
}
if y < minY {
return Loc##ation(x, minY)
} elseif y > maxY {
return Loc##ation(x, maxY)
}
return Loc##ation(x, y)
}

public group DestroyGroup(group leak) {
if Remove {
MaxVar++
MaxVar:GroupVar = leak
MaxVar:LeakNum = GroupLeak
if MaxVar == 0 { TimerStart(Timer, .0, false, function RemoveLeak) }
}
return leak
}
public group GetUnitsInRange##OfLocMatching(real r, location l, boolexpr b) {
Group = CreateGroup()
GroupEnumUnitsInRangeOfLoc(Group, l, r, b)
DestroyBoolExpr(b)
return Group
}
public group GetUnitsInRect##Matching(rect r, boolexpr b) {
Group = CreateGroup()
GroupEnumUnitsInRect(Group, r, b)
DestroyBoolExpr(b)
return Group
}
public group GetUnitsInRect##OfPlayer(rect r, player p) {
Group = CreateGroup()
bj_groupEnumOwningPlayer = p
GroupEnumUnitsInRect(Group, r, filterGetUnitsInRectOfPlayer)
return Group
}
public group GetUnitsOfPlayer##Matching(player p, boolexpr b) {
Group = CreateGroup()
GroupEnumUnitsOfPlayer(Group, p, b)
DestroyBoolExpr(b)
return Group
}
public group GetUnitsOfPlayer##AndTypeId(player p, int id) {
Group = CreateGroup()
bj_groupEnumTypeId = id
GroupEnumUnitsOfPlayer(Group, p, filterGetUnitsOfPlayerAndTypeId)
return Group
}
public group GetUnitsOfTypeId##All(int id) {
group g = CreateGroup()
int i = 0
bj_groupAddGroupDest = CreateGroup()
bj_groupEnumTypeId = id
do {
GroupEnumUnitsOfPlayer(g, Player(i), filterGetUnitsOfTypeIdAll)
ForGroup(g, function GroupAddGroupEnum)
exitwhen i == 15
i++
}
DestroyGroup(g)
g = null
return bj_groupAddGroupDest
}
public group GetUnits##SelectedAll(player p) {
Group = CreateGroup()
SyncSelections()
GroupEnumUnitsSelected(Group, p, null)
return Group
}

public force DestroyForce(force leak) {
if Remove {
MaxVar++
MaxVar:ForceVar = leak
MaxVar:LeakNum = ForceLeak
if MaxVar == 0 { TimerStart(Timer, .0, false, function RemoveLeak) }
}
return leak
}
public force GetForce##OfPlayer(player p) {
Force = CreateForce()
ForceAddPlayer(Force, p)
return Force
}
public force GetPlay##ersAllies(player p) {
Force = CreateForce()
ForceEnumAllies(Force, p, null)
return Force
}
public force GetPlayersByMap##Control(mapcontrol mc) {
player p = Player(0)
int i = 0
Force = CreateForce()
do {
if GetPlayerController(p) == mc {
ForceAddPlayer(Force, p)
}
exitwhen i == 15
p = Player(++i)
}
p = null
return Force
}
public force GetPlay##ersEnemies(player p) {
Force = CreateForce()
ForceEnumEnemies(Force, p, null)
return Force
}
public force GetPlay##ersMatching(boolexpr b) {
Force = CreateForce()
ForceEnumPlayers(Force, b)
DestroyBoolExpr(b)
return Force
}
}

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

Приведенный выше скрипт(по нашенски триггер т.к. все оформляется ими) превышает содержание стандартного триггера.

Но вот скрин информации о моем проекте, обратите внимание на кол-во подобных триггеров (см. вложение)

Это то, что касается скриптинга. К слову расскажу о ландерах (спейсерах) - в Готике вы можете любой объект как хотите крутить, добавлять сразу из 3д макс объект в игру, проницаемость объектов у вас настраивается в 2 клика. В вк3 вам придется залезть в 2 редактора и проделать такие фокусы (которые новички не знают и додумается до них разве что больной псих), ради того, чтобы получить ОДНУ декорацию с ОДНИМ фиксированным креном.

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

Вложения

  • trigs.JPG
    trigs.JPG
    33,1 KB · Просмотры: 249

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
GeneralLee,
Небольшой скрипт от моего проекта.
Мне это совершенно не нужно и не интересно, то было лишь переложение твоих слов но под другим углом обзора... :)

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

Phoenix NewDragon

Участник форума
Регистрация
10 Дек 2009
Сообщения
3.918
Благодарности
1.255
Баллы
455
А я люблю кормить троллей...Они вкусные...
Магот, а чем тогда занимается левел дизайнер?
 

CERBERBOSS

Участник форума
Регистрация
3 Дек 2009
Сообщения
1.200
Благодарности
583
Баллы
280
Статью прочитал не так давно, и она показалась мне вполне заслуживающей доверия. Возможно, что она не совсем полная и кое-что рассказал бы несколько иначе, но в целом понравилось.
Что касается затянувшихся в этой и других темах катаний огромадных постов в битве с GeneralLee, то, если речь не о любителях потрепаться, лучше бы за это время что-нибудь сделали (языком это вам не кирпичи).
 

Дикарь

★★★★★★★
Модератор
Регистрация
17 Апр 2007
Сообщения
7.303
Благодарности
9.100
Баллы
1.415
GeneralLee,
Я не обсуждаю местных, я критикую коллегу, учитывая наши с ним заслуги, причем тут вообще местные?)
В этом всё и дело, что я, собственно, и пытался объяснить. Разборки с коллегой лучше устраивать на том ресурсе, где коллега бывает и может ответить. И где другие пользователи способны объективно оценить вклад каждого из участников спора.
А вы пытаетесь оскорбить
Мания, да?
Я немного в шоке с вас господин MaGoth
Поспорить с ним решили? Ну-ну... :D
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
934
Благодарности
136
Баллы
225
Так вот, любой учебник, в том числе и вики говорит о том, что левел дизайнер, это не тот кто просто делает декор, это тот, кто делает ГЕЙМПЛЕЙ.


Давно так не смеялся, честно-честно...


Блин, Магот, ты бы не придирался, а? Ведь понял что я имею ввиду. Геймплей разрабатывает не левелдиз, но левел диз делает геймплей на уровне. Это еще называется баланс.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
GeneralLee написал(а):
Небольшой скрипт от моего проекта:
эээ.... А каким местом это прикрутить к Готике? ::)
Вы по прежнему уверяете, что в Готике все сложнее и тут надо думать в разы больше, чем в каких-то картах на вк?
Думаю что сложнее... Потому что многих плюшек-фишек нет или они кривенько работают, и приходится заниматься "думаньем головой" и кучей тестов для каждого игрового момента (если это конечно не простое принеси-отнеси), а не простым "юзаньем функций".
В частности не поддерживается float и еще куча мелких приятностей. *flowers*
 
Сверху Снизу