{"id":17551591,"url":"https://github.com/mati365/micro-racing","last_synced_at":"2025-04-09T18:34:48.328Z","repository":{"id":39556359,"uuid":"162004173","full_name":"Mati365/micro-racing","owner":"Mati365","description":"🚗 🏎️ 🎮 online 3D multiplayer neural networks based racing game","archived":false,"fork":false,"pushed_at":"2024-08-05T05:13:10.000Z","size":20852,"stargazers_count":150,"open_issues_count":24,"forks_count":25,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-23T20:37:15.373Z","etag":null,"topics":["bezier","canvas","cars","es6","game","html5","multiplayer","neural-network","neural-networks","physics-engine","racing","racing-games","sockets","websockets"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mati365.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2018-12-16T13:32:19.000Z","updated_at":"2025-02-21T21:39:53.000Z","dependencies_parsed_at":"2024-11-01T00:13:25.060Z","dependency_job_id":null,"html_url":"https://github.com/Mati365/micro-racing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fmicro-racing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fmicro-racing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fmicro-racing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fmicro-racing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mati365","download_url":"https://codeload.github.com/Mati365/micro-racing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248088307,"owners_count":21045684,"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":["bezier","canvas","cars","es6","game","html5","multiplayer","neural-network","neural-networks","physics-engine","racing","racing-games","sockets","websockets"],"created_at":"2024-10-21T04:46:49.121Z","updated_at":"2025-04-09T18:34:48.310Z","avatar_url":"https://github.com/Mati365.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# micro-racing\nmultiplayer 3D isometric racing game written in WebGL 2.x. Steering(both): WSAD / Arrows.\n\n## Gameplay\n![GIF](/doc/screens/gameplay.gif) \u003cbr /\u003e\n![Screen](/doc/screens/screen.png) \u003cbr /\u003e\n![Screen 3](/doc/screens/screen-3.png) \u003cbr /\u003e\n![Screen 2](/doc/screens/screen-2.png)\n\n## Todo\n- [ ] Improve client side prediction\n- [ ] Improve overall performance of server\n- [ ] Improve controls\n\n## Installation\nDevelopment mode (running at http://lvh.me:3000):\n```bash\nyarn install\nyarn run develop\n```\nProduction:\n```\nyarn install\nyarn run build:production\n```\n\n## Features\n- Client side prediction\n- High performance isometric engine using WebGL 2.x\n- Neural networks trained using evolution algorithms\n- Function precompilation in stuct-pack deserializers\n- Physics engine\n- Optimistic forms\n\n## Goals\n- Use monorepo, separated logic\n- Create tiny matrix math library\n- Create 3D isometric WebGL 2.0 functional wrapper(it should handle depth sorting and other stuff)\n- Car steering logic (using Marco Monster approach)\n- Procedural generated racetrack\n- Bots using Neural Network for AI(see neural-cars)\n- Multiplayer\n\n## Parts\n### Neural Network Implementation\n\n**forward propagation:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/packages/neural-network/src/unsafe/forwardPropagate.js\n\n**backward propagation:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/packages/neural-network/src/unsafe/backwardPropagate.js\n\n**evolution population train generation:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/packages/neural-network/src/genetic/forkPopulation.js#L70\n\n**ai car driver:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/drivers/neural/CarNeuralAI.js\n\n**ai cars trainer:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/drivers/neural/CarNeuralTrainer.js\n\n**cars intersection rays:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/drivers/neural/CarIntersectRays.js\n\n\n### Quad Tree\n**implementation:**\nhttps://github.com/Mati365/micro-racing/blob/master/src/packages/quad-tree/src/index.js\n\nQuad Tree handles multiple moving objects as list, stores only static objects\n\n### CSS in JS implementation\nhttps://github.com/Mati365/micro-racing/tree/master/src/packages/fast-stylesheet\n\n### Bezier lines and de Castelja algorithm implementation\nhttps://github.com/Mati365/micro-racing/blob/master/src/packages/beizer-lines/src/index.js\n\n### Car steering logic based on Marco Monster docs\nhttps://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/physics/CarPhysicsBody.js#L43\n\n### Server update loop\nhttps://github.com/Mati365/micro-racing/blob/master/src/network/server/RoomRacing.js#L148\n\n## See also\nhttps://webcache.googleusercontent.com/search?q=cache%3A5cH3UfBvb2YJ%3Avodacek.zvb.cz%2Farchiv%2F681.html\u0026hl=en\u0026gl=us\u0026strip=1\u0026vwsrc=0\u0026fbclid=IwAR2jxD6EayJZqvcOSNOBHgww35indUbC6pAeVA_3XtTCckCVeabjnbEuJvI \u003cbr /\u003e\nhttp://buildnewgames.com/real-time-multiplayer/\u003cbr/\u003e\nhttps://codea.io/talk/discussion/6648/port-of-marco-monsters-2d-car-physics-now-with-video \u003cbr/\u003e\nhttps://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking \u003cbr/\u003e\nhttp://www.asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html \u003cbr/\u003e\nhttps://github.com/nadako/cars/blob/gh-pages/Car.hx \u003cbr/\u003e\nhttps://github.com/spacejack/carphysics2d/blob/master/marco/Cardemo.c\u003cbr/\u003e\nhttps://www.sevenson.com.au/actionscript/sat\u003cbr/\u003e\nhttp://www.dyn4j.org/2010/01/sat\u003cbr/\u003e\nHTML UI in AAA games:\u003cbr/\u003e\nhttps://www.gdcvault.com/play/1022055/How-to-Implement-AAA-Game\n\n## License\n[MIT](https://github.com/Mati365/kart-racing/blob/master/LICENSE.md)\n\n## Resources\nIcons:\nhttps://png.is/f/chatbot-robot-internet-bot-artificial-intelligence-icon-vector-robot/6051723894325248-201812161840.html\nhttps://icons8.com/icon/38824/meat\nhttps://www.kisscc0.com/clipart/u-turn-traffic-sign-turnaround-computer-icons-caut-y4h8ur/\nhttps://dryicons.com/icon/zombie-brains-icon-11516\nhttps://fontawesome.com/icons/car\n\nCars:\nhttps://opengameart.org/content/low-poly-cars\nhttps://free3d.com/3d-model/cartoon-low-poly-city-cars-pack-32084.html\n\nElements:\nhttps://free3d.com/3d-model/road-elements-40062.html\n\nMap Elements:\nhttps://sketchfab.com/3d-models/muro-hormigon-981c60ea68ce4fcfa168d56ff8ee59ca by talekliaran\n\nhttps://sketchfab.com/3d-models/cactus-low-poly-8027a1cceedb4d8189592f316b0c4704 by kaltyiontrish\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmati365%2Fmicro-racing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmati365%2Fmicro-racing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmati365%2Fmicro-racing/lists"}