Appearance
Arcade › Block Forge
Click the game above and it runs right here in your browser. No download, no installer, no account needed. weston.burrell built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Block Forge yet. Play it, then tell weston.burrell what you would add next.
Block Forge was built by weston.burrell with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.
Remix Block Forge opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.
Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.
Create a browser-based first-person voxel sandbox titled “Block Forge,” built with Three.js/WebGL and supporting desktop, touch/mobile, and WebXR VR. The game should open into a small, colorful cubic world under a bright sky-blue background with light atmospheric fog. Use individual 1x1x1 cube meshes stored by integer voxel coordinates, with soft shadows, a pale blue hemisphere light, and a directional sun. Add several simple floating white block clouds high in the sky, each made from a few chunky rectangular puffs. World and terrain: generate a bounded voxel landscape covering x=-18..18 and z=-18..18. For each column, calculate a gently rolling height from overlapping sine/cosine waves, producing low grassy hills. Fill from y=0 through the height: the top layer is green grass, the next two layers are brown dirt, and deeper layers are gray stone. Place occasional simple cubic trees away from the spawn area using a three-block-high brown wood trunk, a 3x3 layer of green grass-leaf cubes above it, and one additional green cube at the top. Clear a small irregular starting area around x=-2..2 and z=6..10 above the terrain so the player has room to begin. Keep the world bounded and visually sparse, with the low-poly, untextured cube style visible in the supplied screenshot; do not use Minecraft assets or branding. Player and camera: use a first-person perspective with a player collision capsule represented by an axis-aligned body approximately 0.64 blocks wide and 1.72 blocks high. Start around (0, 3.05, 8), with gravity, collision against solid cubes, ground detection, and a jump impulse. Walk at roughly 5.9 blocks per second, jump at roughly 7, and prevent movement through blocks. Clamp the player within the terrain bounds. Desktop mouse look should use pointer lock after clicking the canvas, with yaw and pitch clamped to about +/-1.45 radians. Also allow arrow keys for incremental looking. Show a small white crosshair centered on screen. Cast a ray from the crosshair/camera up to about 8 blocks to identify the first cube being aimed at. Core building loop: when a cube is targeted, draw a thin white outline around it. Compute the exposed neighboring voxel from the hit face and show a translucent pale-yellow cube placement preview there only when that space is empty and does not intersect the player. Left click or Q breaks the targeted cube, except do not allow breaking y=0 blocks. Right click or E places the currently selected block at the exposed face, unless it would overlap the player. Breaking switches the displayed mode to Break; placing switches it to Place. Update the total number of blocks live after edits. Block types and appearance: provide exactly five selectable block materials, each as a matte, slightly rough cube: Grass green (about #74c365), Dirt brown (about #95613f), Stone gray-blue (about #8f98a5), Wood warm tan (about #bf8c4d), and Glow golden yellow with a warm orange emissive effect. Start with Grass selected. Number keys 1–5 select the corresponding type. The bottom-center desktop/mobile hotbar should contain five labeled buttons—Grass, Dirt, Stone, Wood, Glow—with the selected one raised/highlighted by a pale yellow border and glow. HUD: overlay the 3D view with translucent dark navy rounded panels and white text. At the upper left show “Blocks: [live count]”, “Selected: [block label]”, and “Mode: [Place/Break]”. At the upper right show a help panel explaining drag/mouse look, WASD movement, Space jump, left click/Q break, right click/E place, and the mobile controls. Show a small hint such as “Tap or drag the world to look around.” On desktop the crosshair, hint, hotbar, and HUD remain visible; use responsive layout so the help panel stacks below the stats on narrow screens. Desktop controls: WASD moves forward/back/strafe relative to yaw, Space jumps, mouse drag through pointer lock looks around, left click or Q breaks, right click or E places, and 1–5 select blocks. Prevent the browser context menu. Mobile/touch controls: dragging on the rendered world changes yaw and pitch; provide a large rounded three-by-three movement pad at bottom-left with up, left, jump, right, and down buttons; provide a two-column build pad at bottom-right with Break, Place, previous block, and next block buttons; put the hotbar along the bottom center. Buttons should use vivid blue-to-purple gradients, white bold labels, rounded corners, and touch-friendly sizing. VR: add an Enter VR button using modern WebXR. Hide the desktop crosshair, help hint, hotbar, and mobile controls while immersive VR is active. Aim by looking through the headset; raycast from the camera forward to the targeted cube and retain the outline/placement preview behavior. Use the left joystick for movement, right joystick horizontal axis for smooth turning, left controller trigger/select to break, right controller trigger/select to place, and right-controller primary face button for jumping. Also allow squeezing either controller or using a secondary face button to cycle through the five block types. Add simple visible controller pointer rays and stylized low-poly arms/hands. Attach a floating dark translucent VR HUD below the camera containing five miniature block icons, visibly enlarging/highlighting the selected icon, plus two small indicators showing Break and Place mode. Keep desktop and VR movement sharing the same player/world position. Implementation details: use a player rig containing the camera so desktop and immersive VR locomotion share position; enable shadows and responsive resize handling; use a Three.js animation loop with capped frame delta; maintain targeting every frame. Expose getGameState() returning player position/orientation, selected block, mode, block count, current break/place targets, VR state, and controller handedness, and setGameState(patch) allowing player coordinates/orientation, selected block, arrays of blocks to place, and arrays of blocks to remove to be changed live.