All Projects â†’ croquet â†’ worldcore

croquet / worldcore

Licence: other
Croquet-based multi-player game engine

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to worldcore

virtual-dom
Application framework for real time collaboration using Croquet
Stars: ✭ 14 (-17.65%)
Mutual labels:  multiplayer, croquet
XREngine
Immersive infrastructure for everyone. Everything you need to build and deploy scalable realtime 3D social apps and more. 🤖 🚀 👓 🚀 🕹ī¸ 🚀 🧑đŸŋ‍🚀
Stars: ✭ 423 (+2388.24%)
Mutual labels:  multiplayer
LixD
Lix: Lemmings-like game with puzzles, editor, multiplayer
Stars: ✭ 80 (+370.59%)
Mutual labels:  multiplayer
HLADM
Half-Life: Alyx: Deathmatch
Stars: ✭ 24 (+41.18%)
Mutual labels:  multiplayer
FiveMultiplayer
www.five-multiplayer.net/
Stars: ✭ 25 (+47.06%)
Mutual labels:  multiplayer
voxelsrv
Voxel browser game inspired by Minecraft
Stars: ✭ 49 (+188.24%)
Mutual labels:  multiplayer
SocketIOUnity
A Wrapper for socket.io-client-csharp to work with Unity.
Stars: ✭ 69 (+305.88%)
Mutual labels:  multiplayer
Cavemen-GGJ2019
A multiplayer survival game developed during Global Game Jam 2019.
Stars: ✭ 21 (+23.53%)
Mutual labels:  multiplayer
broken seals
An open source third person action RPG with multiplayer support.
Stars: ✭ 223 (+1211.76%)
Mutual labels:  multiplayer
nakama-defold
Defold client for Nakama server.
Stars: ✭ 58 (+241.18%)
Mutual labels:  multiplayer
thundernetes
Thundernetes makes it easy to run your game servers on Kubernetes
Stars: ✭ 215 (+1164.71%)
Mutual labels:  multiplayer
software-inc-multiplayer
A multiplayer mod for Software Inc written in C# for Unity.
Stars: ✭ 17 (+0%)
Mutual labels:  multiplayer
com.unity.multiplayer.samples.coop
A small-scale cooperative game sample built on the new, Unity networking framework to teach developers about creating a similar multiplayer game.
Stars: ✭ 794 (+4570.59%)
Mutual labels:  multiplayer
LandOfTheRair
Land of the Rair is a full-blown MORPG styled like the MUDs of olde, featuring hours upon hours of gameplay.
Stars: ✭ 20 (+17.65%)
Mutual labels:  multiplayer
gochess
Online real time chess web server using websockets
Stars: ✭ 32 (+88.24%)
Mutual labels:  multiplayer
godothub client
GodotHub Client Class, Multiplayer and network messaging for Godot
Stars: ✭ 16 (-5.88%)
Mutual labels:  multiplayer
XLMultiplayer
Skater XL Multiplayer mod by silentbaws
Stars: ✭ 29 (+70.59%)
Mutual labels:  multiplayer
m2sdk
Software Development Kit for the Steam version of Mafia2.
Stars: ✭ 19 (+11.76%)
Mutual labels:  multiplayer
Framework
Advanced modding framework for multiplayer modifications
Stars: ✭ 21 (+23.53%)
Mutual labels:  multiplayer
cakeMP
An experimental GTA 5 multiplayer mod.
Stars: ✭ 39 (+129.41%)
Mutual labels:  multiplayer

Worldcore

Worldcore is a multi-player 3D game engine for the web, running on Croquet. It is modular, extensible, and cross-platform.

In this monorepo you will find

  • the packages making up Worldcore itself
  • example apps
  • and tutorials

Packages

Worldcore consists of multiple packages, which all live in this repository under packages/:

  • @croquet/worldcore-kernel: provides the core functionality, and re-exports all of Croquet's exports (packages/kernel)
  • @croquet/worldcore-*: optional packages (packages/*)
  • @croquet/worldcore: combines all of the above in a single package for convenience (packages/full)

Prerequisites:

We use git to manage our source code. To verify installation worked, type the command line git --version and you should see output similar to this:

> git --version
git version 2.28.0

The exact version does not matter. Similarly for Node, which we use for our build tools:

> node --version
v14.9.0

We use Lerna to manage the packages in this monorepo. It is not needed if you just want to mofify the examples and tutorials. You only need it to modify Worldcore itself:

> npm i -g lerna

Clone the Worldcore repo:

> git clone https://github.com/croquet/worldcore.git

Bootstrap links in your local repo:

> lerna bootstrap

Modify and run an example

  • Execute these commands one-by-one (we do not show the output here, only the commands)

    > cd worldcore/tutorial/tutorial1
    > npm i
    > npm start
    

    This command will not stop until you press ctrl-c. It will continually rebuild files as you edit them.

  • Open http://localhost:1234/ in a web browser to see the "tutorial1" example app

Modify and test Worldcore packages

To test a locally modified Worldcore package, we need to make an example use the version you modified locally, rather than the released version specified in its package.json. This is the main purpose of lerna. Instead of installing packages from npm in node_modules, it will link your local version of the package into node_modules.

Assuming you did not do the lerna bootstrap step above, but used a regular npm i, you would have this structure in the node_modules/@croquet directory, containing the official Worldcore packages:

worldcore$ ll examples/wctest/node_modules/\@croquet/

croquet/
worldcore-audio/
worldcore-behavior/
worldcore-kernel/
worldcore-webgl/
worldcore-widget/

But if you bootstrap the repo using lerna:

worldcore$ lerna bootstrap
lerna notice cli v4.0.0
lerna info versioning independent
lerna info Bootstrapping 19 packages
lerna info Installing external dependencies

... then the node_modules/@croquet directory will have proper links to your local packages:

worldcore$ ll examples/wctest/node_modules/\@croquet/

croquet/
worldcore-audio@ -> ../../../../packages/audio
worldcore-behavior@ -> ../../../../packages/behavior
worldcore-kernel@ -> ../../../../packages/kernel
worldcore-webgl@ -> ../../../../packages/webgl
worldcore-widget@ -> ../../../../packages/widget

Now when you modify something in e.g. packages/widget and rebuild wctest, it will use your version of the packages, rather than the released versions.

Publish Worldcore packages

We use lerna with "fixed" versioning, meaning each package will have the same version.

  1. For each modified package:

    • update CHANGELOG.md with the next release version
  2. commit everything (the next step needs a clean repo)

  3. bump the version

     lerna version --no-push
    

    This will allow you to select the next version number, and update all packages to that version, as well as their dependencies (which includes demos, examples, and tutorials, as listed in lerna.json).

    We use --no-push to get a chance to roll back if needed (undo the version commit and delete the tag).

  4. publish to npm

    lerna publish from-package
    
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].