Introdução ao Ren’Py e ao Python

O texto de hoje traz uma introdução ao Ren’Py e à linguagem Python. Renpy é um motor de criação opensource (tradução livre: código aberto) para desenvolver jogos digitais de visual novel.

Python
Foto por Shahadat Rahman no Unsplash

Mas o que é opensource?

Opensource se trata de código ou coleção de códigos de licença livre (tanto de uso comercial quanto pessoal).

A licença livre não apenas significa a utilização total do código mas também o manejo, modificação e redistribuição sem barreiras ou embargos, isto é, sem custo algum, o usuário tem total liberdade de não apenas usar o código como também de mudá-lo completamente e redistribuí-lo como bem entender.


A comunidade voltada ao opensource é engajada com um paradigma político de distribuição universal, democrática e horizontal da informação digital. Uma distribuição sem barreiras sociais e/ou econômicas. Também existe um compromisso intrínseco com o aprendizado coletivo e com compartilhamento de conquistas, dúvidas e resoluções.


Tais softwares abertos e códigos abertos circulam pelas redes de forma a fomentar construção e produção coletiva de melhores patches (tradução livre: pacotes) de melhoria para seus códigos, criando compilações e motores cada vez mais robustos, capazes e modernos.


Essas comunidades crescem ano após ano e se reúnem majoritariamente em portais como o github.com e reddit.com.

E motor de criação?

Motor de criação, ou engine, é um software capaz de gerar pacotes executáveis de uma natureza pré-determinada pela linguagem que eles propõem.

Esses executáveis não se limitam apenas à jogos, como também a outros apps diversos. Ren’Py é um engine capaz de fazer jogos e outros produtos de mídia que utilizem a linguagem de programação conhecida como python.

Um motor de criação, então, não caracteriza-se por sua habilidade de criação de jogo, apenas, e sim por auxiliar na criação de outro software usando um framework pré-determinada por sua linguagem de programação. Um engine é, no fim, uma biblioteca de códigos-base que preparam uma estrutura básica para a criação específica de um produto de mídia.

Python, uma linguagem base acessível

Existem muitas linguagens de programação capazes de criar um framework a partir de suas sintaxes. HTML, CSS, PHP e JAVASCRITP por exemplo, são linguagens comuns de desenvolvimento para web (mas não são exclusivas para a mídia, visto que podem ser usadas fora do desenvolvimento web em si). C e seus variantes (C#, C++, etc) são linguagens por exemplo mais comuns utilizadas no desenvolvimento de softwares. Já Python é uma linguagem base muito comum para aprendizado de programação e desenvolvimento de softwares.

Por que Python é uma linguagem “base”?

Python, assim como C e outras linguagens, tem linguagens derivadas de sua base de sintaxes, afim de afunilar sua funcionalidade para casos mais específicos e facilitar o uso dependendo de seu objetivo.

Ruby (que também tem suas variantes como o RGSS, linguagem utilizada no desenvolvimento para a engine RPG Maker XP e VX) e GDscript (linguagem utilizada no desenvolvimento para as engines opensource Godot e GDevelop) são exemplos de linguagens de programação derivadas das sintaxes de Python. Elas são variações criadas para facilitar o desenvolvimento específico para seus denominados engines que buscam uma experiência de usuário (o desenvolvedor) mais preparadas com o seu objetivo.

A Python (ou Py) é uma linguagem fortemente amparada no desenvolvimento através de sintaxes simplificadas e de entendimento facilitado para falantes da língua inglesa.


O que isso significa? As sintaxes de Python, para falantes da língua inglesa, são auto-explicativas, são terminologias do dia-a-dia da pessoa anglófona (sinônimo de “falante da língua inglesa”) que facilitam o entendimento de um código.

Tendo isso em vista, Python é considerada uma linguagem de programação intuitiva, visto que seus códigos dependem de sintaxes quase totalmente imperativas (comandos diretos), condicionais simples e poucas variáveis, todas baseadas em verbos, advérbios e preposições cotidianas da língua inglesa, como por exemplo o clássico comando “print” (que se relaciona ao imperativo do inglês “print this”) que em português significaria “imprima isso” e literalmente funciona para imprimir/renderizar um texto na tela.


Podemos, então, dizer que o comando “print: “hello world!” “ é o “the books on the table” do Py.


A linguagem é plenamente intuitiva e por isso para muitos programadores é um início didático ao mundo dos códigos.

Então o que é o Ren’Py?

O Ren’Py é, como dito anteriormente, um engine opensource que utiliza a linguagem de Python. Ele contém em si uma biblioteca de códigos já prescritos onde consta-se com uma estrutura base para se desenvolver um jogo do gênero visual novel.

Essa biblioteca já está pronta com uma série de funções para garantir que o mais básico de uma visual novel esteja possível de ser feito mesmo por um usuário que não entenda de programação básica. O engine ainda conta com um launcher (uma base de configurações e execução da compilação dos códigos) já preparado para configurar detalhes do projeto, organizar os códigos de roteiro do jogo, organizar os assets (nome que se dá para os arquivos de mídia base para seu jogo, sejam eles de som ou imagem) e compilar a versão final do projeto.

Vantagens e desvantagens do Ren’Py

O Ren’Py tem vantagens óbvias principalmente para quem quer ingressar no universo da programação, sobretudo de jogos digitais. Ele é um engine acessível, gratuito, leve e, como antes citado, não obrigatoriamente necessita conhecimentos avançados de programação. Seu launcher é visualmente minimalista e auto-explicativo e o engine ainda conta com um projeto de demonstração repleto de dicas e tutoriais sobre seu funcionamento mais básico.


Além disso, o Ren’Py ainda conta com um site de ajuda (https://www.renpy.org/doc/html/) onde consta toda sua documentação e tutoriais muito bem explicados sobre casos mais avançados de seu funcionamento.

Ainda devo ressaltar que a comunidade de desenvolvimento do Ren’Py é muito engajada no aprendizado coletivo, então uma breve pesquisada no Google é mais que suficiente para resolver a maior parte das dúvidas.


Nem tudo é paraíso, porém. Ren’Py é um engine acessível sobretudo para falantes da língua inglesa. Suas sintaxes são apenas intuitivas para quem ou já tem algum conhecimento básico da linguagem ou tem algum vocabulário médio anglófono. Até seus tutoriais são todos em inglês e as localizações/traduções para português são escassas.


Além disso, para um programador mais especializado/experiente, o Ren’Py tem várias problemáticas, em minha opinião. O Ren’Py não conta com um console de erro plenamente responsivo, ainda não é um engine completo (tem alguns erros/bugs que ainda estão em fase de pesquisa e correção) e não tem programação visual (a programação visual é aquela na qual a resposta visual é imediata ou quase imediata mediante à implementação do código), ou seja, o processo de teste tem que ser constante para qualquer modificação menor nos códigos, podendo atrasar/arrastar o processo de desenvolvimento de produtos mais complexos.


Sua biblioteca prescrita é fantástica, já capaz de muitas funções necessárias para o desenvolvimento de uma visual novel de design robusto, porém modificar sua biblioteca base (que chamamos de backend) sacrifica o funcionamento do launcher, que parece incompatível com modificações da mesma. Enquanto a modificação do frontend (o jogo em si, não sua estrutura) é estimulada e facilitada pelo engine, o backend é uma modificação possível, porém é necessário abdicar do launcher e ter conhecimento médio/avançado para tal. Ou seja, funcionalidades estruturais/base do seu jogo ficam muitas vezes à mercê do engine, que propõe um pacote de arquitetura de software bem fechado e limitado, a menos que o usuário tenha de fato conhecimento na linguagem da mesma.

Para finalizar é importante frisar que o engine não tem um console de edição/leitura de seus códigos dedicado. O usuário fica ou dependente do bloco de notas do Windows, ou pode optar por baixar um leitor/editor externo.


Recomenda-se o editor/leitor Atom ou PyCharm para editar os códigos, visto que o bloco de notas, apesar de abrir a extensão de arquivo .rpy, não é capaz de armazenar, ler, traduzir e entender as sintaxes do Python, impossibilitando uma experiência de programação completa.


Os leitores citados já vem em sua base de dados com uma biblioteca das sintaxes do Python e, por causa disso, são capazes de reconhecer erros, enganos, códigos incompletos, mal fechados, mal abertos e até buscar ligações entre comandos.

Está começando a desenvolver sua própria visual novel?

Confira as postagens que já rolaram aqui no Devlog sobre adaptação de roteiro em “Dos palcos para visual novel“, por Leonardo Cássio e “Porque documentar seus videogames“, por Julia Stateri.

Também estamos postando vídeos com tutoriais sobre as etapas de criação de uma visual novel, tendo como base os Pequenos Nativoz, no nosso canal do YouTube.

Acompanhe!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Acompanhe nossas redes