Porting My JavaScript Game Engine to C for No Reason

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor
Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.
surveyjs.io
featured
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
  1. LittleJS

    LittleJS is the tiny fast HTML5 game engine with many features and no dependencies. 🚂 Choo-Choo!

    now rewrite it back to JS with https://github.com/KilledByAPixel/LittleJS

    j/k :D

  2. SurveyJS

    JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor. Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.

    SurveyJS logo
  3. pacman.zig

    Simple Pacman clone written in Zig.

    Yes, for instance this is mixed Zig/C project (the C part are the sokol headers for the platform-glue code):

    https://floooh.github.io/pacman.zig/pacman.html

    The Git repo is here:

    https://github.com/floooh/pacman.zig

    ...in this specific project, the Emscripten SDK is used for the link step (while compilation is handled by the Zig compiler, both for the Zig and C sources).

    The Emscripten linker enables the 'embedded Javascript' EM_JS magic used by the C headers, and it also does additional WASM optimizations via Binaryen, and creating the .html and .js shim file needed for running WASM in browsers.

  4. Ejecta

    A Fast, Open Source JavaScript, Canvas & Audio Implementation for iOS

    It does, but the main speedup comes from using WebGL instead of Canvas2D. Sadly, Canvas2D is still as slow as it ever was and I really wonder why.

    Years back I wrote a standalone Canvas2D implementation[1] that outperforms browsers by a lot. Sure, it's missing some features (e.g. text shadows), but I can't think of any reason for browser implementations needing to be _that_ slow.

    [1] https://github.com/phoboslab/Ejecta

  5. impact

    HTML5 Game Engine

  6. high_impact

    A 2d game engine written in C

    > Except for SDL2, all libraries are bundled here (see the libs/ directory).

    https://github.com/phoboslab/high_impact#libraries-used

    yep. exactly why I dont use C anymore. the package management story is so bad/non existent, that the typical approach is to just vendor everything. no thanks.

  7. jv8

    (No longer maintained) WebViews be damned. Run V8 directly on Android, in Java.

    I owe a lot of the most informative programming work I’ve done to Impact.

    Impact was so ahead of its time. Proud to say I was one of the 3000 license owners. One of the best purchases I’ve ever made. The only game I’ve ever really properly finished was made in Impact.

    I loved that the source code was part of the license, and even modified the engine and the editor to suit my needs.

    I was so inspired that I worked on my own JS game engine (instead of finishing games - ha!) for years after. I never released it, but I learned a ton in the process and made a lot of fun mini web games with it.

    I was also inspired by Impact’s native iOS support, but frustrated that it didn’t run on Android (at the time at least), so I fumbled my way through writing JVM bindings for V8 and implemented a subset of WebGL to run my game engine on Android without web views.[0] I made the repo for V8 bindings public and to my surprise it ended up being used in commercial software.

    I won’t bore you with the startup I tried to bootstrap for selling access to private GitHub repos, which was inspired by Impact’s business model…

    Anyway, it warms my heart and makes me laugh to see Impact getting an update for the “modern” web with a C port!

    I’d say these are strange times for the web, but I can’t remember a time when things were anything but strange. Cheers!

    [0]: https://github.com/namuol/jv8

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • LittleJS is a fast HTML5 game engine with many features and no dependencies

    1 project | news.ycombinator.com | 19 Aug 2024
  • Undergrowth - A tale from O Monolith, The new album by Squid!

    1 project | /r/Games | 11 Jun 2023
  • Undergrowth - A story from O Monolith - The new album by Squid

    1 project | /r/playmygame | 11 Jun 2023
  • Most popular library to build games in javascript?

    1 project | /r/gamedev | 28 Dec 2022
  • GitHub - KilledByAPixel/LittleJS: The Tiny JavaScript Game Engine That Can!

    1 project | /r/javascript | 22 Dec 2022

Did you know that JavaScript is
the 3rd most popular programming language
based on number of references?