SortaCraft! [0.8 Alpha]
It's been almost one year since SortaCraft was released.
Hang in there, SortaCraft 2 is still coming!
Preview - https://sortacraft2.sortagames.repl.co/
This page will not be updated until I release Survival Mode.
Coming Soon: Beta!
How To Play
Click on the crosshair to lock your pointer
W A S D to move around
Scroll to change block
Space to go up
Right click to place, left click to break
Baconman321 has collaborated with me on this project and has cut the loading time of chunks in half! Minor optimizations have also been made.
I have also reintroduced realistic lighting and optimized shadows to the game, making cave exploration, terrain, and buildings more visually interesting. A better offline cache system and versioning is in the works, along with sprinting (which I may warn you, is quite buggy at the moment). There is also a new menu you can access by pressing `. This menu allows you to change the material type of all chunks, and will greatly improve performance on lower-end devices.
The game has been optimized further, and the "plastic" look has been removed. Offline support is being worked on.
Q and A
- The game is REALLY slow. Can you make it faster? Press ` (backtick) to change the graphics setting.
- How do I change block? Scroll up and down.
- It's so hard to look around. A: Make sure your pointer is locked(click)
- It's so hard to place/break. A: It is a bit difficult to break/place on a touchpad. Try a mouse.
- Why is it taking so long to place/break blocks? A: Please use a different computer.
- Why can you jump so high? A: I'm lazy
- Why is the sand biome all slabs? A: I need to fully implement half blocks
May I take the time to applaud at his wonderful coding skills. Give this guy a few more years and Mojang will hire him.
This game is AWSOME! Now here are some tips: 1.U should add animals
2. If only this could be multiplayer 3. Music 4. Mobs and bosses 5. crafting table 6. more items that could be made or example pickaxe axe shovel etc. 7. Get a job at mojang
Wait so, this wasn't coded on repl.it, so does this post count? Technically, your post is just a website with a link to your GitHub project.
i would like to give suggestion that gives specific properties to tools like in official minecraft pickaxe can break cobblestone easier than any other tool
Also I recommend adding shadows (as it's kinda hard to see things without them), torches, bigger biome sizes, less cave systems/bigger systems but less appearing, and music. Personally, I think the music would be really hard to obtain, since the minecraft music is copyrighted, and it wouldn't be minecraft without it (I know it's a minecraft spin-off, but still). However, if you have gone this far with this awesome work of art, you can almost certainly go farther. I believe in you!
@Baconman321 Thank you so much!
@tussiez Yeah, you seem to know much more game design than me (cry, even though I don't care for game design...yet). Honestly, PWA is something I just made, so I don't think it would be too hard. I could help you with the service worker part too if you need some help. I like how you implemented the chunk worker. But, how does it generate half a tree, then when you generate it again it generates the other half? Do you store the data about half of something being generated? Or... I don't know I'm lost. There's so many things I want to know about this since it's sooooo cool about how chunk loading works. Also, try working on despawning certain chunks but store them so they appear later. And I'm on a chromebook too so off. Yeah, as long as it doesn't load a chunk, the framerate is at about 60.
@tussiez I think creating a new version without Three.js and just WebGL would be a fun project.
The first revision of this game didn’t have Web Workers, and was freezing up when I loaded in chunks. After adding a Web Worker, I realized that the data load from the worker itself was also causing the game to hang. Because of this, I created a clever cache system that lazy loads the lazy loaded chunks, to prevent lag. In a future revision, I could add an option that can customize the loading speed (The Web Worker generates the chunk blazingly fast, however the processing of the output does take some time) so you could get a faster load if you have a powerful computer. An automatic version of this could be done too.
@Baconman321 Yeah... oof
Yeah, I would like to learn some more about PWA, so I will gladly accept your help. Oh, partial trees was a very interesting problem to solve. I used to allow trees inside the chunk, so they don’t generate half trees however it made tree clusters impossible. If you look in the code, there is an additional worker called geometrydataworker. This worker handles the geometry data generation, reducing the lag on the main thread. When chunk data is processed, the voxels are set in a global multi-chunk VoxelWorld, and this is where the geometry data is generated. This means every once in a while, half trees are generated (one chunk overrides the other) and sometimes they don’t happen and tree clusters work perfectly.
Yeah, I tuned the loader for the Acer R11 Chromebook. Around 50-60 FPS.
To put it simply, the chunk data is global, not relative.
@Baconman321 Huh.. chrome:// flags is blocked on my Chromebook and I don’t have issues. Are you talking about hardware acceleration?
As in lazy loading
The web workers generate the terrain pretty fast, the problem is they load so fast that the main thread can’t catch up. To fix this, the data is stored for later instead of processed immediately.
@tussiez Invite me to your project so I can help you with offline capabilities and PWA please. I would love to collaborate with you and show you all about service workers (all that I know)! I'm available from 11-12 and 2-3 CST (central daylight time). If that doesn't work, I can just make you a service worker and put comments in describing how everything works. It would be an honor to help you out with this genius project! :>
@Baconman321 Missed the shadows part of the comment :)
I’ve tried cascading shadow maps before on the game, and they do work (and really well). I don’t know if the implementation is still in the code (just commented out) or not, the problem I was having with the shadow map was that lighting wasn’t updating with shadows (lights wouldn’t work). And yes, I should be able to fine tune cave systems as it’s an easy task. Thank you for the feedback!
@Baconman321 Sure! I can add doors (as you can see, I was messing with voxels and sand is now a slab) however glass has been an interesting problem. This has always been an issue with voxel games, as it requires a custom z-index and more computational power. I could probably do this in WebGL in a future version though
@Baconman321 Got it! I will also be available! We can start with a forked Repl (so in case we mess anything up really badly, it's easier to reset). I think we can skip offline for now, as I'm thinking about writing a new version of this game (once again) that may have some new optimizations. You can still tell me how to do it though :)