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.
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 ...Respostas:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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 .
fonte
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.
fonte
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.
fonte
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.
fonte
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).
fonte
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).
fonte
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.
fonte
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.
fonte
Existe uma biblioteca Haskell chamada Gloss , que tem uma interface muito simples e foi usada para ensinar as crianças:
http://cdsmith.wordpress.com/2011/09/28/haskell-for-kids-week-7/
Também pode ser experimentado online:
http://dac4.designacourse.com:8000/anim
fonte
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.
fonte
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.
fonte
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 ...).
fonte
Vá com o Unity3D ...
não há necessidade de ter medo de codificá-lo ... e há muita coisa em que você não precisa codificar ... as amostras farão seu primo feliz.
também existem alguns vídeos ... legais de serem assistidos walkerboystudio.com/html/unity_training_ free .html
fonte
http://news.bbc.co.uk/2/hi/programmes/click_online/9658183.stm
O programa da BBC Click mostrou um site onde você pode criar jogos baseados em Flash sem precisar conhecer uma linguagem de programação.
http://www.stencyl.com/
fonte