Suporte ao desenvolvimento de jogos!


    [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Compartilhe
    avatar
    Lief
    Desenvolvedor
    Desenvolvedor

    Mensagens : 832
    Créditos : 50

    [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Mensagem por Lief em Qua Jul 25, 2012 11:01 pm

    Capítulo 1
    Meet the Dream Maker

    O primeiro passo para o
    domínio das terras do sono é a realização, sem acordar, que um sonho.
    Nos mundos dia, o domínio começa por esquecimento, sem sonhar que um
    está acordado.

    - DM

    DM é uma linguagem de programação
    para a criação de mundos multi-usuário. Pelo `mundo 'eu quero dizer um
    ambiente multi-meios de comunicação virtual, onde as pessoas assumem
    personagens com as quais interagem entre si e controlados por
    computador objetos. Isso poderia tomar a forma de um jogo competitivo,
    um RPG de aventura, não um fórum de discussão, ou algo que temos sequer
    imaginado.

    Freqüentemente, a terminologia de um role-playing
    game é o mais apropriado: os seres humanos são PCs (jogo) e personagens
    controlados por computador são NPCs (non-playing characters). A
    encarnação virtual de um jogador é muitas vezes chamado de um avatar.
    As regras do jogo são escritos em MS e fielmente executada pelo
    computador. Essas ações definem o que os jogadores podem instruir seu
    avatar para executar, qual o efeito que estes terão de The Game, e
    quaisquer outros eventos que podem acontecer com o tempo.

    Para
    entender a mecânica do sistema plenamente, é útil conhecer alguns
    termos simples. Os programas de computador que funcionam através de uma
    rede muitas vezes são divididos em duas partes: um cliente e um
    servidor. Neste caso, o cliente é o programa que os jogadores usam para
    digitar comandos e ver o que acontece como resultado. Em outras
    palavras, o cliente lida com entrada e saída. O servidor é o programa
    que executa The Game, realizando as regras definidas na linguagem DM. O
    game designer escreve estas regras em um terceiro programa chamado
    compilador. Ele lê o programa de MS (conhecido como o código-fonte por
    programadores), verifica se há erros gramaticais, e gera uma mais
    compacta, computador amigável, arquivo conhecido como código de bytes
    ou binário. É esse processo que o servidor lê para ver como executar o
    The Game.

    Assim, existem três programas principais: o cliente,
    servidor e do compilador. Chamamos essas Dream Seeker, Dream Daemon, e
    Dream Maker, respectivamente. (O daemon palavra é apenas mais um (mais
    fantásticos) palavra para o servidor.) Como um todo, nos referimos a
    este conjunto de software como BYOND, que significa Build Your Own Net
    Dream - uma descrição apropriada da sua finalidade e também de como
    agora ele vagueou para além do nosso plano original. Mas isso é outra
    história!

    Cada uma introdução à linguagem de programação deve
    começar com o mesmo exemplo. Chame-lhe o destino, fatalidade, ou puro
    acaso, é um pouco estranho que o nome do exemplo universal introdutório
    Olá mundo. Assustador, não? É exatamente isso que acontece neste
    exemplo - digamos Olá para o mundo.

    No DM você escrever assim:

    mob
    +Login()
    ++world << "Hello, world!"

    Se
    você tem alguma experiência de programação anterior, a última linha
    provavelmente parece vagamente sensata. Ele produz o texto dentro das
    aspas duplas para o mundo inteiro. Mas o que na terra é uma máfia e por
    que é cada linha recuada como escada-passos? Tudo a seu tempo. Por ora,
    basta compreender que o avatar do jogador em The Game é uma máfia.
    Quando um jogador faz logon, o servidor é orientado a saída a mensagem
    "Olá mundo" para todos.

    Compilar e executar este programa (ver
    figura 1.1). Se tudo correr conforme o planejado, você deve ver as
    palavras "Olá, mundo" magicamente aparecem na tela do Dream Seeker
    saída. Voila! Você criou seu mundo BYOND primeiro.

    Agora você
    sabe os passos básicos para a concepção de mundos. Você escreve um
    código de MS, compilá-lo e executá-lo. Mas este mundo não tem nada para
    o jogador a fazer. Esse é o próximo.

    Figura 1.1: Olá mundo!

    Este
    primeiro mundo não serve apenas como uma introdução à linguagem de MS,
    mas ao editor Dream Maker / compilador também. Felizmente, o sistema
    foi projetado para ser bastante simples de usar, e com apenas alguns
    passos que você deve estar no seu caminho para BYOND magia programação!

    Dream
    Maker refere-se à coleção de arquivos que compõem o projeto como o
    ambiente do mundo. Quando você faz um novo projeto, você cria um
    arquivo único ambiente, que tem o nome "[worldname]. DME". Este
    ficheiro pode conter código-fonte, mas em geral só será composta de
    referências geradas automaticamente para outros arquivos no projeto.
    Este é o melhor visto por exemplo, então vamos parar de falar e começar
    a codificar!

    1. Criar o "Olá" projeto selecionando New
    Ambiente ... a partir do menu Arquivo. Isso leva para um diretório no
    qual seu projeto será armazenado. Enter "Olá" como o diretório
    desejado. Isso cria um novo diretório chamado "Olá", que agora contém o
    arquivo hello.dme ambiente. Observe que hello.dme também aparece na
    árvore de arquivos exibidos no lado esquerdo da tela. Todos os arquivos
    no diretório do ambiente estão listados lá.

    2. Vamos colocar o
    código para este projeto em um arquivo separado. Selecione Novo arquivo
    ... a partir do menu Arquivo. Escolher o código do arquivo para o tipo
    e digite "Olá" para o nome. Isso cria um arquivo chamado "hello.dm" no
    diretório do ambiente, e um anúncio correspondente na árvore de
    arquivos. A caixa de seleção ao lado indica que o código em hello.dm
    será incluída neste projeto.

    3. O arquivo hello.dm agora está
    pronto para edição. Digite o seguinte código. (Certifique-se a primeira
    linha não é recuado, o segundo é recuado uma vez, eo terceiro é
    recortado por duas vezes. É mais fácil usar guias para o efeito.)


    mob
    +Login()
    ++world << "Hello, world!"


    4.
    Compilar o código, selecionando Compilar a partir do menu Build. Se
    houver problemas, eles aparecerão na caixa de saída na parte inferior
    da tela. Mas a menos que você recuado incorretamente, todos devem
    prosseguir sem problemas.

    5. Execute o mundo compilada pela
    selecção Executar a partir do menu Build. Isso inicia Dream Seeker,
    que, posteriormente, bem-vindo ao mundo!

    Considere o exemplo
    Mundo Olá novamente. O código de MS diz que quando um jogador faz
    logon, uma mensagem deve ser exibida. Podemos fazer uma coisa
    semelhante para outros tipos de ações. Por exemplo, se o jogador
    digitar um comando, uma mensagem pode ser exibida.

    No MS, os comandos são chamados de verbos. Um verbo é definido no seguinte exemplo:


    mob
    +verb
    ++smile() world << "[usr] grins."


    Observe
    a escada engraçado recuo passo novamente! Isso será explicado um pouco.
    Por agora, leia esse exemplo de cima para baixo. Mais uma vez estamos
    definindo uma propriedade de um mob (avatar do jogador). Neste caso,
    estamos adicionando um verbo, uma ação que o jogador pode instruir o
    mob para executar. O nome do verbo é sorrir. A linha final exibe uma
    mensagem quando a multidão sorrisos. Observe o usr [] na mensagem, como
    você deve ter adivinhado, que não é exibido literalmente, mas é
    substituído pelo nome do usuário, o jogador que inicia o comando.

    Executar
    este exemplo. Depois de ter entrado, tente digitar sorriso e pressionar
    enter. Você deverá ver a mensagem sorrindo com o seu nome de login
    passa dentro dela. Incrível! Fantástico! Mas Deus jogando é um negócio
    sério. Não deixe que ninguém pegá-lo sorrindo.

    Para variar, você pode adicionar alguns verbos mais. Aqui estão alguns exemplos:


    mob
    +verb smile()
    ++world << "[usr] grins."
    +giggle()
    ++world << "[usr] giggles."
    +cry()
    ++world << "[usr] cries \his heart out."


    Agora
    o passo-padrão da escada foi quebrada porque todos os três verbos
    sorrir, rir, chorar e estão no mesmo nível de indentação. No DM, o
    recuo no início de uma linha que serve o grupo de coisas juntos. Aqui,
    sorriso, riso e choro são agrupados em verbos pertencentes à quadrilha.
    Cada um desses verbos tem o conteúdo da própria recuadas abaixo dela.

    Observe
    o uso de \ sua no verbo chorar. Essa macro é substituída pelo pronome
    possessivo adequado. Poderia ser seu, seu, sua, ou a sua, dependendo do
    gênero. DM fornece algumas outras macros úteis como este para fazer a
    vida fácil.

    Até agora nada foi dito (porque você nunca
    perguntou) sobre os parênteses vazios depois dos nomes verbo nos
    exemplos acima. Eles estavam no primeiro exemplo, após a sessão também.
    Estes são a marca de uma definição do procedimento. Os verbos e Login
    são exemplos de procedimentos, que são uma seqüência de instruções a
    serem realizadas. Nos exemplos a medida de cada procedimento consistiu
    em apenas uma linha - uma instrução para mostrar algum texto. Eles
    podem, naturalmente, tornar-se muito mais complicado do que isso.

    Existem
    duas categorias gerais de processos: os que aparecem como os comandos
    do jogador e aqueles que não. Estes são chamados de verbos e procs
    respectivamente. Por essa definição, Entrar no exemplo Olá Mundo foi um
    proc.

    Os parênteses após um nome de procedimento são mais do que
    decorativo. Eles podem ser usados para definir os parâmetros
    procedimento. Isso permite a prestação de informações adicionais para o
    procedimento. A informação é armazenada em uma variável, isto é, um
    pedaço de memória com um nome. Para confundir as questões, um
    programador, muitas vezes chamada de tais variáveis, que servem como
    parâmetros para procedimentos, argumentos. Por quê? Bem, apenas por uma
    questão de argumentação.

    Aqui está um exemplo de um verbo que tem um parâmetro - neste caso, uma pequena mensagem a ser transmitida para o mundo.


    mob
    +verb
    ++say(msg as text)
    +++world << "[usr] says, [msg]"


    Nestas
    linhas curtas são o esqueleto de um bate-papo mundo. Os usuários podem
    efetuar login e começar a tagarelar com o verbo dizer. Try it out. Sua
    sessão pode parecer algo como o seguinte:


    say "hello world!"
    Dan says, hello world!


    O
    principal ponto de interesse no código DM está dentro dos parênteses,
    onde o parâmetro é definido msg. Poderia ter sido chamado de nada, o
    nome da variável é arbitrário. A afirmação como o texto indica que uma
    mensagem curta fornecida pelo usuário será armazenado na variável. Esta
    mensagem é então inserido em um resultado final na posição marcada pela
    expressão [msg].

    Até agora tenho casualmente introduzida mobs,
    verbos, procs, e argumentos. Agora é hora de uma formal (tediosamente
    emocionante) descrição da sintaxe DM. Pode demorar vários multi-frases
    clausal para obter através desta, portanto, não prender sua respiração.

    DM
    código é estruturado como uma árvore. O topo da árvore é chamado de
    raiz. Os vários tipos de objetos virtuais (mobs sendo uma) filial fora
    da raiz e pode por sua vez, dão origem a tensões adicionais que se
    ramificam para baixo a partir deles.

    Caso você não tenha notado,
    a terminologia árvore de código está invertido. Claro, é assim o
    sistema de arquivos em seu disco rígido, e todas as árvores de outros
    informativos de existência. É bem possível que a grande maioria dos
    cientistas da computação nunca terem visto uma árvore real. O peso
    absoluto da sua ignorância mantém o jargão de virar à direita para
    cima, e estamos presos a árvores que têm uma raiz no topo e nódulos na
    parte inferior da folha. Ou pode ser apenas de obscurecimento padrão. É
    por isso que eu faço.

    É hora de um exemplo. Um tipo
    particularmente interessante de objeto virtual é um relvado. É um bloco
    de construção usado para fazer mapas gráficos que os jogadores podem
    andar por aí por diante. Suponha que nós queríamos fazer um labirinto.
    Isso exigiria dois tipos de relvados: pisos e paredes. Veja como você
    poderia definir-lhes:


    turf
    +floor
    +wall


    Tudo
    o que fizemos foi sucursal dois novos tipos de objetos fora do relvado
    de base. Um deles é chamado de piso e da parede do outro. A
    terminologia de uma árvore de família é muitas vezes usado para
    descrever a relação dos diversos objetos definidos aqui. Turf é o pai
    de piso e parede. As duas crianças são irmãos uns dos outros. A criança
    herda todas as propriedades de seu pai e acrescenta algumas próprias
    para distingui-lo de seus irmãos. Tanto chão e parede são relvados,
    porque eles são derivadas do tipo de objeto relva.

    Para fazer um
    labirinto, precisamos especificar algumas propriedades de pisos e
    paredes: o que eles se parecem e se você pode andar com eles. Enquanto
    estamos no assunto, o aparecimento de um jogador deve ser definida
    também. Esta é a forma como é feito:


    turf
    +floor
    ++icon = 'floor.dmi'
    +wall
    ++icon = 'wall.dmi'
    ++density = 1
    mob
    +icon = 'player.dmi'


    Vários
    trabalhos têm sido feitos. Estes assumem a forma de uma variável no
    lado esquerdo e um valor no lado direito. No caso dos ícones, o valor é
    o nome de um ícone do arquivo entre aspas simples. No caso da
    densidade, o valor deve ser 1 ou 0 para indicar se ela é densa ou não.
    A relva densa não vai permitir que outros objectos densos (como
    monstros) para passar por eles.

    Figura 1.2: Mapper The Amazing

    Para
    a maioria dos programas, adicionando suporte gráfico é uma tarefa
    enorme. As instalações do Dream Maker, entretanto, tornar essa tarefa
    bastante simples. Para o nosso exemplo, vamos apenas chamar um casal de
    ícones e colocá-los em um mapa.

    1. Criar um projeto chamado "labirinto através do Ambiente de Nova ... opção.

    2. Crie o arquivo maze.dm principal e digite o seguinte código:


    turf
    +floor
    ++icon = 'floor.dmi'
    +wall
    ++icon = 'wall.dmi'
    ++density = 1
    mob
    +icon = 'player.dmi'


    Você terá que fazer um novo ícone para o relvado e depois começar a editar o mapa para marcar a posição de partida com ele.

    O
    código que faz a colocação inicial da máfia está no proc Login. Ele
    define a localização do mob (loc) para a posição do turfe começar. Isto
    é feito usando o localizar () instrução - um dos muitos procedimentos
    internos no DM (ver figura 1.3). Ele calcula a posição de um tipo de
    objeto (neste caso, a relva start).

    Observe como o tipo de
    objeto / relvado / start é especificado. Esta notação é chamada de um
    tipo de caminho por causa da maneira que você especificar o caminho (a
    partir da raiz) para baixo para o tipo específico de objeto que você
    deseja.

    Agora, suponha que você esqueceu de colocar um relvado
    iniciar no mapa. O que aconteceria? O localizar () a instrução seria um
    fracasso e que o jogador não iria colocados no mapa e, portanto, não
    seria sequer capaz de ver o labirinto após log in Um desastre total!
    Não seria bom para cair para trás sobre o comportamento padrão de pelo
    menos colocar o mob em algum lugar no mapa? Em outras palavras, temos
    de alguma forma, executar a proc Login padrão, bem como aquele que
    definiu, apenas no caso de não haver relva começar. Aqui está como
    fazê-lo:


    mob
    +Login()
    ++loc = locate(/turf/start)
    ++..()


    A
    última linha faz o trabalho. Ele invoca um procedimento com um nome
    estranho: apenas dois pontos. Esse é o nome de MS usa para o
    procedimento padrão, mais geralmente conhecido como o pai ou o
    procedimento super. No caso da sessão, o padrão verifica proc para ver
    se a multidão já está em algum lugar. Se não, ele encontra um lugar
    vago no mapa, que é exatamente o que queríamos.

    Agora você pode
    começar a ver o sabor geral de programação DM. Há uma série de eventos
    (sendo uma sessão), que são tratadas por procedimentos. Quando
    necessário, você pode substituir o procedimento padrão com uma de sua
    preferência para fazer as coisas funcionam exatamente como você deseja.

    Este
    é outro componente importante da programação orientada a objeto. Cada
    tipo de objeto pode responder a eventos de forma diferente. A maneira
    em que eles respondem é herdado de seus pais, por padrão, mas pode ser
    redefinido e ampliado conforme a necessidade.

    Esta introdução
    foi apenas arranhou a superfície de MS. Você deve começar a ver algumas
    possibilidades interessantes. Ao mesmo tempo, você deve ter um monte de
    perguntas sem resposta. Manter essas duas em mente, que será o seu guia
    através da exploração mais detalhada da linguagem que se segue.

    Figura 1.3: A ajuda está a caminho!

    No ambiente de programação é completa sem uma referência abrangente e
    acessível. Dream Maker fornece esta sob a forma de um índice
    pesquisável de temas e propriedades internas. Você pode acessar esta
    selecionando Ajuda On ... no menu, ou pressionando a tecla F1. Se o
    cursor está posicionado em uma palavra (como "localizar"), a ajuda será
    encontrada para esse tópico.


    _________________
    A cidade tem medo de mim. Eu vi sua verdadeira face. As ruas são sarjetas dilatadas cheias de sangue e, quando os bueiros transbordarem, todos os vermes vão se afogar. A imundice de todo sexo e matanças vai espumar até a cintura e as putas e os políticos vão olhar para cima gritando "salve-nos"... e eu vou olhar para baixo e dizer "não".
    avatar
    Laxus
    Aldeia Friend
    Aldeia Friend

    Mensagens : 1151
    Créditos : 78

    Re: [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Mensagem por Laxus em Qua Jul 25, 2012 11:04 pm

    tem como postar umas imagens da engine?


    _________________
    "Não importa o quão forte o cara é, o que importa é encara-lo de frente sem fraquejar"
                                                                                                                                                        Laxus ~ Fairy Tail
    avatar
    Lief
    Desenvolvedor
    Desenvolvedor

    Mensagens : 832
    Créditos : 50

    Re: [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Mensagem por Lief em Qua Jul 25, 2012 11:08 pm

    Logo logo eu posto o download dela com umas imagens aqui Successful


    _________________
    A cidade tem medo de mim. Eu vi sua verdadeira face. As ruas são sarjetas dilatadas cheias de sangue e, quando os bueiros transbordarem, todos os vermes vão se afogar. A imundice de todo sexo e matanças vai espumar até a cintura e as putas e os políticos vão olhar para cima gritando "salve-nos"... e eu vou olhar para baixo e dizer "não".
    avatar
    Laxus
    Aldeia Friend
    Aldeia Friend

    Mensagens : 1151
    Créditos : 78

    Re: [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Mensagem por Laxus em Qua Jul 25, 2012 11:10 pm

    Obrigado!


    _________________
    "Não importa o quão forte o cara é, o que importa é encara-lo de frente sem fraquejar"
                                                                                                                                                        Laxus ~ Fairy Tail
    avatar
    Lief
    Desenvolvedor
    Desenvolvedor

    Mensagens : 832
    Créditos : 50

    Re: [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Mensagem por Lief em Qua Jul 25, 2012 11:28 pm

    Quando estava criando o tópico de download achei um com o mesmo assunto:
    http://www.aldeiarpgbr.com/t5976-quer-fazer-um-mmorpg-em-2d-e-muito-bom-conheca-o-byond
    O que eu tava criando:

    Introdução
    BYOND é uma engine de criação de jogos online. Informações completas Aqui
    Downloads
    Downloads de Demos e outras coisas para Byond:
    http://www.byond.com/developer/
    Baixe o Byond aqui:
    http://www.byond.com/download
    PS: no spoiler acima o tópico que eu tava criando tá incompleto, mas tem umas informações.


    _________________
    A cidade tem medo de mim. Eu vi sua verdadeira face. As ruas são sarjetas dilatadas cheias de sangue e, quando os bueiros transbordarem, todos os vermes vão se afogar. A imundice de todo sexo e matanças vai espumar até a cintura e as putas e os políticos vão olhar para cima gritando "salve-nos"... e eu vou olhar para baixo e dizer "não".

    Conteúdo patrocinado

    Re: [TUTORIAL] BYOND - Aula de Dream Maker Capítulo 1

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qua Dez 19, 2018 6:36 am