Rabu, 12 Juli 2017

PENGANTAR TEKNOLOGI GAME - Super Coco Faidz

Pendahuluan
Teknologi berkembang maju dan pesat di zaman sekarang. Dengan adanya teknologi, memudahkan setiap aktivitas dan produktivitas manusia setiap hari dimanapun dan kapanpun. Teknologi tidak hanya untuk mendukung manusia dalam mengerjakan sesuatu hal, tapi juga menghibur manusia dengan beberapa hal, contohnya seperti permaianan atau game. Diharapkan dengan adanya game dapat menghilangkan stress atau juga dapat digunakan sebagai media Pendidikan agar orang yang ingin belajar tidak merasakan rasa bosan.  Banyak jenis-jenis game yang disediakan, dari jenis game RPG, Strategy, Racing, Simulation sampai Arcade. Namun banyak di kalangan muda menyukai genre game yang tidak terfokus pada cerita, melainkan hanya dimainkan “just for fun” atau untuk kejar-mengejar point / highscore, seperti halnya genre Arcade.

Salah satu game yang bergenre Arcade ialah Super Mario bros. Permainan platform yang dikembangkan dan diterbitkan oleh Nintendo pada akhir 1985 untuk konsol Nintendo Entertainment System. Dengan perkembangan teknologi penulis tertarik untuk membuat game yang menyerupai Super Mario Bros dengan menggunakan bantuan bahasa pemrograman Python. Python yang digunakan adalah versi 2.7 dengan bantuan Aplikasi PyGame. Game ini hanya bisa dijalankan/dirunning di PC, tidak bisa dimainkan lebih dari 1 orang (personal game) dengan karakter game dalam proses permaianan menggunakan action script dan media gambar. Penulis juga sekaligus melakukan penelitian dalam pembuatan game ini seperti, membangun aplikasi game 2 dimensi yang dimainkan dalam computer, mempelajari teknik-teknik pembuatan game Arcade menggunakan bahasa pemrograman Python, memberikan Aplikasi hiburan yang dapat dinikmati semua orang dalam sebuah bentuk perangkat PC/Laptop, menciptakan game yang mendidik dan mengasah kemampuan pemain dalam menyelesaikan game.


Metodologi penulisan

Waktu dan Lokasi Penulisan
Lokasi penelitian dilaksanakan di Perpustakaan Kampus H bersama Anggota Kelompok. Waktu penelitian dilakukan mulai dari bulan Mei 2017 sampai dengan bulan Juni 2017.

Jenis Penelitian
Dalam menyelesaikan penelitian ini, jenis penelitian yang dilakukan adalah sebagai berikut :
·         Penelitian pustaka (Library Research), yaitu penelitian yang di lakukan dengan menggunakan beberapa buku dan web sebagai referensi untuk penulisan.
·         Penelitian lapangan (Field Research), yaitu penelitian dilakukan dengan cara mengamati aktivitas-aktivitas para ahli pembuat game di tempat training pembuatan game.

Teknik Pengumpulan Data
Teknik pengumpulan data dilakukan dengan berbagai cara, seperti Observasi, dan Wawancara seperti berikut ini :

·         Observasi
Penelitian dilakukan dengan cara mengumpulkan data-data yang akan dijadikan bahan dasar dalam perancangan sistem game berbahasa pemrograman python.

·         Wawancara
Penelitian dilakukan dengan proses tanya jawab kepada para ahli pembuat game dan mengetahui permasalahan yang akan dibahas.

Pembuatan Aplikasi
Tahap ini dilakukan jika perancangan desain aplikasi telah selesai dibuat.

Uji Aplikasi
Tahapan dimana aplikasi yang telah dirancang akan diuji keakuratannya, apakah sudah bebas dari kesalahan-kesalahan.

Implementasi
Implementasi aplikasi adalah tahap meletakkan aplikasi agar dapat beroperasi

Jadwal Penelitian
Penelitian dilakukan mulai pada bulan Mei 2017 hingga bulan Juni 2017 dengan perincian kegiatan dapat dilihat pada tabel di bawah ini.
Tabel Jadwal Penelitian
No
Jenis Kegiatan
Mei 2017
Juni 2017
1
2
3
4
1
2
3
4
1
Analisis Sistem








2
Pengumpulan Data








3
Pembuatan Aplikasi








4
Uji Aplikasi








5
Implementasi










Pembahasan
Pengertian Game atau Permainan
Game/permainan adalah sesuatu yang sangat digemari olehLL anak-anak hingga orang dewasa. Game berarti “hiburan”. Permainan game juga merujuk pada pengertian sebagai “kelincahan intelektual” (intellectual playability). Sementara kata “game” bisa diartikan sebagai arena keputusan dan aksi pemainnya. Ada target-target yang ingin dicapai pemainnya. Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu menarik untuk dimainkan secara maksimal.

Pengertian Game Arcade
Permainan arkade adalah sebuah mesin permainan hiburan yang dioperasikan dengan koin yang terpasang di tempat-tempat bisnis umum, seperti restoran, bioskop, bar, dan pusat permainan hiburan. Bentuk kebanyakan permainan arkade adalah permainan video, mesin pinbol, permainan elektro-mekanis, dan permainan-permainan berhadiah.
Saat pastinya masih diperdebatkan, zaman keemasan permainan video arkade biasanya disebutkan pada periode awal sekitar akhir 1970-an dan berakhir di pertengahan 1980-an. Permainan ini bangkit sebentar awal 1990-an, tetapi kemudian industri arkade semakin menurun di belahan bumi barat karena tidak mampu bersaing dengan konsol permainan video yang dapat dimainkan di rumah dan beragam jenisnya, serta lebih murah dalam biaya.

Manfaat Game Arcade
Game seperti ini sangat cocok dan banyak digemari anak-anak. Mengapa? Karena menstimulasi otak untuk lebih kreatif dalam memecahkan permasalahan dengan waktu yang singkat. Alasan lainnya adalah kontrol permainan biasanya lebih mudah atausederhana (tidak banyak tombol). Seperti yang disebutkan di awal, game semacam ini mampu membuat otak, mata dan tangan dapat berkoordinasi dengan baik. Selain itu game seperti ini dapat membantu anak untuk lebih berkonsentrasi.

Sekilas Tentang pemrograman Python
Python adalah bahasa pemrograman interpreatatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas,dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif.
Python mendukung multi paradigma pemrograman, utamanya; namun tidak dibatasi; pada pemograman beroriantasi objek, pemrograman imperatif, dan pemrograman fungsional. Salah satu fitur yang tersedia pada python adalah sebagai bahasa pemograman dinamis yang dilengkapi dengan manajemen memori otomatis. Seperti halnya pada bahasa pemrograman dinamis lainnya, python umumnya digunakan sebagai bahasa skrip meski pada praktiknya penggunaan bahasa ini lebih luas mencakup konteks pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa skrip. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai platformsistem operasi.
  
Contoh program python:
!/usr/bin/python
#------------------------------
#Password Testing
# hanyalah contoh penggunaan if else
#------------------------------
#menentukan user dan password, dan dimasukkan ke dalam list

user=['tama','hellknight','jay','wid']
password=['12','123','1234','12345']

#meminta inputan username dan password
username = raw_input('Masukkan nama anda => ')
passwd = raw_input('Masukkan password anda => ')

#checking apakah username ada di dalam list
if username in user:
posisi = user.index(username) #mendapatkan index user
if passwd == password[posisi]:
print 'Halo, silahkan masuk %s ' % username
else:
print 'password salah masbro'
else:
print 'Maaf saya tidak mengenal anda. Akses ditolak'

Bahasa Python juga memiliki kelebihan yakni:
·         Tidak ada tahapan kompilasi dan penyambungan (link) sehingga kecepatan perubahan pada masa pembuatan sistem aplikasi meningkat.
·         Tidak ada deklarasi tipe data yang merumitkan sehingga program menjadi lebih sederhana, singkat, dan fleksible.
·         Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat menghindari pencacatan kode.

Beberapa kelemahan yang dimiliki oleh Bahasa pemrograman Python:
·         Beberapa penugasan terdapat diluar dari jangkauan python, seperti bahasa pemrograman dinamis lainnya, python tidak secepat atau efisien sebagai statis, tidak seperti bahasa pemrograman kompilasi seperti bahasa C.
·         Disebabkan python merupakan interpreter, python bukan merupakan perangkat bantu terbaik untuk pengantar komponen performa kritis.
·         Python tidak dapat digunakan sebagai dasar bahasa pemrograman implementasi untuk beberapa komponen, tetapi dapat bekerja dengan baik sebagai bagian depan skrip antarmuka untuk mereka.

Pembuatan Game menggunakan PyGame
PyGame adalah seperangkat modul Python yang dirancang untuk membuat permainan. PyGame menambahkan fungsi di atas dengan sangat baik di SDL perpustakaan. Hal ini memungkinkan Anda untuk membuat sebuah game dengan fitur yang lengkap dan sebuah program multimedia dalam bahasa python. PyGame sangat prograbel dan dapat berjalan pada hampir semua platform dan sistem operasi. PyGame sendiri telah didownload jutaan kali, dan telah memiliki jutaan kunjungan ke situsnya.
PyGame ini gratis. Dan dirilis di bawah Lisensi GPL, Anda dapat membuat sebuah aplikasi yang open source, gratis, freeware, shareware, dan game komersial dengan PyGame ini. Sehingga Anda dapat membuat game dengan menggunakan bahasa python. Tapi di balik itu, sebagian besar modulnya ditulis dalam bahasa C, dan yang lainnya dalam bahasa python.
Dengan pygame, Anda dapat mengontrol input dari keyboard, mouse, ataupun dari joystick. Anda juga dapat memasukkan gambar-gambar dalam bentuk JPG, PNG, TGA, dan GIF. Pygame juga mempunyai fitur untuk menggabungkan suara-suara. Selain itu, Anda juga dapat menggunakan library orang lain (dapat di-download di sini) untuk membuat game, sehingga Anda tidak perlu membuatnya dari nol.
  
Build Aplikasi.Exe dari Python dengan menggunakan PyGame
·         Untuk membuat file exe dibutuhkan py2exe modul untuk membuat file executable.
·         Buat source code untuk membuat file exetable seperti di bawah ini.

from distutils.core import setup
import py2exe
setup(console=['nama_file.py'])

·         Nama_file.py ganti dengan nama file source code python yang akan dibuat executable. 
·         Kemudian simpan dengan nama file setup.py. Simpan di folder tempat file source code python.
·         Kemudian dengan menggunakan command prompt masuk ke folder tempat file souce code kita dan ketikan: python setup.py install

·         Kemudian ketikan: python setup.py py2exe, sehingga tampil seperti dibawah ini

·         Maka kita telah selesai mempuat file executable dari source code python kita. dan file exe tersebut ada di folder dist.
·         Untuk menjalankannya ketikan: hello.exe maka akan menampilkan hasil ekesekusi source code kita, contoh hasil eksekusi hello.py

Pembuatan Game
Layout
Pembuatan Tombol Menu.py
Dimulai dari Menu.py yang dibuat untuk mengatur Tombol Menu pada Game. Berikut adalah potongan koding pada Menu.py.

Awal pembuatan kode di software python 2.7 shell, kita akan membuat Menu pilihan untuk Game Super Coco Faidz ini. Ada beberapa kode disini yang akan kami jelaskan secara singkat, fonteH=16 merupakan ukuran font huruf pada tulisan pilihan tombol menu, alpha_fon=50 merupakan jarak tulisan pilihan tombol menu yang barisan pertama dengan batas atas menu, berukuran 50. imgFond=True digunakan untuk latar belakang bisa menggunakan gambar yang kita sesuaikan, dan lectureSeule=False ialah background bisa di lihat dari belakang posisi tombol menu.

Jadi, self.couleur_texte  = [255, 255, 255] digunakan untuk warna huruf pada tulisan pilihan tombol menu. Bila pilihan tombol menu tidak dipilih maka akan berwarna putih, tapi apabila tombol menu dipilih akan berwarna merah sesuai dengan kode self.couleur_texte_selec = [255, 0, 0]  yang diperuntukkan mengatur huruf menjadi warna merah.

Selain memakai tombol panah atas dan bawah pada keyboard, kita juga bisa menggunakan mouse sesuai dengan  self.choix = choix ialah pilihan yang digunakan untuk merubah posisi mouse dengan mengkonfirmasi perubahan/seleksoi dari kode self.bouton_validation = 2.

Dengan menggunakan kontrol mouse dan keyboard pada tombol menu game, kita menggunakan kode, if e.type == pygame.MOUSEBUTTONDOWN and e.button == 1:untuk mengatur kontrol mouse ke arah bawah dan arah sebaliknya. Dan menggunakan kode elif e.type == pygame.KEYDOWN:untuk mengatur kontrol tombol panah ke arah bawah pada keyboard dan arah sebaliknya.

Navigasi
Pembuatan bahasa game pada langues.py
Pada langues.py kita akan membuat pengaturan bahasa pada game. Di game ini kita membuat 2 bahasa, yang pertama bahasa inggris dan yang kedua bahasa indonesia

Pada kode EN kita atur dengan bahasa Inggris, dan pada FR kita atur dengan bahasa Indonesia. Dan kita juga membuat pengaturan tulisan yang akan di tampilkan jika kita memilih tombol menu HELP atau CARA BERMAIN. Di kode IDE_Manette menjelaskan siapa pembuat game ini, kode AIDE_Deplacement  menjelaskan bagaimana mengarahkan pemain ketika menekan tombol  panah kiri dan panah kanan pada keyboard, kode AIDE_Saut menjelaskan cara pemain melompat dengan menekan tombol C pada keyboard, AIDE_Course menjelaskan bahwa pemain bisa berlari kencang ketika menekan tombol  X pada keyboard, AIDE_Retour digunakan untuk keluar dari game atau pause game dengan menekan tombol ESC pada keyboard. Dan terakhir ialah AIDE_PleinEcran untuk pengaturan FullScreen pada jendela permainan.

Penentuan level
Pembuatan Tingkat Game pada niveau.py
Untuk Tingkat permainan akan dibuat pada niveau.py, disini self.tempsMax_ = 400 dibuat untuk mengatur waktu game yaitu 400 detik. Untuk menambahkan musik kita bisa membuat kode self.musique_ = "maintheme.ogg" sesuai judul lagu yang digunakan pada game dan berekstensi ogg. Ogg adalah format pemuat berkas video dan audio standar terbuka bebas yang dipelihara oleh Xiph.Org Foundation. Para pencipta format Ogg mengaku bahwa format ini tidak dibatasi oleh paten perangkat lunak dan dirancang untuk menyediakan streaming dan manipulasi yang efisien terhadap multimedia digital bermutu tinggi.

Pada posisi pemain, pertama-tama posisi pemain berada di posisi 16dp dari kiri jendela permaianan dan posisi 380dp dari atas jendela permainan dengan menggunakan kode return elems.PositionDepart((16,380)) # posisi default, yang dimaksud dengan dp adalah Density-independent Pixels – Sebuah unit abstrak yang didasarkan dari kepadatan fisik(density) suatu layar. Satuan unit ini relatif pada layar berukuran 160dpi, sehingga satu dp adalah satu pixel pada layar ber-density 160dpi.


Penentuan Point
Pembuatan Poin Game dari Koin yang didapat pada partie.py
Poin game diperoleh dari Koin yang didapat pemain, sisa waktu setelah kita mencapai kastil, dan membunuh para musuh. Disini kita akan membuat semua pengaturan itu pada partie.py seperti kode berikut ini.

Pada kode def AbsPoint(self, point):return point[0]+self.rect.x, point[1]+self.rect.y kita akan mendapatkan Point dari koin yang didapat, dan bila koin tidak terambil atau terlewat kita tidak bisa mendapatkannya sesuai dengan pengaturan kode def RelPoint(self, point): return point[0]-self.rect.x, point[1]-self.rect.y.
Tidak hanya itu saja, di partie.py kita mengatur layar game, yang apabila pemain bergerak menuju ke arah kanan, maka layar akan ke arah kanan pula, dan begitu sebaliknya, ini didapat dari kode :
        if self.affiche_stats:
            print 'Dimensions du Monde', self.niveau.nom, self.camera.rect_monde
            for elem in self.niveau.Elements:
                if elem.rect.left <= self.camera.rect_monde.left:
                    print 'Gauche', elem
                elif elem.rect.right >= self.camera.rect_monde.right:
                    print 'Droite', elem
                elif elem.rect.bottom >= self.camera.rect_monde.bottom:
                    pass#print 'Bas', elem
                elif elem.rect.top <= self.camera.rect_monde.top:
                    print 'Haut', elem
Kamera Layar akan mengarah begitu pemain bergerak ke arah yang dituju, pada kode if elem.rect.left <= self.camera.rect_monde.left:dikatakan bahwa ketika rect (layar jendela) yang dianggap sebagai kamera bergerak ke kiri ketika, rect_monde.left yang artinya semua background akan bergerak ke arah kiri. Bila ingin tahu, sebenarnya background 1 level pada game ini panjangnya seperti ini :

Dari level awal sampai akhir yang di gerakkan hanya gambar, dengan kamera di zoom pada salah satu scene pada layar. Seperti ini :

Layar akan bergerak perlahan sesuai dengan pergerakkan pemain, tetapi disini ada kode yang digunakan bila pergerakkan pemain hanya terus kekanan sampai ke tingkat berikutnya, karena itu ketika pemain bergerak ke arah kanan, bila ke arah kiri, maka kamera tetap diam seperti bentuk kode berikut : except TransferMonde as exc: if exc.decompte: self.points += self.perso.points self.perso.efface() self.Init_Niveau(nomNiveau=exc.monde, entree=exc.entree)

Running
Hasil Uji Coba Game saat di Running
Pada saat di jalankan, maka akan tampil Menu awal pada Game, kita bisa memilih ingin memulai permainan, atau melihat peraturan permainan, mengatur bahasa dari Indonesia ke Inggris atau sebaliknya, dan keluar dari permainan.

Ketika ingin melihat peraturan permainan, disini akan tampil beberapa aturan dan penjelasan cara bermain pada game ini. Game ini dibuat oleh kelompok kami berdasarkan atas tugas Softskill Pengantar Teknologi Game.

Setelah kita memulai permainan, maka pemain akan memulai bermain dari karakter Super Mario, tempat yang masih sama dengan game aslinya Super Mario Bros, kita berpetualang untuk bisa sampai di kastil.

Untuk Super Mario, dia bisa menggunakan Jamur untuk bisa tambah besar dan kuat, agar bisa menghancurkan block atau batu bata yang ada di samping tanda tanya yang berisi koin atau jamur.

Disini juga kita membuat jalan rahasia sesuai dengan game aslinya, bilamana di game asli ada tempat rahasia yang dibuat di lorong-lorong pipa hijau yang menghubungkan pemain ke tempat bawah tanah yang berisikan koin-koin.

Disini Super Mario bebas untuk mendapatkan koin, dengan cara berjalan ke arah koin dan meloncatinya sampai menggapai koin yang berada di atas. Dan Super Mario akan berjalan ke lorong selanjutnya untuk bisa keluar dari tempat bawah tanah.

Pada saat keluar, maka Super Mario akan langsung berada pada tangga, tangga ini adalah tangga untuk menggapai bendera, bahwa petualangan pada tingkat ini akan berakhir dan Super Mario bisa masuk ke kastil.

Poin juga bisa didapat dari bendera yang kita tarik, paling tinggi bila bendera kita tarik dari atas adalah 5000 poin, dan paling rendah adalah 100 poin, dan setelah itu, Super Mario akan memasuki Kastil yang bertanda berakhirnya Tingkat pertama pada game ini.

Pada Tingkat kedua pada game ini, kita memasuki Wilayah kota yang gelap gulita, dan dari sinilah game ini akan berubah sesuai dengan aturan game yang kelompok kami buat. Disini Super Mario akan berjalan di tempat yang sangat gelap dan bertemu dengan kotak tanda tanya berwarna merah, dan Super Mario harus mengambilnya.

Pada saat Super Mario bertemu Kotak berwarna merah, pukullah Kotak berwarna merah itu maka Super Mario akan bisa berubah menjadi Super Coco Faidz.

Kotak tanda tanya berwarna merah ini berisi jamur, yang kami desain berbeda dari yang aslinya, agak lebih tinggi dan berwarna hijau. Pada saat Super Mario memakannya, maka berubah bentuklah Super Mario menjadi karakter yang kita buat.

                Karakter yang kita buat bernama Super Coco Faidz, dengan rambut pirang memakai kemeja biru muda dengan rompi biru tua, dan memakai celana jeans biru, dan sepatu kulit warna coklat.

                Semua Map yang digunakan berubah dari yang aslinya, kami membuat sedetail mungkin seperti yang aslinya. Pertama-tama petualangan Super Faidz akan menghadapi beberapa Pohon besar, yang haruss dinaikinya satu per satu.

                Musuh Super Mario dengan musuh Super Coco Faidz agak berbeda, bilamana Super Mario bertemu musuh jamur busuk yang berjalan, dan kura-kura burung. Di Super Coco Faidz bertemu musuh seperti landak, dan musuh ini tidak bisa diinjak ataupun dilewati begitu saja, jadi pemain harus menghindari musuh landak ini, agar Super Coco Faidz tidak mati.

                Musuh landak itu berasal dari awan yang memakai topi, bila pemain ingin musuh landak tidak ada lagi, maka pemain harus melompat ke atas awan tersebut agar awan akan jatuh ke tanah.


Penutup
Game Super Mario Coco merupakan permainan yang berkisahkan tentang petualangan seseorang lelaki berkumis yang menggunakan pakaian overall merah bersama adik Mario, Luigi yang menggunakan pakaian overall hijau, untuk menyelamatkan Putri Toadstool di Kastil sang Naga yang menyandera sang Putri. Mereka berdua melawan prajurit sang Naga sebelum mengalahkan Kerajaan sang Naga. Pada saat di level kedua, Super Mario berubah menjadi Super Coco dengan mengambil Bunga Api di Malam Hari. Dan disinilah permulaan sang Super Coco menyelamatkan Putri dari sang Naga.
Game Super Mario Coco ini dibuat karena terinspirasi dari Game Super Mario yang dikembangkan oleh Nitendo. Kelompok kami membuatnya dengan bahasa pemograman yang berbeda dengan konsep dan rules yang sama dengan Game aslinya.
Game ini masih banyak kekurangan dengan banyaknya bug di beberapa level, dan model grafik yang masih 2 Dimensi. Namun banyak sisi kelebihan dan variasi di Game Super Coco yang dibuat oleh kelompok kami, yaitu dengan perubahan karakter di tiap level.
Dan dari hasil analisa game Super Mario Coco dari kelompok kami, kami menyimpulkan bahwa :
·         Game aplikasi game 2 Dimensi ini mudah untuk dimainkan dalam Laptop/Komputer (PC),
·         Pemain dapat mempelajari teknik-teknik pembuatan game Arcade dengan menggunakan bahasa pemrograman Python,
·         Dapat memberikan hiburan pada pemain yang dapat dinikmati semua umur,
·         Dapat terciptanya game yang mendidik dan mengasah kemampuan bagi pemain untuk menyelesaikan game Super Mario ini.
  
DAFTAR PUSTAKA

1.         “Super Mario”. Wikipedia. Diakses tanggal 30-05-2017.
2.         “Python Programming”. Wikipedia. Diakes tanggal 31-05-2017.
3.         van Rossum, Guido (1993). "An Introduction to Python for UNIX/C Programmers". Proceedings of the NLUUG najaarsconferentie (Dutch UNIX users group). even though the design of C is far from ideal, its influence on Python is considerable.
4.         Kuchling, Andrew M. (22 December 2006). "Interview with Guido van Rossum (July 1998)". amk.ca. Diakses tanggal 12 March 2012.
5.         "Classes". The Python Tutorial. Python Software Foundation. Diakses tanggal 20 February 2012. It is a mixture of the class mechanisms found in C++ and Modula-3
6.         Simionato, Michele. "The Python 2.3 Method Resolution Order". Python Software Foundation. The C3 method itself has nothing to do with Python, since it was invented by people working on Dylan and it is described in a paper intended for lispers
7.         Kuchling, A. M. "Functional Programming HOWTO". Python v2.7.2 documentation. Python Software Foundation. Diakses tanggal 9 February 2012.
8.         Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 May 2001). "PEP 255 – Simple Generators". Python Enhancement Proposals. Python Software Foundation. Diakses tanggal 9 February 2012.
9.         Smith, Kevin D.; Jewett, Jim J.; Montanaro, Skip; Baxter, Anthony (2 September 2004). "PEP 318 – Decorators for Functions and Methods". Python Enhancement Proposals. Python Software Foundation. Diakses tanggal 24 February 2012.
10.       Bini, Ola (2007). Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform. Berkeley: APress. p. 3. ISBN 978-1-59059-881-8.
11.       Nintendo. Super Mario World (in Japanese). Super Famicom. Level/area: Front packaging.
12.       Jump up to:a b c d e Miller, Skyler. "Super Mario World". Review. Allgame. Archived from the original on February 16, 2010. Retrieved 2009-07-13.
13.       Jump up "Super Mario World - Instruction Booklet" (PDF).
14.       Jump up Nintendo R&D1. Super Mario World instruction manual. Nintendo.

15.       Jump up to:a b c d McLaughlin, Rus (2007-11-08). "IGN Presents The History of Super Mario Bros.". Retrieved 2009-04-13.