Uma linguagem de desenvolvimento de jogos grátis? [fechadas]


19

Então, estou tentando ensinar um pouco ao meu primo muito mais novo sobre programação. Meu pensamento inicial era algo como Scratch ou Alice , mas havia algumas desvantagens nisso.

  • Todo mundo parece realmente gostar da programação e do desenvolvimento de videogames (porque todo mundo adora jogar videogames e, no que diz respeito a videogames, jogar o seu pode ser o mais gratificante) - mas nem Alice nem Scratch parecem se interessar pelo jogo desenvolvimento

  • Alice e Scratch parecem muito infantis, enquanto eu tenho certeza que meu primo gostaria de se envolver com isso, acho que ele rapidamente se cansou disso

  • Eu quero uma linguagem que possa ser usada para desenvolver coisas realmente legais que irão impressionar seus amigos. Lembro-me de escrever o BASIC de volta ao dia e convidar todos os meus amigos e mostrar minha criação, e sinto que Alice e Scratch simplesmente não apelam da mesma maneira

  • Quero um idioma que exija que meu primo escreva código. Agora, isso não é apenas porque eu acho que digitar código é uma boa preparação para outras linguagens de programação, mas é porque isso lhe dá a oportunidade de realmente praticar digitação e talvez se acostumar com alguns dos caracteres um pouco mais esotéricos do teclado.

Agora, é por isso que não quero escolher Alice ou Scratch.

Também não quero escolher uma linguagem como C ou Java, nem mesmo Python ou Ruby. Meu primo já me disse que gosta de jogar videogame e quer criar o seu, e que gosta de usar computadores. Na minha opinião, mesmo uma linguagem simples como Python ou Ruby simplesmente leva muito tempo para criar coisas legais. Idealmente, ele se sentava, passava cerca de um dia ou dois (ou talvez até uma semana, mas espero que menos do que isso) e tinha um jogo bidimensional funcional. Não estou dizendo que você não pode fazê-lo em Python ou Ruby, mas apenas estou dizendo que seria difícil para um programador iniciante. Além disso, não quero atolá-lo com todas as coisas da ciência da computação, pois isso pode acontecer mais tarde. Eu só quero ajudá-lo a criar a faísca e depois deixá-lo continuar com o resto do fogo.

Eu olhei para linguagens como Lua e, embora pareça comum na programação de jogos, não tenho certeza se é a melhor escolha - mas se vocês pensam o contrário, avise-me.

Eu também olhei para uma linguagem como Blitz e parece realmente promissora (além disso, eu a testei há alguns anos atrás, e foi realmente muito legal). A desvantagem é que tenho que pagar, algo contra o qual estou definitivamente contra.

Eu olhei para o SmallBasic , o que parece promissor e continuarei olhando. Mas não fiz muito (na verdade, estou executando o instalador enquanto digito isso, por isso vou relatar meus pensamentos sobre isso em breve).

ATUALIZAÇÃO: Experimentei o SmallBasic rapidamente e parece intrigante, mas também parece bem diferente em comparação com outros idiomas - isso não é uma coisa ruim, mas é incomum. Das coisas que eu olhei, Blitz ainda é o meu favorito, mas me recuso a ir lá por causa do custo.

Mas, basicamente, o que vocês acham do que eu disse até agora, e os idiomas que eu observei e vocês conhecem outras boas alternativas?


ATUALIZAÇÃO: Aqui está o que eu escolhi fazer ...

Percebi que, embora eu adorasse ajudar meu primo, não posso ficar com ele o tempo todo e não posso ajudá-lo toda vez que ele precisar de ajuda. Então, eu queria escolher algo que tenha uma boa documentação, uma boa comunidade e um bom livro que ele possa seguir.

Enfim, eu escolhi Python e Pygame. Python é uma linguagem com a qual estou bastante familiarizado, além disso, sei que há uma comunidade muito boa (e muito grande) em torno de Python. Além disso, eu sei que a documentação do Python é bastante completa e fácil de navegar. O Pygame também possui uma excelente documentação e um conjunto de tutoriais. Também estou fazendo com que ele use / siga Invente seus próprios jogos de computador com Python , que parece um livro muito bom, comprei uma cópia impressa para ele como presente de Natal, além de saber que o monitor dele não é enorme, e seria Não é conveniente trocar constantemente entre o texto e o editor.

Eu acho que deve correr bem!

Edição: Eu não quero sugerir que minha escolha é final ou que está correta. Eu apenas acho que é o melhor ajuste para esta situação. Acho que cada pessoa que procura ensinar alguém mais jovem deve procurar a seleção e encontrar a melhor solução para a pessoa, considerando coisas como idade, nível de habilidade e interesse.


15
+1 I want a language that can be used to develop really cool stuff that will impress his friends.Essa ainda é minha principal motivação para a programação, depois de 25 anos ...
yannis

2
+1 Por saber onde parar quando ensinar alguém mais novo. Nenhuma ciência da computação chata, apenas os resultados interessantes. "crie a faísca e deixe-o continuar com o resto do fogo."
Andy Hunt

1
@Bob Estou trabalhando como desenvolvedor web há mais de uma década, mas apenas recentemente envolvido em algo que as pessoas realmente usam diretamente. Eu venho fazendo coisas profundas de back-end há muito tempo. Embora minha resposta oficial seja que minha motivação é meu profundo amor pela solução de problemas, blá, blá, blá, o ano passado foi o primeiro na minha vida profissional que tive a chance de ouvir de pessoas aleatórias que elas realmente estão usando o que estou construindo , e isso os ajudou de alguma maneira. O sentimento é incrível! Espero que seu primo ache a programação tão emocionante quanto a nossa ...
yannis

1
@MahmoudHossam eu definitivamente vou deixar você saber
Bob

Respostas:


12

Parece que ninguém jogou fora o Python + Pygame . Dependendo da idade / maturidade de seus primos, certamente abre a possibilidade de muitas coisas legais. Certamente isso é básico o suficiente para começar, mas com sua enorme biblioteca padrão, você não pode realmente se cansar do Python.


19

Eu acho que o equivalente moderno do BASIC é Javascript. Dê a ele uma página HTML simples que tenha um script incorporado que crie uma tela e desenhe uma forma nela, aponte-o para alguns tutoriais e veja o que acontece. Resposta rápida (salve suas alterações e atualize a página) e suporte à depuração decente.


um plus acrescentado é que ele pode compartilhar instantaneamente w / amigos também
bunglestink

Os jogos HTML5 são um tópico importante para a indústria de jogos para dispositivos móveis, devido à sua (futura?) Portabilidade / independência de plataforma. Outro é o WebGL, que acredito ser menos comum. Novos kits de ferramentas para eles são exibidos diariamente.
Mctylr

Essa é uma ideia interessante, e acho que o desenvolvimento web é definitivamente uma boa habilidade. Vou ter que pensar sobre isso, mas parece interessante.
23411 Bob

5
Eu não concordo inteiramente. O Javascript é um pouco mais difícil de aprender do que o Basic é / era (não que eu conheça o Basic, lembre-se), e se você quiser combiná-lo com uma página da Web, precisará aprender também sobre HTML e tecnologias da Web. Um começo mais simples (eu acho) seria no Javascript do lado do servidor, por exemplo, combinando com o NodeJS como um ambiente de execução leve ou outro interpretador JS da linha de comando.
Cthulhu

+1 para JavaScript - sim, a parte HTML (5) é um aprendizado adicional a ser feito, mas, novamente, o HTML é bastante simples - lembro-me de aprender a criar um botão HTML e me exibir quando estava aprendendo GWBasic :)
yati sagade

12

Não é uma linguagem de programação explicitamente para jogos, mas efeitos gráficos muito interessantes podem ser feitos usando pouco código no processamento . Além disso, é gratuito e relativamente fácil de aprender. IMHO é uma linguagem ideal para aprender o básico da programação, principalmente porque os tutoriais ensinam muitos dos conceitos básicos como variáveis, matrizes, operações matemáticas etc.


Eu acho que um ponto chave é a disponibilidade de tutoriais. Aprendi a programar com uma cópia dos 101 BASIC Computer Games de Dave Ahl , e a chave (para mim) era ver o código e a amostra juntos. Achei muito mais fácil retroceder a partir da saída para descobrir como algo foi feito do que dizer para "faça isso e observe o que acontece".
TMN

11

Não brinco com isso há um ano ou dois, mas usar C # com o XNA pode ser um bom lugar para começar. Pelo que me lembro, é muito fácil começar . Embora esse link seja provavelmente mais para você do que ele.


1
Na verdade, tenho alguma experiência em primeira mão com C # e XNA (trabalhei com C # em um trabalho anterior). Eu acho que é uma ótima recomendação, mas não tenho certeza se é um pouco avançado demais para ele. Ele pode ser capaz de fazê-lo, mas a maioria das crianças deseja resultados reais com o mínimo de esforço e "aprendizado em cima".
Bob

Como é uma biblioteca .NET, eu suponho que também esteja disponível para uso no VB, o que reduziria a 'sobrecarga de aprendizado' do C # em alguns.
Andy Hunt

3
@AndyBursh, quando fui forçado a aprender VB, me deu dores de cabeça até parar. Eu nunca o toquei desde então.
codesparkle

@codesparkle Concordo plenamente, o VB como idioma é irritante como o inferno. No entanto, é muito fácil ler e escrever coisas simples, por isso geralmente é uma linguagem introdutória agradável. Infelizmente, a linguagem tem algumas idiossincrasias terríveis, como o código terrível que você precisa escrever para transmitir de A para B!
Andy Hunt

XNA é realmente um pouco avançado para começar. Eu encontrei, até encontrar o Unity, que usa a mesma linguagem, mas tem uma abordagem muito mais visual, com resultados muito mais rápidos. @AndyBursh: Ele não está disponível para VB.NET, apenas C # .NET #
Simon Verbeke /

11

Tente Greenfoot ,

Imagem http://www.greenfoot.org/images/screenshot.png?1310995619

É baseado em java e existem todos esses totóricos para usá-lo no Youtube .

O greenfoot fornece uma boa abordagem de cima para baixo destinada a iniciantes.

veja esta resposta do stackoverflow , o que observei foi "As crianças são, na verdade, as que aprendem mais rápido e fazem isso por correspondência de padrões, extrapolação, interpolação, etc."

portanto, depois de usar o java no greenfoot por um tempo mais tarde, os conceitos serão mais fáceis de entender, apenas por parecer familiar.


Greenfoot parece um projeto bem arrumado. Eu não sou um grande fã de Java como primeira linguagem, mas o Greenfoot realmente torna simples o suficiente para jovens programadores. Ainda estou brincando, mas acho que poderia ser o único.
Bob

@ob Tudo o que faz você escrever código e resolver problemas interessantes rapidamente deve ser uma boa escolha.
Siamore

Isto parece um projeto muito legal
KallDrexx

A " resposta stackoverflow " a que você se refere foi excluída e o link não funciona mais. Você se importaria de atualizar a resposta?
mosquito

4

Soa como um caso típico de modificação . Muitos jogos são muito flexíveis e extensíveis, desde o bom e velho Quake I (com sua linguagem QuakeC) até o TES IV Oblivion, ou dezenas de títulos que podem ser estendidos com Lua.

Outra opção é o Second Life - é um mundo muito flexível, onde é possível criar jogos, simulações, demos, o que quer que seja, com uma linguagem de script agradável e limpa .


Eu concordo em grande parte, mas acho que ele quer criar seus próprios jogos. Eu acho que isso é mais um cenário caso a caso, mas meu primo e seus amigos não gostam de jogos que se adaptam muito bem a modding ... Além disso, acho que metade da diversão é construir algo (principalmente) a partir do zero. Dizer "ei (pai ou amigo) olha para este jogo que eu fiz sozinho" é diferente de dizer "ei, eu fiz um mod para este jogo que eu quase não jogo"
Bob

O que estou tentando dizer é que as crianças querem se orgulhar de seu trabalho, criar coisas do zero e criar coisas facilmente que produzam resultados bem legais. Eu acho que a modificação do jogo pode ser melhor orientada para os adolescentes.
Bob

@Bob, com o Second Life, você pode criar seus próprios jogos, usando a funcionalidade já disponível que desejar. É apenas uma plataforma. E é grátis. E alguns dos mods de jogos são totalmente novos, com quase nada em comum com a plataforma subjacente.
SK-logic

@ Bob, quanto à construção de algo totalmente do zero, uma escolha de idioma deve ser a última coisa a considerar. Uma plataforma e bibliotecas seriam mais importantes. Eu sugiro o XNA nesse caso (com uma opção de qualquer uma das linguagens .NET em cima).
SK-logic

Tudo bem, a idéia do Second Life realmente parece bem legal. Definitivamente vou dar uma olhada nisso. Obrigado pela sugestão! Como ex-desenvolvedor .NET, eu definitivamente considerei isso, mas não quero escolher algo excessivamente complexo para um público mais jovem. Mas definitivamente vou investigar.
Bob

4

Atualmente, sou um usuário ávido do Game Maker . - Embora a versão completa não seja gratuita (US $ 40), a versão gratuita é suficiente para provar o básico do design do jogo. Ele tem "conteúdo" suficiente para alguém novo permanecer ocupado por alguns anos. Se eu tivesse que colocá-lo em algum lugar, colocaria em algum lugar entre modding e linguagens como python.

Possui vários métodos de escrita. Você pode usar "ícones de arrastar e soltar" e uma "linguagem de script" (GML) muito mais avançada. Eu nunca entendo por que as pessoas desejam "escrever código" tanto - vejo o arrastar e soltar apenas como uma maneira de visualizar o código.

Outra vantagem do gamemaker - e o motivo pelo qual, depois de aprender outros idiomas e 10 anos de experiência, mantenho o gamemaker - é que ele ajuda a organizar um jogo: possui vários recursos, um sistema de eventos etc. etc.
Não é a ferramenta ideal para criar o próximo mundo do warcraft, no entanto, para impressionar os outros, é mais importante criar ALGO.

Eu realmente não posso recomendar outras opções - como pessoalmente estou feliz com o jogo e hoje em dia me interesso mais por aprender idiomas de uso geral.


+1 Eu descobri o Game Maker no ensino médio e me diverti muito com ele. Embora não exista muita codificação necessária, você pode facilitar o acesso, pois expõe você a variáveis ​​e pode definir fórmulas para alterar essas variáveis ​​quando certos eventos acontecem. Somente os eventos de colisão integrados permitem um monte de criação criativa de jogos. Os jogos de modelos embutidos permitem modificações úteis. Eu fiz side-scrollers primitivos, top-downs, um jogo do tipo quebra-blocos ... muito divertido.
Joshuahedlund

3

O que milhares de pessoas estão desenvolvendo jogos é o Flash. O pacote de desenvolvimento "oficial" da Adobe custa dinheiro, mas existem alternativas gratuitas; O FlashDevelop levou menos de uma hora para encontrar, fazer o download, executar e obter um flash "Hello World". A biblioteca Flixel fornece boas funções de suporte para jogos, incluindo física, partículas, fácil criação de níveis para plataformas, tem muitas amostras e é fácil de configurar.


2

FWIW, comprei meu primo " Land of LISP " para esse mesmo propósito. O livro é ilustrado com desenhos animados e trata da criação de jogos no LISP. Porém, meu primo só queria criar jogos baseados em texto, mas acho que o livro lhe dará uma boa introdução à programação.


Eu li Land of Lisp e é um livro legal, mas não sei se Lisp é sempre o melhor ponto de partida para jovens. A sintaxe é composta principalmente de parênteses, o que pareceria simples, mas acho que fica confuso rapidamente, principalmente quando você é criança.
Bob

Para os jogos baseados em texto, você deve introduzir o seu primo para Inform ou TADS
user16764

@ user16764 Obrigado pela sugestão, acho que será uma ótima maneira de ele modelar suas idéias!
22411 Bob

2

O idioma que eu comecei era o Dark Basic Pro . Afastei-me um pouco rápido porque o desenvolvimento de jogos não é minha xícara de chá, mas era uma linguagem poderosa. Não mexo com isso há alguns anos agora, então não tenho certeza de como é bom agora (usei-o pela última vez quando o DirectX 9 era novo e de vanguarda). Mas permite que você comece rapidamente a codificar e criar gráficos 3D sofisticados com apenas um pouco de código (e também é código puro).


O Dark Basic parece bem legal, e parece similar em seu objetivo ao Blitz, mas você ainda precisa pagar por isso.
22411 Bob

2

Uma das partes mais difíceis do desenvolvimento de jogos, embora menos prevalente no desenvolvimento de jogos em 2D, é a criação de gráficos. Então, supondo que seu primo não precise lidar com a criação de provas de arte ou que seja muito bom em arte 2D, acho que o objetivo é alcançável.

Eu sugiro que você use python junto com pygame para começar. Eu sei que você tinha reservas sobre python, mas me ouça. Python é uma linguagem muito simples. Eu diria que a falta de digitação estrita faz com que seja uma escolha muito melhor do que algo como C # para começar.

Linguagens baseadas em protótipo são legais e algumas pessoas as acham muito fáceis de entender, no entanto, não acho que as pessoas realmente entendam os conceitos de como os objetos funcionam em linguagens baseadas em protótipo tão facilmente quanto eles podem entender o paradigma de classe / objeto.

O Pygame também tem vários exemplos de que seu primo e você podem aprender o básico e, de várias maneiras, são uma estrutura muito simples, que não esconde tanto de você que faz com que você precise aprender muito da estrutura para fazer coisas mais complicadas. coisas.

Talvez depois de um jogo escrito em pygame, você possa passar a escrever jogos que também se integram a um mecanismo de física 2D, como o box2d, que possui excelentes ligações em python.

Quanto a ensinar seu primo python, eu me afastava de fazê-lo aprender o idioma primeiro, talvez um curso intensivo nas idéias de classe / objeto. Em seguida, algumas sintaxes básicas da linguagem, antes de colocá-lo no fundo do poço e fazer com que ele procure a sintaxe e / ou as bibliotecas quando precisar de algo.

Finalmente, outra coisa boa do python é que você pode facilmente passar para os mecanismos de jogos 3D, mantendo suas habilidades com mecanismos como o panda3d ou até a unidade (o Boo é muito semelhante ao python).


2

Lua e LÖVE . Lua é um dos idiomas mais simples disponíveis. A estrutura do LÖVE é otimizada para jogos 2D. Ele também possui um back-end OpenGL, com o desempenho e outros benefícios que isso traz.


1

Você pode experimentar o Unreal Development Kit ( Recursos ). Pode ser um pouco difícil aprender sobre a interface. Mas o melhor disso é que ele também possui um mecanismo de script visual, para que você não precise programar para criar algo. Ele pode fazer algo e programar pequenas partes dele. Uma desvantagem é que ele usa sua própria linguagem de script.

Outro mecanismo que eu realmente gosto é o Unity3D ( Recursos ). O Unity não possui programação visual, mas usa duas linguagens comuns: C # e JavaScript. Ele também suporta um dialeto python chamado Boo. Esses três podem interoperar. O Unity também vem com muitos scripts finalizados.


Se o alvo for o seu próprio jogo com gráficos 3D, essa é a melhor abordagem da IMO. Muitos / a maioria dos kits de ferramentas para jogos principais têm versões gratuitas (algumas requerem que você possua uma versão registrada do jogo principal). A maioria se estende da modificação à criação de ambientes de jogo totalmente novos. Vários (não todos): Playground , Havok e Value Source . Há muito mais em que não consigo pensar agora.
Mctylr

Unity e Unreal são muito legais, mas acho que a idade alvo começa na adolescência, que é um pouco velha demais.
22411 Bob

@Bob: Eu não acho que você mencionou qualquer idade, então eu não tinha certeza do que propor :)
Simon Verbeke


0

Sei que você está procurando idiomas gratuitos e há boas sugestões de outros pôsteres. Como você está preocupado em obter resultados interessantes, rápido e como Blitz parece o tipo de coisa que você gostaria, exceto pelo custo, eu gostaria de sugerir Phrogram . Isso costumava ser o KPL (que era gratuito). Não é gratuito, mas é mais barato que o Blitz e possui muitos dos mesmos recursos que eu acho que o tornam muito adequado para uso como idioma de ensino, especialmente para adolescentes.

Você pode fazer algumas coisas bastante sofisticadas com o Phrogram e existe uma comunidade bem estabelecida de usuários de Phrogram e KPL que publicou muito código para aprender.


Phogram parece legal, e eu não sou realmente contra o pagamento, mas prefiro opções gratuitas. Vou fazer o teste e ver como ele se compara ao DarkBasic e Blitz.
Bob

0

Muitas boas sugestões aqui, vou apenas gritar para o RoboCode . Existem muitos exemplos para ajustar, e você pode começar a funcionar em apenas alguns minutos. Isso lhe dará o sabor da programação, mas é improvável que ele aprenda os detalhes básicos de como escrever um programa do zero. Também é baseado em Java, pelo que vale a pena.


0

Não consigo entender como ninguém fala sobre a Games Factory! Este é um dos melhores recursos para criar rapidamente um jogo de computador, sem o conhecimento de programação.
http://www.clickteam.com/website/usa/downloads/index/7
Consiste no editor do storyboard - com molduras. Você coloca objetos diferentes que podem ser controlados de várias maneiras pelo jogador (movimento da plataforma, 8 direções etc.).
O aspecto mais importante é o editor de eventos - é uma matriz enorme, usada para definir o que acontece a partir de pré- regras definidas (Objeto similar (1) movido para o final da tela, a localização do objeto é> 100, etc ...).



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.