O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Debate CRM #16 - Plugins e scripts de terceiros

Iniciado por Rickas, 17/10/2020 às 16:18







[box2 class=black title=O Quadro]
Há algum tempo, existia um quadro conhecido como Debate CRM. Seu objetivo era fazer os membros discutirem um tema, compartilhando seus conhecimentos.

O objetivo continua o mesmo, porém agora será postado com intervalos de quinze dias. Dito isso, espero que todos possam usufruir e discutir civilizadamente.
[/box2]




[box2 class=black title=Regras]
Esperamos que debatam de forma consciente e que respeitem opiniões adversas. O intuito deste debate não é o consenso, mas sim o conhecimento de diferentes respostas e pontos de vista de todos os membros.

As regras gerais também se aplicam e qualquer infração será punida de acordo.
[/box2]




[box2 class=black title=Tema]
Plugins e scripts de terceiros
 
   Isso é algo discutido muito nas comunidades do RPG Maker, que seria quando devemos procurar plugins e scripts de outras pessoas e quando devemos tentar fazer esses sistemas mesmo sem um conhecimento aprofundado de programação. Sempre é o ideal buscar esse tipo de recurso para os projetos? Devemos realizar o máximo de coisa que podemos por nós (eventos)? Quando é necessário depender desse tipo de recurso muito comum nas comunidades de RPG Maker?
[/box2]

Acredito que a utilização de plugin de terceiros é algo comum e que não deve ser encarado como uma espécie de "preguiça". Nem todo mundo gosta ou tem a motivação necessária para aprender a programar. Logo, acabamos dependendo da grande paciência e talento de quem faz plugins. Entretanto, eu incentivo muito que cada um tente ao máximo fazer os sistemas por conta própria, seja por evento ou se virando em aprender o que pode. Não teríamos os programadores de plugins hoje se nenhum deles tivesse dado o primeiro passo.

Também acredito que os criadores de plugins poderiam se valorizar mais, criando duas camadas de disponibilização: uma para o campo free for all, permitindo que todos utilizem os seus plugins da forma que bem entender, e outra com uma versão "aprimorada", versão pró, pra que os desenvolvedores mais experientes consigam o que é necessário para os seus projetos e valorize o tempo que foi gasto pra criar aquele script / plugin. Isso serviria até mesmo de motivação para outras pessoas aprenderem a programar. Não estamos mais no tempo de criança, onde só usávamos RPG Maker pra ver quem faz o projeto mais bonito. Hoje estamos mais para desenvolvedores indie ou meros entusiastas, eu diria.

Não há nada de errado em procurar scripts/plugins, mas recomendo que este seja sempre o plano C. A primeira alternativa é fazer os próprios sistemas, seja por eventos ou código. Se não souber, aprenda. O plano B é procurar alguém que faça o sistema sob medida para o projeto em questão, quando o responsável não quer aprender (não consigo não é desculpa). Em último caso, pesquisar por scripts / plugins prontos é válido.

Vale ressaltar algumas coisas quando você coloca um código externo no projeto, claro. O código faz o que diz que faz? Você tem como verificar isto? E a licença? Se você precisar de suporte, sabe quem contactar? O código vai se adaptar ao seu jogo ou você será obrigado a adaptar o jogo ao código? Tudo isso precisa ser considerado, principalmente se você tiver pago pelo sistema.

Não sou contra a prática de usar sistemas disponibilizados nos projetos, afinal é algo que quase todo dev de RPG Maker faz, o que recomendo, na verdade, é fazer isso com mais sabedoria, ou seja, ter mais consciência ao inserir os sistemas e etc. No meu ponto de vista, a prática de coloca-los de forma leviana, e até acomodada (por não querer programar nem o mínimo) só bota o dev a perder no projeto dele. Aliás, nesse caso, seria interessante também um planejamento e GDD para ele saber melhor como vai funcionar as mecânicas do seu jogo, algo que o orientaria a não cometer mais esse tipo de erro, dando até mais responsabilidade para ele.

Isso se conecta com meu próximo ponto: não acho que o dev precisa ser um programador PRO pra fazer seu jogo, na verdade talvez nem seja necessário dominar uma linguagem de programação. Se ele souber o básico do programa (principalmente eventos), creio que ele vai conseguir mesclar seus próprios sistemas com os que ele coloca (eventos + script call), até porque muito desses sistemas já orientam o dev a como configurá-los. De forma superficial, mas nada que um suporte e uma pesquisa não resolvam.

18/10/2020 às 14:38 #4 Última edição: 18/10/2020 às 14:40 por Syureri
O negócio de scripts/plugins é que eles podem fazer qualquer coisa, tanto boas quanto ruins. Assim como o que o Corvo disse, você precisa ter muita consideração ao adicionar um ao seu projeto. Tenha certeza de que ele possui uma licença que não conflite com os termos do seu jogo, tenha certeza de que ele tenha sido feito por um autor de sua confiança. E se você souber programar, dê uma olhada no código só pra ter certeza de que ele faz o que diz fazer.

Outro problema são códigos fechados, se você estiver usando um plugin proprietário que ofusca sua fonte, ou caso o plugin não permita que você faça modificações ou cópias derivadas (ports), você terá problemas caso dê o seu jogo para alguém portar para consoles como o Nintendo Switch. Isso porque eles terão que ter acesso ao código do jogo para saber o que deve ser portado, e como portar.

Sem falar que adicionar scripts ao seu projeto também adiciona uma dependência. Se ele der problemas, você precisa de suporte. Torça para que o autor ainda esteja disposto a oferecer suporte para aquele script ou você terá muitas dificuldades a menos que saiba programar.

É necessário pensar bastante entre escolher fazer as coisas via scripts ou eventos. Sempre considere eventos primeiro, scripts depois. Caso o sistema seja muito complexo, faça muitos cálculos ou precise de performance (sistemas de plataforma), dê preferencia a scripts.

Também é bom tomar cuidado com Script Calls. Cada script call será avaliado usando o comando eval de sua respectiva linguagem (Ruby, Javascript). E eval é lento. Vide isso e isso.