Search the Community
Showing results for tags 'multiplayer'.
-
In this game you will use your special costume which allows you to transform into mechanical objects (Car, Rocket, Helicopter, Magnet, Motorcycle, ...) to avoid obstacles, collect Vortex Gems in levels and defeat the Assas (The bad guys who want to destroy the world). The Multiplayer mode allows you to participate in world championships with other players. With this game you will always discover a new way to have fun! Game link: • Web (HTML5) version (Gamemonetize.com) • Android version (Google Play)
-
Hey guys, As the title say, we're looking to buy .IO/multiplayer html5 games from game devs who abandoned their games or are looking to sell their game. Game must be good quality, bandwidth optimized, and we need to have access to Google analytics to see all the stats of the game before the purchase. We pay up to 5000$ depending on the quality of the game/stats. Please send us your games by PM / add us on Skype.
-
Ninja.io is a fast paced, 2D multiplayer shooter inspired by games like Soldat, Unreal Tournament and N-game. Currently implemented game modes include Capture the Flag and Deathmatch. It uses the Box2D physics engine to enable convincing rigid body simulation. Players can make various moves including backflips, rolls, proning, running, flying and crouching. The game is still under active development and I'm willing to devote a great deal of time to finishing this project. I've made a test server available and you can join it by following these steps: - Go to ninja.io - Play as Guest - Enter a username - Join CTF or Deathmatch. - Select primary and/or secondary weapon Press H to display table of controls. Decrease the size of the browser window in case it runs slow. I've noticed that some laptops and older systems have trouble maintaining adequate fps. It is currently not possible to register a username, but I've been making progress on an account and highscore system. The game server is currently located in Europe. I plan on running additional servers on other continents and for the site to serve as a gateway to the nearest game server when players join in order to minimize latency. 2 European and 3 North American servers are available. Any thoughts, feedback or suggestions would be much appreciated! Thanks. Edit - 15-12-2017: New version! Sound effects have finally been added, weapons & items have been updated & tweaked, libraries have been updated and many improvements have been made along with numerous bugfixes. Edit - 15-05-2019: Several versions later: lots of new stuff! Running in Pixi.js v5 now. Party mode has been added, several new maps, new weapons, new sounds, new UI, new account/profile management (WIP), new FX! More to come! I'm currently finishing the implementation of the account system and I'm working on several new maps. More updates will follow soon!
-
Hey ppl Before I was developing IconiX browser game, and I'm still am. But to switch a bit and not get bored I'm now also making a bit different game, but still IconiX as parent for code-base, heh. Also multiplayer, but as a TowerDefence where ppl need to defend there 'base' [a Ukrainian city from russian (orc) army]. Not available yet, but video attached: And discord channel for any discussions or questions https://discord.gg/eZyngWMv
-
MATRIX-ENGINE STATUS - [Integrated PWA addToHomePage/cache/] ✔ - [Integrated raycast (hit trigger detect), bvh animation] ✔ - [Basic Physics implementation based on cannon.js] ✔ - [FirstPersonController/SceneController Drag and navigation scene] ✔ - [Basic's Shadows vs lights (GLSL)] ✔ Description ℹ This is small but inspiring project. The benefits of this project is offering an overview of the entire application logic, easy native implementations (hybrid app), object structural. Thanks to Mr.Keestu i use (gl-program-structure) new version of glmatrix (2.0). Push&Pop matrix just like in opengles 1.1. Also can be downgraded to openGLES 1.1. webGL Lightweight library based on glmatrix engine. For multiplayer used webRTC done with io socket. Physics done with last version of cannon.js. I use free software Blender 2.90.1 for 3d Object mesh works. MatrixEngine is Blender frendly orientend lib. Also mixamo.com is great service used for creating my assets. Limitation ⚠ Basic implementation for physics (Cube, Sphere) Raycast not work after walk behind the object in first person mode Only static object cast spot light in right way for now. Need general more improvement on GLSL part. Next Features 🔜 General improvements in Lights section. Shaders must be improved based on work Links -> https://webglfundamentals.org/webgl/lessons/ For npm users recommended Use starter project: https://github.com/zlatnaspirala/matrix-engine-starter with command: npm i npm run build.all Project template in matrix-engine-starter Slot Mashine https://maximumroulette.com/apps/matrix-engine-starter/projects/matrix-slot/index.html Live Demos https://maximumroulette.com/apps/matrix-engine/examples-build.html https://maximumroulette.com/apps/matrix-engine/app-build.html https://fps-matrix-engine.vercel.app How to use it from npm services [codepen examples] [1.7.9] Lights - Who to use matrix-engine on codepen: https://codepen.io/zlatnaspirala/full/OJZXMWR BHV Pseudo Skeletal animation: https://codepen.io/zlatnaspirala/full/OJQdGVM Physics (cannon.js) https://codepen.io/zlatnaspirala/pen/rNvLGxE?editors=0010 Install dependencies Matrix engine keep minimum dependency. uglify-js, minify browserify, watchify npm run install.dep npm i @Note: For windows users maybe you will need to add browserify to the env PATH if you got errors on commands npm run build.*. Help for localhost dev stage Build Application bundle script From [1.8.0] you can use build for develop with watch task: npm run examples npm run app @Note: If you use unsecured http protocol no build needed at all just navigate to the html file who loade script with type=module. No need for this any more but you can use it. For production/public server you will use npm run build.XXX commands. and then upload project to the usually /var/www/html/. app-build.html , examples-build.html loads compiled javascript type text/javascript. Build entry App.js npm run build.app Now navigate to the app-build.html page. Build entry App-Examples.js npm run build.examples Now navigate to the examples-build.html page. Build just library npm run build.lib Build with uglify build.app.ugly; Build ALL build.all; After all for production is recommended to use compressed script. Production Final (bash): ./compress Switch example with url params Usefull also for production for switching whole pages/apps. https://localhost/matrix-engine/query.html?u=adding_color_cube https://localhost/matrix-engine/query-build.html?u=adding_color_cube Code access: const QueryString = matrixEngine.utility.QueryString; Take a look at query-build.html List of examples: Adding color cube Adding color pyramyde Adding color square Adding tex square with raycast Adding color triangle Adding geometry Adding multi (compose) textures Adding square texture Blending Audion manipulation Camera texture (stream texture) Cube Cube Geometry Cube Light & texture Cube light dynamic Custom texture First Person controller Load obj files - UV maps Object animation -morh sequence Object animation mesh indices calculation JS1Kilo examples implementation Porting 2D canvas (Active textures) Sphere geometry Texture uv manipulation Videos textures Physics Cube with force on raycast trigger Physics Sphere BVH loader, animation play Load obj sequences FPShooter example (+Sounds) [WIP] specular_light_basic -> global light position test [WIP] Lens effect shaders for cube [WIP] Features description Camera config In ./program/manifest.js. Access is App.camera. Note: One of params FirstPersonController or SceneController must be false. FirstPersonController is classic first person view with movement WASD and mouse look. SceneController use direct input WASD. To make camera angle view change press shift to enable camera angle. Middle mouse button will enable drag scene to left/right/top/down. Mouse middle wheel change work only when shift is pressed. camera: { viewAngle: 45, nearViewpoint: 0.1, farViewpoint: 1000, edgeMarginValue: 100, FirstPersonController: false, SceneController: false, sceneControllerDragAmp: 0.1, sceneControllerDragAmp: 0.1, speedAmp: 0.5, sceneControllerEdgeCameraYawRate: 3, sceneControllerWASDKeysAmp: 0.1 }, Range of matrixEngine.Events.camera.pitch in ForstPersonController is (-33 to 33). To get access for camera use matrixEngine.Events.camera. Typically looks: { "roll": 0, "rollRate": 0, "rallAmp": 0.05, "pitch": 0.24500000000000632, "pitchRate": 0, "yaw": -6945.400000016527, "yawRate": 0, "xPos": 5.1753983300242155, "yPos": 2, "zPos": -21.90917813969003, "speed": 0, "yawAmp": 0.05, "pitchAmp": 0.007 } Light And Shadows [1.7.6] activateShadows works only for cube for now. world.Add("cubeLightTex", 1, "myCube4", textuteImageSamplers); App.scene.myCube4.activateShadows(); App.scene.myCube4.shadows.activeUpdate(); App.scene.myCube4.shadows.animatePositionY(); If you wanna color vertex but with direction and ambient light then: // Simple direction light world.Add("cubeLightTex", 1, "myCube7", textuteImageSamplersTest); App.scene.myCube7.position.setPosition(3,3,-11); App.scene.myCube7.geometry.colorData.SetGreenForAll(0.5) App.scene.myCube7.geometry.colorData.SetRedForAll(0.5) App.scene.myCube7.geometry.colorData.SetBlueForAll(0.5) App.scene.myCube7.deactivateTex(); Make square pattern // Custom generic textures. Micro Drawing. // Example for arg shema square for now only. var options = { squareShema: [4,4], pixels: new Uint8Array(4 * 4 * 4), style: { type: 'chessboard', color1: 0, color2: 255 } }; App.scene.myCube9.textures.push( App.scene.myCube9.createPixelsTex(options) ); Physics Physics based on cannon.js Support list : 😇 cube sphere Example with physics and raycast hit detect: App.camera.SceneController = true; canvas.addEventListener('mousedown', (ev) => { matrixEngine.raycaster.checkingProcedure(ev); }); window.addEventListener('ray.hit.event', (ev) => { console.log("You shoot the object! Nice!", ev) /** * Physics force apply */ if (ev.detail.hitObject.physics.enabled == true) { ev.detail.hitObject.physics.currentBody.force.set(0,0,1000) } }); var tex = { source: ["res/images/complex_texture_1/diffuse.png"], mix_operation: "multiply", }; // Load Physics world! let gravityVector = [0, 0, -9.82]; let physics = world.loadPhysics(gravityVector); // Add ground physics.addGround(App, world, tex); world.Add("cubeLightTex", 1, "CUBE", tex); var b = new CANNON.Body({ mass: 5, position: new CANNON.Vec3(0, -15, 2), shape: new CANNON.Box(new CANNON.Vec3(1, 1, 1)) }); physics.world.addBody(b); // Physics App.scene.CUBE.physics.currentBody = b; App.scene.CUBE.physics.enabled = true; const objGenerator = (n) => { for(var j = 0;j < n;j++) { setTimeout(() => { world.Add("cubeLightTex", 1, "CUBE" + j, tex); var b2 = new CANNON.Body({ mass: 1, linearDamping: 0.01, position: new CANNON.Vec3(1, -14.5, 15), shape: new CANNON.Box(new CANNON.Vec3(1, 1, 1)) }); physics.world.addBody(b2); App.scene['CUBE' + j].physics.currentBody = b2; App.scene['CUBE' + j].physics.enabled = true; }, 1000 * j) } } objGenerator(100) Networking [1.8.0] Networking based on webRTC. If you wanna use multiplayer mode you need to run intro folder networking/ next commands: npm i node matrix-server.js Networking Support Methods list: ✅😇 Any scene object: ➡ position SetX() SetY() SetZ() ➡ rotation.rotateX() rotateY() rotateZ() Cube, Sphere, Square ➡ geometry.setScale() ➡ geometry.setScaleByY() ➡ geometry.setScaleByZ() ➡ geometry.setScaleByZ() ➡ geometry.setTexCoordScaleFactor() Pyramid ➡ geometry.setScale() ➡ geometry.setSpitz() Networking minimal example export var runThis = world => { world.Add("pyramid", 1, "MyCubeTex"); world.Add("square", 1, "MyColoredSquare1"); // Must be activate matrixEngine.Engine.activateNet(); // Must be activate for scene objects also. // This is only to force avoid unnecessary networking emit! App.scene.MyCubeTex.net.enable = true; App.scene.MyCubeTex.net.activate(); App.scene.MyColoredSquare1.net.enable = true; App.scene.MyColoredSquare1.net.activate(); // Just call it normally App.scene.MyCubeTex.position.SetZ(-8); App.scene.MyColoredSquare1.position.SetZ(-8); }; It is perfect solution webGL vs webRTC. Origin code used broadcaster class from visual-ts game engine project. Custom textures We just override function for texture executing code. Next level is full custom opportunity, geometry, collision, networking etc. App.scene.MySquareTexure1.custom.gl_texture = function (object, t) { world.GL.gl.bindTexture(world.GL.gl.TEXTURE_2D, object.textures[t]); world.GL.gl.texParameteri(world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_MAG_FILTER, world.GL.gl.LINEAR); world.GL.gl.texParameteri(world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_MIN_FILTER, world.GL.gl.LINEAR); world.GL.gl.texParameteri(world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_WRAP_S, world.GL.gl.CLAMP_TO_EDGE); world.GL.gl.texParameteri(world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_WRAP_T, world.GL.gl.CLAMP_TO_EDGE); world.GL.gl.texImage2D( world.GL.gl.TEXTURE_2D, 0, // Level of details world.GL.gl.RGBA, // Format world.GL.gl.RGBA, world.GL.gl.UNSIGNED_BYTE, // Size of each channel object.textures[t].image ); world.GL.gl.generateMipmap(world.GL.gl.TEXTURE_2D); }; Opengles native cubeMap [1.8.5] If you wanna custom canvasd2d draws for aech cube side New tag cubeMap takes texture.source empty array. Canvas2d Example: /** * @description * What ever you want! * It is 2dCanvas context draw func. */ function myFace(args) { const {width, height} = this.cubeMap2dCtx.canvas; this.cubeMap2dCtx.fillStyle = args[0]; this.cubeMap2dCtx.fillRect(0, 0, width, height); this.cubeMap2dCtx.font = `${width * args[2]}px sans-serif`; this.cubeMap2dCtx.textAlign = 'center'; this.cubeMap2dCtx.textBaseline = 'middle'; this.cubeMap2dCtx.fillStyle = args[1]; this.cubeMap2dCtx.fillText(args[3], width / 2, height / 2); } var tex = { source: [], mix_operation: "multiply", cubeMap: { type: '2dcanvas', drawFunc: myFace, sides: [ // This is custom access you can edit but only must have // nice relation with your draw function ! // This is example for render 2d text in middle-center manir. // Nice for 3d button object! {faceColor: '#F00', textColor: '#28F', txtSizeCoeficient: 0.8, text: 'm'}, {faceColor: '#FF0', textColor: '#82F', txtSizeCoeficient: 0.5, text: 'a'}, {faceColor: '#0F0', textColor: '#82F', txtSizeCoeficient: 0.5, text: 't'}, {faceColor: '#0FF', textColor: '#802', txtSizeCoeficient: 0.5, text: 'r'}, {faceColor: '#00F', textColor: '#8F2', txtSizeCoeficient: 0.5, text: 'i'}, {faceColor: '#F0F', textColor: '#2F8', txtSizeCoeficient: 0.5, text: 'x'} ] } }; Classic images: If you wanna load images, see example: world.cubeMapTextures([ 'res/images/cube/1.png', 'res/images/cube/2.png', 'res/images/cube/3.png', 'res/images/cube/4.png', 'res/images/cube/5.png', 'res/images/cube/6.png', ], (imgs) => { var tex = { source: [...imgs], mix_operation: "multiply", cubeMap: { type: 'images', } }; world.Add("cubeMap", 1, "myCubeMapObj", tex); }); BVH Matrix Skeletal [1.5.0] New deps pack bvh-loader. It is bvh parser created for matrix-engine but can be used for any other graphics language. const options = { world: world, autoPlay: true, myFrameRate: 10, showOnLoad: false, // if autoPLay is true then showOnLoad is inactive. type: 'ANIMATION', // "TPOSE' | 'ANIMATION' loop: 'playInverse', // true | 'stopOnEnd' | 'playInverse' | 'stopAndReset' globalOffset: [-30, -180, -155], skeletalBoneScale: 6, boneNameBasePrefix: 'backWalk', skeletalBlend: { paramDest: 7, paramSrc: 6 }, // remove arg for no blend boneTex: { source: [ "res/icons/512.png" ], mix_operation: "multiply", }, // pyramid | triangle | cube | square | squareTex | cubeLightTex | sphereLightTex' drawTypeBone: 'squareTex' }; const filePath = 'https://raw.githubusercontent.com/zlatnaspirala/bvh-loader/main/javascript-bvh/example.bvh'; var myFirstBvhAnimation = new matrixEngine.MEBvhAnimation(filePath, options); Live demo https://codepen.io/zlatnaspirala/pen/OJQdGVM Raycast cube , square, triangle, obj (ObjLoader) [1.8.4] From 1.8.4 raycast hit trigger works for obj's. Raycast works fine also in firstPersonCamera operation. Raycast work perfect after local single rotation x, y, or z. Combination rotx and roty works , roty and rotz only with rotx = 180 for now. Bug if walk behind object then turn arround and try raycast but no work for now. Usage: canvas.addEventListener('mousedown', (ev) => { matrixEngine.raycaster.checkingProcedure(ev); }); canvas.addEventListener('ray.hit.event', (ev) => { alert("You shoot the object! Nice") }); First person controller: If you activate this flag you get fly/free camera controller by default. // In one line activate also deactivate. App.camera.FirstPersonController = true; Animated female droid (morph targets): // Obj Loader function onLoadObj(meshes) { // No need from [1.8.2] // App.meshes = meshes; for (const key in App.meshes) { matrixEngine.objLoader.initMeshBuffers(world.GL.gl, App.meshes[key]); } textuteImageSamplers2 = { source: ['res/images/RustPaint.jpg'], mix_operation: 'multiply' }; setTimeout(function () { var animation_construct = { id: 'female', meshList: meshes, // from [1.8.2] sumOfAniFrames: 18, currentAni: 0, speed: 3 }; world.Add('obj', 1, 'female', textuteImageSamplers2, App.meshes.female, animation_construct); App.scene.female.position.y = -3; App.scene.female.rotation.rotationSpeed.z = 20; App.scene.female.position.z = -13; // App.scene.armor.mesh.setScale(5) }, 100); } // Custom list 1, 3, 5, 9 matrixEngine.objLoader.downloadMeshes( { female: 'res/3d-objects/female/female_000001.obj', female1: 'res/3d-objects/female/female_000003.obj', female2: 'res/3d-objects/female/female_000005.obj', female3: 'res/3d-objects/female/female_000009.obj', ... }, onLoadObj ); // From [1.8.2] you can use `makeObjSeqArg` matrixEngine.objLoader.downloadMeshes( matrixEngine.objLoader.makeObjSeqArg( { id: objName, path: "res/bvh-skeletal-base/swat-guy/seq-walk/low/swat", from : 1, to: 34 }), onLoadObj ); Blending: // Use it App.scene.female.glBlend.blendEnabled = true; App.scene.female.glBlend.blendParamSrc = ENUMERATORS.glBlend.param[4]; App.scene.female.glBlend.blendParamDest = ENUMERATORS.glBlend.param[4]; Load Obj with UV map (Blender export tested): For more details dee this example script: load_obj_file.js Video texture: New way: There is no prefix for path any more. Fixed autoplay on AFTRE FIRST CLICK. Multi textures loading. Video texture corespond with direction & ambient light. Important it is direct pass from video to webgl textures. No canvad2d context. NOT WORKING with shadows for now. App.scene.outsideBox.streamTextures = new VT( "res/video-texture/lava1.mkv" ); TODO: Add arg { mixWithCanvas2d } Old way [still present]: world.Add('cubeLightTex', 1, 'TV', textuteImageSamplers, App.meshes.TV); App.scene.TV.streamTextures = new VIDEO_TEXTURE('Galactic Expansion Fractal Morph [Official Video]'); Camera texture: App.scene.TV.streamTextures = new ACCESS_CAMERA('webcam_beta'); MatrixBVHCharacter (MEBvhAnimation) MatrixBVHCharacter feature use class matrixEngine.MEBvhAnimation. Its load primitives for bvh skeletal. MatrixBVHCharacter is proccess where we load pre defined skelatal obj parts(head, neck, legs...) . @Note Human character failed for now but func works. Nice for primitive obj mesh bur rig must have nice description of position/rotation. In maximo skeletal bones simple not fit. If you pripare bones you can get nice bvh obj adaptation for animations. mocap set of assets looks better for this operation. Example Code: const options = { world: world, // [Required] autoPlay: true, // [Optimal] showOnLoad: false, // [Optimal] if autoPLay is true then showOnLoad is inactive. type: 'ANIMATION', // [Optimal] 'ANIMATION' | "TPOSE' loop: 'playInverse', // [Optimal] true | 'stopOnEnd' | 'playInverse' | 'stopAndReset' globalOffset: [-30, -180, -155], // [Optimal] for 1.5 diff from obj seq anim skeletalBoneScale: 2, // [Optimal] /*skeletalBlend: { // [Optimal] remove arg for no blend paramDest: 4, paramSrc: 4 },*/ boneTex: { source: [ "res/images/default/default-pink.png", ], mix_operation: "multiply", }, drawTypeBone: "matrixSkeletal", matrixSkeletal: "res/bvh-skeletal-base/y-bot/matrix-skeletal/", objList: ['spine', 'hips', 'head'] , matrixSkeletalObjScale: 80, // [Optimal] // Can be predefined `MatrixSkeletal` prepared skeletal obj parts/bones. // Can be primitives: // pyramid | triangle | cube | square | squareTex | cubeLightTex | sphereLightTex // New optimal arg // Sometime we need more optimisation ignoreList: ['spine1'], ifNotExistDrawType: 'triangle' }; const filePath = "res/bvh/Female1_B04_StandToWalkBack.bvh"; var myFirstBvhAnimation = new matrixEngine.MEBvhAnimation(filePath, options); This is folder for obj parts (head arm legs ...) Filenames are simplefield like head.obj , arm.obj without any prefix from constructor... matrixSkeletal: "res/bvh-skeletal-base/y-bot/matrix-skeletal/", Take a look example: matrix_skeletal.js. Character (ObjLoader/morph targets) This good in runtime bad for loading procedure. How to update character animation? Maximo -> download dea or fbx -> import intro blender Import multi or one animation. -> blender export -> obj (animation) This is new feature from [1.8.2]. Take a look at : load_obj_sequence.js For now engine use objLoader to load all morphs. matrixEngine.objLoader.downloadMeshes( matrixEngine.objLoader.makeObjSeqArg( { id: objName, path: "res/bvh-skeletal-base/swat-guy/anims/swat-multi", from: 1, to: 61 }), onLoadObj ); In onLoadObj callback function: var animArg = { id: objName, meshList: meshes, // sumOfAniFrames: 61, No need if `animations` exist! currentAni: 0, // speed: 3, No need if `animations` exist! // upgrade - optimal animations: { active: 'walk', walk: { from: 0, to: 35, speed: 3 }, walkPistol: { from: 36, to: 60, speed: 3 } } }; FirstPersonShooter examples [WIP] Just like in eu4 shooter we dont need whole character mesh for FPSHooter view. I cut off no hands vertices in blender to make optimised flow. Feature [1.8.12] App.events Access. Take a look at the apps\fps_player_controller.js example. App.events.CALCULATE_TOUCH_DOWN_OR_MOUSE_DOWN = (ev, mouse) => { // From [1.8.12] // checkingProcedure gets secound optimal argument // for custom ray origin target. // mouse console.log(mouse.BUTTON) if(mouse.BUTTON_PRESSED == 'RIGHT') { // Zoom } else { // This call represent `SHOOT` Action. // And it is center of screen matrixEngine.raycaster.checkingProcedure(ev, { clientX: ev.target.width / 2, clientY: ev.target.height / 2 }); } }; WIP calculating for fixing FPS camera view. [1.8.11] New 3dObject property isHUD. If you setup this to the true value object will escape world rotation/translation. Only local translation is active. This is good for HUD Menu in 3d space. Texture editor (runtime): Using Vjs3 with Editor use: App.scene.outsideBox.streamTextures = new Vjs3( "./2DTextureEditor/actual.html", "actualTexture" ); Running Editor Tool npm run run.tex.editor // or npm run te After creating 2d texture direct on page at the end run: npm run build.tex.editor to make build final pack. Imports note we can use any canvas 2d app [anyCanvas] . In examples: porting2d.js [Old VJS] Example of anyCanvas porting_text.js [Vjs3] porting2d_particle.js [Vjs3] It is very powerfull tool! Research Vjs3 source examples at: https://github.com/zlatnaspirala/visualjs On NPM Service npm i visual-js , matrix engine already have visual-js , visual-js-server editor backend part. To show/hide iframe use: App.scene.outsideBox - is any object who have streamTextures LOADED with 2DCANVAS. App.scene.outsideBox.streamTextures.showTextureEditor(); E('HOLDER_STREAMS').style.display = 'none'; Access to the [any] canvas2d program: anyCanvas(path-of-html,name-of-canvas) App.scene.outsideBox.streamTextures = new anyCanvas( "./apps/funny-slot/", "HELLO_WORLD") Live editor [actual.js predefined] Old VJS loading with anyCanvas() Old Live demo: Video and webcam works at: https://maximumroulette.com/webgl2/examples.html Changes: From [1.8.14] Html's Every static file / resource moved to the new folder ./public Improved FPShooter example , added collision box for player. From [1.8.13] MatrixSounds Access object App.sounds. Usage: // Play source audio [single instance]. App.sounds.createAudio('music', 'res/music/background-music.mp3'); // Play simultanius same source audio. App.sounds.createAudio('shoot', 'res/music/single-gunshot.mp3', 5); From [1.8.12] Draw scene list swap items options must be done! From [1.8.0] Added watchify. We have support for real time connections based on webRTC. You must work on https protocol even in localhost. Change in program/manifest net = false if you dont wanna use networking. Node.js Multiplayer Server based on webRTC. Take a look at the folder ./netwotking. Run it: cd networking node matrix.server.js If you wanna in terminal popup then run (bash/work on win also if you have bash) dedicated.sh./ or dedicated.bat. From [1.7.11] No need for: // matrixEngine.Engine.load_shaders('shaders/shaders.html'); Initial Shaders now loads from code (inside engine). No need any action. PWA Fully runned Integrated Add to Home page and regular html5 page options. In same time fixed all autoplay audio and video context construction. It is good to consult pwa test on page. Best way is to keep it on 100% pass. Secured 🛡 No Dependabot alerts opened. Credits && Licence: Video material used from :From youtube.com : Electric sheep - a facinating animated flame fractal TheMrNgaard Creative Commons Attribution licence (reuse allowed) Project Base Structure inspired by Copyright (C) 2014 Tappali Ekanathan Keestu ([email protected]) GNU General Public License Textures download from http://textures.com Dinamic texture bitcoin used from: Author:Ioannis Cherouvim GitHub:cherouvim Reddit:/r/cherouvim Website:cherouvim.com Compo:canvas Demo link:https://js1k.com/2017-magic/demo/2853 Shortlink:https://js1k.com/2853 Female 3d Object http://www.blendswap.com/blends/view/26225 Creative Commons Attribution 3.0 http://www.blendswap.com/users/view/AndresCuccaro https://freestocktextures.com/texture/bark-wood-plant,122.html https://github.com/Necolo/raycaster Great https://www.mixamo.com/ OBJECT LOADER http://math.hws.edu/graphicsbook/source/webgl/cube-camera.html Player character https://www.mixamo.com/#/?page=1&query=walk&type=Motion%2CMotionPack BVH collections from: Special thanks to the CMU Graphics Lab Motion Capture Database which provided the data http://mocap.cs.cmu.edu/` Used in examples: BLACK FLY by Audionautix | http://audionautix.com Music promoted by https://www.free-stock-music.com Creative Commons Attribution-ShareAlike 3.0 Unported https://creativecommons.org/licenses/by-sa/3.0/deed.en_US Networking based on https://github.com/muaz-khan/RTCMultiConnection https://unsplash.com/photos/8UDJ4sflous https://webgl-shaders.com/shaders/frag-lens.glsl https://www.fesliyanstudios.com/royalty-free-sound-effects-download/gun-shooting-300
-
- javascript
- webgl
-
(and 4 more)
Tagged with:
-
Hi I have just created a beginner's course on babylonJs on udemy named "Single & Multiplayer Game Development in Webgl's BabylonJs" I took permission from @Deltakosh to post the link on the forums Here you go ! https://www.udemy.com/single-multiplayer-game-development-in-webgls-babylonjs/?couponCode=BONUS10 Any comments are much appreciated, Thanks ! Ahmed
- 6 replies
-
- multiplayer
- udemy
-
(and 4 more)
Tagged with:
-
Hey guys, tldr: I'd love to know if any of you would be interested in a noBackend solution for turn based games. For you (as a game dev) that would mean just program 2 files for a game: client.js (all the game design) and server.js (the game logic, so that cheats are prevented) and upload them, and you would have your game online, with all the multiplayer functionality (login, invitation flow, game creation, notifications, chat) for free. These are not words in the air, most of the pieces are technically coded already. Longer version: After having spent an important time looking around, it seems that nowadays, making a multiplayer game cannot go without having to set up a backend and some kind of infra. More importantly, most games that I have seen that supposedly offer a multiplayer functionality, are actually lacking most of the important features to do so. In particular, it seems almost impossible to play with friends in any of them. And in a way, it totally makes sense: When you are an indie developer, what you're mostly interested in is designing a great game, not dealing with all the stuff that has to go around it. And the sad part is that some great games never make it online because of these barriers. I have been working on a game (adaptation of Risk) for a long time - can be found at http://plynd.com ; already mentionned in an earlier post on this forum. And as a matter of fact, all the extra stuff (what I call the beyond-the-game experience) really interests me, as I am a backend engineer originally. And all the work that I've done for Risk has no reason not to serve other people. Therefore I am turning this game into a platform, and these are the specs: - All the identity and game management flow is taken care of by the platform (think of : "you've been invited by .. to play" or "it is your turn") - The backend is provided to store your game state (think plain json) - The realtime and notification flow is for free => This would basically always set you up in a situation where n players have joined your game. Which means that, as a game developer you can just focus on 2 things: - implement all the game design within one client.js file. It is run in the browser of the user. nothing new there. - implement all the game logic that you do not want to run on the client side in server.js. This is where the game state should be updated (to react to players' events). This will run on our servers and you will have a seamless bridge to call these functions from the client.js file. This is not completely implemented yet, I am working hard to make it happen with a friend of mine. But we have technically proven all the pieces required to make it work. We are now working on making a very basic Connect-4 so people can see how it would really all work together. Note: the game would be available everywhere (iOS, Android, web) within dedicated apps (but that's HTML5, so you were expecting it right?) So (finally) comes the questions: would you see that as interesting? Would you use it? What would be your potential concerns? Aside from the technical aspect (that we are pretty confident about) do you think we are completely off somewhere? Thank you very much for reading this very long post! Laurent
- 9 replies
-
- multiplayer
- turn-based
-
(and 3 more)
Tagged with:
-
Base MMORPG - Node, MySQL, Colyseus, Parcel and Phaser 3
Damian Pastorini posted a topic in Phaser 3
Hi everyone! Before anything I wasn't sure if this was the correct place to post this, please moderators move it as you consider if this should go to some other place like Projects and Demos. https://github.com/damian-pastorini/dwdgame Also, please consider that this is my first implementation ever! I've never used neither Node.js, even less Parcel, Colyseus or Phaser, my world before this first incursion in game development was all about PHP and Magento, so that should give you an idea from where I'm coming. This quite awful but working example took me 75hs, including the time I've used for research and for decide which platform use for the server and the client. After all the research, Node + Colyseus and Phaser 3 looked as the better start point since I was familiar with JS and HTML of course but had zero knowledge about Unity (the other option I would like to use), but I've prefered make the learn curve not so slow. So.... This is a really simple base MMORPG game created based on the Colyseus samples: https://github.com/gamestdio/colyseus-examples And on the Phaser 3 implementation from Jacky Rusly: https://github.com/jackyrusly/jrgame As you will see I've considerable modified how the jrgame was interacting with Socket.io in order to make it works as how the Colyseus example was working, I've thought that was the better way to do it (follow up on server ready samples and break apart the client sorry Jacky!) The game basics are login through DB, loader, scene change, players sync, but nothing like chat, items, or attacks was implemented here (so far). Here's the link to the repo: https://github.com/damian-pastorini/dwdgame Please feel free to create any tickets or pull requests for questions, fixes or improvements, I would love to get good feedback! I don't have a public link to show it yet but I'm planning to create a dev server soon (for now you will need to install it and run it to see it), at the end it will look like: https://jrgame.herokuapp.com But you will see the login screen first which in the server side will connect to the DB and all the players sync was done with Colyseus. I saw comments from people looking for Colyseus integrated with a DB engine (in this case I've chosen MySQL), so at least that part should be useful. I really hope this help more than one person, maybe someone like me who would love to get this as starting point. Best, Damian Reply- 18 replies
-
- multiplayer
- games
- (and 9 more)
-
Hey everyone! Here's my game that I launched just recently: Treasure Arena is a retro-inspired online battle-arena for up to 4 players (and/or bots). You can pick up various weapons, and block/jump/dodge to evade enemy projectiles. The goal is to defeat your opponents to get their coins -- The player who owns the most coins at the end of the round, wins. Play Treasure Arena Technology The game uses Canvas2D for drawing, WebAudio API (with fallback to SoundManager2), Fullscreen API, Websockets (through socket.io), and a bit of CSS3. You can find more screenshots and a gameplay video on the official site. Note: The game runs in Chrome (preferred), Firefox and IE9+. Mobile is not supported at the moment. Hope you enjoy, and any feedback is very welcome!
- 28 replies
-
- html5
- multiplayer
-
(and 1 more)
Tagged with:
-
Los Angeles, CA— Lucid Sight, the independent game studio behind MLB Champions, CSC with Star Trek, Herocade, Polyrunner, and several other games spanning VR, AR, and NFTs is announcing that it has raised $2.58 million to launch a cloud-hosted multiplayer service called Colyuseus Arena. Colyseus Arena is a fully managed solution that handles server management, infrastructure, and scaling so that game makers can focus on game design and development. The funding round was led by Galaxy Interactive. Other investors included VamosVentures, Goal Venture Partners, Gaingels, as well as existing investors. The new round brings total raised to $15.4 Million. Earlier this year Lucid Sight acquired Colyseus, the most popular open-source Node.js multiplayer framework. The Colyseus open-source framework has had over 300,000 downloads since it was created six years ago and averages 10,000 downloads per month. Lucid Sight created Colyseus Arena because the number one request from Colyseus game developers was a cloud-hosted solution for Colyseus. Colyseus Arena reduces or eliminates the need for dedicated networking and DevOps engineers in multiplayer games. “Networking and DevOps engineers have always created a $500k to $1MM annual drag on every multiplayer game Lucid Sight has ever created. Our goal with Arena is to bring that cost way down, so more styles of casual, hypercasual, and NFT games can afford rich multiplayer experiences. Colyseus will always be open-source and we made the lowest tier of Arena FREE because we wanted no barrier for developers to dive in and GET TO FUN FASTER.” said Lucid Sight CEO Randy Saaf. With Colyseus Arena, game developers can set up, manage and update their servers with a few clicks from an intuitive administration dashboard. Features include: Get started for FREE with an Indie/Dev plan. Easily manage your servers and add server-side logic from an intuitive dashboard. Optimized server configuration and infrastructure setup. Global availability with 7 data centers and regional access points. Worry-free scaling with tier 4 and up plans so when your game peaks there will be no interruptions. Enterprise-grade load balancing & custom matchmaking. 24/7 monitoring & DDoS Protection DevOps as a service for non-Colyseus users Host your custom Linux Servers. Host Unity / Unreal headless server. Get fully customized solutions for projects of all sizes. The simple setup allows you to GET TO FUN FASTER™. Lucid Sight began accepting Colyseus Arena Early Access sign-ups in Feb 2021 and has since amassed hundreds of customers with games supporting millions of Daily Active Users. Customers of note include Lightfox Games (Knight’s Edge), PM Studios (Squish), Tobspr (SchoolBreak.io), Kirka.io, and massively popular Indian streaming and short-form UGC video platform MX Media & Entertainment. “We are excited to use Colyseus Arena as the managed multiplayer server solution for Knight’s Edge. We see Lucid Sight as a valuable partner as we begin the journey of growing our game and supporting our players'' said Lightfox CEO Ryan Hanft-Murphy. Colyseus Arena can be used by all types of game developers but it proves uniquely powerful for multiplayer games that require a flexible server hosting solution. By utilizing a modern containers-centric technology stack, developers have instant scalability with a pay-for-usage billing model. "One of the fastest growing verticals we see for Colyseus Arena is our hosting of web, quick-play, instant-play games. These types of games typically run within another application or standalone on a mobile accessible website. For these games a flexible hosting plan that has the ability to scale from 1 CPU to 1000s CPUs and then back down again in a short period of time is essential and a service Arena provides. Combine this with Colyseus's small resource footprint and simple JavaScript programing language and you quickly see why Colyseus Arena provides the BEST solution for these instant play style multiplayer games." said Lucid Sight CTO Fazri Zubair. Lucid Sight has also seen Colyseus and Colyses Arena usage by non-game developers. Projects such as virtual office and event platform Teamflow, innovative school enrichment program Synthesis, and an immersive VR sports experience created by VRGlass are all examples of how Colyseus is being used by a wide variety of non-gaming developers. Lucid Sight is also using its experience as an innovator in the NFT space to provide Colyseus Arena to a number of NFT and metaverse projects. Interested developers can begin making multiplayer games and experiences by joining Arena Free to start.
-
- lucidsight
- indiedev
-
(and 4 more)
Tagged with:
-
How to invite friends 1-4 friends in one context. I saw an invite multiple friends one at a time in Ludo World and make an lobby with 4 people. when i searched through FB SDK Documentation i didn't see an option to invite multiple friends but only one on one contexts functions. Instant Games
- 1 reply
-
- phaser3
- instantgames
-
(and 1 more)
Tagged with:
-
Play the game here: https://internationalmafia.world/ The game is a incremental, idle multiplayer in Google Maps with mini-games for earning money. Start off by pickpocketing, and move up the ladder by selling drugs other players have farmed and distributed. Use the Google Map's Street view to capture hostages and then negotiate ransom with the FBI. Eventually you can build bases and your own buildings, claim territory, make enemies or allies with other players, trading partners or fierce competitors, all inside Google Maps. The game has around ~15 people who play regularly. I hope to gradually increase the playerbase eventually. The game is quickly growing and is updated almost daily. Technology used: Vue.JS, Firebase, Socket.IO, Google Maps API, Phaser 3, Node.JS
-
- multiplayer
- incremental
-
(and 2 more)
Tagged with:
-
plz accept my work this game is going to be fun!!! basketball.io a 2d multiplayer game related to soldat.io but basketball controls are wads or arrows to fly u right click on mouse the player will be a guest until he/she sign in and register more updates come soon it is a pixy js all that is different is that it is not a shooting game it is a basketball io game. i do not have pictures of it yet but soon I will here's the game link https://basketball.io
-
Hey guys, made a multiplayer game for my band's album release where you can explore The Sadlands world and hear tunes with a group. This is the first game I have ever made so would love to hear your thoughts! ❤️ https://thesadlands.com
-
Hello, I'm a web programmer with 3 years of experience (currently a senior developer). I've always been a fan of videogames and now I'm starting learning game development just for fun. Like in any type of development , you always face problems and learn of those. Sharing is the strongest tool to learn, you help other people to prevent/fix mistakes and they help you. What am I looking for?: People like me that is learning to develop games and want to meet other people to make games with them, share experiences, ask&answer questions. How will we organize? I have experience managing large Telegram groups and also creating bots for groups. It is a good starting point since most of the people always carry the phone everywhere and also has a web/desktop application, also Telegram offers us a direct communication without compromising your privacy (you don't need to give real info or phone number to the rest of the group). If we start growing, we can just move to another platform you want (Discord, Slack, whatever is of your preference). Do you have any project scheduled? Yes, I want to build a fun roguelike, here is my current roadmap of the game: I am an artist, can I join? Sure! I'm sure you can learn from us and we can learn from you, Keep in mind that sound artists, level designers, programmers.. work together and they need to understand all the other positions to work properly. Of course this is a flexible diagram, I don't do this as my job and I don't have any deadlines, creating a roadmap just helps me with organization so I don't start wrongly (which with end even worse :P). Have in mind that my only goal is just learning, I'm not in a rush to make money or finding a job Just feel free to contact me if you want to join or if you doesn't like something of my post.
-
Hello everyone, here's my current project, https://laserbots.io You can protect the base from zombies in coop mode or go head to head in a deathmatch against players. Keyboard & Mouse: Move mouse to aim, click to shoot. WASD to move. Mobile/Tablet: Tap to shoot, double tap to move. (This is still a little clunky, improvements to come). Gamepad: Any button to shoot, right stick to aim, left stick to move. Tech stack: babylon.js for graphics, inferno.js for website and UI, colyseus.js for server, Agones for server orchestration. Most of the core features are done, I marked it as WIP because I'll likely add more stuff in the future. I am desperately seeking feedback for this, so please let me know what you think. I also have the itch.io page here: https://scarybanana.itch.io/laserbots. Thank you
- 3 replies
-
- multiplayer
- babylonjs
-
(and 1 more)
Tagged with:
-
multiplayer [PHASER] BlockTanks - A Simple Multiplayer Tank Game
kevdude posted a topic in Game Showcase
Check out BlockTanks, a simple yet addicting MMO Tank Game made with nodeJS and Websockets. In BlockTanks, you move a tank and shoot players on the opposite team, getting as many kills as you can. No need to create an account, just type in a name and play! The game's features include: Real time player combat A maze-like map that two teams of tanks can navigate through Four types of power-ups Chat features Tank Skins I made a post about this game a few weeks back, and I have been working on the game since. Here are the new features: By popular request, I've made an invincibility power-up that lasts for ten seconds. The map changes every day to keep the game interesting. I have added more tank skins, along with a list of all the current working tank skins. Server bugs have been fixed to reduce server crashes. A respawn timer has been added and the kill count at the top has been redesigned. Play the game at: blocktanks-kevdude749.rhcloud.com Hope you like it! Also, if anyone has any tips/experience with promoting and marketing a game, I would be glad to know UPDATE: BlockTanks now has a bot feature which allows for single player gaming when no one else is online (which occurs often ). If you log on and there is no one else online, a bot will spawn on the other team and fight against you until someone else joins. Please give it a try and let me know what you think of the new AI! -
Hi friends, this is the new game of the company, it is a local multiplayer for up to 6 players at the same time, available on Google Play and Poki in its HTML5 version. HTML5 GOOGLE PLAY:
- 2 replies
-
- minibattles
- multiplayer
-
(and 2 more)
Tagged with:
-
Good evening world I'm new to posting anything like this online so bare with me if I meander a bit I'd like to present little something I've been working on for the last 5 weeks. In short, It's a work in progress incremental game about exploring space called Top Fuel Spacer. In long, It's an incremental game with a vast scope. The end game vision, is to have an incremental game with a tone of content. Tasks (i.e. Quests), collectibles, achievements, characters, customization, random generation, ui themes, prestige, conversation trees, research, engineering, building, hacking, mining, attacking, defending and chatting - single player and multiplayer. The laundry list of tasks can be found on this Trello board https://trello.com/b/lEMbH9W8/top-fuel-spacer My goal is to build a community driven game. Developed in tandem with feedback from players. The current build of the game can be found and experienced here https://top-fuel-spacer.herokuapp.com/ It's mostly a mere proof of concept skeleton, conceptually representing some of the systems, just 10% of the game if I'm being generous in estimation. Not much in terms of actual gameplay yet. What I'm looking for from you kind strangers of the internet, is some form of validation for this game. Your opinions. Your questions. Do you like it? Should I continue with it? Looking forward to your feedback. Have a good night PS: I've made a Discord thingy for the game https://discord.gg/ak3WBJ8
-
Kaetram Kaetram is an open-source game-engine created to aid those interested in entering the game development realm. The codebase is simple, clean, and intuitive. This project is intended to be used as a learning tool. The original idea is based on Little Workshop's demo game – BrowserQuest (BQ). This game uses original BQ assets as well as custom-made ones. The entire code-base has been written from scratch, using more modern approaches. GitHub Repo – https://github.com/Veradictus/Kaetram-Open Live Version – https://kaetram.com Join us on Discord – https://discord.gg/MmbGAaw Patreon – https://www.patreon.com/kaetram Features BQ was intended as an experiment to showcase HTML5 capabilities, since then, technology has only served to advance. Kaetram contains a lot of ideas and features that builds on top of its predecesor, a couple are: Multiplayer using Socket.IO Enhanced rendering engine (includes dynamic lighting, overlays, animated tiles) Region system (client receives only necessary data and saves it) Questing and achievements system. Plugin-based combat system (for bosses/special enemies). Supports RESTful API. Discord server integration. Cross-server private messaging and interactions. And much more Regions The region system sends data to the client according to the map data of the server. The collisions are checked both server-side and client-side to avoid cheating. The region system makes use of dynamic tiles, which are unlocked according to a player's progress. Furthermore, there is integrated support for instancing, where we can use a section of the map (or clone it) and reuse it for certain groups of players. The instancing is perfect for activities such as minigames, where we will want to run multiple instances in parallel. Tilemap Kaetram is built with modularity in mind, as such, the client supports multiple tileset parsing. The tilemap can easily be constructed using Tiled Map Editor. Using our map parsing tool you can easily export your creation to both the client and the server. Kaetram Hub There is also support for a hub server. This can help connect servers across one another, allowing players to interact with their friends across them in a variety of ways (private messaging and guilds). Furthermore, the hub serves as a gateway for determining what server to place players in. If a server is full, it simply returns another server that has room for the player.
-
Hello, Our company PlayingLab - www.playinglab.com is in the process of advanced work on the game called Magnificent Tennis - www.magnificenttennis.com - a multiplayer game in the free to play model. Magnificent Tennis is a cross-platform game designed and developed for web, iOS and Android platforms. GAMEPLAY: https://drive.google.com/file/d/1LRjl0vo1UmiQfzuVTV9if-xM6fLzvBbw/view?usp=sharing TECHNICAL SIDE: Game built with WebGL rendering library - ThreeJS. UI of the game was made with HTML, CSS and JS (jQuery, jQueryUI libraries). Mobile build was created using React Native: most part of the game is displayed via web view component, that communicates with mobile application using messages system. For social log in (Gmail, Facebook) Firebase service was used (JavaScript SDK). Also, it was used to store and synchronize user’s data. In-game purchases in the web version were implemented with a combination of Firebase and Stripe services. In the mobile version native store integrations are used for this purpose. Photon service (JavaScript SDK) was used for multiplayer implementation (random parametrized matchmaking, messages system). BETA: Soon we will release beta versions for browsers.
- 4 replies
-
- magnificent tennis
- magnificent
-
(and 6 more)
Tagged with:
-
Hey there! I am a selftaught hobby programmer and want to get more into game programming. This game is basically finished, but not thoroughly tested on multiple devices, so there might be bugs. As you can see in the screenshot, it is a really simple boardgame with no graphics . The player's goal is to get 4 of your stones in a line, but to avoid putting 3 stones in a line before. Here is the link to the game: https://kricki.rocks/4wins3loses/ And here is the link to the code, if you are interested: https://github.com/nicoa47/4wins3loses Since I am learning, I tried to code everything from the bottom up. Importantly, this game features an account system, so your highscores can be logged and you can play against other people over the internet. I'd love to here your feedback and, as I know it is rough around the edges, would like to know what should be "fixed" first. Thank you! Nico
-
- multiplayer
- boardgame
-
(and 2 more)
Tagged with:
-
Hi! Some time ago I made a PoC of a game backend server. It worked surprisingly well but that's it, I never fully finished it. Now I would like to build a full featured product out of it, but I need your opinion. Thanks to this form: https://forms.gle/Q9cD7dwsBLepw1498 I’ll know if it makes sense and what you would expect from a product like this. Thanks for all the comments and opinions!