Un linguaggio di sviluppo di gioco gratuito? [chiuso]


19

Quindi, sto cercando di insegnare un po 'a mio cugino molto più giovane sulla programmazione. Il mio pensiero iniziale era qualcosa come Scratch o Alice , ma c'erano alcuni aspetti negativi.

  • Tutti sembrano essere davvero coinvolti nella programmazione dei giochi e nello sviluppo di videogiochi (perché tutti amano giocare ai videogiochi e, per quanto riguarda i videogiochi, giocare ai tuoi può essere il più gratificante) - ma né Alice né Scratch sembrano soddisfare il gioco sviluppo

  • Alice e Scratch sembrano troppo infantili, mentre sono sicuro che a mio cugino piacerebbe dilettarsene, penso che se ne sarebbe presto annoiato

  • Voglio un linguaggio che possa essere usato per sviluppare cose davvero interessanti che impressioneranno i suoi amici. Ricordo di aver scritto BASIC nel corso della giornata e di aver invitato tutti i miei amici e di mostrare la mia creazione, e mi sento come se Alice e Scratch non si appellassero allo stesso modo

  • Voglio una lingua che richiede a mio cugino di scrivere codice. Ora, questo non è solo perché penso che digitare il codice sia una buona preparazione per altri linguaggi di programmazione, ma è perché gli dà l'opportunità di esercitarsi effettivamente nella digitazione e forse abituarsi ad alcuni dei caratteri leggermente più esoterici sulla tastiera

Ora, ecco perché non voglio scegliere Alice o Scratch.

Inoltre, non voglio scegliere un linguaggio come C o Java, o Python o Ruby per quella materia. Mio cugino mi ha già insegnato che gli piace giocare ai videogiochi e vuole crearne uno suo e che gli piace usare il computer. Secondo me, anche un linguaggio semplice come Python o Ruby richiede semplicemente troppo tempo per creare cose interessanti. Idealmente, dovrebbe sedersi, passare circa un giorno o due (o forse anche fino a una settimana, ma si spera meno di quello) e avere un gioco bidimensionale funzionante. Non sto dicendo che non puoi farlo in Python o Ruby, ma sto solo dicendo che sarebbe difficile per un programmatore per la prima volta. Inoltre, non voglio impantanarlo con tutte le cose di informatica, poiché ciò può accadere in seguito. Voglio solo aiutarlo a creare la scintilla e poi lasciarlo andare avanti con il resto del fuoco.

Ho esaminato lingue come Lua, e mentre sembra comune nella programmazione dei giochi, non sono sicuro che sia la scelta migliore, ma se voi ragazzi la pensate diversamente, per favore fatemi sapere.

Ho anche guardato una lingua come Blitz e sembra davvero promettente (in più, l'ho provato qualche anno fa ed è stato davvero carino). Il rovescio della medaglia è che devo pagare, qualcosa contro cui sono definitivamente contrario.

Ho visto SmallBasic , che sembra promettente e continuerò a guardarlo. Ma non ho fatto molto (in effetti, sto eseguendo il programma di installazione mentre scrivo questo, quindi riferirò i miei pensieri su di esso a breve).

AGGIORNAMENTO: Ho provato SmallBasic in modo rapido e mi sembra interessante, ma sembra anche abbastanza diverso rispetto ad altre lingue: non è una cosa negativa, ma è semplicemente insolita. Tra le cose che ho visto, Blitz è ancora il mio preferito, ma mi rifiuto di andarci a causa del costo.

Ma fondamentalmente, cosa ne pensate di quello che ho detto finora e delle lingue che ho visto e conoscete altre buone alternative?


AGGIORNAMENTO: ecco cosa ho scelto di fare ...

Mi sono reso conto che mentre mi piacerebbe aiutare mio cugino, non posso stare con lui tutto il tempo e non posso aiutarlo ogni volta che ha bisogno di aiuto. Quindi, volevo scegliere qualcosa che avesse una buona documentazione, una buona comunità e un buon libro che potesse seguire.

Comunque, ho scelto Python e Pygame. Python è una lingua con cui ho abbastanza familiarità, inoltre so che esiste una comunità abbastanza buona (e piuttosto grande) attorno a Python. Inoltre, so che la documentazione di Python è abbastanza completa e facile da navigare. Pygame ha anche un'ottima documentazione e una serie di tutorial. Lo sto anche facendo usare / seguire Invent Your Own Computer Games con Python , che sembra un ottimo libro, gli ho comprato una copia cartacea come regalo di Natale, in più so che il suo monitor non è enorme, e lo farebbe essere scomodo scambiare costantemente tra il testo e l'editor.

Penso che dovrebbe andare bene!

EDIT: Non voglio implicare che la mia scelta sia definitiva o che sia corretta. Penso solo che sia la soluzione migliore per questa situazione. Penso che ogni persona che cerca di insegnare a una persona più giovane dovrebbe sfogliare la selezione e trovare la soluzione migliore per la singola persona, considerando cose come l'età, il livello di abilità e l'interesse.


15
+1 I want a language that can be used to develop really cool stuff that will impress his friends.Questa è ancora la mia motivazione principale per la programmazione, dopo 25 anni ...
yannis,

2
+1 Per sapere dove fermarsi quando si insegna a qualcuno più giovane. Nessuna noiosa informatica, solo i fantastici risultati. "crea la scintilla e poi lascialo andare avanti con il resto del fuoco."
Andy Hunt,

1
@Bob Lavoro come sviluppatore web da oltre un decennio, ma solo recentemente sono stato coinvolto in qualcosa che le persone usano direttamente. Faccio roba da back-end da troppo tempo. Anche se la mia risposta ufficiale è che la mia motivazione è il mio profondo amore per la risoluzione dei problemi, bla bla bla, l'anno scorso è stato il primo nella mia vita professionale che ho avuto la possibilità di sentire da persone a caso che stanno effettivamente usando ciò che sto costruendo e li ha aiutati in qualche modo. La sensazione è fantastica! Spero che tuo cugino trovi la programmazione tanto eccitante quanto noi ...
yannis,

1
@MahmoudHossam Ti farò sicuramente sapere
Bob,

Risposte:


12

Sembra che nessuno abbia eliminato Python + Pygame . A seconda dell'età / maturità dei tuoi cugini, si apre sicuramente la possibilità di molte cose interessanti. Questo è certamente abbastanza semplice per iniziare, ma con la sua enorme libreria standard, non puoi davvero annoiarti con Python.


19

Penso che l'equivalente moderno di BASIC sia Javascript. Dagli una semplice pagina HTML con uno script incorporato che crea una tela e disegna una forma su di essa, indicalo in alcuni tutorial e guarda cosa succede. Rapida inversione di tendenza (salva le modifiche e aggiorna la pagina) e supporto decente per il debug.


un ulteriore vantaggio è che può condividere istantaneamente anche gli amici
bunglestink il

I giochi HTML5 sono un argomento caldo per l'industria dei giochi mobili, a causa della sua (futura?) Portabilità / indipendenza dalla piattaforma. Un altro è WebGL che credo sia meno comune. Nuovi toolkit per loro appaiono quotidianamente.
McTlr

Questa è un'idea interessante e penso che lo sviluppo web sia sicuramente una buona abilità. Ci dovrò pensare, ma sembra interessante.
Bob,

5
Non sono completamente d'accordo. Javascript è un po 'più difficile da imparare rispetto a Basic è / era (non che io conosca Basic, mente), e se vuoi combinarlo con una pagina web, devi imparare anche su HTML e tecnologie web. Gli inizi più semplici (credo) sarebbero nel Javascript lato server, ad esempio combinandosi con NodeJS come ambiente di esecuzione leggero o un altro interprete JS a riga di comando.
Cthulhu,

+1 per JavaScript - sì, la parte HTML (5) è un ulteriore apprendimento da fare, ma ancora una volta, HTML è abbastanza semplice - Ricordo di aver imparato a creare un pulsante HTML e di aver mostrato quando stavo imparando GWBasic :)
yati sagade

12

Non un linguaggio di programmazione esplicito per i giochi, ma effetti grafici molto interessanti possono essere fatti usando un po 'di codice con l' elaborazione . Inoltre, è gratuito e relativamente facile da imparare. IMHO un linguaggio ideale per apprendere le basi della programmazione, soprattutto perché i tutorial insegnano molti dei concetti di base come variabili, array, operazioni matematiche ecc.


Penso che un punto chiave sia la disponibilità di tutorial. Mi sono insegnato a programmare con una copia dei 101 BASIC Computer Games di Dave Ahl , e la chiave (per me) era vedere insieme il codice e l'output di esempio. Ho trovato molto più semplice lavorare all'indietro dall'output per capire come è stato fatto qualcosa piuttosto che sentirmi dire "fai questo e guarda cosa succede".
TMN il

11

Non ci gioco da un anno o due, ma usare C # con XNA potrebbe essere un buon punto di partenza. Da quello che ricordo, iniziare con questo è abbastanza facile. Anche se quel collegamento è probabilmente più per te che per lui.


1
In realtà ho un'esperienza di prima mano sia con C # che con XNA (ho lavorato con C # in un lavoro passato). Penso che sia una grande raccomandazione, ma non sono sicuro che sia un po 'troppo avanzato per lui. Potrebbe essere in grado di farlo, ma la maggior parte dei bambini desidera risultati concreti con il minimo sforzo e "l'apprendimento dall'alto".
Bob,

Dal momento che è una libreria .NET, suppongo che sia disponibile anche per l'uso in VB, il che ridurrebbe di alcuni il "sovraccarico di apprendimento" di C #.
Andy Hunt,

3
@AndyBursh quando sono stato costretto a imparare VB, mi ha fatto venire il mal di testa fino a quando non mi sono fermato. Non l'ho più toccato da allora.
codesparkle del

@codesparkle Sono completamente d'accordo, VB come lingua è fastidiosa come l'inferno. Tuttavia, è abbastanza facile leggere e scrivere cose semplici, quindi spesso è un bel linguaggio introduttivo. Purtroppo, la lingua ha alcune terribili idiosincrasie, come il terribile codice che devi scrivere per trasmettere da A a B!
Andy Hunt,

XNA è davvero un po 'avanzato per cominciare. L'ho fatto, fino a quando ho trovato Unity, che utilizza la stessa lingua ma ha un approccio molto più visivo, con risultati molto più rapidi. @AndyBursh: non è disponibile per VB.NET, solo C # .NET
Simon Verbeke,

11

Prova Greenfoot ,

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

È basato su Java e ci sono tutti questi tutorial per usarlo su Youtube .

greenfoot offre un buon approccio top-down pensato per un principiante.

vedi questa risposta di StackOverflow , la cosa che ho notato è che "I bambini, in effetti, sono gli studenti più veloci e lo fanno per corrispondenza, estrapolazione, interpolazione, ecc."

così dopo aver usato java in greenfoot per un po 'più tardi i concetti saranno più facili da capire solo perché sembra familiare.


Greenfoot sembra un progetto piuttosto curato. Non sono un grande fan di Java come prima lingua, ma Greenfoot in realtà lo rende abbastanza semplice per i giovani programmatori. Ci sto ancora giocando, ma penso che potrebbe essere quello.
Bob,

@bob Tutto ciò che ti fa scrivere codice e risolvere rapidamente problemi interessanti dovrebbe essere una buona scelta.
Siamore,

Sembra un progetto davvero interessante
KallDrexx,

La " risposta stackoverflow " a cui ti riferisci è stata eliminata e il collegamento non funziona più, ti dispiacerebbe aggiornare la risposta?
moscerino

4

Sembra un tipico caso di modding . Molti giochi sono molto flessibili ed estendibili, dal buon vecchio Quake I (con il suo linguaggio QuakeC) a TES IV Oblivion o dozzine di titoli che possono essere estesi con Lua.

Un'altra opzione è Second Life : è un mondo molto flessibile in cui è possibile creare giochi, simulazioni, demo e quant'altro con un linguaggio di scripting piacevole e pulito .


Sono d'accordo per la maggior parte, ma penso che voglia creare i suoi giochi. Penso che questo sia più uno scenario caso per caso, ma mio cugino e i suoi amici non sono in giochi che si prestano molto bene al modding ... Inoltre, penso che metà del divertimento sta costruendo qualcosa (principalmente) da zero. Dire "hey (papà o amico) guarda questo gioco che ho creato tutto da solo" è diverso quindi dire "hey guarda, ho fatto una mod per questo gioco che difficilmente gioco"
Bob,

Quello che sto cercando di dire è che i bambini vogliono essere orgogliosi del loro lavoro, costruire cose da zero e costruire cose facilmente che producono risultati piuttosto interessanti. Penso che il modding del gioco potrebbe essere più orientato agli adolescenti.
Bob,

@Bob, con Second Life puoi creare i tuoi giochi usando tutte le funzionalità già disponibili che desideri. È solo una piattaforma. Ed è gratuito. E alcune delle mod di gioco sono giochi completamente nuovi, con quasi nulla in comune con la loro piattaforma sottostante.
SK-logic,

@Bob, per quanto riguarda la costruzione di qualcosa interamente da zero, una scelta della lingua dovrebbe essere l'ultima cosa da considerare. Una piattaforma e librerie sarebbero più importanti. Suggerirei XNA in questo caso (con una scelta di qualsiasi linguaggio .NET sopra di esso).
SK-logic,

Va bene, l'idea di Second Life suona davvero bella. Lo darò sicuramente un'occhiata. Grazie per il suggerimento! Come ex sviluppatore .NET, l'ho sicuramente considerato, ma non voglio scegliere qualcosa di eccessivamente complesso per un pubblico più giovane. Ma ci penserò sicuramente.
Bob,

4

Sono attualmente un avido utente di Game Maker . - Mentre la versione completa non è gratuita ($ 40), la versione gratuita è sufficiente per assaggiare le basi del design del gioco. Ha abbastanza "contenuti" perché qualcuno nuovo rimanga impegnato per qualche anno. Se dovessi posizionarlo da qualche parte, lo posizionerei da qualche parte tra modding e linguaggi come Python.

Ha diversi metodi di scrittura. Puoi usare le icone "trascina e rilascia" e un "linguaggio di scripting" (GML) molto più avanzato. Non capisco mai perché la gente desideri "scrivere codice" così tanto: vedo il trascinamento come un modo per visualizzare il codice.

Un altro vantaggio del gamemaker - e il motivo per cui dopo aver appreso altre lingue e 10 anni di esperienza che mi attengo al gamemaker - è che aiuta a organizzare un gioco: ha diverse risorse, un sistema di eventi ecc. Ecc.
Non è lo strumento ideale per creare il prossimo mondo di warcraft, tuttavia per impressionare gli altri è più importante creare QUALCOSA.

Non posso davvero raccomandare altre scelte, poiché personalmente sono contento del gamemaker e oggigiorno mi interessano di più all'apprendimento delle lingue di uso generale.


+1 Ho scoperto Game Maker al liceo e mi sono divertito molto. Sebbene non vi sia molta codifica richiesta, puoi facilitarti mentre ti espone alle variabili e puoi impostare le formule per modificare tali variabili quando si verificano determinati eventi. I soli eventi di collisione integrati consentono un sacco di giochi creativi. I giochi di template integrati consentono un utile modding. Ho creato scroller laterali primitivi, top-down, un gioco di tipo block breaker ... molto divertente.
joshuahedlund,

3

La cosa in cui migliaia di persone stanno sviluppando giochi è Flash. Il pacchetto di sviluppo Flash "ufficiale" di Adobe costa denaro, ma ci sono alternative gratuite; FlashDevelop mi ha impiegato meno di un'ora per trovare, scaricare, avviare e avviare un flash "Hello World". La libreria Flixel offre buone funzioni di supporto per i giochi, tra cui fisica, particelle, creazione di livelli facile per i platform, ha molti campioni ed è facile da configurare.


2

FWIW, ho acquistato mio cugino " Land of LISP " per lo stesso scopo. Il libro è illustrato con cartoni animati e parla della creazione di giochi in LISP. Mio cugino voleva solo creare giochi basati sul testo, ma penso che il libro gli darà una buona introduzione alla programmazione.


Ho letto Land of Lisp ed è un bel libro, ma non so se Lisp sia sempre il miglior punto di partenza per i giovani. La sintassi è composta principalmente da parentesi che sembrano semplici, ma penso che si confonda abbastanza rapidamente, specialmente quando sei un bambino.
Bob,

Per i giochi basati su testo, dovresti presentare a tuo cugino Inform o TADS
user16764

@ user16764 Grazie per il suggerimento, penso che sarà un ottimo modo per modellare le sue idee!
Bob,

2

La lingua con cui ho iniziato era Dark Basic Pro . Mi sono allontanato un po 'velocemente perché lo sviluppo del gioco non è la mia tazza di tè, ma era un linguaggio potente. Non ci scherzo da parecchi anni ormai, quindi non sono sicuro di quanto sia bello ora (l'ho usato l'ultima volta che DirectX 9 era nuovo e all'avanguardia). Ma ti consente di iniziare rapidamente a programmare e creare fantasiose grafiche 3D con solo un po 'di codice (e anche, è puro codice).


Dark Basic sembra piuttosto pulito e sembra simile nel suo obiettivo a Blitz, ma devi ancora pagare per questo.
Bob,

2

Una delle parti più difficili dello sviluppo del gioco, sebbene meno diffusa nello sviluppo del gioco 2D è la creazione di grafica. Quindi supponendo che tuo cugino non abbia bisogno di occuparsi di creare assaggi artistici o di essere bravissimo nell'arte 2D, quindi penso che l'obiettivo sia raggiungibile.

Ti suggerirei di usare Python insieme a Pygame per iniziare. So che avevi delle riserve su Python, ma ascoltami. Python è un linguaggio molto semplice. Direi che la mancanza di una digitazione rigorosa lo rende una scelta molto migliore di qualcosa come C # per cominciare.

I linguaggi basati su prototipi sono fantastici e alcune persone li trovano molto facili da imparare, tuttavia non penso che le persone capiscano davvero i concetti di come gli oggetti funzionano nei linguaggi basati su prototipi con la stessa facilità con cui riescono a capire il paradigma classe / oggetto.

Pygame ha anche numerosi esempi che tuo cugino e te potrebbero andare oltre per imparare le basi, ed è per molti versi un framework molto semplice, che non ti nasconde così tanto da farti imparare un sacco di framework per fare cose più complicate cose.

Forse dopo un gioco scritto in pygame, puoi passare alla scrittura di giochi che si integrano anche con un motore fisico 2D come box2d, che ha eccellenti legami in pitone.

Per quanto riguarda l'insegnamento di tuo cugino Python, mi allontanerei dal fargli imparare prima la lingua, forse un corso intensivo nelle idee di classe / oggetto. Quindi una sintassi di base del linguaggio, prima di lanciarlo nel profondo, e di farlo cercare la sintassi e / o le librerie quando ha bisogno di qualcosa.

Infine, un altro aspetto positivo di Python è che puoi passare facilmente ai motori di gioco 3D mantenendo le tue abilità con motori come panda3d o persino unità (Boo è molto simile a Python).


2

Lua e LÖVE . Lua è una delle lingue più semplici disponibili. Il framework LÖVE è ottimizzato per i giochi 2D. Ha anche un backend OpenGL, con le prestazioni e altri vantaggi che ne derivano.


1

Potresti provare Unreal Development Kit ( Funzionalità ). Potrebbe essere un po 'difficile conoscere l'interfaccia. Ma la cosa grandiosa è che ha anche un motore di scripting visivo, quindi non è necessario essere in grado di programmare per fare qualcosa. Può quindi creare qualcosa e programmarne piccole parti da solo. Un aspetto negativo potrebbe essere che utilizza il proprio linguaggio di scripting.

Un altro motore che mi piace molto è Unity3D ( Caratteristiche ). Unity non ha una programmazione visiva, ma usa due linguaggi comuni: C # e JavaScript. Supporta anche un dialetto python chiamato Boo. Questi tre possono interagire. Unity include anche molti script finiti.


Se l'obiettivo è il proprio gioco con grafica 3D, questo è l'approccio IMO migliore. Molti / la maggior parte dei principali toolkit di gioco hanno versioni gratuite (alcuni richiedono di possedere una versione registrata del loro gioco principale). La maggior parte si estende dal modding alla creazione di ambienti di gioco completamente nuovi. Diversi (non tutti): Playground , Havok e Value Source . Ci sono molti altri a cui non riesco a pensare in questo momento.
McTlr

Unity e Unreal sono entrambi fantastici, ma penso che l'età target inizi negli adolescenti, che è un po 'troppo vecchia.
Bob,

@Bob: non credo che tu abbia menzionato un'età, quindi non ero sicuro di cosa proporre :)
Simon Verbeke,


0

So che stai cercando lingue gratuite e ci sono alcuni buoni suggerimenti di altri poster. Dal momento che sei preoccupato di ottenere risultati interessanti, in fretta e dato che Blitz sembra il tipo di cosa che desideri, ad eccezione del costo, vorrei suggerire Phrogram . Questo era KPL (che era gratuito). Non è gratuito, ma è più economico di Blitz e ha molte delle stesse caratteristiche che penso lo rendano molto adatto da usare come lingua di insegnamento, specialmente per gli adolescenti.

Puoi fare cose piuttosto sofisticate con Phrogram e c'è una comunità abbastanza ben consolidata di utenti Phrogram e KPL che hanno pubblicato un sacco di codice da cui imparare.


Phogram ha un aspetto accattivante, e non sono molto contento di pagare, ma preferirei opzioni gratuite. Farò il processo e vedrò come si confronta con DarkBasic e Blitz.
Bob,

0

Molti buoni suggerimenti qui, darò solo un messaggio a RoboCode . Ci sono molti esempi da modificare e puoi essere attivo e funzionante in pochi minuti. Gli darà il sapore della programmazione, ma è improbabile che impari a capire come scrivere un programma da zero. È anche basato su Java, per quello che vale.


0

Non riesco a capire come nessuno parli di Games Factory! Questa è una delle migliori risorse per costruire rapidamente un gioco per computer, senza una conoscenza della programmazione.
http://www.clickteam.com/website/usa/downloads/index/7
È costituito dall'editor della storyboard - con frame. Metti diversi oggetti che possono essere controllati in vari modi dal giocatore (movimento della piattaforma, 8 direzioni, ecc.)
L'aspetto più importante è l'editor di eventi - è una matrice enorme, che usi per definire cosa succede dal pre regole definite (come - oggetto (1) spostato alla fine dello schermo, la posizione dell'oggetto è> 100, ecc ...).



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.