May 2026 · 4 min read
How I prototype game ideas quickly
Copilot
Game Dev
Workflow
The fastest path to a playable prototype is reducing scope aggressively. One mechanic, one objective, one short feedback loop.
I prioritize input feel and readability before adding content. If movement and responses feel good, the idea is usually worth expanding.
Accessing SharePoint Document Libraries with JavaScript (Microsoft Graph)
Modern SharePoint document libraries can be accessed programmatically using Microsoft Graph. The example below demonstrates how to retrieve files from a SharePoint library and prepare them for display in a modern UI.
/** * Retrieve files from a SharePoint document library using Microsoft Graph * Requirements: * - Microsoft Graph JS SDK * - Authenticated access token with Sites.Read.All or Files.Read.All */import { Client } from "@microsoft/microsoft-graph-client";import "isomorphic-fetch";// Initialize Microsoft Graph clientconst graphClient = Client.init({ authProvider: (done) => { const accessToken = "<ACCESS_TOKEN>"; // Replace with your token done(null, accessToken); },});// SharePoint identifiersconst siteId = "<SITE_ID>";const driveId = "<DOCUMENT_LIBRARY_DRIVE_ID>";// Get files from the library rootasync function getLibraryFiles() { try { const response = await graphClient .api(`/sites/${siteId}/drives/${driveId}/root/children`) .select("id,name,lastModifiedDateTime,webUrl,size,file,folder") .top(50) .get(); return response.value.map((item) => ({ id: item.id, name: item.name, modified: item.lastModifiedDateTime, url: item.webUrl, type: item.folder ? "Folder" : "File", sizeKB: item.size ? Math.round(item.size / 1024) : null, })); } catch (error) { console.error("Error retrieving library files:", error); return []; }}// Example usagegetLibraryFiles().then((files) => { console.table(files);});Notes
siteId→ SharePoint site identifierdriveId→ Document library drive ID- Works for both files and folders
- Suitable for SPFx, Node.js, or browser apps
After the core loop feels right, I add polish in small passes: sound cues, visual hierarchy, and small UX affordances.
prototype
iteration
feedback
mvp