Mecanismo de jogo 2D recomendado para prototipagem [fechado]

76

Qual mecanismo de jogo de alto nível você recomendaria para desenvolver um protótipo de jogo 2D no Windows? (ou mac / linux, se desejar)

O tipo de coisa que quero dizer com "alto nível" inclui (mas definitivamente não se limita a):

  • não ter que gerenciar coisas de baixo nível, como buffers de tela, contextos gráficos
  • ter uma API para desenhar formas geométricas
  • bem, eu o omitiria, mas acho que basear-se em uma linguagem de "alto nível" real é uma vantagem (gerenciamento automático de recursos e a existência de um conjunto razoável de estruturas de dados na biblioteca padrão).

Parece-me que o Flash é o elefante proverbial na sala para esta consulta, mas gostaria muito de ver respostas diferentes com base em todos os tipos de idiomas ou SDKs.

Thomas Dufour
fonte

Respostas:

31

Eu usei o pygame extensivamente e tem muitos pontos positivos:

  • é uma biblioteca para Python, que é uma linguagem de alto nível
  • tem uma boa documentação clara
  • tem uma comunidade ativa

O Pygame é um invólucro do SDL, uma biblioteca gráfica 2D de plataforma cruzada. O Pygame também possui wrappers para som, música etc. Observe que, apesar de o Python ser uma linguagem de programação de alto nível, o pygame é (na maioria das vezes) uma biblioteca de gráficos de nível bastante baixo.

talljosh
fonte
3
Você pode mencionar que, embora esteja em uma linguagem de alto nível, como estrutura de jogo ainda é de nível bastante baixo.
Henk
5
Sim, você pode facilmente passar algumas semanas construindo lentamente um mecanismo de jogo no PyGame sem muito jogo real para mostrar. É uma ótima biblioteca, mas, na minha experiência, você precisará criar algum código de estrutura ao longo do tempo antes de funcionar para a prototipagem rápida de idéias mais envolvidas.
James
35

Se você quiser ver outras coisas. Você pode conferir o Löve (que usa Lua)

Ólafur Waage
fonte
4
Whoa, isso parece uma maneira super divertida de aprender lua!
GloryFish 22/09/10
9
Só para observar, escrevi o comentário acima em 22 de setembro de 2010. Sete dias depois, sentei-me e, em uma noite, criei meu primeiro jogo de Löve nunca tendo escrito Lua antes. Desde então, criei vários jogos com Lua e Löve e atualmente estou portando um jogo de Löve para iOS. Tem sido uma ótima linguagem de prototipagem e uma ótima maneira de aprender Lua.
GloryFish 12/05
2
É incrível ouvir isso: D
Ólafur Waage
20

Acho que o XNA é uma linguagem muito agradável para se prototipar. É fácil reunir idéias rápidas para ver como o jogo / mecânica funcionaria e forte o suficiente para realmente fazer o trabalho. Também possui uma grande comunidade nos fóruns para obter ajuda e várias ferramentas de terceiros (mecanismos de física / bibliotecas auxiliares / etc.)

user159
fonte
Como o Microsoft XNA é DOA, a próxima melhor coisa é o Monogame (implementação de código aberto do XNA).
ashes999
2
Eles ainda o suportam, e você ainda pode criar protótipos de jogos. Eles simplesmente não estão enviando novos recursos. Eu não chamaria isso de mortos, mas sim na aposentadoria :)
18

O GameMaker parece uma boa ferramenta introdutória de prototipagem ou construção de jogos. É baseado no arrastar e soltar "sem a necessidade de escrever uma única linha de código", portanto parece ser voltado para iniciantes. (Eu nunca o usei, apenas aconteceu com ele - mas o site deles certamente parece liso. :)

Cyclops
fonte
14

Também vale mencionar o Flixel de Adam Atomic . Um mecanismo de jogo simples, moderno e básico escrito em Flash. Você pode aprender em minutos, não em dias. E o uso do Flash (ou Processing / Java) evita uma das armadilhas mais perigosas da prototipagem: você não pode usar o código do protótipo em nenhuma plataforma séria. É o jogo que você deseja criar um protótipo, não o código.

martinpi
fonte
1
+1 para Flixel. Ótimo motor. Nós o usamos no Global Game Jam (e vencemos :). Não é possível obter protótipos semi-polidos muito mais rápido que 48 horas!
Michael.bartnett
Realmente muito bom. Eu fiz uma peça esta manhã e me ensinou o script de ação do zero.
Mcctyre321
@ michael.bartnett, você pode criar um link para o seu jogo vencedor? Apenas curioso :) #
31413 James McMahon
@JamesMcMahon Agradeço sua curiosidade :) Você poderia me dar um ping no bate-papo sobre isso? Além disso, gostaria de mencionar para os futuros leitores de comentários que eu preferiria o Flashpunk ao invés de Flixel hoje em dia entre os dois.
michael.bartnett
8

Não é especificamente um mecanismo de jogo, mas analise o processamento . Alguns dos pontos positivos são:

  • Configuração mínima necessária. Você pode ter algo na tela em 30 segundos.
  • Pode mergulhar no Java a qualquer momento para itens como coleções, mas grande parte da sintaxe de desenho, animação e interação é muito menos detalhada que o Java direto.
  • Qualquer coisa que você escrever será compatível com o Processing.js , para que você possa trabalhar com ele em qualquer lugar que tenha um navegador moderno.
lti
fonte
8

Eu uso o Novashell.

Usei o Game Maker como ferramenta principal, mas tive um problema com a YoYo Games (não vou explicar aqui agora), então encontrei a Novashell.

Novashell é REALMENTE uma ferramenta de prototipagem, foi feita pela pessoa que também criou "LORD" (Lenda do Dragão Vermelho) e "Dink Smallwood", para que ele pudesse fazer jogos rapidamente para Ludumdare (uma competição de gamejam de 48 horas), e possui um editor de mapas , suporta scripts LUA, é feito em C ++, possui licença zlib (o que significa que você pode fazer o que quiser com a fonte, além de afirmar que inventou coisas que não inventou) e possui um mecanismo de física (Box2D), sistema de partículas (Linear Particle for ClanLIB), suporta MikMod e Fmod, funciona em Linux, Mac e Windows, é fácil de usar e você pode pedir coisas ao Seth!

EDIT: Seth é o nome do programador (que também fez o SENHOR)

speeder
fonte
obrigado! nunca ouvi falar disso antes, mas a lista de recursos é interessante o suficiente para experimentá-lo. também open source
Nek
Sim! Minha própria versão do Novashell é um pouco melhorado em relação à versão oficial, mas vai demorar um tempo LOOONG antes que eu possa liberá-lo :( (não é mesmo em um computador fisicamente perto de mim)
speeder
de qualquer forma, não tenho tempo para aprender antes do Ludum Dare neste fim de semana. Espero que você o libere antes do próximo LD.
Nek
também a palestra desta LD é do próprio Seth!
Nek
Yep :) Seth é incrível ... Eu não estou mantendo-se com LDs :( Então eu não tenho nenhuma idéia, mesmo quando a próxima LD será.
speeder
7

O Game Maker é muito legal, basicamente faz tudo o que você descreveu. Possui ícones de arrastar e soltar para iniciantes e código para usuários avançados. No entanto, depois de usar C ++ exclusivamente por mais de um ano, voltar ao Game Maker foi ... doloroso.

Desvantagens:

  • Nenhuma estrutura de dados definida pelo usuário (nada como estruturas C ou classes C ++, apenas "objetos")
  • Digitado dinamicamente (digite "varAwesome = 0" e, oh, meu Deus, ele apareceu)
  • YoYo Games é mau

De cabeça para baixo:

  • Fácil de usar, difícil de dominar
  • Faz muitas coisas de baixo nível para você
  • Comunidade ativa e vibrante

Comecei a fazer jogos usando o Game Maker em 2002. :)

knight666
fonte
6
lol a tipagem dinâmica - desvantagem ...
RCIX
Sim, isso e a digitação fraca. Recebi alguns bugs realmente estranhos antes de perceber que o operador do módulo estava retornando respostas em ponto flutuante.
James
Nenhuma estrutura de dados definida pelo usuário é um problema. Se você precisar retornar mais de um valor de uma função, precisará criar um objeto para ele, mas todos os objetos são atores completos do jogo com uma posição, eventos etc. Você não pode passar as matrizes (se você não especificar um índice, ele assumirá [0])
Bart van Heukelom 04/08/10
Também recomendo o GameMaker se você deseja criar um protótipo rápido do design do seu jogo. O GameMaker é muito poderoso e já vi coisas incríveis sendo feitas com ele. Você pode economizar muito tempo e sofrimento se criar um protótipo de seu design de jogo no GameMaker antes de prosseguir para desenvolver um mecanismo de jogo em C ++ ou XNA.
Cooper
Na verdade, eu tenho uma biblioteca de scripts de alocação dinâmica de memória especificamente para solucionar o problema de falta de estruturas de dados. Eu direi que ter essas bibliotecas e poder fazê-lo na versão lite certamente facilita muito o trabalho.
The Great Duck
5

Uso o DarkBASIC Professional há 2 anos e realmente me divirto. Se você não puder comprar a versão completa, poderá fazer o download da versão gratuita suportada por anúncios. Os criadores de jogos, criadores do DBPro, também divulgam um boletim regular que faz uma boa leitura, além de terem uma comunidade ativa bastante grande; todos os itens acima podem ser encontrados aqui:

https://www.thegamecreators.com/

Confira, espero que você possa encontrar algo lá.

Saúde, BFM

Burningfeetman
fonte
5

cocos2d que usa pyglet . Eu uso essas duas bibliotecas Python extensivamente para prototipagem.

Muito mais fácil de trabalhar do que o pygame.

Estou surpreso que ainda não tenha sido mencionado!

Gerald Kaszuba
fonte
5

Eu recomendo o Scirra Construct para iniciantes e prototipagem rápida.

O próprio mecanismo de jogo é abstraído, para que você possa se concentrar totalmente no seu jogo. Os plug-ins permitem funcionalidade adicional, o "código" é composto por blocos arrastáveis ​​de eventos, condições e ações, etc.

O construto está em desenvolvimento ativo e também possui uma comunidade ativa.

Miha Petelin
fonte
3

O Scrolling Game Development Kit versão 2 é a segunda iteração principal (reescrita) de um IDE e estrutura de desenvolvimento de jogos para exatamente esse tipo de prototipagem e desenvolvimento simples de jogos em 2D. Como segunda iteração, ele tira proveito das linguagens modernas (C #) e das tecnologias (reflexão sobre código personalizado), além de resolver algumas das falhas fundamentais no design (agora permite colocar sprites diretamente no editor de mapas, em vez de apenas um caminho que deve estar conectado externamente a um sprite e não tenta ser um editor do Wysywig, porque há algumas coisas que você deseja que ocorram apenas no tempo de execução e outras que você deseja apenas no tempo de design).

Algumas das características de interesse:

  1. A grande maioria do código da estrutura é exposta e editável no IDE. Se você não gostar do modo como a função interna "PushTowardSprite" se comporta, é possível abrir o editor e alterá-lo ou adicionar o seu que aparecerá na lista, junto com todos os comandos internos.
  2. Você mencionou a capacidade de desenhar polígonos. Essa estrutura é baseada no OpenTK, que é um wrapper .NET no OpenGL. Então você tem todo o poder do OpenGL ao seu alcance. Há uma única classe "Display.cs" no código da estrutura que você pode editar no IDE e adicionar os recursos de desenho desejados.
  3. Grande parte da estrutura é direcionada à física de side-scroller (caminhada em encostas, plataformas de pilotagem, etc.), portanto muito desse código já foi feito para você; é claro que você pode personalizá-lo ou ignorá-lo para outros tipos de jogos em 2-D. Um jogo Tetris foi escrito com ele.
  4. Rolagem de paralaxe
  5. A translucidez alfa pode ser incorporada nos gráficos ou aplicada ao desenho de qualquer gráfico.
  6. Todos os dados do projeto são salvos em um único arquivo XML (um conjunto de dados .NET). Editores externos podem acessar o arquivo, estendendo os recursos disponíveis no IDE, se necessário.
  7. Os projetos são compilados primeiro em projetos C # (compatíveis com o Visual Studio) e depois em arquivos EXE (com todos os recursos incorporados). Se necessário, você pode carregar o projeto no Visual Studio para uma interface aprimorada de depuração ou desenvolvimento de código.
BlueMonkMN
fonte
3

Com o PreviewLabs, uma empresa especializada em prototipagem rápida , geralmente usamos o Unity3D para prototipar jogos 2D.

Embora seja um mecanismo 3D, existem várias maneiras de usá-lo para prototipagem 2D. Estas são as principais vantagens:

  • É gratuito para uso nas plataformas PC e Mac
  • As versões pagas também funcionam para iOS e Android, permitindo que você veja como seu conceito funcionaria em uma plataforma diferente.
  • Ele vem com um mecanismo de física, que você também pode usar ao criar protótipos de jogos 2D.

Estou escrevendo uma série de postagens de blog sobre como o Unity3D pode ser usado para prototipagem de jogos em 2D; este é o primeiro: Prototipando jogos 2D no Unity3D

bernardfrancois
fonte
3

O Slick Framework escrito em Java é uma boa escolha. É o que eu costumava aprender a programar. Os benefícios são que ele roda em várias plataformas, pode produzir applets para a Web e possui um suporte fantástico de ferramentas / bibliotecas por meio do Eclipse ou qualquer outra coisa que o ambiente Java tenha. Dito isso, eu finalmente mudei para o Flash simplesmente porque, se você deseja distribuir seus jogos, não há nada mais fácil ou mais eficaz.

Alex Schearer
fonte
2

Comecei a usar o FlashPunk no meu primeiro projeto de desenvolvimento de jogos e, até agora, tem sido muito bom. É uma biblioteca Flash criada para o design de jogos. É um mecanismo de jogo básico semelhante ao Flixel, mas é mais parecido com o GameMaker, sendo mais amigável para iniciantes do que o Flixel. O FlashPunk, juntamente com o Ogmo Editor, tornam muito eficiente o design nivelado, sem ter que gastar muito tempo na codificação. Mais informações sobre os três podem ser encontradas no Flash Game Dojo .

Curtidor
fonte
1

Vou enfatizar a menção ao Game Maker. Eu diria, se todo mecanismo de jogo cair em um continuum de "fácil de usar / aprender, mas limitado no que você pode fazer" a "realmente poderoso, mas levar muito tempo para dominar" ... Game Maker é praticamente a definição do extremo fácil de usar. Como o Cyclops diz, a funcionalidade mais básica (sprites, criação de objetos de jogo, movimento, detecção de colisão, pontuação, etc.) são ícones de arrastar e soltar. Na verdade, ele inclui uma linguagem de script bastante robusta que você pode usar também, assim que começar a ficar bom ... mas quando você começar a escrever todo o jogo na linguagem de script incorporada, talvez seja hora de "se formar" em uma linguagem de script como Flash ou PyGame.

Ainda assim, tive grande sucesso com o Game Maker como uma ferramenta iniciante e sem necessidade de programação para estudantes de design de jogos, e não posso recomendar o suficiente.

Ian Schreiber
fonte
1

Eu sou muito iniciante em criação de jogos e fiquei impressionado ao conseguir criar algo fora de pygame tão rápida e facilmente. Python + SDL = facilidade garantida.

gokoon
fonte
1

Bem, se é para prototipagem, você realmente não precisa de um back-end liso com gerenciamento de recursos e coisas assim. Contanto que você possa carregar gráficos e exibi-los, você está definido. Eu vou contra a corrente e proponho 'escreva o seu'. Você não perderá tempo descobrindo como usar a API de alguém. Se a opção escrever por conta própria não for realmente uma opção, o DirectX vem com uma estrutura de amostra que fornece os serviços mais básicos. Não estar vinculado a uma estrutura significa não perder tempo seguindo suas regras e não sendo limitado por seu escopo. Eu tenho feito a prototipagem como um trabalho, e meus resultados mais rápidos foram quando eu pude basear no código sem ter que me preocupar ou ser prejudicado por uma estrutura. Um wrapper 2D realmente não precisa mais do que carregar imagens e poder exibi-las em x, y - possivelmente em escala, rotação e se você quer ser trippy, shader. O restante você pode codificar conforme necessário. Para um protótipo que é - o código não será bom.

Kaj
fonte
1

O Torque-2d da GarageGames é um ótimo mecanismo de jogo com uma ótima comunidade, alguns complementos realmente impressionantes e suporte interno para Windows, Mac e Wii e até o iOS (com licença separada). Custa 99 dólares.

O Unity3d (você pode desenvolver jogos em 2D) é outro mecanismo de jogo de muito boa qualidade e com uma barreira relativamente baixa à entrada. Novamente, ótima comunidade e suporte multiplataforma muito legal, incluindo iOS e Android, além de Win / Mac, Wii, Xbox, Playstation e Web.

Um ótimo mecanismo de jogo centrado no iPhone é o cocos2d para iOS.

Todd Hopkinson
fonte
1

Sua pergunta é sobre o que é preciso para escrever um protótipo de jogo 2D, mas acho que há outra coisa a considerar: a maior vantagem do Flash é o necessário para compartilhar esse protótipo com outras pessoas. Quase todo mundo já tem o Flash instalado. Posso fazer upload de um SWF e passar o URL para alguém por bate-papo ou email. Sem download, sem instalação, sem descompactar, sem exe, sem problemas de plataforma cruzada. Acabei escolhendo o Flash porque era muito fácil compartilhar e obter feedback. A iteração envolve o upload novamente e a solicitação para recarregar, e eu queria uma iteração rápida para a criação de protótipos. (Javascript + Canvas / SVG é outra opção útil, e tenho certeza de que em breve veremos bibliotecas como Flixel / Flashpunk for JS).

amitp
fonte
1

O HGE parece ótimo. Possui Editor de Partículas, Editor de GUI e é usado por programadores profissionais.

Saleh
fonte
1

Sempre há GLBasic .

É uma linguagem de nível bastante alto e recentemente expandiu seu suporte móvel.

  • É 2D e 3D
  • Gratuito para não comercial
  • Comandos básicos de sprite, com colisão de pixels ou blocos
  • Escreva uma vez e implante em muitos dispositivos e plataformas (principalmente)
  • Tem suporte para Box2D via wrapper (procurar fóruns)
  • TIPOS de dados personalizados com funções (perto de uma classe, mas faltando muita funcionalidade OOP)
  • Pode fazer com que um sprite se mova na tela em pouco tempo com poucas linhas de código
Doug.McFarlane
fonte
1

O PixieEngine é um ambiente de desenvolvimento de jogos e IDE baseado na Web. Ele usa o CoffeeScript para scripts e fornece editores incorporados para pixel art e efeitos sonoros.

PixieEngine IDE

Daniel X Moore
fonte
1

Estive em uma missão semelhante e me deparei com algumas outras ferramentas não mencionadas aqui:

  • O Stencylworks é um ambiente IDE / dev para a criação de jogos em Flash de maneira rápida e fácil, interface visual para módulos existentes. parece ser 100% gratuito, não de código aberto, e as principais vantagens incluem códigos lisos e sem código (não é o script / interface visual schitzoid da Gamemaker). Preocupo-me com os limites da interface visual - não está claro o quanto ela é realmente orientada a objetos; certamente tem coisas simples; presumivelmente o editor de scripts javascript está lá em algum lugar, mas ainda não o vi. Parece ser destinado ao desenvolvimento colaborativo em sua essência (bate-papo integrado ao IDE; todos os recursos e comportamentos hospedados em um servidor, contribuídos pelo usuário). Isso pode ser ótimo para o desenvolvimento de protótipos. Ainda não fiz muito com ele, mas o tutorial foi simples, e aí está '

Eu tentei alguns outros mais estranhos também.

Alice é um ambiente de jogo / desenvolvimento em 3D que é open source - parece meio desajeitado.

Kodu, indo além da Gamemaker no espectro fácil / limitado, voltado para crianças, permite criar jogos com um controle Xbox. grátis da Microsoft Research

Scratch, do MIT Labs, é um 2D gratuito e realmente básico, destinado a levar as crianças para a codificação. Visualmente desajeitado. Flexível embora.

Voltando ao LOGO de Papert, o Microworlds JR permite que você escreva um logotipo, supostamente. Precisa de uma atualização para ser útil, IMO.

Para mim, até agora, está relacionado ao Construct 2 vs Stencylworks ... embora eu veja como é fácil criar um jogo 2D decente no Unity, como eu conheço e gosto do Unity.

Joshoff
fonte