EDIT: Check out the update here!
Many games here are 2D, so I thought I'd try my hand at 3D with THREE.js. I'm not done with the game yet, but I thought I'd post a sneak peek so that I can get feedback for it!
As of right now, there's no real goal (you can't win or lose). But you can go around and do stuff. Here's the controls:
- Arrow Keys or WASD to move
- Q and E or rightclick+drag to rotate the camera
- Click and hold to saw stuff (when not placing — you have to be touching an object too)
- Click on an item in the upper-left to craft it (these items will appear when you have the necessary resources to make them)
- Click on a item you've crafted in the bottom bar to start placing it (a ghost version of it should appear in front of you, you can move around to position it as you like) and then click again to place it or right click to cancel.
- NEW: Enter to chat!
As of now, you can build walls (with wood) and campfires (with stone and wood). There's a day and night cycle in place too, so your campfires will look good :D
And yes, this game is fully (server) multiplayer, so you can build a base with others! (Try opening two tabs if there's no one else around)
Enjoy! If you find any bugs or have any suggestions, please post them!
IMPORTANT: If the land is empty at first (no trees, rocks, etc), please let me know! (And then reload the page until it isn't.) I think I've fixed that bug but I'm not certain.
Keep up the good work! This is so amazing I have no words for it.
Only suggestion: Make the mouse able to shift the view. It's a bit annoying having to keep pressing q and e
@DJWang Ah actually, there's a problem here. Since mouse click also means [use tool], clicking and dragging would mean doing two things at once. I'll probably just keep it this way for now (the camera isn't intended to move around too much), but when I get around to it or if I have more requests I will add it.
@DynamicSquid In case you're interested, there's a new update out: https://repl.it/talk/share/GAME-Askew-MAJOR-UPDATE-Age-of-steel/60050
(sorry if this is spammy, I'm not very experienced with this kinda stuff)
Hey everyone! If the camera tracking was weird or if you were unable to craft anything, it's because I accidentally broke it while adding a new feature. Try it again, I've fixed it now!
@fuzzyastrocat lol! Oh, I have a quick question about lang dev. So if there's an expression, that get's turned into an Expression AST in the Parser. But what does the Interpreter do with it? I know how to take an Expression AST and have the Interpreter evaluate it down to a single value, but I have to modify the original AST to do so. But that's a problem if I still need the original AST (for example in a loop). So should I make a copy of an AST in the Interpreter and evaluate that? Or is there a better way?
@DynamicSquid Yay lang dev, now I can get back to doing what I really want to do not fixing bugs in games lol :D
Could you invite me to the repl? If not I'll make a repl to demonstrate, since I think it would be easier to do it in code rather than try to explain it in words. (The answer in short is "no, don't make a copy, by all means don't make a copy, but you don't have to modify it in place either", but I'd like to show what I mean.)
You are godly. THIS IS SOOO GOOD!!!
The only thing is I got stuck in the desert. If you got too far there is nothing left. I could pick up something by pressing the right click too btw:
but I think that is a glitch, so if it is please fix it. Thank you for making this awesome prototype of a game. I hope you finish the game and post it here.
@rjlevy Great question! I'm actually not running node in an HTML repl. I like to separate out my servers and my clients (so that I can make quick fixes to either without having to restart the entire system), so I have a separate repl (AskewServer) which runs the nodejs server. The HTML repl is just the client alone. Hope that helps!
Hi @fuzzyastrocat, great - that's what I thought! It's good to know that's how you did it. I've been taking the same approach recently, mainly to hide API keys in .env files so people can't use them. Here is a very basic example I made:
This is the front end (client) code in an HTML repl
It connects to a Node repl via an endpoint like this which provides JSON for the front end: https://node-api-keys.rjlevy.repl.co/json?s=smile
Here is the Node repl which provides the JSON
https://repl.it/@rjlevy/node-api-keys-for-unsplash which can be tested here:
I hope that makes! :)
Great game man!! Really love it. Just the sensitivity is too high for me, other than that its great.
If this gets big and has a large player base, I would totally recommend adding a chat filter at some point
@fuzzyastrocat Thanks! I am in the middle of school checking this out and I would like to have an option to disable chat because some people are spamming inappropriate things. Anyway thanks for the amazingly quick reply. Looks great so far though, keep up the great work. The best I can do is make Roblox games.