So I decided to start sharing my progress on the app I’m working on in my spare time. The goal is huuuuge - to make an MMORPG that runs in the browser and where players can create their own models + skins and use them in the game. Some things are possible as I’ve tested them already. But I know nothing at all about writing MMOs So… I don’t know how it’ll turn out.
This project is a continuation of a hackathon I took a part in recently. Here is the post of the hackathon submission, but I decided to create a new topic for WIP - Work In Progress. Some things were working, some not. Now I’m trying to build everything from scratch using TypeScript, to gain some skills… So maybe, just maybe, one day I might get a job as a developer - currently I work as a 3D Artist.
But thanks to my experience in 3D at least I know how to prepare all the assets and how to do the look development. However I’m planning to mostly use bought assets. I got some from Unity Asset Store earlier this week.
So here’s my first update:
proper character
proper starting screen
imported all animations (unity > blender > mixamo > blender again > babylon app)
blended animations (‘combo’ animation)
TODOS (for the next week):
add at least 3 more characters
have different ground for each character
play some ‘combo’ animation when the player picks a different character.
So I was on vacation all week but I managed to do a little work. Also I got a new, very interesting job and it looks like starting next month I will have much more time to work on this project! I’m sooo excited!
So here’s the small update:
added 3 more characters
character animations are played when you switch the character
a bit different enviro per character
some description about characters
TODOS (for the next week):
create button creates the character and puts it into the game scene
So… I’m back to the project! After one year of doing completely different things. I had a job that took most of my time and in the end I was laid off anyways so… No more stupid jobs like that. I want to have my stuff done too.
I had to go through again the animation and 3d assets export pipeline again… Which was painful! But at least now how it should be done. Maybe not fully automated, but there’s no mess.
So this time I’m building it from the right angle. So player movement, camera, surface follow (which was easier to do then I thought - or maybe I got better at design patterns?).
It looks way too nice because the assets are not mine. I bought them a year ago, btw its https://www.syntystudios.com/. Animations of course from Mixamo. Their rigs are fully compatible.
Also the camera in the video is controlled by the player, there is no collision detection yet. I guess that might be the next step.
So it’s been a while. And recently I got back to the project.
And for the past year or so I was trying different things. Mostly trying out the backend things. I really didn’t want to use with any JavaScript on the backend, so I had to try new languages. And I ended up with I guess my own game engine in Go. I tried using some “out of the box” solutions (like Raylib), but then I had problems with loading GLBs. So I also wrote my own geometry loader (for the backend). I just like writing everything from scratch.
The game runs on the server, BabylonJS is just used as a client renderer. As you can see the character animation needs fixing, but overall I think I’m on a right track. And I think I can start implementing the combat now.
I do have a nice entry zone prepared, but this is just a testing scene for character movement etc.
So I’ve build a new main player character movement system, based on physics.
Before I used just a cross product of the surface normal with a limit on a dot product (between the surface normal and a up vector). This is a nice solution that gives you constant speed no matter the “slope angle” - unless you multiple it by the dot product (that gives you a natural feel that the speed is lower with higher slope). Also the character won’t even fall off and is somehow stuck to the surface.
When I started building my starting zone, it turned out dealing with collisions with this solution is very annoying. Also I really want for my character to be able to jump over the obstacles, and the “surface follow” method don’t allow you to do that.
So I introduced physics this time. Still the jump doesn’t work (the character shoots out in space on jump) so I need to spend more time on that. But I have to keep on going, jumping can wait, I have to do the combat system now.
This is a starting zone I prepared few weeks ago. But I don’t like it anymore. I will completely scrape it and I’m building a new one. Just saving this for a record.
@Deltakosh I think I will. I was planning on releasing a first official video end of February. Just need to rebuild the world, add combat system (melee & ranged), death and res, character selection, character name plates, game UI… I might just make it in time Especially that I’m unemployed so I have nothing better to do…
Would You be so nice to explain a little bit how this movement on 3D map is working? what client is responsible for? what’s the responsibility of the server? do You have system for hacks prevention?