{"author_link":"\/users\/neon","author_name":"Neon","author_uid":1000230,"comments":[{"id":1127278,"author_name":"Pontax","author_uid":"pontax","epoch":1744083123,"text":"very adorable graphics. that sold it for me.","format":"md","likes":2,"spam":"N"},{"id":1127306,"author_name":"ZeroBlaster21","author_uid":"zeroblaster21","epoch":1744083450,"text":"Can you create a macos version\n","format":"md","likes":0,"spam":"N"},{"id":1128939,"author_name":"JackShadow","author_uid":"jackshadow","epoch":1744106419,"text":"Is the html version playable?  I see only a not interactive image","format":"md","likes":1,"spam":"N"},{"id":1131800,"author_name":"Neon","author_uid":"neon","epoch":1744128699,"text":"@zeroblaster21 Unfortunately, the mac version ran into some technical issues, but I'll look into it. (Apparently working directories work a bit differently on macOS, and the game\/engine currently assumes that the resources.db file is in the working directory, so afaik I can't really place the resources.db in any specific directory where it'll be found by the game when running on mac.)\n\n@jackshadow Yes, there should be a web version playable at the top of the game page, you're probably looking at the screenshot at the bottom of the description (the playable game is above the description). The [itch version](https:\/\/nc.itch.io\/oxygen) also has a playable html version.","format":"md","likes":1,"spam":"N"},{"id":1131854,"author_name":"JackShadow","author_uid":"jackshadow","epoch":1744129107,"text":"@neon the problem might be that I am trying to launch it on mac. As I mentioned before I have only non interactive image on itch and ld game page","format":"md","likes":0,"spam":"N"},{"id":1131984,"author_name":"Neon","author_uid":"neon","epoch":1744130025,"text":"@jackshadow Which browser are you using? I've only tested on Firefox and Chrome, so you could try one of those if you're using Safari.","format":"md","likes":0,"spam":"N"},{"id":1132038,"author_name":"JackShadow","author_uid":"jackshadow","epoch":1744130384,"text":"I guess it was my fail, it was not static picture - the game started with menu open and accept on X was non predicted from my side","format":"md","likes":1,"spam":"N"},{"id":1132963,"author_name":"Neon","author_uid":"neon","epoch":1744136931,"text":"@jackshadow Ah, that's a very good point. I'll add a note about it, I can definitely understand that.","format":"md","likes":0,"spam":"N"},{"id":1144671,"author_name":"rack47","author_uid":"rack47","epoch":1744335902,"text":"This is a cool concept for a simulation. Nice job!","format":"md","likes":1,"spam":"N"},{"id":1156735,"author_name":"Jajo","author_uid":"jajo","epoch":1745428261,"text":"I can't say I understood what I was doing all that well, but I'm super impressed that you a) made a simulation game for a jam, that is quite the undertaking and b) this is based on your own engine, which is extra cool. The UI was particularly good, as was the rest of the art, given how hand-drawn they looked.","format":"md","likes":1,"spam":"N"},{"id":1156762,"author_name":"Rentem","author_uid":"rentem","epoch":1745429721,"text":"Nice work! I like the graphics and interface, but sometimes the their status is replaced immediatly and sometimes not ![Untitled.png](\/\/\/raw\/6af\/04\/z\/6c6ae.png)\n\nPathfinding is funny, one diver tried to get to the left side while another tried to go to the right. They then went up and down until a third diver blocked one :laughing: ","format":"md","likes":2,"spam":"N"},{"id":1156772,"author_name":"PaulDee427","author_uid":"pauldee427","epoch":1745430256,"text":"The game would benefit from more complexity for sure, but I like the core concept. The divers' sprites are also nice. The background drone helps to create the mood, but I also wished for the sound to maybe evolve a little bit more, as it ends up feeling a bit repetitive, though I understand it's partially the time constraints of the jam. I didn't encounter any bugs, and the AI seemed to work well, and the fact that it's all on a self-made engine is impressive. Overall a good entry! \n(One thing though, when playing the web version, the ESC key, which opens the menu, also leaves the full screen mode, so I think a different key binding would work here better.)","format":"md","likes":1,"spam":"N"},{"id":1156841,"author_name":"LDJam user 365791","author_uid":"365791","epoch":1745437895,"text":"This is cool! Like, one jam's worth of Dwarf Fortress scope :) The score and the constant battling to not drown definitely score high for the mood and top scores for innovation. There were fun interactions when one of the maps  generated a couple of choke points between the energy and oxygen, making some moments where the divers were trying to get out of each other's way. At first it looked like they could be stuck in a loop but they'd deviate and go around. I think the best balance I could find was 2x Oxygen, 1x Energy, 1x Hauler. The troupe seemed self-sufficient with that set up. \n\nThis is a lot to take on and have it all work. I'm impressed.","format":"md","likes":1,"spam":"N"},{"id":1157309,"author_name":"zimny11","author_uid":"zimny11","epoch":1745516082,"text":"Well done! I really like colony simulators so had fun with that one too :) It is impressive that you manage to make it in such a short time. As other people mentioned, Esc feel a bit weird as an access to control panel, especially that C key is right there for [C]ontrol panel :D Also, would love some simple sound effects to add to the game mood, but current music already does a good job. Overall, great work with the game!","format":"md","likes":1,"spam":"N"},{"id":1157509,"author_name":"CiaranW","author_uid":"ciaranw","epoch":1745536535,"text":"The web version didn't really seem to work for me on firefox, but the downloaded version (windows) worked well. Its a shame that you didn't get the building mechanic implemented, because I can see how this would expand into a really cool underwater colony sim. Cute game though, and there is clearly a lot here in terms of the simulation and UI (impressive for a jam). I also really liked the audio: very simple but very moody. Nice job, I enjoyed watching the little divers wander around doing their jobs!\n\n... I also felt really cruel when I killed them all off after I was done playing, by setting them all to 'energy producer'... They stopped following my orders :'(","format":"md","likes":1,"spam":"N"},{"id":1157592,"author_name":"croze","author_uid":"croze","epoch":1745563996,"text":"Neat little sim, would love to see more controls expanded on. Took me an embarrassingly long time to realize I can pause the game to give commands\/assign roles, which added appreciation to the AI behind the lil dudes\nAlways liked playing with little sim toys like this, and very cool that you made it from scratch!","format":"md","likes":1,"spam":"N"},{"id":1157650,"author_name":"Shasaur","author_uid":"shasaur","epoch":1745575680,"text":"Very impressive game considering you built everything on top of SDL. I remember the times many many years ago where I did the same as I was just starting to learn game programming, using C++ and SDL (LazyFoo ftw!).\n\nI think you captured the main elements on the colony sim genre quite well! I personally like this ant farm aspect quite a lot - am building a game in this genre full-time after all :)\n\nThe biggest small thing that could have gone a long way is adding some small SFX in places: on collection of resources, on re-filling, etc.. :)","format":"md","likes":1,"spam":"N"}],"format":"md","images":["ld57\/wayback-placeholder.png"],"links":[{"url":"https:\/\/github.com\/neonmoe\/oxygen","text":"Link"}],"metadata":{"g_key":"68625","g_author":"1000230","g_event":"LD57","g_eventkey":"111","g_subevent":"JAM","g_urlkey":"292372","g_title":"Diving for Oxygen","g_status":"WAYBACK","g_place":"817","g_commentcount":"17","g_site2_node_id":"407287","g_hide":"N","g_has_icon":"Y","g_rqueue":"0","g_random":"0"},"nds":{"n_key":"407287","n_urlkey":"292372","n_parent":"406845","n_path":"\/events\/ludum-dare\/57\/diving-for-oxygen","n_slug":"diving-for-oxygen","n_type":"item","n_subtype":"game","n_subsubtype":"jam","n_author":"230","n_created":"0","n_modified":"0","n_version":"1311876","n_status":"WAYBACK"},"node":{"id":407287,"parent":406845,"_superparent":9,"author":230,"type":"item","subtype":"game","subsubtype":"jam","published":"2025-04-08T01:24:20Z","created":"2025-03-19T15:40:49Z","modified":"2025-04-25T23:57:13Z","_trust":6,"version":1311876,"slug":"diving-for-oxygen","name":"Diving for Oxygen","body":"A short colony simulator where you try to lead your little divers to productive ends, like producing energy and oxygen, so that they can keep breathing.\n\nMade in my own engine I wrote on top of SDL! This is actually a part of my master's thesis, studying the development experience of using Rust to write a game engine :)\n\nNote that the game starts in a paused state without any sound, so if you start playing, you'll need to select \"Continue\" (X on the keyboard) to start the game.\n\n### Guide\n\nThere is no clear objective to the game, but you'll probably figure out the bounds of the sandbox after playing a little bit. For further details, spoilers: the main objective of the game is to keep the divers alive. For that, they need oxygen, which is produced by divers with the \"Oxygen mechanic\" job. To make oxygen, they need energy, which is produced by divers with the \"Energy producer\" job. There is a third job, \"Hauler\", which can help the other two jobs be more efficient by allowing them to keep working while the hauler moves around the relevant resources. The 3 lines of information on the divers' cards are: Job, Morale, and Oxygen. The job can be changed in the Command Divers menu. If morale falls too low, the diver will go for a walk instead of working to recover some. If oxygen falls too low, the diver will try to find oxygen to refill it. The fun of the game is really just watching the simulation go, didn't manage to add in too much interactivity.\n\nKeyboard and gamepad controls are supported, and the overlay at the bottom explains what the buttons do, but not the mouse (as you might expect from a colony sim).\n\nThe game is also on [itch.io](https:\/\/nc.itch.io\/oxygen).\n\n### Jam details\n\nI was originally going for the compo, but needed a bit more time. So the music and art was made by me during the jam. Music with Make Noise's Strega synthesizer (cut and filtered a little with Bitwig Studio), and art with Krita.\n\n### 2025-04-09: macOS port\n\nHeads up: I haven't tested the mac build at all, I just set GitHub Actions up so that it builds it, and uploaded the result here. The build commands are from an older game which I *did* test on a macOS, so it *might* work.\n\nGiven that porting after the jam is within the rules, I updated the builds with the most recent one, which made macOS builds possible. There shouldn't be any change at all to the Linux and Windows versions, but the web version now also uses the same mechanism for embedding files as the mac build, so it's a little different. It shouldn't have any visible effects on the game though, other than maybe better or worse loading times. I updated all of the platforms' builds in any case, so that they're all from the same version of the source code, which I also updated. You can find the code changes made after the deadline [here](https:\/\/github.com\/neonmoe\/oxygen\/commit\/bf64d777b8b4847b2c7308e36d6aa9e44ef7293a) (there's also one other commit after the deadline, but that was just the screenshots and cover image, no code or game asset changes).\n\n### Screenshot\n\n![screenshot-01.png](\/\/\/raw\/6e\/z\/6b07a.png)","scope":"public","node-timestamp":"2025-04-23T15:20:46Z","meta":{"author":[230],"cover":"\/\/\/content\/6e\/z\/6afff.png","allow-anonymous-comments":"1","link-01":"https:\/\/github.com\/neonmoe\/oxygen","link-01-tag":[50]},"meta-timestamp":"2025-04-25T23:57:13Z","path":"\/events\/ludum-dare\/57\/diving-for-oxygen","parents":[1,5,9,406845],"files":[{"id":40620,"author":230,"node":407287,"tag":0,"name":"$$embed-40620.zip","size":17231722,"timestamp":"2025-04-08T01:19:29Z","status":64},{"id":40621,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-linux.zip","size":16950225,"timestamp":"2025-04-08T01:19:59Z","status":0},{"id":40622,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-windows.zip","size":17470010,"timestamp":"2025-04-08T01:20:06Z","status":0},{"id":40623,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-sources.zip","size":25658903,"timestamp":"2025-04-08T01:20:34Z","status":0},{"id":41466,"author":230,"node":407287,"tag":0,"name":"$$embed-41466.zip","size":17242232,"timestamp":"2025-04-08T21:22:53Z","status":73},{"id":41467,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-linux.zip","size":16956170,"timestamp":"2025-04-08T21:23:12Z","status":0},{"id":41468,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-windows.zip","size":17476490,"timestamp":"2025-04-08T21:23:19Z","status":0},{"id":41469,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-macos.zip","size":17720765,"timestamp":"2025-04-08T21:24:14Z","status":0},{"id":41470,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-sources.zip","size":29131940,"timestamp":"2025-04-08T21:25:28Z","status":0},{"id":41673,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-web.zip","size":17242232,"timestamp":"2025-04-09T18:57:48Z","status":0},{"id":41674,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-linux.zip","size":16956170,"timestamp":"2025-04-09T18:58:15Z","status":9},{"id":41675,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-windows.zip","size":17476490,"timestamp":"2025-04-09T18:58:22Z","status":9},{"id":41676,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-macos.zip","size":17720765,"timestamp":"2025-04-09T18:58:29Z","status":9},{"id":41677,"author":230,"node":407287,"tag":0,"name":"diving-for-oxygen-sources.zip","size":29131940,"timestamp":"2025-04-09T18:58:34Z","status":9}],"files-timestamp":"2025-04-09T18:58:34Z","love":0,"comments":17,"comments-timestamp":"2025-04-25T10:08:00Z","grade":{"grade-01":21,"grade-02":21,"grade-03":21,"grade-04":21,"grade-05":21,"grade-06":21,"grade-07":20,"grade-08":21},"magic":{"cool":82.03389390019,"feedback":15,"given":13.375,"grade":20.875,"grade-01-average":2.816,"grade-01-result":817,"grade-02-average":2.263,"grade-02-result":864,"grade-03-average":2.842,"grade-03-result":688,"grade-04-average":3.316,"grade-04-result":631,"grade-05-average":3,"grade-05-result":690,"grade-06-average":2.947,"grade-06-result":493,"grade-07-average":2.306,"grade-07-result":608,"grade-08-average":3.342,"grade-08-result":579,"smart":-3.4100991896798},"_wayback":{"timestamp":"20260213193617","url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/408036+411721+415095+415245+408628+410514+412534+414554+408231+412383+413374+409228+413485+407588+406905+409098+409115+411077+407287+410322+411316+406991+413690","source":"global-node-catalog"}},"text":"A short colony simulator where you try to lead your little divers to productive ends, like producing energy and oxygen, so that they can keep breathing.\n\nMade in my own engine I wrote on top of SDL! This is actually a part of my master's thesis, studying the development experience of using Rust to write a game engine :)\n\nNote that the game starts in a paused state without any sound, so if you start playing, you'll need to select \"Continue\" (X on the keyboard) to start the game.\n\n### Guide\n\nThere is no clear objective to the game, but you'll probably figure out the bounds of the sandbox after playing a little bit. For further details, spoilers: the main objective of the game is to keep the divers alive. For that, they need oxygen, which is produced by divers with the \"Oxygen mechanic\" job. To make oxygen, they need energy, which is produced by divers with the \"Energy producer\" job. There is a third job, \"Hauler\", which can help the other two jobs be more efficient by allowing them to keep working while the hauler moves around the relevant resources. The 3 lines of information on the divers' cards are: Job, Morale, and Oxygen. The job can be changed in the Command Divers menu. If morale falls too low, the diver will go for a walk instead of working to recover some. If oxygen falls too low, the diver will try to find oxygen to refill it. The fun of the game is really just watching the simulation go, didn't manage to add in too much interactivity.\n\nKeyboard and gamepad controls are supported, and the overlay at the bottom explains what the buttons do, but not the mouse (as you might expect from a colony sim).\n\nThe game is also on [itch.io](https:\/\/nc.itch.io\/oxygen).\n\n### Jam details\n\nI was originally going for the compo, but needed a bit more time. So the music and art was made by me during the jam. Music with Make Noise's Strega synthesizer (cut and filtered a little with Bitwig Studio), and art with Krita.\n\n### 2025-04-09: macOS port\n\nHeads up: I haven't tested the mac build at all, I just set GitHub Actions up so that it builds it, and uploaded the result here. The build commands are from an older game which I *did* test on a macOS, so it *might* work.\n\nGiven that porting after the jam is within the rules, I updated the builds with the most recent one, which made macOS builds possible. There shouldn't be any change at all to the Linux and Windows versions, but the web version now also uses the same mechanism for embedding files as the mac build, so it's a little different. It shouldn't have any visible effects on the game though, other than maybe better or worse loading times. I updated all of the platforms' builds in any case, so that they're all from the same version of the source code, which I also updated. You can find the code changes made after the deadline [here](https:\/\/github.com\/neonmoe\/oxygen\/commit\/bf64d777b8b4847b2c7308e36d6aa9e44ef7293a) (there's also one other commit after the deadline, but that was just the screenshots and cover image, no code or game asset changes).\n\n### Screenshot\n\n![screenshot-01.png](\/\/\/raw\/6e\/z\/6b07a.png)","title":"Diving for Oxygen","wayback_recovered":true,"wayback_source":{"timestamp":"20260213193617","url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/408036+411721+415095+415245+408628+410514+412534+414554+408231+412383+413374+409228+413485+407588+406905+409098+409115+411077+407287+410322+411316+406991+413690","source":"global-node-catalog"}}