Appearance
Arcade › Blockcraft
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Charlie built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Blockcraft yet. Play it, then tell Charlie what you would add next.
Blockcraft was built by Charlie 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 Blockcraft 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-playable first-person 3D voxel sandbox titled “Blockcraft,” using a Three.js-style/WebGL renderer. Show a large blocky procedural world from the player’s eye level: chunky green grass terrain with flat-topped hills, exposed dark stone/soil sides, occasional block-built trees with brown square trunks and broad dark-green leaf canopies, sandy low areas, and blue water filling low terrain up to roughly sea level. Use a clear sky-blue background with light atmospheric fog, directional sunlight, soft hemisphere lighting, shadows, and simple matte low-poly cube materials. The visual style should match the screenshot: saturated, clean, geometric voxel terrain with no textures or outlines, viewed in a wide first-person perspective. Keep the world generated around the player in finite 16x32x16 voxel chunks, loading chunks in a circular radius of about three chunks and unloading distant chunks for browser performance. Generate terrain deterministically from layered 2D noise: varied elevations approximately from low plains to high hills; top blocks are grass except low terrain near water, which uses sand; beneath the surface use a few layers of soil, then stone; fill air below the waterline with transparent blue water. Very occasionally generate a simple tree: a four-block-high wood trunk with a compact roughly 5x5 leafy canopy. Support block types grass, soil, stone, sand, wood, leaf, water, and glowing yellow glow blocks. Render only visible voxel faces and use transparent materials for leaves and water; water should not be solid for collision or raycast targeting, while all other listed blocks are solid. Use colors approximately: grass green #55aa45, soil brown #8b5a2b, stone gray #7e8287, sand pale yellow #d9c47a, wood brown #8b562c, leaves #2f8f44, water blue #2f88ff at about 58% opacity, and glow yellow #ffd65c with orange emissive light. The player is invisible in first person and has a camera positioned about 1.62 blocks above the player position, with a centered white “+” crosshair. Start around (0,24,0), looking slightly downward. Implement yaw/pitch camera look controlled by mouse drag or touch/pointer drag, with pitch clamped to about -1.45 to 1.45 radians. Use a 72-degree perspective camera and a reach raycast from the camera along the view direction. In Creative mode, movement uses WASD with smooth acceleration toward a speed around 12, Space flies upward, and Shift flies downward; Creative has no gravity, instant block breaking, and a long reach of about 32 blocks. In Survival mode, apply gravity around 24, solid AABB collision for a player roughly 0.64 blocks wide and 1.75 blocks tall, WASD ground movement around 4.7 speed, faster Shift movement around 7.2, and Space jumps only while grounded with an upward velocity around 8.2. Survival reach is about 5 blocks and block breaking is slower based on hardness: grass 0.7, soil 0.55, stone 1.8, sand 0.45, wood 1.2, leaves 0.25, glow 0.8. Water cannot be broken or selected by the raycast. If the player falls below the world, reduce health by 4 and respawn near the starting position. Left click (or a mobile Break button) breaks the targeted non-water block. In Creative this is immediate; in Survival accumulate break progress while targeting the same coordinate and remove the block when progress reaches its hardness threshold. Right click (or mobile Place) places the currently selected block into the last empty voxel just before the targeted block, within reach, and prevent placement directly intersecting the player. The five-slot hotbar must contain, in order: grass, soil, stone, wood, glow. Select slots with number keys 1–5 or by tapping/clicking a slot. Display each slot as a dark rounded square containing a colored swatch; the selected slot has a bright white border and rises slightly. Implement a simple Survival condition system: start Health 20 and Hunger 20. Creative mode does not drain hunger. In Survival, track exhaustion from movement/jumping and block breaking; every 4 exhaustion points reduce hunger by 1, and when hunger reaches 0 reduce health by 1 every 80 game ticks. The mode toggle resets velocity and switches between Creative and Survival, but do not add inventory crafting, enemies, combat, quests, or other systems not described here. Overlay a responsive HUD on top of the canvas. At top left, show rounded dark translucent pills reading “Blockcraft,” the current mode (“Creative” or “Survival”), and “Health 20 · Hunger 20” (update values live), followed by a bright blue rounded “Toggle Mode” button. Beneath it show a dark translucent help bar with: “WASD move · Mouse drag look · Left click break · Right click place · Space jump/fly up · Shift down · 1-5 blocks”. Keep the crosshair centered. Place the hotbar centered along the bottom with five 48px-ish rounded slots. On coarse/mobile pointers, hide the help bar and show translucent touch controls near the bottom: a directional pad with up/left/down/right buttons on the left, and stacked blue-toned Break, Place, and Jump buttons on the right. Make the UI use white system sans-serif text, translucent navy backgrounds, rounded corners, light shadows, and touch-action disabled so drag/look and controls work on mobile. Resize the camera and renderer with the window. Expose optional state hooks window.getGameState() and window.setGameState(patch) for player position/velocity, health, hunger, mode, grounded state, selected block, loaded chunk count, and tick, without adding any visible debug overlay.