Darmowy język programowania gier? [Zamknięte]


19

Próbuję więc nauczyć mojego dużo młodszego kuzyna trochę programowania. Moja początkowa myśl była jak Scratch lub Alice , ale było kilka wad tego.

  • Wydaje się, że wszyscy są naprawdę zaangażowani w programowanie gier i tworzenie gier wideo (ponieważ wszyscy uwielbiają grać w gry wideo, a jeśli chodzi o gry wideo, granie we własne może być najbardziej satysfakcjonujące) - ale ani Alice, ani Scratch nie wydają się zadowolić gry rozwój

  • Alice i Scratch wydają się zbyt dziecinne, podczas gdy jestem pewien, że mój kuzyn z przyjemnością się w nim zagłębi, myślę, że szybko to znudzi

  • Chcę języka, za pomocą którego można tworzyć naprawdę fajne rzeczy, które zrobią wrażenie na jego przyjaciołach. Pamiętam, jak pisałem BASIC z powrotem w ciągu dnia, zapraszając wszystkich moich przyjaciół i pochwalając się moim dziełem, i po prostu czuję, że Alice i Scratch po prostu nie apelują w ten sam sposób

  • Chcę języka, który wymaga od mojego kuzyna pisania kodu. Nie chodzi tylko o to, że myślę, że pisanie kodu jest dobrym przygotowaniem do innych języków programowania, ale dlatego, że daje mu możliwość ćwiczenia pisania na klawiaturze i być może przyzwyczajenia się do nieco bardziej ezoterycznych znaków na klawiaturze

Właśnie dlatego nie chcę wybierać Alice ani Scratch.

Nie chcę też wybierać języka takiego jak C lub Java, a nawet Python lub Ruby. Mój kuzyn już mi powiedział, że lubi grać w gry wideo i chce tworzyć własne, i że lubi korzystać z komputerów. Moim zdaniem, nawet prosty język, taki jak Python lub Ruby, po prostu zajmuje zbyt dużo czasu na tworzenie fajnych rzeczy. Idealnie byłoby, gdyby usiadł, spędził około jednego lub dwóch dni (a może nawet do tygodnia, ale mam nadzieję, że krócej), i miał działającą, dwuwymiarową grę. Nie mówię, że nie możesz tego zrobić w Pythonie lub Ruby, ale po prostu mówię, że byłoby to trudne dla początkującego programisty. Poza tym nie chcę go nękać wszystkimi naukami komputerowymi, ponieważ może to nastąpić później. Chcę tylko pomóc mu stworzyć iskrę, a następnie pozwolić mu kontynuować resztę ognia.

Patrzyłem na języki takie jak Lua i chociaż wydaje się to powszechne w programowaniu gier, nie jestem pewien, czy to najlepszy wybór - ale jeśli myślicie inaczej, proszę dać mi znać.

Spojrzałem też na taki język jak Blitz i wygląda on naprawdę obiecująco (na dodatek wypróbowałem go kilka lat temu i było naprawdę całkiem fajnie). Minusem jest to, że muszę zapłacić, czemu zdecydowanie jestem przeciw.

Spojrzałem na SmallBasic , co wydaje się obiecujące i będę nadal patrzył. Ale niewiele zrobiłem (w rzeczywistości uruchamiam instalator, pisząc to, więc wkrótce opiszę swoje przemyślenia).

AKTUALIZACJA: Szybko spróbowałem SmallBasic i wydaje się to intrygujące, ale wydaje się też zupełnie inne w porównaniu do niektórych innych języków - to nie jest złe, ale to po prostu niezwykłe. Spośród rzeczy, na które patrzyłem, Blitz nadal jest moim ulubionym, ale odmawiam pójścia tam z powodu kosztów.

Ale w zasadzie, co myślicie o tym, co powiedziałem do tej pory, oraz o językach, na które patrzyłem i czy znasz jakieś inne dobre alternatywy?


AKTUALIZACJA: Oto, co postanowiłem zrobić ...

Zdałem sobie sprawę, że chociaż chciałbym pomóc mojemu kuzynowi, nie mogę być z nim cały czas i nie mogę mu pomóc za każdym razem, gdy potrzebuje pomocy. Chciałem więc wybrać coś, co ma dobrą dokumentację, dobrą społeczność i dobrą książkę, którą może śledzić.

W każdym razie wybrałem Python i Pygame. Python to język, który znam dość dobrze, a ponadto wiem, że wokół Pythona istnieje całkiem dobra (i dość duża) społeczność. Ponadto wiem, że dokumentacja w języku Python jest dość kompletna i łatwa w nawigacji. Pygame ma również doskonałą dokumentację i zestaw samouczków. Zmuszam go również do używania / śledzenia Invent Your Own Games with Python , co wydaje się bardzo dobrą książką, kupiłem mu papierową wersję na prezent świąteczny, a ponadto wiem, że jego monitor nie jest ogromny i niewygodne jest ciągłe przełączanie między tekstem a edytorem.

Myślę, że powinno pójść dobrze!

EDYCJA: Nie chcę sugerować, że mój wybór jest ostateczny lub że jest poprawny. Po prostu uważam, że najlepiej pasuje do tej sytuacji. Myślę, że każda osoba chcąca nauczyć kogoś młodszego powinna przejrzeć wybór i znaleźć najlepsze rozwiązanie dla danej osoby, biorąc pod uwagę takie rzeczy, jak wiek, poziom umiejętności i zainteresowania.


15
+1 I want a language that can be used to develop really cool stuff that will impress his friends.To wciąż moja podstawowa motywacja do programowania, po 25 latach ...
yannis,

2
+1 Za wiedzę, gdzie przestać, ucząc kogoś młodszego. Bez nudnej informatyki, tylko fajne wyniki. „stwórz iskrę, a następnie pozwól mu kontynuować resztę ognia”.
Andy Hunt

1
@ Bob Pracuję jako programista od ponad dekady, ale dopiero niedawno jestem zaangażowany w coś, z czego ludzie bezpośrednio korzystają. Zbyt długo robiłem głębokie zaplecze. Chociaż moją oficjalną odpowiedzią jest to, że moją motywacją jest moja głęboka miłość do rozwiązywania problemów, bla bla bla, miniony rok był pierwszym w moim życiu zawodowym, w którym miałem okazję usłyszeć od przypadkowych ludzi, że faktycznie wykorzystują to, co buduję i pomogło im to w niewielki sposób. To uczucie jest niesamowite! Mam nadzieję, że twój kuzyn uważa programowanie za równie ekscytujące, co my ...
yannis

1
@MahmoudHossam Na pewno dam ci znać
Bob

Odpowiedzi:


12

Wygląda na to, że nikt nie wyrzucił Pythona + Pygame . W zależności od wieku / dojrzałości twoich kuzynów z pewnością otwiera to możliwość wielu fajnych rzeczy. Z pewnością jest to wystarczająca podstawa do rozpoczęcia pracy, ale dzięki ogromnej standardowej bibliotece nie można się nudzić w Pythonie.


19

Myślę, że współczesnym odpowiednikiem BASIC jest JavaScript. Daj mu prostą stronę HTML z osadzonym skryptem, który tworzy płótno i rysuje na nim kształt, skieruj go na niektóre samouczki i zobacz, co się stanie. Szybki zwrot (zapisz zmiany i odśwież stronę) i przyzwoita obsługa debugowania.


dodatkowym plusem jest to, że może on natychmiast udostępnić również w / znajomym
bunglestink

Gry HTML5 są gorącym tematem w branży gier mobilnych, ze względu na (przyszłą?) Przenośność / niezależność od platformy. Innym jest WebGL, który moim zdaniem jest mniej powszechny. Nowe zestawy narzędzi dla nich pojawiają się codziennie.
mctylr

To ciekawy pomysł i myślę, że tworzenie stron internetowych to zdecydowanie dobra umiejętność. Muszę się nad tym zastanowić, ale wydaje się interesujące.
Bob

5
Nie do końca się zgadzam. JavaScript jest o wiele trudniejszy do nauczenia się niż Basic jest / był (nie, że znam Basic, pamiętaj), a jeśli chcesz połączyć go ze stroną internetową, musisz także dowiedzieć się o HTML i technologiach internetowych. Prostsze początki (tak myślę) byłyby w języku JavaScript po stronie serwera, na przykład w połączeniu z NodeJS jako lekkim środowiskiem wykonawczym lub innym interpretatorem JS wiersza poleceń.
Cthulhu

+1 dla JavaScript - tak, część HTML (5) jest dodatkową nauką do zrobienia, ale znowu HTML jest dość prosty - pamiętam naukę tworzenia przycisku HTML i pochwalenia się, gdy uczyłem się GWBasic :)
yati sagade

12

Nie jest to język programowania wyraźnie przeznaczony do grania, ale bardzo fajne efekty graficzne można uzyskać przy użyciu raczej niewielkiego kodu z przetwarzaniem . Ponadto jest bezpłatny i stosunkowo łatwy do nauczenia. IMHO to idealny język do nauki podstaw programowania, zwłaszcza, że ​​samouczki uczą wielu podstawowych pojęć, takich jak zmienne, tablice, operacje matematyczne itp.


Myślę, że kluczową kwestią jest dostępność samouczków. Nauczyłem się programowania z kopią 101 gier komputerowych BASIC Dave'a Ahla , a kluczem (dla mnie) było zobaczenie kodu i przykładowego wyjścia razem. Odkryłem, że dużo łatwiej jest cofać się od wyjścia, aby dowiedzieć się, jak coś zostało zrobione, niż mówić „rób to i patrz, co się dzieje”.
TMN

11

Nie grałem z tym od roku lub dwóch, ale używanie C # z XNA może być dobrym miejscem do rozpoczęcia. Z tego, co pamiętam, rozpoczęcie od niego jest dość łatwe. Chociaż ten link jest prawdopodobnie bardziej dla ciebie niż dla niego.


1
Mam trochę doświadczenia z pierwszej ręki zarówno w C #, jak i XNA (pracowałem z C # w poprzedniej pracy). Myślę, że to świetna rekomendacja, ale nie jestem pewien, czy jest dla niego trochę zbyt zaawansowana. Być może będzie w stanie to zrobić, ale większość dzieci chce prawdziwych rezultatów przy minimalnym wysiłku i „nauce”.
Bob

Ponieważ jest to biblioteka .NET, przypuszczam, że jest ona również dostępna do użycia w VB, co przez niektórych zmniejszyłoby „koszty uczenia się” C #.
Andy Hunt

3
@AndyBursh, kiedy zostałem zmuszony do nauki VB, sprawiało mi ból głowy, dopóki nie przestałem. Od tamtej pory nigdy go nie dotykałem.
codesparkle

@codesparkle Całkowicie się zgadzam, VB jako język jest denerwujący jak diabli. Łatwo jest jednak czytać i pisać proste rzeczy, więc często jest to miły język wprowadzający. Niestety, język ma kilka okropnych cech, takich jak okropny kod, który musisz napisać, aby przesyłać z A do B!
Andy Hunt

XNA jest na początek trochę zaawansowany. Tak było, dopóki nie znalazłem Unity, która używa tego samego języka, ale ma znacznie bardziej wizualne podejście, z dużo szybszymi wynikami. @AndyBursh: Nie jest dostępny dla VB.NET, tylko C # .NET
Simon Verbeke

11

Wypróbuj Greenfoot ,

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

Jest oparty na Javie i są tam wszystkie te totalne pomiary do używania go na Youtube .

Greenfoot zapewnia dobre podejście odgórne przeznaczone dla początkujących.

widzę odpowiedź na to pytanie: „Dzieci są w rzeczywistości najszybszymi uczniami i robią to poprzez dopasowanie wzorca, ekstrapolację, interpolację itp.”

więc po pewnym czasie korzystania z Java w Greenfoot późniejsze koncepcje będą łatwiejsze do zrozumienia tylko dlatego, że wydaje się to znajome.


Greenfoot wygląda jak całkiem fajny projekt. Nie jestem wielkim fanem Javy jako pierwszego języka, ale Greenfoot sprawia, że ​​jest to wystarczająco proste dla młodych programistów. Nadal się z tym bawię, ale myślę, że to może być ten.
Bob

@bob Wszystko, co pozwala pisać kod i szybko rozwiązywać ciekawe problemy, powinno być dobrym wyborem.
Siamore,

To wygląda na naprawdę fajny projekt
KallDrexx,

odpowiedź przepełnienia stosu ”, o której mowa, została usunięta, a link już nie działa, czy mógłbyś zaktualizować odpowiedź?
komara

4

Brzmi jak typowy przypadek modowania . Wiele gier jest bardzo elastycznych i rozszerzalnych, od starego dobrego Quake I (z językiem QuakeC) po TES IV Oblivion lub dziesiątki tytułów, które można rozszerzyć za pomocą Lua.

Inną opcją jest Second Life - to bardzo elastyczny świat, w którym można budować gry, symulacje, dema, cokolwiek innego z ładnym i czystym językiem skryptowym .


Zgadzam się w większości, ale myślę, że chce tworzyć własne gry. Myślę, że jest to raczej przypadek indywidualny, ale mój kuzyn i jego przyjaciele nie interesują się grami, które bardzo dobrze nadają się do modowania ... Ponadto myślę, że połowa zabawy to budowanie (głównie) od zera. Mówienie „hej (tata lub przyjaciel) patrz na tę grę, którą stworzyłem sam” jest inne niż mówienie „hej, zrobiłem modyfikację do tej gry, w którą prawie nie gram”
Bob

Próbuję powiedzieć, że dzieci chcą być dumne ze swojej pracy, budować rzeczy od zera i budować rzeczy, które dają całkiem fajne wyniki. Myślę, że modowanie gier może być lepiej zorientowane dla nastolatków.
Bob

@Bob, dzięki Second Life możesz tworzyć własne gry, wykorzystując tyle dostępnych funkcji, ile chcesz. To tylko platforma. I to jest darmowe. Niektóre mody są zupełnie nowe, prawie nie mają nic wspólnego z ich platformą.
SK-logic,

@ Bob, jeśli chodzi o budowanie czegoś całkowicie od zera, wybór języka powinien być ostatnią rzeczą do rozważenia. Ważniejsza byłaby platforma i biblioteki. Sugerowałbym w tym przypadku XNA (z wyborem jednego z języków .NET).
SK-logic,

Dobra, pomysł Second Life faktycznie brzmi całkiem fajnie. Na pewno się temu przyjrzę. Dzieki za sugestie! Jako były programista .NET zdecydowanie to rozważałem, ale nie chcę wybierać zbyt skomplikowanych rozwiązań dla młodszych odbiorców. Ale zdecydowanie przyjrzę się temu.
Bob

4

Obecnie jestem zapalonym użytkownikiem Game Maker . - Podczas gdy pełna wersja nie jest darmowa (40 USD), darmowa wersja wystarcza, aby posmakować podstaw projektowania gier. Ma dość „treści”, aby ktoś nowy mógł być zajęty przez kilka lat. Gdybym musiał gdzieś go umieścić, umieściłbym go gdzieś pomiędzy moddingiem a językami, takimi jak python.

Ma kilka metod pisania. Możesz użyć „przeciągnij i upuść ikony” oraz znacznie bardziej zaawansowanego „języka skryptowego” (GML). Nigdy nie rozumiem, dlaczego ludzie tak bardzo chcą „pisać kod” - widzę przeciąganie i upuszczanie jako sposób wizualizacji kodu.

Kolejną zaletą gamemakera - i dlatego, że po nauce innych języków i 10-letnim doświadczeniu pozostaję przy nim - jest to, że pomaga zorganizować grę: ma kilka zasobów, system wydarzeń itp.
Nie jest to idealne narzędzie do tworzenia następny świat Warcraft, jednak aby zrobić wrażenie na innych, ważniejsze jest, aby stworzyć COŚ.

Naprawdę nie mogę polecić innych opcji - ponieważ osobiście jestem zadowolony z gry i obecnie bardziej interesuję się nauką języków ogólnego przeznaczenia.


+1 W Game School odkryłem Game Maker i świetnie się z tym bawiłem. Chociaż nie ma wiele wymaganego kodowania, możesz łatwo się do niego dostać, ponieważ naraża cię na zmienne i możesz ustawić formuły, aby zmieniać te zmienne, gdy zdarzają się pewne zdarzenia. Same wbudowane zdarzenia kolizji pozwalają na mnóstwo kreatywnego tworzenia gier. Wbudowane gry szablonowe pozwalają na pomocne modyfikowanie. Stworzyłem prymitywne side-scrollery, odgórki, grę typu block breaker ... dużo zabawy.
joshuahedlund

3

Rzeczą, że tysiące ludzi tworzeniem gier w to Flash. „Oficjalny” pakiet programistyczny Flash firmy Adobe kosztuje, ale istnieją darmowe alternatywy; FlashDevelop zajęło mi mniej niż godzinę, aby znaleźć, pobrać, uruchomić i uruchomić flash „Hello World”. Flixel biblioteka zapewnia dobre wsparcie dla funkcji gier, w tym fizyki, cząstek, tworzenie poziomu łatwo platformówki, ma wiele próbek i jest łatwy do skonfigurowania.


2

FWIW, kupiłem kuzyna „ Land of LISP ” w tym samym celu. Książka jest ilustrowana kreskówkami i dotyczy tworzenia gier w LISP. Mój kuzyn chciał tylko tworzyć gry tekstowe, ale myślę, że książka da mu dobre wprowadzenie do programowania.


Przeczytałem Land of Lisp i jest to fajna książka, ale nie wiem, czy Lisp jest zawsze najlepszym miejscem dla młodych ludzi. Składnia składa się głównie z nawiasów, które wydawałyby się proste, ale myślę, że dość szybko się mylą, szczególnie gdy jesteś dzieckiem.
Bob

W przypadku gier tekstowych powinieneś przedstawić swojego kuzyna Inform lub TADS
użytkownik16764

@ user16764 Dzięki za sugestię, myślę, że będzie to świetny sposób, aby mógł modelować swoje pomysły!
Bob

2

Zacząłem od Dark Basic Pro . Odszedłem od tego dość szybko, ponieważ tworzenie gier nie jest moją filiżanką herbaty, ale to był potężny język. Nie pomieszałem go od kilku lat, więc nie jestem pewien, jak dobrze jest teraz (ostatnio go użyłem, gdy DirectX 9 był nowy i nowatorski). Ale pozwala szybko rozpocząć kodowanie i tworzenie fantazyjnej grafiki 3D za pomocą odrobiny kodu (a także, to czysty kod).


Dark Basic wydaje się dość schludny i wydaje się podobny do Blitza, ale nadal musisz za to zapłacić.
Bob

2

Jedną z najtrudniejszych części związanych z tworzeniem gier, choć mniej rozpowszechnioną w tworzeniu gier 2D, jest tworzenie grafiki. Więc zakładając, że twój kuzyn nie musi zajmować się tworzeniem assestów sztuki, lub zdarza się, że jest bardzo dobry w sztuce 2D, myślę, że cel jest osiągalny.

Sugeruję użycie Pythona wraz z pygame, aby zacząć. Wiem, że miałeś zastrzeżenia do Pythona, ale wysłuchaj mnie. Python jest bardzo prostym językiem. Twierdziłbym, że brak ścisłego pisania sprawia, że ​​jest to znacznie lepszy wybór niż coś takiego jak C # na początek.

Języki oparte na prototypach są fajne, a niektórzy uważają je za bardzo łatwe do podniesienia, jednak nie sądzę, że ludzie naprawdę rozumieją koncepcje działania obiektów w językach opartych na prototypach tak łatwo, jak to możliwe, aby wprowadzić paradygmat klasy / obiektu.

Pygame ma również liczne przykłady, że twój kuzyn i ty moglibyście przejść, aby nauczyć się podstaw, i pod wieloma względami jest to bardzo prosty framework, nie ukrywający się przed tobą, tak że musisz nauczyć się dużo frameworka, aby zrobić bardziej skomplikowane rzeczy

Być może po grze napisanej w pygamerze możesz przejść do pisania gier, które również integrują się z silnikiem fizyki 2d, takim jak box2d, który ma doskonałe wiązania python.

Jeśli chodzi o nauczanie twojego kuzyna-pytona, oderwałbym się od tego, by najpierw uczył się języka, być może awaryjnego kursu pomysłów na klasę / obiekt. Następnie podstawowa składnia języka, zanim rzuci go na głęboki koniec i sprawi, że będzie on sprawdzał składnię i / lub biblioteki, kiedy czegoś potrzebuje.

Na koniec kolejną dobrą rzeczą w Pythonie jest to, że możesz łatwo przejść do silników gier 3D, zachowując swoje umiejętności w silnikach takich jak panda3d, a nawet w jedności (Boo jest bardzo podobny do Pythona).


2

Lua i LÖVE . Lua jest jednym z najprostszych dostępnych języków. Framework LÖVE jest zoptymalizowany do gier 2D. Ma również backend OpenGL, z wydajnością i innymi korzyściami, które to przynosi.


1

Możesz wypróbować zestaw Unreal Development Kit ( funkcje ). Poznanie interfejsu może być nieco trudne. Ale wielką zaletą jest to, że ma również wizualny silnik skryptowy, więc nie musisz być w stanie programować, aby coś zrobić. Następnie może zrobić coś i sam zaprogramować małe części. Minusem może być to, że używa własnego języka skryptowego.

Innym silnikiem, który naprawdę mi się podoba, jest Unity3D ( funkcje ). Unity nie ma programowania wizualnego, ale używa dwóch popularnych języków: C # i JavaScript. Obsługuje również dialekt python o nazwie Boo. Te trzy mogą współpracować. Unity zawiera również wiele gotowych skryptów.


Jeśli celem jest ich własna gra z grafiką 3D, jest to najlepsze podejście IMO. Wiele / większość głównych zestawów narzędzi do gier ma darmowe wersje (niektóre wymagają posiadania zarejestrowanej wersji podstawowej gry). Większość obejmuje modowanie i tworzenie całkowicie nowych środowisk gier. Kilka (nie wszystkie): plac zabaw , Havok i źródło wartości . Jest o wiele więcej, o których nie mogę teraz myśleć.
mctylr

Unity i Unreal są naprawdę fajne, ale myślę, że wiek docelowy zaczyna się w wieku nastolatka, który jest trochę za stary.
Bob

@ Bob: Nie wydaje mi się, żebyś wspominał o jakimkolwiek wieku, więc nie byłem pewien, co zaproponować :)
Simon Verbeke


0

Wiem, że szukasz darmowych języków i istnieją inne dobre sugestie innych plakatów. Ponieważ obawiasz się o uzyskiwanie interesujących wyników, szybko, a ponieważ Blitz wydaje się być czymś, czego chcesz, oprócz kosztów, chciałbym zasugerować Phrogram . To był kiedyś KPL (który był darmowy). Nie jest darmowy, ale jest tańszy niż Blitz i ma wiele tych samych funkcji, które moim zdaniem sprawiają, że bardzo nadaje się jako język nauczania, szczególnie dla nastolatków.

Możesz robić całkiem wyrafinowane rzeczy za pomocą Phrogram, a istnieje całkiem dobrze ugruntowana społeczność użytkowników Phrogram i KPL, którzy opublikowali wiele kodu do nauki.


Fogram wygląda fajnie i nie jestem naprawdę nastawiony na płacenie, ale wolałbym darmowe opcje. Zrobię próbę i zobaczę, jak to się ma do DarkBasic i Blitz.
Bob

0

Wiele dobrych sugestii tutaj, po prostu wykrzyczę RoboCode . Istnieje wiele przykładów do ulepszenia, a możesz zacząć działać w ciągu kilku minut. To da mu smak programowania, ale raczej nie nauczy się, jak pisać program od zera. Jest także oparty na Javie, dlatego warto.


0

Nie rozumiem, jak nikt nie mówi o Games Factory! Jest to jeden z najlepszych zasobów do szybkiego zbudowania gry komputerowej, bez znajomości programowania.
http://www.clickteam.com/website/usa/downloads/index/7
Składa się z edytora scenariuszy - z ramkami. Umieszczasz różne obiekty, którymi gracz może sterować na różne sposoby (ruch platformy, kierunek 8 itp.)
. Najważniejszym aspektem jest edytor zdarzeń - jest to ogromna matryca, której używasz do definiowania tego, co dzieje się z zdefiniowane reguły (Like - obiekt (1) przeniesiony na koniec ekranu, lokalizacja obiektu to> 100 itd.).



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.