5 ms·
A game where you're an OS and have to manage processes, memory and I/O events
- monkpit 3mo agoReminds me of psDooM https://psdoom.sourceforge.net/ https://psdoom.sourceforge.net/
- triangleman83 3mo ago14 minutes and 533,000 pts. I unlocked the auto sort option which helped immensely
- dmaginas 4mo agoGreat idea!
- petee 4mo agoRebooting could be a mini-game where you dodge the user's BIOS keystrokes a few times before they give up
- lofties 3mo agoI'm pretty sure this is exactly what is happening in real life. I pressed F12 damnit! Go into the bios already!!
- gcoakes 3mo agoSome friendly tips from post-silicon validation: sudo systemctl reboot --firmware shutdown /r /t 0 /fw These reboot directly into BIOS. For Windows CMD+R menu, run it by pressing CTRL+SHIFT+Enter (elevates to admin). You may have to do it twice for some unknown reasons after reinstalling the OS.
- nullpoint420 3mo agoYou are a life saver. I never knew about --firmware!
- Xiexe 3mo agoHad to learn this recently when my wife’s computer refused to register requests to boot into bios despite spamming F12 / Del many different times across many different USB ports. Such a pain in the ass.
- AgentMasterRace 3mo agoThe absolute bane of my existence, I had a time a week ago repairing my bootloader after I (stupidly) did 3 months of windows updates after running a bunch of disk repairs and other recovery based things after I (again, stupidly) fell for a fake repo for deepseek tui and infected myself
- freedomben 3mo agoOh man, you've had a week from hell my friend. Uploading virtual platonic data-free hugs
- drfunk 4mo agosounds a lot like a tweet from the parody account @PeterMolydeux !
- keyle 3mo agoWhat's he doing these days?
- Affric 3mo agoPlayed this originally, glad to see scripting included
- mephage 3mo agoMaybe that's what the Linux scheduler is actually - humans' consciousness stuck inside the computer managing the processes. Sounds like that black mirror multi-part episode "White Christmas".
- fragmede 3mo agoSo that's why the Matrix needed humans to power their systems!
- cortesoft 3mo agoThe original idea of the Matrix was for the humans to be processors, but they changed it because they thought people wouldn’t understand that.
- wing-_-nuts 3mo agoThat would have honestly made far more sense than as a battery.
- mrkstu 3mo agoMaster Control Program
- advisedwang 3mo agoFabulous concept, but personally I did not find very fun actually playing.
- loloquwowndueo 3mo agoA lot of these puzzle/micromanagement games are very similar to stuff folks do for work. I stopped playing an entire category of puzzle games once I realized it was basically programming, which I do all day for a living anyway. Gamified programming is still programming.
- jonahx 3mo agoMany programmers program for fun outside of work.
- hnlmorg 3mo agoI’m one of those people. And what we do is write actual software for fun rather than pretend software in a computer game. If I wanted logic flow embedded in a game then I’d want it in an environment that’s far removed from traditional programming. Such as building contraptions in Minecraft.
- ivanjermakov 3mo agoWhen I play games scratching programming itch I always think if I'd be better of working on pet projects instead.
- jasonfarnon 3mo agoThat's what bugged me about the old MS Flight Sim games. It felt like the actual job.
- lukan 3mo agoYes, but many dream about actual flying for real, but cannot so enjoy this substitute. (I enjoy more arcade style)
- fragmede 3mo agoThis didn't get a lot of traction the other time I saw it, but one easily imagines this as part of a a game to teach operating systems, starting from no MMU all the way to how we manage distributed supercomputers like a DGX GB300, or Google's borg.
- SomeHacker44 3mo agoDoes this game make me MCP? Can I battle Jeff Bridges with discs?
- edoceo 3mo agoGet Tron to Sark so he can communicate!
- aranelsurion 3mo agogot rebooted at 332k @ normal. maybe being an OS wasn't my calling :)
- monocasa 3mo agoFun fact: operating systems were originally programs intended to replace most of the work of a human job description, that of computer operator.
- marcosdumay 3mo agoComputers were first marketed into replacing the work of humans that had a job called "computer" (what spreadsheets finally did)... Operating systems were create to replace computer operators (what they didn't)... For a while some people called compilers "automatic programmers". The marketing and management of IT always had this fixation with replacing people. It always has been the wrong answer and the real value always came from making people better.
- crmd 3mo agoI think we’re near the end of this trajectory, and the inevitable disruptive business model will be a young entrepreneur who “invents” the concept of the Human-Centric Firm.
- donpdonp 3mo agoThis was fun to play...for about 2 minutes before all the manual work of moving processes around got very tedious, which may be the point of the game. What I would like is a little code edit window where i could code simple routines to handle the scheduling, then be able to watch the result.
- armdave 3mo agoCool stuff! Would love to see this recommended in introductory OS classes to give an intuition
- yiyingzhang 3mo agoThis is cool! I may introduce it to the undergrad OS course I teach at UCSD. Does it have memory hierarchy?
- degurechaff 3mo agoNeed OOM Killer button to kill nasty process
- butz 3mo agoEasy, just give all RAM to Chrome.
- GL26 3mo agoThis would be huge if it was « rogue like », where you could buy new more performant components that allow you to reach further into the game. The game makes you naturally lose, and there are milestones that you can reach (bosses, or loot that stays throughout sessions). For instance you could unlock GPUs, docker containers, another SSD, antiviruses…
- sudoshred 3mo agoAlso consider RTS elements, like assigning certain schedulers to handle workloads which are swappable and tuneable, maybe with some skill tree unlocks.
- nielsole 3mo agounlimited possibilities to expand the game scope through a tech tree: - Hyperthreading - interrupts - compressed main memory - L3 caches - TLB caches - CFS - cgroups - TSO/GSO - performance / efficiency cores - dynamic clock speed - thermals - PCI bandwidth / lanes - ... Game could start with a single CPU and 2-3 processes and then all this comes on top step by step and you can automate it away through tech tree.
- heroku 3mo ago[dead]
- DonHopkins 3mo agoSevere Running direct process scheduling keyboard control game mechanic! https://www.youtube.com/watch?v=lrUWFo2D1Xs https://www.youtube.com/watch?v=lrUWFo2D1Xs
- mnky9800n 3mo agoYou could also make it historical so as you go through tech trees and stuff it goes from like 1970s to today
- deleted 3mo ago[deleted]
- cubano 3mo agoI can think of very few things that I'd rather not do then to be an OS. Talk about a thankless "game"...and I'm glad this came up. Since when have games become more about just completing boring tasks and not about using your mind and dexterity to kill evildoers? Hell, the original Space Invaders was 100x more fun then this, and all we had to do was press a button to kill advancing aliens.
- LelouBil 3mo agoGames are just something someone finds enjoyable to do. You have all kind of games, some that are actual programming, some that are purely reflexes and dexterity, some that are in between. > Since when have games become more about just completing boring tasks and not about using your mind and dexterity to kill evildoers I encourage you to browse Steam a bit if you are asking this.
- benj111 3mo agoI kind of agree, but on the other hand many boring, meaningless things are gamified with the addition of points. Is Monopoly about skill? Chance? Or just scratching that itch of getting more tokens than the other person?
- fragmede 3mo agoIt's a whole category on Steam! https://store.steampowered.com/category/sim_hobby_sim/ https://store.steampowered.com/category/sim_hobby_sim/
- Hugsbox 3mo agoMy wife plays a game where you use a pressure washer to clean areas up. Also plays a lawn mowing simulator. Oh, and a game where you run a supermarket, where you maintain inventory, stock shelves, and operate the checkout. Some people just like these types of things.
- theflyingelvis 3mo agoI have a pressure washer and a mower. I am happy to let her come to my house and use them on my house. I’ll even let her pick up my groceries!
- benj111 3mo agoHave any useful algorithms emerged from these kinds of games? Like has someone invented a novel scheduler or sorting algorithm?
- swiftcoder 3mo agoThis is not quite as exciting as psDooM [1] [1]: http://psdoom.coffeefish.org http://psdoom.coffeefish.org
- Retr0id 3mo agoTangentially reminds me of https://deadlockempire.github.io/ https://deadlockempire.github.io/ where you play the role of the scheduler, but your job is to make vulnerable programs misbehave.
- NietTim 3mo agoWhat a fun idea for a game!
- phaser 3mo agoI love this idea! I totally see it in the classroom or being played by someone who's trying to learn how to make an OS (which is on my personal bucket list) What I didn't like, is the tutorial is separate from the game. It would be awesome imo, if there's a tutorial stage where the game is explained hands-on (maybe pausing the game with explainers, until I start to get how to play) Otherwise I have to memorise the instructions before trying the game. Regardless, amazing little game.
- QuantumNoodle 3mo agoGreat concept but I did not have a ton of fun playing after the novelty wore off after a few minutes. It would've been more fun if time stood still and I had the opportunity to plan what I do at each cpu cycle. I was looking forward to managing cpu cache hits and ram usage.
- rnio 3mo ago[flagged]
- gabrielhidasy 3mo agoPretty cool, I would love to see a version where you code the tasks instead of madly click on stuff.
- drfreckles 3mo agoIt's possible. Look for "Run with an automated script" in the README.
- rizsyed1 3mo agoThis looks like a lot of fun
- ant-kinesthetic 3mo agoOh gosh this reminds me of a college project where we had to build the heap allocator in C. This is giving me nightmares
- nayuki 3mo agoThe game got too tedious to play by hand, so I wrote a script to play it automatically. It handles CPU, I/O, and processes quite well - but doesn't recognize a crown on a process and doesn't handle memory management at all. I found that even on the easy level, the number of processes keeps growing slowly, and there isn't enough CPU time to keep all processes satisfied. I feel like the game is inherently setting you up for failure. Here is the script if anyone wants to play with it: // ==UserScript== // @name Auto-play "You're the OS!" game // @include https://plbrault.github.io/youre-the-os/ // ==/UserScript== (async function() { const IO_EVENTS = {x: 160, y: 25}; const CPUS = 4; const CPU1 = {x: 50+46, y: 50+42}; const SQUARE = {w: 64+5, h: 64+5}; const PROCESS = {x: 50+46, y: 155+42}; const PROCESS_ROWS = 6; const PROCESS_COLS = 7; let cnv = document.querySelector("body > canvas"); while (cnv.width != 1280 || cnv.height != 720) await new Promise(res => setTimeout(res, 100)); while (true) { const pixels = new Uint32Array(cnv.getContext("2d").getImageData(0, 0, cnv.width, cnv.height).data.buffer); function getPixel(x, y) { return pixels[y * cnv.width + x]; } if (getPixel(IO_EVENTS.x, IO_EVENTS.y) == 0xFF808000); await pressKey("Space"); let cpuStatuses = []; for (let i = 0; i < CPUS; i++) { const p = getPixel(CPU1.x + SQUARE.w * i, CPU1.y); cpuStatuses.push( p == 0xFF000000 ? 1 : p == 0xFF9A9B9B ? 2 : p == 0xFF00FF00 ? 3 : p == 0xFFE6D8B0 ? 4 : 0); } let processStatuses = []; for (let r = 0; r < PROCESS_ROWS; r++) { for (let c = 0; c < PROCESS_COLS; c++) { const p = getPixel(PROCESS.x + SQUARE.w * c, PROCESS.y + SQUARE.h * r); let s = p == 0xFF000000 ? 1 : p == 0xFF9A9B9B ? 2 : p == 0xFF00FF00 ? 3 : p == 0xFF00FFFF ? 4 : p == 0xFF00A5FF ? 5 : p == 0xFF0000FF ? 6 : p == 0xFF00008B ? 7 : p == 0xFF000050 ? 8 : 0; if (s >= 3) processStatuses.push({r, c, status: s}); } } processStatuses.sort((a, b) => a.status - b.status); for (let i = 0; i < cpuStatuses.length; i++) { if (cpuStatuses[i] < 1) continue; if (cpuStatuses[i] >= 2) await pressKey("Digit" + "1234567890".charAt(i)); const p = processStatuses.pop(); if (p !== undefined) await clickMouse(PROCESS.x + SQUARE.w * p.c, PROCESS.y + SQUARE.h * p.r); } await new Promise(res => setTimeout(res, 300)); } async function clickMouse(x, y) { const rect = cnv.getBoundingClientRect(); const opts = { bubbles: true, clientX: rect.left + x * rect.width / 1280, clientY: rect.top + y * rect.height / 720, }; cnv.dispatchEvent(new MouseEvent("mousemove", {...opts, buttons: 0})); cnv.dispatchEvent(new MouseEvent("mousedown", {...opts, buttons: 1})); cnv.dispatchEvent(new MouseEvent("mouseup", {...opts, buttons: 0})); await new Promise(res => requestAnimationFrame(res)); } async function pressKey(code) { cnv.dispatchEvent(new KeyboardEvent("keydown", {code, bubbles: true})); cnv.dispatchEvent(new KeyboardEvent("keyup", {code, bubbles: true})); await new Promise(res => requestAnimationFrame(res)); } })();
- freedomben 3mo agoNow we just need to write an OS that will play this game and we'll be golden. Nice work! I have a kid trying to learn about OSes right now and I think this can be helpful for him
- uses 3mo agoI never get to the point where I had to manage memory. Am I doing something wrong? I just move processes to the CPU in order of highest-starved first, then move them off when they're green.
- seu 3mo agoSo while we're trying to make computers do what humans do, we play pretend being computers.
- deftio 3mo agoAnybody remember corewar, where each player wrote an adversarial programs in redcode?
- wkoszek 3mo agoEducation is the space that I'm hoping AI with unearth, and games like this could become a common part of the education. I totally see kids playing something similar for hours, learning core CS concepts and benefiting. Perhaps making a shooter would be awesome too: reclaiming memory, collecting cycles and energy and resources to train the model. Another hope I have that we could learn math/physics that way. Having a better more visual and intuitive understanding of some math concepts would be great. Perhaps having a truck go through the plot of a function and learning about limits and maxima and minima would be great etc. Same story: playing something like this for several hours could burn in kid's/adult's mind a pattern of undersatnding calculus that would last a lifetime.
- geophph 3mo agoThe non-food version of Overcooked!
- dgently7 3mo agoyou are onto something here.. except that instead of a single "scheduler" (the player) each core should need to grab and release its stuff. so its multiplayer and you have to coordinate who us doign what. or maybe each person is a sub sysyem, scheduler memory management etc