{"id":13445683,"url":"https://github.com/suchipi/hex-engine","last_synced_at":"2025-05-14T19:02:20.524Z","repository":{"id":41336251,"uuid":"229514761","full_name":"suchipi/hex-engine","owner":"suchipi","description":"A modern 2D game engine for the browser.","archived":false,"fork":false,"pushed_at":"2024-12-02T06:22:15.000Z","size":5922,"stargazers_count":672,"open_issues_count":25,"forks_count":27,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-13T13:56:54.573Z","etag":null,"topics":["2d-game-engine","canvas","canvas-game","canvas2d","game-engine","hex-engine","javascript","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suchipi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["suchipi"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-12-22T03:48:24.000Z","updated_at":"2025-03-24T13:34:45.000Z","dependencies_parsed_at":"2024-01-08T08:01:50.990Z","dependency_job_id":"e1962cb0-c650-4b8b-a2f1-179f47ce8565","html_url":"https://github.com/suchipi/hex-engine","commit_stats":{"total_commits":539,"total_committers":11,"mean_commits":49.0,"dds":"0.13914656771799627","last_synced_commit":"b65b7b51ef6e30c3a10e266e061c8f57540a6d49"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suchipi%2Fhex-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suchipi%2Fhex-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suchipi%2Fhex-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suchipi%2Fhex-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suchipi","download_url":"https://codeload.github.com/suchipi/hex-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248724587,"owners_count":21151559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d-game-engine","canvas","canvas-game","canvas2d","game-engine","hex-engine","javascript","react","typescript"],"created_at":"2024-07-31T05:00:37.790Z","updated_at":"2025-04-13T13:56:59.119Z","avatar_url":"https://github.com/suchipi.png","language":"TypeScript","readme":"![Hex Engine Logo](logo-image.png)\n\n---\n\n[Website](https://hex-engine.dev) - [Discord](https://discord.gg/afFkpC9) - [GitHub](https://github.com/suchipi/hex-engine)\n\n---\n\n⚠️ **WORK IN PROGRESS** ⚠️\n\nHex Engine is a 2D Game Engine for the browser, written in TypeScript. It is designed to feel similar to [React](https://reactjs.org/).\n\nHex Engine implements a variant of the popular [Entity-Component-System model](https://en.wikipedia.org/wiki/Entity_component_system), adapting it to make Components radically composable. In Hex Engine, every Component is a function, and Components can call special Hook functions to define their behavior in the game engine.\n\nHex Engine comes out-of-the-box with a powerful development inspector and a modern frontend code compilation pipeline.\n\nOut of the box, Hex Engine has:\n\n- 2D rendering via HTML5 Canvas\n- Support for sprite sheets and animations\n- Helpers for sound playback and synthesization\n- Physics (via [matter.js](https://brm.io/matter-js/))\n- Mouse, Keyboard, and Gamepad input\n- First-class support for popular indie game development tools [Aseprite](https://www.aseprite.org/), [Tiled](https://www.mapeditor.org/), and [BMFont](https://www.angelcode.com/products/bmfont/)\n- And much, much, more\n\nHex Engine is inspired by [React](https://reactjs.org/), [Impact](https://impactjs.com/), [Unity](https://unity.com/), and [LÖVE](https://love2d.org/).\n\nHere's an example of what code looks like in Hex Engine.\n\n```ts\nimport {\n  useDraw,\n  useUpdate,\n  useNewComponent,\n  SystemFont,\n  Label,\n} from \"@hex-engine/2d\";\n\nexport default function MyComponent() {\n  const font = useNewComponent(() =\u003e SystemFont({ name: \"Arial\", size: 12 }));\n  const label = useNewComponent(() =\u003e Label({ font }));\n\n  let elapsedTime = 0;\n  useUpdate((delta) =\u003e {\n    elapsedTime += delta;\n\n    label.text = `Elapsed time: ${elapsedTime}`;\n  });\n\n  useDraw((context) =\u003e {\n    label.draw(context, { x: 10, y: 10 });\n  });\n}\n```\n\nHex Engine was created by yours truly, Lily Skye. I am known throughout the JavaScript Open-Source community as one of the core maintainers of [Prettier](https://prettier.io/), and I have also contributed to a myriad of other well-known projects, including [Babel](https://babeljs.io/) and [React DevTools](https://github.com/facebook/react-devtools).\n\nI built Hex Engine because I felt that the browser game engine space could benefit a lot from technologies and patterns found in the open-source JavaScript frontend and tooling communities.\n\nIt is the culmination of years of research, and probably the fifth or sixth game engine I have written for the browser (but the first that I've been proud enough of to share).\n\nAll that said, it's far from done- I'm hoping that we can form a community together and make something we can all be proud of.\n\nInterested? Check out [Hex Engine's homepage](https://hex-engine.dev) for installation and usage instructions.\n\n---\n\nLogo Font is [Silver by Poppy Works](https://poppyworks.itch.io/silver).\n","funding_links":["https://github.com/sponsors/suchipi"],"categories":["Libraries","TypeScript"],"sub_categories":["Game engine"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuchipi%2Fhex-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuchipi%2Fhex-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuchipi%2Fhex-engine/lists"}