Apa platform awal yang baik untuk programmer game remaja? [Tutup]

32

Anak saya (15) telah memutuskan bahwa ia ingin mengejar karir sebagai programmer game. Saya sudah mengatakan bahwa dia harus memulai sekarang dengan permainan sederhana. Dia belum memiliki pengalaman pemrograman, tetapi saya seorang programmer (aplikasi bisnis, bukan game) sehingga saya bisa mengajarinya pemrograman, tetapi apa yang akan menjadi platform yang baik baginya untuk memulai? Awalnya saya mencari sesuatu yang dapat memberikan hasil cepat, untuk menjaga antusiasmenya.

Apa yang kamu sarankan?

gkrogers
sumber
13
Tutup? Kamu pasti bercanda! Saya mengajukan pertanyaan ini setahun sebelumnya, memiliki setidaknya 19 upvotes, jawaban tervvotasinya memiliki setidaknya 86 upvotes, 5 orang telah menandainya sebagai favorit. Dan jawabannya memang melibatkan fakta, referensi, atau keahlian khusus. Akhirnya, ini sangat berguna bagi saya, dan, saya sarankan, orang lain juga. Bagaimana cara mengajukan banding atas keputusan ini?
gkrogers
1
Anda dapat membuat posting tentang itu di meta jika Anda benar-benar mau. meta.gamedev.stackexchange.com
Tetrad

Jawaban:

30

XNA adalah solusi yang bagus untuk programmer yang cukup percaya diri. Ini akan menjadi tujuan yang baik untuk dibidik di masa depan.

The Unreal Development Kit adalah cara untuk mendapatkan hasil yang jauh lebih cepat dan mudah, dan mungkin menjadi tempat yang baik untuk memulai. Komentar menunjukkan bahwa UDK sebenarnya merupakan alternatif yang sangat buruk , jadi saya tidak bisa merekomendasikannya.

Unity adalah alternatif, itu akan berjalan pada ponsel yang merupakan sesuatu yang tidak dapat dilakukan UDK (sejauh yang saya tahu). Jadi jika dia suka pemrograman game untuk ponsel, mungkin persatuan akan lebih baik?

Martin
sumber
4
Saya setuju dengan ini. Persatuan adalah alternatif untuk UDK, meskipun saya pikir agak sulit untuk mencari tahu. Lihat apakah Anda dapat membuatnya mengacaukan UnrealScript (bahasa skrip Unreal Development Kit). XNA jelas merupakan bahasa pemrograman game dari awal yang benar yang harus ia gunakan, meskipun; itu yang paling mudah (relatif berbicara; bukan untuk pemula absolut) dan saya suka untuk prototyping karena Anda dapat dengan cepat mulai menggambar sesuatu di layar.
Ricket
2
+1 untuk saran XNA. Jika dia berusaha untuk mempelajarinya dengan baik dan memiliki ide-ide bagus, dia dapat dengan mudah menghasilkan uang dengan menjual game untuk Zune / WP7 / XBOX 360.
2
Unity bekerja di iPhone dan di browser, jadi ini adalah cara yang baik untuk mendistribusikan game untuk diuji orang, dan terbiasa dinyalakan sejak dini
Chris S
4
Hindari UDK. Ini bisa sangat kuat, tetapi juga sangat menyakitkan. Penuh dengan "gotch" dan batasan tidak berdokumen.
Peter Ølsted
4
Saya 15 juga, belajar pascal pertama di 10, lalu C, lalu C ++. Mencoba memprogram beberapa game dalam C ++ dan allegro pada 12+ -, tidak terlalu sukses, saya bisa melakukan banyak hal, tetapi saya tidak bisa memikirkan bagaimana membangun keseluruhan game. Itu membuat saya terjaga. Dengan XNA hal-hal menjadi jauh lebih mudah, dan juga, penanganan kesalahan yang mudah dari pengecualian C # yang ditampilkan pada waktu debug sangat membantu untuk membantu Anda tahu di mana Anda melakukan sesuatu yang salah. tentu saja, bahasa lain juga memilikinya, tetapi saya rasa Visual C # memiliki alat debug terbaik.
Gustavo Maciel
20

Saya juga 15, jadi saya kira itu bisa membantu? : P

Saya baru-baru ini mulai belajar Python (telah melakukan C ++ selama satu tahun atau lebih), dan saya merasa jauh lebih mudah untuk belajar daripada C ++. Ada banyak perangkap yang lebih sedikit, dan Anda memerlukan sedikit kode untuk mendapatkan sesuatu di layar - apa yang saya temukan membuat Anda ingin melanjutkan.

Dan ada pembungkus seperti Pygame dan Pyglet over SDL / OpenGL untuk sisi grafis.

Sebelum dia mulai membuat game sederhana, saya akan menyarankan belajar bahasa setidaknya untuk beberapa bulan. (Tentu saja, game berbasis teks seperti menebak angka dan algojo adalah latihan yang baik selama ini)

Bebek Komunis
sumber
9
Python dan Pygame menghirup udara segar bagi saya setelah menulis game dalam bahasa C selama bertahun-tahun. Saya pikir saya bisa menyelesaikan hal yang sama sekitar 10% dari waktu di Python karena aspek tingkat yang lebih tinggi untuk semuanya.
dash-tom-bang
Saya tahu, saya merasakan hal yang sama (dan saya sudah melakukan C ++ selama setahun).
Bebek Komunis
+1. Saya harus mengatakan, meskipun hanya sedikit terbiasa dengan Python, ini adalah rekomendasi pertama saya untuk programmer pemula. Sekarang kita hanya perlu robot python! Juga saran yang bagus untuk mis. Algojo. =)
leander
Bung Anda harus belajar bahasa .net (saya suka C #, F # tidak begitu banyak, vb.net tidak apa-apa. salah (hal yang sangat baik. C ++ harus melakukan lebih dari itu). Dan Anda dapat belajar bagaimana menggunakan tumpukan panggilan, variabel menonton, breakpoint (saya menganggap breakpoint bekerja dalam IDE python?) dan Anda akan dapat men-debug dengan cepat Yang sangat bagus ketika Anda menulis kode pemula yang tidak stabil
13

Sedikit jawaban yang tidak lazim di sini:

Editor Galaxy Starcraft II.

Anda dapat membuat hampir semua game dalam Starcraft 2.

Ini juga mengajarkan sebagian besar konstruksi pemrograman seperti loop dan pernyataan if dalam cara GUI-sentris.

Setelah dia yakin dengan dasar-dasarnya, Anda dapat memiliki dia skrip.

Jika dia pandai, dan menemukan ini menarik, dia akan menyukai pemrograman game yang tepat.

Nailer
sumber
3
Saya akan menyarankan Warcraft III. Memulai dengan bahasa scripting sederhana adalah cara yang bagus untuk memulai. Baik Warcraft III dan Starcraft II memiliki GUI yang dapat Anda gunakan untuk merasa nyaman, dan fungsi untuk melihat kode sebagai skrip mentah, untuk melihat cara kerja bagian dalam.
William Mariager
2
Jalur yang benar . Memulai dengan editor tingkat APA SAJA adalah cara terbaik untuk melangkah. Dia dapat melewati semua perancah dan kesulitan dan langsung ke bagian yang menarik dari menyusun skenario dan merancang level.
bobobobo
Sejauh ini salah satu jawaban terbaik yang pernah saya lihat untuk jenis pertanyaan ini, saya mulai membuat game pertama ketika saya masih sangat kecil dengan MS powerpoint melalui hyperlink dan memainkan game yang disebut "the robot club"; yang dalam gameplay-nya mengajarkan Anda banyak dasar pemrograman GiantBomb.com/the-robot-club/3030-29776
Jim Jones
10

Saya kira-kira akan membagi alat pengembangan game menjadi tiga kategori besar:

  1. Mudah dipelajari dan digunakan, tetapi terbatas. Game Maker, Game Salad, RPG Maker, Adventure Game Studio semuanya termasuk dalam kategori ini.
  2. Kuat, tetapi dengan kurva belajar yang curam. C ++ dan bahasa pemrograman "hardcore" lainnya pas di sini.
  3. Bahasa perantara, umumnya bahasa scripting seperti Lua, Python, dan ActionScript, yang memisahkan perbedaan dengan mengharuskan Anda untuk benar-benar menulis beberapa kode tetapi mengurus detail yang lebih tidak jelas seperti manajemen memori untuk Anda.

Untuk orang yang tidak memiliki pengalaman pemrograman, saya biasanya menyarankan mereka mulai dalam kategori pertama, hanya untuk memulai melakukan SESUATU. Ketika mereka merasa nyaman dengan alat penulisan yang diberikan tetapi benar-benar merasa bahwa batasannya melebihi manfaatnya, saatnya untuk mempelajari sesuatu dalam kategori berikutnya.

Ian Schreiber
sumber
9

Saya tahu ini akan sedikit berkencan dengan saya, tetapi ketika tumbuh dewasa saya sangat menikmati P-Robot . Ada tujuan yang sangat sederhana (mengalahkan robot lain), API sederhana, dan waktu singkat antara perubahan kode dan melihat hasilnya. Ini segues ke AI, pola desain, dan bahkan struktur kode skala yang lebih besar (beberapa robot ini bisa menjadi sangat besar - dan bagaimana dengan berbagi kode antar robot?). Jika Anda dapat menemukan sesuatu yang serupa tetapi lebih baru itu akan menjadi cara yang baik untuk mendapatkan bagian "memulai pemrograman". Saran:

Setelah selesai, pertimbangkan untuk memainkan penembak gulir 2D yang sangat sederhana, platformer, atau permainan "gaya arcade" serupa - Anda dapat menggunakan SDL atau XNA atau apa pun yang paling akrab. Bahkan mendapatkan klon pong dan menjalankannya tidak sepenuhnya sepele. Ini memberi Anda gema kecil seperti apa rasanya membangun sesuatu "tanah".

Setelah ini, jelajahi: mod ke game 3d yang ada (objek baru, atau bot, atau sesuatu) untuk memberikan sedikit wawasan tentang mesin yang lebih besar.

Kuncinya, dari apa yang saya lihat, tampaknya:

  • iterasi cepat: kemampuan untuk melihat hasil dengan cepat
  • prototipe: banyak eksperimen kecil untuk mendapatkan luasnya pengalaman dan kepercayaan diri (oke, bagaimana kita melakukan permainan marmer? bagaimana dengan penjajah ruang? dll)
  • eksplorasi: belajar untuk mencintai melihat bagaimana game orang lain dibangun, mengubah mereka, dll
Leander
sumber
2
+1 untuk mindstorms, tetapi saya akan menggunakan ROBOCODE ( robocode.sourceforge.net ) alih-alih P-Robots.
Callum Rogers
@Callum: brilian, akan memperbarui jawabannya =)
leander
Saya akan menggunakan LegoMindstorms dengan NXC
Joe the Person
6

Saran saya adalah membuat game berbasis web. Mengapa? Yah, pertama-tama, JavaScript adalah bahasa yang indah yang akan mengajarinya semua konsep dasar pemrograman dan Anda benar-benar dapat membuat gim hebat, kompeten, dan lintas platform. Ini juga akan membuatnya memenuhi syarat untuk banyak hal selain dari hanya membuat game ... Jika Anda, untuk beberapa alasan, tidak ingin putra Anda masuk ke pengembangan web, maka saya sarankan menggunakan Python, dengan modul yang disebut PyGame. Saya juga punya pengalaman dengan itu, dan saya luar biasa. Yang tidak saya sarankan adalah memulai dengan C / C ++, itulah yang saya lakukan dan itu mengerikan dan mungkin membuatnya tidak termotivasi untuk pemrograman sama sekali.

Pada catatan lain, Anda mungkin ayah yang luar biasa, selamat!

jcora
sumber
1
Saran yang bagus Yang mengatakan, saya mulai dengan C (bukan bahwa ada alternatif nyata saat itu) dan itu benar-benar tidak begitu menyakitkan; tentu saja, itu bukan alasan untuk menggunakannya sekarang karena ada bahasa tingkat yang lebih tinggi.
o0 '.
1
Terima kasih! Juga, saya tidak memulai dengan permainan, dan maksud saya adalah bahwa dia akan, setelah belajar bahasa tingkat yang lebih tinggi, memiliki pemahaman yang lebih baik tentang konsep pemrograman umum dan tidak akan kehilangan motivasinya. Dan tentu saja - saya agak menjengkelkan di sana;)
jcora
1
Pada usia itu, bisa berbagi kreasi saya dengan mudah dengan teman adalah motivator. Game web lebih mudah dibagikan. Anda memposting URL Anda ke Facebook dan meminta teman Anda untuk mencobanya. Actionscript / Flash atau Javascript / HTML5 mungkin merupakan taruhan terbaik Anda karena dapat dibagikan dengan mudah, dengan Java atau Unity dekat.
amitp
5

Mindstorms Roboter sangat keren. Kami mendapat beberapa NXT di sekolah, dan minggu lalu kami mulai dengan pemrograman hal-hal seperti mengikuti garis, dan sebagainya. Anda bisa mendapatkan hasil dengan mudah.

Saya juga menemukan www.3dgamestudio.de beberapa waktu lalu. Saya tidak terlibat lebih dalam, tetapi itu benar-benar menarik. Anda dapat memprogram dengan lite-C yaitu:

Lite-C adalah bahasa pemrograman untuk aplikasi multimedia dan permainan komputer, menggunakan bagian sintaks dari bahasa pemrograman C dengan beberapa elemen bahasa pemrograman C ++

Di http://tutorial.3dgamestudio.net/ Anda masuk ke dalamnya. Dan ada juga Editor level, model dan terrain.

ps: Saya berusia 16 tahun dan mulai dengan seorang teman yang memprogram situs web dan menyesuaikan server game yang diprogram. Jadi ini juga bisa menarik baginya.

Melzon
sumber
+1 Dokumentasi yang sangat mudah bagaimana, tampaknya memang sangat mudah untuk ditangani.
Prix
4

Saya tidak bisa menyarankan ini cukup, tetapi membangun level sendiri untuk permainan pilihan favoritnya .

Untuk seseorang dari usia / tingkat keterampilan, mereka harus mulai dengan membangun level di mesin permainan favorit mereka .

Banyak game hebat hadir dengan editor level yang memungkinkan banyak derajat kebebasan.

RPG : Seri toolset NWN 2 electron Obsidian , gulungan Elder

RTS : Warcraft III 's tingkat editor adalah RTS Editor fantastis dan bahkan spin off itu sendiri permainan ( liga legenda dan pahlawan Newerth ).

FPS's : Hammer for half-life 2. Counterstrike awalnya adalah mod paruh-hidup.

Mulai di sini . Tingkat bangunan untuk gim favorit Anda mungkin adalah tempat terbaik untuk memulai.

bobobobo
sumber
3

Meskipun semua informasi di sini sangat membantu, saya ingin menyebutkan bahwa Tantangan STEM (kompetisi permainan nasional yang dipromosikan oleh Gedung Putih dan ESA) memiliki beberapa saran tentang platform http://www.stemchallenge.org/about/Default.aspx

Mekanik Gamestar, Gamemaker, Kodu, Scratch, PBS KIDS Siap Mempelajari Streaming

Saya merasa bahwa ada sumber daya komunitas tentang platform ini secara khusus terkait dengan STEM.

Lihat juga tutorial yang luar biasa ini tentang python dan pygame (yang juga merupakan buku online) http://inventwithpython.com/chapters/ di sini adalah PDF dari sekuel buku ini khusus tentang pygame http://inventwithpython.com/blog/making -games-with-python-pygame /

Berikut artikel NYT lainnya http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1 & scp = 1 & adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw

Pembaruan: inilah diskusi slashdot http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games

program idiot
sumber
2

Game Maker adalah pilihan yang sangat baik untuk orang-orang yang tidak memiliki pengalaman pemrograman. Ini memiliki versi gratis dan versi berbayar yang relatif murah. Hal ini memungkinkan Anda untuk membuat game dengan antarmuka drag-and-drop dengan cepat, tetapi termasuk dukungan untuk skrip yang lebih maju.

Gregory Avery-Weir
sumber
5
Saya tidak akan menurunkan ini, tetapi GameMaker dan Visual Basic keduanya alat yang mengajarkan sintaks buruk (VB) dan GameMaker tidak terlalu bagus. Pertama, Anda tidak memiliki akses ke IDE seperti VS, Drag-and-Drop Game yang bagus tidak benar-benar mengajarkan apa pun.
Joe the Person
1
Saya tidak yakin mengapa Anda menyebutkan VB; Pembuat game kira-kira berbasis C. Apapun, Game Maker adalah cara yang baik untuk maju dari tidak tahu apa-apa untuk memahami jenis pemikiran yang diperlukan untuk pengembang game. Menanggapi peristiwa, mempertahankan lingkaran permainan, menggunakan hubungan antara sumber daya grafis dan kode, membawa proyek dari ide ke publikasi; ini adalah semua hal yang dapat Anda pelajari dengan pengembangan drag-and-drop. Saya setuju bahwa GML adalah bahasa yang terbatas, tetapi sistem secara keseluruhan adalah titik awal yang baik.
Gregory Avery-Weir
1
Saya menyebutkan VisualBasic karena DarkBASIC, yang merupakan alat pemrograman lain yang mengerikan.
Joe the Person
Game Maker jelas merupakan cara yang baik untuk pengajaran yang berorientasi pada hasil. Tidak perlu belajar fisika atau rendering. Cukup gunakan fitur bawaan. Dan pindah ke C ++ mudah, karena Anda bisa mulai dengan membuat dll dan menggunakannya di Game Maker, dan kemudian, parit Game Maker sepenuhnya.
William Mariager
Tidak pernah, pernah menyarankan GameMaker kepada seseorang yang lebih tua dari sebelas tahun ... Jika dia lima belas tahun, dia mungkin juga membungkus kepalanya dengan pemrograman.
jcora
2

Seperti yang Martin katakan, UDK mungkin adalah cara tercepat untuk membuat sesuatu bekerja karena dilengkapi dengan banyak hal seperti AI, model dan juga banyak buku. Ini memiliki editor peta yang sangat bagus, dan bahasanya adalah Java-esque (dan script seperti ECMA).

Alternatif lain adalah mencoba melakukan game dalam Flash atau Silverlight - mulailah dengan game 2D sederhana. Apa pun genre game yang disukainya, Anda akan menentukan toolkit ini.

Chris S
sumber
1
Tidak! Bukan UDK! Itu adalah: buggy, lambat, rawan kesalahan, kompleks, dll. Pergi dengan Unity sebagai gantinya.
Joe the Person
@ dipecatude67 UDK buggy, rawan kesalahan? bercanda?
Quazi Irfan
baik dalam pengalaman saya itu sangat tertinggal, apa pun yang saya buat memberi BSOD, dan saya tidak bisa menemukan dokumentasi yang membantu. Bahkan proyek contoh pun tidak berjalan.
Joe the Person
1
Saya tidak pernah menemukan buggy UDK, tetapi saya sangat TIDAK merekomendasikannya untuk seorang programmer game. Seorang seniman, ya, tapi seorang programmer, tidak. 'Dokumentasi' adalah sebuah lelucon, dan untuk menemukan kelas apa yang Anda harus subklas, Anda sebenarnya harus membuka kelas induk, karena mereka telah memutuskan untuk tidak memberikan Anda referensi API. Juga, banyak pekerjaan yang diperlukan untuk membuat berbagai jenis permainan, karena ini adalah mesin FPS.
DMan
1

Berasal dari 14 tahun, saran ini mungkin berguna. Saya menemukan, cara terbaik untuk memilih platform, adalah platform yang paling sesuai dengan tujuan. Saya telah membuat posting ini berkali-kali sebelumnya.

Dari Reddit -

Pilih bahasa yang sesuai dengan tujuan Anda. Kebanyakan gamer tidak peduli dengan bahasa apa game tersebut diprogram. Mereka peduli apakah mereka bisa memainkannya atau tidak. Mereka peduli jika itu berjalan cepat di komputer mereka. Mereka peduli jika gimnya tidak 10 gb. Mereka tidak peduli apakah itu sebuah exe atau toples.

Lihatlah gim seperti Minecraft. Tentu itu ditulis di Jawa, bahasa yang memiliki pangsa pasar yang sangat kecil di industri pengembang game. Apakah konsumen peduli? Tidak. Mereka peduli dengan fungsinya.

Namun, karena putra Anda tidak memiliki pengalaman dalam pemrograman, saya sarankan mempelajari bahasa yang cepat dikodekan seperti Python, atau menggunakan platform yang ada, seperti XNA. Secara pribadi saya suka Slick2D dengan Java, tapi saya kira itu kesukaan saya ...

liamzebedee
sumber
0

Saya diperkenalkan dengan pemrograman pada usia muda (di bawah 15), dan ayah saya memutuskan untuk menggunakan VB (1.0). Kami membuat versi memutar pong menggunakan objek timer dan gambar GDI. Saya suka itu karena kami mulai dengan kanvas kosong dan dapat mempelajari dasar-dasar struktur pemrograman sambil mencoba untuk membuat sesuatu yang menyenangkan.

Hari ini, saya pikir saya akan memilih XNA dan memilih game 2D sederhana. C # dan XNA cukup lurus ke depan dan mereka memberi Anda banyak ruang untuk tumbuh, dan mereka gratis.

John McDonald
sumber
-4

Jika dia hanya ingin membuat game maka dia harus menggunakan XNA, Unreal, Unity dll. Jika dia ingin menjadi programmer game maka dia harus belajar C / C ++ dan OpenGL / SDL atau D3D terlebih dahulu.

XNA, Unreal, Unity dll bagus untuk membuat game tetapi sangat buruk dalam melakukan terlalu banyak untuk Anda. Saya yakin orang akan tidak setuju dengan saya dalam hal ini, tetapi ini pada dasarnya mengubah Anda menjadi programmer yang malas dan ketika tiba saatnya untuk mempelajari hal-hal seperti poin dalam C ++ itu akan lebih sulit karena Anda pergi dengan opsi yang lebih mudah terlebih dahulu.

Saya tidak pernah menyarankan C / C ++ lainnya sebagai bahasa pertama untuk dipelajari jika Anda ingin menjadi programmer game. Alasan utamanya adalah bahwa bahkan jika Anda belajar C # / XNA, jika Anda serius ingin menjadi pengembang game, Anda harus tahu C atau C ++ pada tahap tertentu karena tidak ada yang akan mempekerjakan Anda sebaliknya. Jadi, jika mereka serius tentang profesi maka Anda hanya menunda mempelajari apa yang diharapkan dari Anda.

Perangkat Tidak Dikenal
sumber
10
Pada saat seorang anak berusia 15 tahun siap dipekerjakan secara profesional (delapan tahun dari sekarang), saya tidak melihat alasan untuk menganggap semua orang akan menggunakan C ++. Delapan tahun yang lalu, C ++ baru saja mulai digunakan dalam permainan dan mendapatkan standar praktis yang pertama, dan kebanyakan semua orang menggunakan C. Ada delapan tahun sebelum itu C ++ dalam kondisi yang sangat buruk untuk pengembangan game, dan urutan hari itu adalah C dan ASM. Delapan tahun dari sekarang, sebagian besar pemrograman game mungkin akan lebih mirip XNA daripada C ++ 03 yang sekarang. (lanjutan)
8
The key element is to become a good programmer, which is independent of any individual language. For new programmers, C# is going to get them more motivated more quickly. They'll go back and learn the more detailed stuff if they want to be any good, but you need to hook them long enough to get to that stage.
5
The important details in game programming are SIMD, not SSE; cache lines, not the C++ standard layout; hashing, not std::unordered_map; polymorphism, not virtual functions. Those latter things are minutea, and are incidental, not fundamental. When you know the former, the latter tends to trivially follow.
2
Starting with C++ is a bad idea, generally. It's a difficult language, and moreso as a first.
The Communist Duck
4
I started C++ at 15, and while I'm happy with where I am now, starting with something easier would probably have been a lot less painful, and allowed me to focus on actual game dev, rather than pointers and segfaults...
Riley Adams