All Projects → Mati365 → Micro Racing

Mati365 / Micro Racing

Licence: mit
🚗 🏎️ 🎮 online 3D multiplayer neural networks based racing game

Programming Languages

javascript
184084 projects - #8 most used programming language
es6
455 projects

Projects that are alternatives of or similar to Micro Racing

Hilo3d
Hilo3d, a WebGL Rendering Engine.
Stars: ✭ 123 (+23%)
Mutual labels:  game, html5, canvas
Tower game
💒 盖楼游戏 html5 canvas tower building game 🏢🏬🏦🏯🏰
Stars: ✭ 1,110 (+1010%)
Mutual labels:  game, html5, canvas
Wechart
Create all the [ch]arts by cax or three.js - Cax 和 three.js 创造一切图[表]
Stars: ✭ 152 (+52%)
Mutual labels:  bezier, html5, canvas
Tap Tap Adventure
Tap Tap Adventure is a massively online 2D MMORPG set in the medieval times with twists.
Stars: ✭ 123 (+23%)
Mutual labels:  game, websockets, html5
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (+38%)
Mutual labels:  game, multiplayer, html5
Phaser3 Docs
Phaser 3 Documentation and TypeScript Defs
Stars: ✭ 339 (+239%)
Mutual labels:  game, html5, canvas
One Html Page Challenge
Can you create something cool without modern tools?
Stars: ✭ 205 (+105%)
Mutual labels:  game, html5, canvas
Planck.js
2D JavaScript Physics Engine
Stars: ✭ 4,149 (+4049%)
Mutual labels:  physics-engine, html5, canvas
Hqchart
HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据替换接口
Stars: ✭ 1,126 (+1026%)
Mutual labels:  html5, canvas
Lance
Multiplayer game server based on Node.JS
Stars: ✭ 1,161 (+1061%)
Mutual labels:  multiplayer, websockets
Mage
Magic Another Game Engine
Stars: ✭ 1,180 (+1080%)
Mutual labels:  game, multiplayer
Tetr.js
🕹️ Tetris clone in HTML5 and JavaScript
Stars: ✭ 60 (-40%)
Mutual labels:  game, canvas
Soldat
Soldat is a unique 2D (side-view) multiplayer action game
Stars: ✭ 1,199 (+1099%)
Mutual labels:  game, multiplayer
Wheel Of Lunch
HTML5 randomised spinning wheel to select a place to eat by using a RESTful API to fetch local places.
Stars: ✭ 70 (-30%)
Mutual labels:  html5, canvas
Watchcarslearn
Self driving cars using NEAT
Stars: ✭ 59 (-41%)
Mutual labels:  neural-networks, canvas
Craft
A simple Minecraft clone written in C using modern OpenGL (shaders).
Stars: ✭ 8,957 (+8857%)
Mutual labels:  game, multiplayer
Fish
golang h5捕鱼游戏
Stars: ✭ 58 (-42%)
Mutual labels:  game, html5
Icon Machine
Web application for randomly generating pixel art icons.
Stars: ✭ 73 (-27%)
Mutual labels:  html5, canvas
Binari
Interactive code editor with a live binary tree visual designed to teach new developers the fundamentals of dynamic programming.
Stars: ✭ 82 (-18%)
Mutual labels:  html5, canvas
My Animate
使用 HTML5 / Canvas / CSS3 制作各种动画效果
Stars: ✭ 93 (-7%)
Mutual labels:  html5, canvas

micro-racing

multiplayer 3D isometric racing game written in WebGL 2.x. Steering(both): WSAD / Arrows.

Live demo: https://micro-racing.herokuapp.com/ (it uses free server so it can be really slow)

Gameplay

GIF
Screen
Screen 3
Screen 2

Todo

  • [ ] Improve client side prediction
  • [ ] Improve overall performance of server
  • [ ] Improve controls

Installation

Development mode (running at http://lvh.me:3000):

yarn install
yarn run develop

Production:

yarn install
yarn run build:production

Features

  • Client side prediction
  • High performance isometric engine using WebGL 2.x
  • Neural networks trained using evolution algorithms
  • Function precompilation in stuct-pack deserializers
  • Physics engine
  • Optimistic forms

Goals

  • Use monorepo, separated logic
  • Create tiny matrix math library
  • Create 3D isometric WebGL 2.0 functional wrapper(it should handle depth sorting and other stuff)
  • Car steering logic (using Marco Monster approach)
  • Procedural generated racetrack
  • Bots using Neural Network for AI(see neural-cars)
  • Multiplayer

Parts

Neural Network Implementation

forward propagation: https://github.com/Mati365/micro-racing/blob/master/src/packages/neural-network/src/unsafe/forwardPropagate.js

backward propagation: https://github.com/Mati365/micro-racing/blob/master/src/packages/neural-network/src/unsafe/backwardPropagate.js

evolution population train generation: https://github.com/Mati365/micro-racing/blob/master/src/packages/neural-network/src/genetic/forkPopulation.js#L70

ai car driver: https://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/drivers/neural/CarNeuralAI.js

ai cars trainer: https://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/drivers/neural/CarNeuralTrainer.js

cars intersection rays: https://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/drivers/neural/CarIntersectRays.js

Quad Tree

implementation: https://github.com/Mati365/micro-racing/blob/master/src/packages/quad-tree/src/index.js

Quad Tree handles multiple moving objects as list, stores only static objects

CSS in JS implementation

https://github.com/Mati365/micro-racing/tree/master/src/packages/fast-stylesheet

Bezier lines and de Castelja algorithm implementation

https://github.com/Mati365/micro-racing/blob/master/src/packages/beizer-lines/src/index.js

Car steering logic based on Marco Monster docs

https://github.com/Mati365/micro-racing/blob/master/src/network/shared/logic/physics/CarPhysicsBody.js#L43

Server update loop

https://github.com/Mati365/micro-racing/blob/master/src/network/server/RoomRacing.js#L148

See also

https://webcache.googleusercontent.com/search?q=cache%3A5cH3UfBvb2YJ%3Avodacek.zvb.cz%2Farchiv%2F681.html&hl=en&gl=us&strip=1&vwsrc=0&fbclid=IwAR2jxD6EayJZqvcOSNOBHgww35indUbC6pAeVA_3XtTCckCVeabjnbEuJvI
http://buildnewgames.com/real-time-multiplayer/
https://codea.io/talk/discussion/6648/port-of-marco-monsters-2d-car-physics-now-with-video
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
http://www.asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html
https://github.com/nadako/cars/blob/gh-pages/Car.hx
https://github.com/spacejack/carphysics2d/blob/master/marco/Cardemo.c
https://www.sevenson.com.au/actionscript/sat
http://www.dyn4j.org/2010/01/sat
HTML UI in AAA games:
https://www.gdcvault.com/play/1022055/How-to-Implement-AAA-Game

License

MIT

Resources

Icons: https://png.is/f/chatbot-robot-internet-bot-artificial-intelligence-icon-vector-robot/6051723894325248-201812161840.html https://icons8.com/icon/38824/meat https://www.kisscc0.com/clipart/u-turn-traffic-sign-turnaround-computer-icons-caut-y4h8ur/ https://dryicons.com/icon/zombie-brains-icon-11516 https://fontawesome.com/icons/car

Cars: https://opengameart.org/content/low-poly-cars https://free3d.com/3d-model/cartoon-low-poly-city-cars-pack-32084.html

Elements: https://free3d.com/3d-model/road-elements-40062.html

Map Elements: https://sketchfab.com/3d-models/muro-hormigon-981c60ea68ce4fcfa168d56ff8ee59ca by talekliaran

https://sketchfab.com/3d-models/cactus-low-poly-8027a1cceedb4d8189592f316b0c4704 by kaltyiontrish

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].