Konsol gim dan gim do-it-yourself untuk itu. Mesin Game Kecil + ESPboy

Little Game Engine (LGE) adalah konsol game virtual dengan konfigurasi fiktif, dengan prosesor fiksi dan web-SDK online , yang terdiri dari kompiler kode mirip-C menjadi assembler dan rekompilasi lebih lanjut menjadi kode mesin dengan kemampuan untuk mengeksekusi kode ini di tempat yang sama, online di emulator.



Seperti namanya, seluruh set dipertajam untuk pembuatan cepat game retro 2d. Lebih dari 20 game sudah siap, beberapa dalam pengembangan.



Untuk bermain online, ikuti tautan game di bawah ini, pilih "kompilasi" dan kemudian "jalankan".

TankCity , 1916 , FourInaRow , BlackJack , ZombieDefence , MicroRace , DwarfClicker , Galaksi, Kenangan, NinjaEscape , Tambang, Breakout, TowerDefence , FlappyBird, WormBlast , ESProgue , Ular, Ular, IkanLife , CityAster , Aster, Aster , Aster



Nilai tambah yang terpisah adalah bahwa emulator mesin virtual LGE, selain versi online, ditulis untuk gadget ESPboy , yang memiliki pinggiran yang mirip dengan LGE VM yang terkandung dalam perangkat keras dan tentang apa yang sudah saya tulis .

  • Layar warna 128x128,
  • 8 tombol
  • suara bit tunggal
  • RGB LED
  • Mikrokontroler ESP8266 cocok untuk kecepatan emulasi
  • memori flash bawaan dengan sistem file SPIFFS


Dengan cara ini, Anda dapat mengunduh game yang dikompilasi ke dalam LGE SDK online menjadi ESPboy portabel, membawanya bersama Anda dan menghabiskan waktu luang Anda dengan penuh minat.



Anda dapat mengunduh game baik melalui kabel (lihat mengunduh file di spiff ) dan melalui WiFi. Menekan tombol "B" saat memulai ESPboy, kami mengubah gadget menjadi titik akses, dan menghubungkan ke jaringan WiFi dengan nama "ESPboy" melalui browser, kami sampai ke antarmuka web sistem file, di mana Anda dapat menghapus file atau mengunggah yang baru.



Tetap hanya untuk merakit gadget, di mana ada diagram , instruksi dan kit kit untuk perakitan, yang akan segera tersedia di tindie.com.
Setelah cukup bermain di gim yang ada - Anda dapat dengan cepat mulai menulis gim Anda sendiri.



Spesifikasi singkat dari mesin virtual LGE:

  • Seperangkat 108 instruksi terinspirasi oleh CHIP8 / SCHIP dan mikroprosesor MOS6502.
  • 16 register 16 bit, register nol adalah pointer ke stack.
  • Setiap instruksi adalah byte ganda, beberapa instruksi mengandung dua byte data
  • Memori yang dapat dialamatkan 20Kb.
  • Selain instruksi aritmatika biasa dan instruksi untuk memindahkan data, ada instruksi terpisah untuk bekerja dengan sprite, layar, dan suara.
  • Ukuran layar adalah 128x128 piksel, 16 warna per titik, yang membutuhkan memori 8Kb, jumlah buffer yang sama untuk menggambar sprite dan partikel.
  • Refresh layar sekitar 20 frame per detik.
  • Anda dapat menggambar ubin dan 32 sprite hingga ukuran 128x128 piksel dengan kemungkinan rotasi dan mirroring.
  • Bekerja dengan partikel didukung.
  • Untuk menghemat memori, Anda dapat menggunakan gambar bit tunggal atau kompresi RLE.
  • Ada fisika yang disederhanakan: deteksi tabrakan sprite dengan sprite dan ubin, resolusi tabrakan, gravitasi.
  • Layar diperbarui baris demi baris hanya jika satu baris telah mengubah piksel.
  • Kecepatan VM, tergantung pada berapa banyak garis yang ditarik dalam bingkai, bervariasi dari 100 ribu hingga 900 ribu operasi per detik.
  • Anda dapat menggunakan layar warna yang berbeda, ada peregangan gambar perangkat lunak.

Agar tidak menulis secara langsung dalam opcodes, kompiler yang ditulis sendiri "LGE C" termasuk dalam SDK, yang merupakan bahasa tingkat tinggi figuratif "C". Saat ini, kompiler ini jauh dari dukungan penuh untuk standar bahasa C, dan ketika mengkompilasi, Anda dapat dengan mudah menemukan kesalahan yang tidak dapat dipahami di tempat yang tidak dapat dipahami. Tapi ini cepat, karena butuh kurang dari 2000 baris kode sumber, dan juga terus berkembang.

Lingkungan pengembangan online LGE dengan kompiler dan emulator
Deskripsi mesin virtual LGE
Panduan untuk LGE Compiler "C" Bahasa Figuratif
Kode sumber untuk game LGE di LGE C

Tidak sedikit game yang telah dibuat di LGE SDK, dan Anda dapat terus membuat yang baru sekarang, tetapi mereka masih jauh dari sempurna. Jika seseorang ingin mengambil bagian dalam menciptakan mainan baru di LGE atau meningkatkan LGE SDK itu sendiri, atau jika seseorang tertarik untuk membangun ESPboy, selamat datang di forum www.espboy.com .
Kami akan mencoba menjawab semua pertanyaan dan membantu dalam implementasi ide.

Bagi mereka yang gigih dan tertarik, di bawah ini adalah contoh singkat dari game di LGE SDK. Dibutuhkan kurang dari seratus baris dan tidak lebih dari 1Kb dalam bentuk yang dikompilasi. Untuk menjalankannya, Anda harus pergi ke LGE SDK online, menyalin kode ke kotak "sumber", pilih "kompilasi" dan kemudian "jalankan".

Contoh gim sederhana di LGE C
int stickCount; char key,previouseKey,takenSticks; void redraw(){ int i; //   setcolor(2); //   for(i = 0; i < stickCount; i++) line(22 + i * 6, 74, 22 + i * 6, 84); //   setcolor(11); //  for(i = stickCount; i < 15; i++) line(22 + i * 6, 74, 22 + i * 6, 84); //     setcolor(1); //   delayredraw(); } void playersMove(){ //    ,     .  while(key == previouseKey){ key = getkey(); } while(key != KEY_LEFT && key != KEY_DOWN && key != KEY_RIGHT){ key = getkey(); } if(key & KEY_LEFT){ takenSticks = 1; }else if(key & KEY_DOWN){ takenSticks = 2; }else{ takenSticks = 3; } printf("%d, ", takenSticks); stickCount -= takenSticks; previouseKey = key; } void computersMove(){ if(stickCount % 4){ //   ,    takenSticks = stickCount % 4; }else{ //      takenSticks = 1 + random(1); } stickCount -= takenSticks; printf("%d, ", takenSticks); } void game(){ // stickCount = 15; clearscreen(); //       gotoxy(8,0); puts(""); gotoxy(2,1); puts(" 1,2  3 .  ,   . :\n"); // 27,25  26   printf(" %c 1 %c 2 %c 3", 27, 25, 26); gotoxy(0,12); redraw(); while(1){ playersMove(); if(stickCount <= 0){ gotoxy(3,8); puts(" "); return; } redraw(); computersMove(); redraw(); if(stickCount <= 0){ gotoxy(3,8); puts(" "); return; } } } void main(){ while(1){ game(); //  settimer(1,1000); while(gettimer(1)){} while(getkey() == 0){} previouseKey = key; } } 


Semua bagus dan sukses dalam kreativitas.

Dengan hormat,
Sebuah novel

Source: https://habr.com/ru/post/id472114/


All Articles