simondevyoutube / quick_3d_mmorpg Goto Github PK
View Code? Open in Web Editor NEWAbsolutely 100% unsupported, and full of infuriating bugs.
License: MIT License
Absolutely 100% unsupported, and full of infuriating bugs.
License: MIT License
It tries to load both the MMORPG UI and the Minecraft 2 UI.
Dear Simon (and any developer that comes across this post),
I'm a web dev and I watched your threejs MMO youtube video which I think it's awesome!
For a very long time, I have been interested in building or joining a team that develops a Threejs-based MMO...
A couple of years ago I discovered one of the most gorgeous games, the Ironbane project. It was for a long time in the hall of fame on google projects page, but for some reason a few years ago it just died out and its development just stopped. It still has all the code base on github and last year I tried it and I could install it and it definitely looks awesome.
Now, in the recent months, I feel a clear and strong urge to try to revive this awesome project and a couple of weeks ago I actually tried to install it and very surprisingly it worked after a few hiccups obviously.
So I ve set it and left it running on a VPS and I also created a website post where describe in more detail my idea of the New Game Concept.
Here the future dev. team will be able to interact and gather data, share info and work together.
URL: https://www.webcreative.me/three-js-mmorpg-game-concept-ironbane/
The game doesn't have a website anyore, but the old dev team still has a dedicated discord channel where I am a member too and which I will disclose to anyone interested.
So, my proposal to all of you is to JOIN OUR FORCES and try to revive this project and make it a mighty game!!!
In reality, even though the game fully works now and it has a lot of the basic structure made, the code base is quite old and I obsolete. Also, after I spoke with a couple of main devs, they said they would strongly suggest to almost start from scratch if we want to revive it. Of course we have tons of things still keep and use, but probably a clean slate would be an idea to think about and discuss...
In any case, I am absolutely convinced that the business/collaboration model I thought of is a good engine for us to move forward.
So please have a look at the page above and leave some feedback either there or here.
As a thought, the Ironbane name is what they chose, but it doesn't even have to be the same for the new game. Personally, I think it sounds cool, but it's open to discussion.
In conclusion, I really hope and pray you have enough interest and bit of time to join us.
I am looking forward to your comments, whichever they are.
Thanks for your time.
Andy
I've noticed the stats do not update they do update in the old Quick RPG demo tho
what gives? i've noticed damage is done totally different in this version how would one apply leveling again?
Hi Simon,
I've got some experience packaging up nodejs applications for deployment on kubernetes. This project seems really fun so if you are interested, I could PR the required docker/kubernetes config along with some CI/CD.
If you are like me, it's nice to dig around and follow along when source code is provided. There were a couple hurdles getting running on this one so I figured I'd share.
This is using a newer-ish version node.js
's import syntax so you will need to use nvm to swap over to somewhere around 15.8.0
using nvm
. You can install nvm using:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Once installed:
nvm install 15.8.0
Simon seems to have removed server/package.json
. I was able to fill in the blanks and this worked fine for me:
{
"name": "server",
"version": "0.1.0",
"private": true,
"dependencies": {
"gl-matrix": "^3.3.0",
"socket.io": "^3.1.1"
},
"scripts": {
"start": "node index.mjs"
}
}
Once you have that set done you can run the following to start the server:
npm install
node index.mjs
Leave this running in a separate terminal.
Install http-server
sudo npm install -g http-server
Then run a simple http-server to serve up the files. If you don't do this you will get CORS issues.
$ http-server
Starting up http-server, serving ./
Available on:
http://127.0.0.1:8081
http://192.168.1.129:8081
http://10.0.7.10:8081
http://192.168.96.1:8081
Hit CTRL-C to stop the server
I was able to see the login screen, walk around and kill some monsters named after my username lol.
In your code you wrap all exported classes in an immediately invoked function expression. But you're also using ES Modules.
Why do this?
export const something = (() => {
class Something {}
return { Something: Something };
})();
Instead of this?
export class Something {}
little more friendly setup here: https://github.com/jeremy-coleman/simmo
basically just:
copy/pasted/flattened
added express for static files
added cross origin isolated headers
added a package.json
added script to get going with npm install and npm run start
removed mjs, "type":"module" in package.json is better (but also not needed bc sucrase ftw)
update: latest commit i added electron nightly just so i can use the webgpu api without having to use chrome canary. can also mess around with using the vulkan backend for angle and figure out how to use a native udp client
When i try to run html code it shows black screen i am using latest version of chrome to test it
Thoughts:
https://github.com/geckosio/geckos.io/tree/v2
It might be a better option compared to socket.io. tldr geckos exposes UDP sockets via clever webrtc hacks.
the v2 of geckosio seems to be a pretty significant upgrade also.
Note: you need cmake and openssl on your system to install geckos. on windows use scoop https://scoop.sh/ . then scoop install cmake and scoop install openssl.
A follow on optimization to the transport layer could be some efficient encoding protocol, which the geckosio org also happens to have here https://github.com/geckosio/typed-array-buffer-schema . (could be used to implement something like the wow guy in the first video below is talking about). Definitely not needed yet, but something to keep in mind. They also have a snapshot prediction lib ( 2nd video call of duty around 10 mins ) https://github.com/geckosio/snapshot-interpolation. Three specific version of interpolation here https://github.com/InfiniteLee/buffered-interpolation
some related/cool vids (imo)
https://www.youtube.com/watch?v=hCsEHYwjqVE
https://www.youtube.com/watch?v=EtLHLfNpu84
native/wasm rough equivalents:
https://github.com/naia-rs/naia-socket
https://github.com/smokku/bevy_networking_turbulence
this works: https://github.com/kyren/webrtc-unreliable
more useful stuff
https://github.com/AltspaceVR
https://github.com/mikolalysenko/mudb
After some struggles with geckos and more research i found that Chrome and firefox both use https://github.com/sctplab/usrsctp for implementing webrtc data channels. Janus gateway is based on that lib also, so something like https://github.com/mozilla/janus-plugin-sfu is probably one of the best options. chrome 91 also has the webtransport api open for origin trials. Its basically the same thing as data channels but using quic/http3. Idk , maybe just identifying network dependent state with the intention to refactor to some binary encoded schema (flatbuffers?) in the future will save a ton of headaches. Could use json.stringify/parse as a placeholder for now
this vid shows how to handle a handoff using socket.io (copy pasted below, will replace with code later)
https://www.youtube.com/watch?v=Y1mx7cx6ckI
This video demonstrates pretty well the behavior of wow/aion/whatever 3rd person ability game.
around 2:45 shows left click
around 3:30 shows right click
https://m.youtube.com/watch?v=c97Ijw_Kkq8
As best as i can articulate : left mouse is like an orbit camera , which when released , eases back to the backside of your character. But, unlike an orbit camera, It follows you using dolly camera behavior
Although not shown in the video, I think a lot of people switched the left and right mouse, also note that left and right click held together is an alternative to w to move forward. This behavior also turns your character to face where you had the camera pointing. I was thinking a compass type object could be a good abstraction for this. Note opengl uses [0,1] but webgpu uses [-1,1]
here's a babylon playground that kind of works
https://playground.babylonjs.com/#GJRMS1#18
stuff
https://cgcookie.com/articles/creating-a-great-game-camera
Hello. I am a beginner programmer.
I am developing using your code. But the package.json file does not exist.
So the modules cannot be installed.
Maybe it's missing? Or is there another way to develop it? Please reply.
and I really respect you..
simmo vs simmorpg
discuss
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.