27 poin oleh GN⁺ 2025-05-22 | 2 komentar | Bagikan ke WhatsApp
  • 90s.dev adalah API game maker baru yang berjalan berbasis web, menghadirkan pengalaman membuat aplikasi GUI bergaya tahun 90-an
  • Platform ini bukan game engine atau game maker secara langsung, melainkan menyediakan API untuk membuat game, game engine, dan alat pembuatan game
  • Berbasis HTML Canvas, layar 320x180, dukungan WebGL2, serta keamanan dan performa melalui web worker menjadi ciri utamanya
  • Dengan SDK TypeScript-first dan dukungan impor modul wasm dari berbagai bahasa, prototyping cepat dan skalabel dapat dilakukan
  • Pengguna dapat membuat aplikasi mereka sendiri lalu membagikan atau memuatnya dari GitHub atau NPM, dengan tujuan mendorong kolaborasi komunitas pengembang dan skalabilitas

Makna perilisan 90s.dev

  • 90s.dev adalah platform API game maker bentuk baru yang berjalan di web
  • Platform ini menyediakan lingkungan pembuatan aplikasi GUI bergaya tahun 90-an, dengan API yang ditujukan untuk membuat game, game engine, dan alat game maker
  • Tujuannya adalah membentuk ekosistem di mana siapa pun dapat dengan mudah membuat dan membagikan aset serta alat game seperti pixel art, sprite, dan map di atas HTML Canvas

Fitur utama dan visi

Pengenalan dasar platform

  • 90s.dev berjalan di browser, dengan tampilan yang memenuhi jendela web pada resolusi 320x180 (16:9)
  • Semua aplikasi berjalan di lingkungan web worker untuk memberikan keamanan dan performa yang lebih baik
  • Melalui WebGL2 offscreen canvas, game dapat berjalan hingga 60fps
  • Modul aplikasi yang di-host di GitHub dan NPM dapat dimuat dan didistribusikan secara bebas
  • SDK TypeScript yang ramah VSCode mendukung prototyping cepat
  • Memiliki kompatibilitas dengan berbagai modul bahasa yang dibangun sebagai WebAssembly (wasm)

Aplikasi bawaan

  • Secara bawaan tersedia aplikasi dasar untuk membuat aset game seperti pixel art, alat pembuatan sprite, dan editor map
  • Alat pengeditan suara dan musik belum tersedia, tetapi siapa pun dapat mengembangkannya sendiri lalu mempublikasikan/membagikannya
  • Aplikasi dan alat yang dibuat dapat dibagikan ke semua pengguna melalui iframe atau tautan

Inspirasi dan pembeda

Alat pengembangan game yang menjadi referensi

  • pico8: berorientasi minimalisme, mendukung satu bahasa
  • tic80: membuka berbagai batasan pico8
  • love2d: memerlukan IDE eksternal
  • picotron: mengadopsi arsitektur sistem operasi
  • 90s.dev adalah pico8 yang lebih meta, dan lebih dekat ke love2d dengan TypeScript atau tic80 yang berfokus pada ekspansi vertikal

Inovasi GUI dan detail teknis

Sistem layout

  • Sistem auto-layout yang sederhana namun kuat diimplementasikan untuk mengurangi kerepotan penempatan manual dan resizing
  • View (API) menggambar layar secara langsung dan memanfaatkan struktur tree view anak

Sistem Ref

  • Properti view (ukuran, anak, warna latar, dll.) dikelola melalui watchable pointer (ref)
  • Setiap properti diberi objek referensi (ref), sehingga perubahan properti terdeteksi dan diterapkan secara otomatis
  • Dirancang sepenuhnya terpisah dari ref pada React/Vue yang sudah ada

Composites (konsep view komposit)

  • Di JSX, tag string (huruf kecil) dan tag nilai (huruf besar) dibalik untuk memperkuat pemisahan antara implementasi dan penggunaan
  • View abstrak didaftarkan ke tabel global dan dapat dimanfaatkan secara bebas oleh bagian lain dari sistem
  • Contoh: view colorpicker menyediakan implementasi default, tetapi dapat diganti oleh pengembang dengan gaya yang diinginkan
  • Memberikan fleksibilitas dan skalabilitas tinggi dalam pengembangan aplikasi GUI

Distribusi aplikasi dan kolaborasi komunitas

Perubahan cara distribusi aplikasi

  • Sebelumnya menggunakan shared drive net/ berbasis database internal
  • Baru-baru ini mendukung hosting dan pengambilan modul langsung dari NPM/GitHub melalui CDN
    • Contoh: /os/fs/ghb/someuser/project@1.0.0/some/file.js
  • Dengan memanfaatkan service worker, mekanisme pemuatan dari berbagai sumber menjadi lengkap

Partisipasi dan kolaborasi

  • Dengan desain bergaya sistem operasi, pengembangan aplikasi komunitas di luar aplikasi wajib (aplikasi dasar) didorong
  • Komunikasi dan kolaborasi didukung melalui issue tracker, forum, dan wiki (semuanya repo GitHub)
    • Issue: permintaan fitur dan pelaporan bug
    • Forum: pengumuman dan diskusi proyek
    • Wiki: kumpulan dan kurasi proyek

Berbagi aplikasi

  • Aplikasi dapat dibagikan melalui tautan berformat /os/#app
  • Berfokus pada komunitas untuk mendorong pembuatan dan penyebaran bebas aplikasi, library, dan aset

Kesimpulan dan arah pengembangan

  • 90s.dev adalah platform API yang merancang dan mendefinisikan ekosistem game maker itu sendiri
  • Platform ini mengejar lingkungan pembuatan game web yang dapat diperluas, tempat siapa pun bisa dengan mudah membuat, mendistribusikan, dan memanfaatkan aplikasinya sendiri
  • Ini adalah alat pengembangan game berorientasi masa depan yang berlandaskan kolaborasi komunitas dan filosofi platform terbuka

2 komentar

 
lazyhack 2025-05-23

Jadi penasaran seperti apa engine gamenya sendiri.

 
GN⁺ 2025-05-22
Komentar Hacker News
  • Berbagi pengalaman suatu hari bangun jam 2 pagi di bulan Februari lalu langsung mulai ngoding, sudah bosan menunggu lebih lama, terus menulis kode hingga akhirnya membuat alat pembuat game berbasis API, game engine, dan gamenya sendiri, lalu menyadari bahwa passion sejatinya ada pada perancangan API, serta membagikan perasaan bahwa orang-orang yang menemukan passion lalu mendedikasikan diri seperti itu terasa sangat keren

  • Mengucapkan terima kasih atas pujiannya, menyesalkan bahwa esensi proyeknya tidak berhasil dijelaskan dengan baik, padahal sebenarnya API adalah bagian yang paling menarik tetapi tidak tampak dari luar sehingga terasa frustrasi, dan berpikir seharusnya menunggu sampai ada lebih banyak contoh yang menunjukkan kemudahan penggunaan API yang inovatif itu, serta menyesal karena merilisnya terlalu terburu-buru

  • Mengungkapkan bahwa dirinya adalah penulis proyek ini, menyampaikan terima kasih atas masukan yang diberikan, benar-benar merasakan bahwa rilis ini terlalu dini, dan menyatakan tekad untuk memperbaiki berbagai hal yang disorot lalu kembali lagi dalam beberapa bulan

  • Tidak merasa rilis ini terlalu dini sama sekali, memuji proyek ini sebagai sesuatu yang sangat keren dan sangat overengineered, menyebutnya puncak dari analogi bike shed yang terkenal, serta sangat takjub karena bahkan sistem reaktif buatan sendiri pun diimplementasikan

  • Menilai ini adalah timing yang pas untuk Show HN, mengatakan bahwa dengan melihat tur Hello World orang bisa langsung memahami proyek ini secara intuitif, dan jika sudah punya pengalaman dengan PICO-8 dan React maka proyek ini akan terasa lebih menyenangkan, serta menganggap pemilihan rasio 16:9 sebagai keputusan yang bijak, dengan opini bahwa rasio persegi PICO-8 terasa canggung

  • Berterima kasih karena sudah merilis lebih awal, sangat merekomendasikan strategi sering merilis, dan menekankan bahwa 10.000 kali pengulangan adalah jalan menuju keberhasilan, sehingga satu kali percobaan hanyalah permulaan

  • Pesan penyemangat bahwa ini sama sekali bukan rilis yang terlalu awal, serta dukungan bahwa penulisnya sudah melakukan pekerjaan yang sangat baik

  • Meski tidak dibahas secara mendalam, ada pengakuan bahwa daya tarik retro ini diam-diam justru makin memikat, mungkin karena rasa nyaman dari masa lalu yang lebih sederhana dan tenteram terasa hidup kembali ketika melihat proyek seperti ini sekarang

  • Bertanya apakah aplikasi paint seharusnya berfungsi, karena sudah dicoba di Firefox dan Chrome tetapi setelah memilih warna lalu mengeklik tidak ada apa pun yang tergambar, dan tidak ada error di console, lalu di luar itu juga mengagumi keberhasilan proyek ini mereproduksi nuansa 90-an, awalnya sempat terasa seperti terminal tahun 70-an atau 80-an, tetapi setelah diperhatikan memang tepat seperti beginilah tampilan 90-an, serta menyatakan antusiasme terhadap perkembangannya ke depan

  • Menyebut minta maaf karena menimbulkan kebingungan, menjelaskan bahwa baru pemilih warnanya saja yang dibuat dan selebihnya belum diimplementasikan, rasanya bisa diselesaikan dalam waktu kurang dari satu jam, sekaligus mengungkap bahwa niat pengembangannya memang untuk menghadirkan kembali kesenangan dan kekuatan membuat aplikasi GUI dengan nuansa 90-an, hanya ingin mempertahankan rasa takjub tanpa ketidaknyamanannya, dan karena itulah namanya dipilih menjadi 90s.dev

  • Menyebut kemungkinan memang belum diimplementasikan, dan jika mengeklik tombol “hash” di kiri atas jendela lalu memilih “View Source”, akan terlihat bahwa yang ada baru mock UI, sementara di area scroll hanya ada kode yang menggambar pola sederhana

  • Pada dirinya juga tidak berfungsi

  • Mengakui belum sepenuhnya memahami proyek ini sendiri, tetapi sangat jatuh hati pada nuansanya, dan merasa menarik bahwa hanya dengan atmosfer emosional dan elemen visual tertentu saja bisa memberi pengaruh besar pada perasaan orang dan memancing lebih banyak perhatian

  • Secara pribadi mencoba memikirkan cara menjelaskannya, mengatakan bahwa ia ingin membuat pico8 yang lebih nyaman dipakai sehingga membuat desain dan prototipe 320x180, lalu karena juga ingin mendapatkan semua kemudahan VS Code beserta dukungan TypeScript, akhirnya proyek ini dirancang sebagai platform tempat hal-hal yang ada di tab pico8 bisa dibuat dan didistribusikan, dan kini kalau dipikir-pikir ini pun terasa seperti dirilis terlalu cepat

  • Secara pribadi menyukai nuansanya, tetapi berpendapat bahwa rasio 16:9 dan kombinasi PC tahun 90-an terasa kurang cocok, dan lebih menyukai nuansa khas monitor CRT yang bentuknya lebih mendekati persegi

  • Mengucapkan terima kasih, lalu mengeluhkan bahwa menjelaskan sesuatu adalah pekerjaan yang sangat sulit, mengaku bahwa tulisan kali ini pada akhirnya juga hanya usaha untuk menjelaskan sesingkat mungkin apa yang dibuatnya, tetapi walaupun versinya sudah singkat isinya tetap terasa samar sehingga secara jujur ia merasa ingin menyerah saja

  • Menganggap proyek ini sangat keren tetapi awalnya terasa agak sulit dimulai, dan menyarankan akan bagus jika ada walkthrough singkat tentang cara membuat mini game

  • Mengucapkan terima kasih, lalu menjelaskan bahwa cara membangun game saat ini sama seperti tutorial membangun aplikasi, hanya saja bisa dilakukan dengan membuat custom view dan menimpa method draw, untuk performa akan lebih baik jika membuat dan memanfaatkan OffscreenCanvas, dan saat ini belum ada API yang membungkus WebGL2 agar lebih mudah digunakan, tetapi berjanji ke depannya pasti akan membuat tutorial agar pemula pun bisa membuat keseluruhan game sendiri, serta menjelaskan bahwa untuk sekarang fokusnya masih pada aplikasi sehingga prioritasnya lebih dulu pada pengembangan alat game maker seperti sprite dan map, lalu membagikan tautan tutorial Hello World

  • Menganggap proyek ini sangat menarik, langsung merasa kembali ke masa kecil, menyukai pico8 juga tetapi merasa dirinya tumbuh lebih dekat dengan desktop dan GUI sehingga pico8 terasa seperti satu generasi terlalu awal, sedangkan proyek ini memicu nostalgia seperti membeli CD lagi

  • Juga memperkenalkan Picotron buatan pengembang Pico8, menjelaskannya sebagai OS desktop yang mirip Pico8 tetapi dengan sedikit lebih sedikit batasan, mengaku belum pernah mencobanya sendiri dan hanya pernah melihat GIF-nya, namun merasa paradigma proyeknya mirip, karena sama-sama mengarah pada “platform” tempat pico8 bisa dibuat di dalamnya, dan berpikir keduanya mengejar ideal yang sama dengan cara yang berbeda

  • Tersendat pada langkah pertama panduan Getting Started, setelah mengunduh helloworld.zip ke lokal lalu membuka filer.app.js di web dan menekan tombol mount dengan memasukkan helloworld/app sebagai drive name, tidak terjadi apa-apa, sehingga bingung bagaimana cara mengunggah file zip ke instance 90s.dev

  • Mengucapkan terima kasih atas masukannya, kemungkinan besar pengguna memakai Firefox, dan menjelaskan bahwa fungsi tersebut bergantung pada showDirectoryPicker yang belum didukung Firefox sehingga menyarankan memakai Chrome, juga menambahkan bahwa drive name seharusnya hanya diisi nama tanpa path (misalnya foo) dan berjanji akan segera memperbarui panduannya, lalu menjelaskan bahwa foo/helloworld.app.js nantinya akan terhubung ke path lokal yang sebenarnya

  • Mengatakan sangat menyukai nuansa 90-an ini, terutama font-nya yang sangat berkesan, serta menyadari bahwa seleranya jauh lebih tertarik pada desain 90-an daripada pixel art bergaya 80-an

  • Mengkritik landing page, merasa penjelasannya membingungkan karena proyek ini disebut sebagai ‘game maker’ tetapi sekaligus dijelaskan ‘bukan game maker’, sehingga istilah yang dipakai terasa tidak konsisten

  • Mengingatkan bahwa penamaan memang masalah yang sangat sulit, dan menganggapnya sebagai salah satu tugas tersulit dalam ilmu komputer, bersama invalidasi cache