Windows The GM OS Project (GameMaker Operating System)

Discussion in 'Work in Progress' started by orSQUADstra, Jan 3, 2018.

  1. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    [​IMG]



    Introduction

    Welcome to the GM OS Project! Here, you can experience my own way of writing a sub OS in GameMaker. Back in the day, lots of there have been
    around, but my project is different - it's functional. Every feature is worked on to make it imitate an actual operating system. So, how is this project
    unique? Unlike 99% of the sub OS projects, it's not just a few pre-scripted events and faked features - this project offers real functions, with lots of
    work behind the curtain to perfect every aspect of it. But, for now, let me show you:


    Features

    • Fully functional file management!
    • In-depth, polished interface and GUI elements!
    • Customization!
    • A clipboard system, like you've never experienced before!
    • New, fresh look!
    • Third party program support - Write your own programs in GML!
    • A built-in store - find neat apps for GM OS and download them with ease!
    • Set up multiple User accounts, if needed!
    • Accessibility options - high contrast, virtual keyboad
    And much more!



    Gallery

    [​IMG]
    [​IMG]
    [​IMG]

    ~Soon to be updated~


    Latest changelog

    ~Soon~


    Download

    ~Soon~

    Note: this project is not yet ready to be downloaded! Because of that, the download buttons are just there as a placeholder. But, in the meantime,
    click on Watch Thread to get notified with every small update I'll post here! :D


    [​IMG]

    [​IMG]
     
    Last edited: Mar 30, 2019
    KPJ, JON213, FB-Productions and 21 others like this.
  2. matharoo

    matharoo Udemy Instructor

    Joined:
    Jul 9, 2016
    Posts:
    918
    Looks amazing, and this post is very well done as well. :) Best wishes!
     
    orSQUADstra likes this.
  3. rIKmAN

    rIKmAN Member

    Joined:
    Sep 6, 2016
    Posts:
    4,518
    Pretty cool, good luck!
     
    orSQUADstra likes this.
  4. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Working on the system preferences right now!

    [​IMG]

    After I finish the most important things in it, and I add a few other important things to the "OS" itself, I'll post a download link to try it out! Hopefully it'll be done in a few days.

    Until then, feel free to leave some feedback :D
     
  5. Cloaked Games

    Cloaked Games Member

    Joined:
    Jul 4, 2016
    Posts:
    796
    Hm... I will be writing a .shl at some point I think. Will you just be giving us an exe? Or will you do it open source? I think if it was open source it would be a lot easier to write applications for it. Otherwise we would need a very detailed explanation of how all the parts interact. Like, how would we create a new window, in what ways are views used, etc.
     
    orSQUADstra likes this.
  6. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    I'll just give an .exe, but once I feel like all crucial parts are just like how they have to be, I'll make a guide to how to make your own .shl. I'll make it as simple as I can.

    For example, for a create event, if you don't need any variables, it's enough to just leave a window_create(width, height, title, resizable) which sets all the variables for you, and for the draw event only the draw_window(x,y,w,h,title,resizable) is enough. For the step event, I can't make it all in script, but I'll just post the short block of code to put in it. Just that itself is enough to have an empty window.
    Since I don't want it to be 100% open source (for now at least), I'll just simply explain every premade script, how to use, what it does.

    Of course if anyone needs some assistance in the making of a said .shl, I'll gladly help them out wherever I can! :D
     
    Cpaz likes this.
  7. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Nvm, I actually managed to do all the default window thingies only 3 scripts (window_create(...), window_step(), draw_window())

    So far what you could've seen in screenshows with the name of "Testprogram.shl", it was an empty window, now I recreated the code with the current scripts and made it into a prorgam that if activated it changes the theme color based on make_color_hsv and current_time.

    https://imgur.com/a/xRXxR

    (Don't mind the glitchy icons, it's just that I lowered the quality of the gif so it's not so big :p )
     
  8. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Context menus on the way!
    [​IMG]

    Also I'd like to get some feedback on this one:
    Which design do you guys prefer?
    [​IMG]
    [​IMG]

    If you think the second one is better (just imagine it with a bit less transparency), I can rework the current filebrowser to look like it. The blur would be static, which means when you set a wallpaper, it also generates a blurred one and the windows will use that.
     
    Last edited: Aug 17, 2019
  9. woodsmoke

    woodsmoke Member

    Joined:
    Jun 21, 2016
    Posts:
    305
    Cool, but can it run Cry..err..Tetris?

    I like the icons on the left from the previous version and the lack of transparency of the current version.
     
    orSQUADstra likes this.
  10. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Hey, if someone writes Tetris for it then sure.
    I'm going to make a pacman game for it at least ;D
     
  11. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Hey guys, I'm here with a question:
    Would you like to have a try-out version sooner but with fewer things, or wait more and have the first impressions with having more features and overall more functionality?
    If you're okay with fewer things, I can most likely push out a download for it on this weekend.
     
  12. Dave M

    Dave M Member

    Joined:
    Dec 30, 2017
    Posts:
    51
    Best to wait with a comfortable impression of more function and features.
    But I would like a download, editable, and be running on a Raspberry Pi. But that's just me.
     
    orSQUADstra likes this.
  13. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Just a screenie of how things are lookin' right now!
    [​IMG]

    Anyway, here are a list of things I've done since the creation of this thread:
    • Functioning scrollbars
    • Context menus
    • System Preferences - not finished yet
    • Changing icon size in the file explorer with Ctrl + mouse wheel
    • Customizable title bar height
    • Mostly-functioning, reworked Dock (even though you'll be able to choose whether you want to go with the way it looked in the previous screenshots, or the new one)
    And, a list of everything that I want to add, fix or finish before giving out an .exe:
    • Finishing at least a part of the system preferences
    • A login screen
    • An image viewer
    • Adding a bit more functionality to the dock
    I'll try my best to finish these ASAP, hopefully will be out tomorrow! :)
     
  14. Gamerev147

    Gamerev147 Member

    Joined:
    Sep 12, 2016
    Posts:
    444
    Does it have resizable windows?
     
    orSQUADstra likes this.
  15. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Yes, it supports resizable windows. :)
     
    Gamerev147 likes this.
  16. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Anyone interested in the making of Shell programs ( @Cloaked Games ;) )now have a nice little Guide to help them! (Click the image below)
    [​IMG]

    Note: the guide is not finished yet, but by the time I release the first .exe, it will be! Even though you can already get familiar with how the windows work, etc.
     
    EvanSki likes this.
  17. trg601

    trg601 Member

    Joined:
    Jun 21, 2016
    Posts:
    144
    Ooh, I remember when SubOSes were a thing in GM.
    This one looks particularly promising though, and I'm excited mess around with shell programs when you release it to us!

    One thing that comes to mind though is that I remember, at least on the old forum, that these kinds of programs are forbidden.
    I think the reason was because they seemed "dangerous."
    I don't think your program is dangerous if it doesn't mess with windows and uses a sandbox, but I thought I'd let you know.
     
    orSQUADstra likes this.
  18. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Yes, I've talked about Nocturne about that, and he said it's fine. Of course GM8 is sandboxed, but also has these object_add functions that are important for this project.
    Well now, of course I don't want people to accidentally mess their own system so I made my own way to make it sandboxed. Well. Kinda.
    The filebrowser has a "safety lock", let's say, which when you change directory will always check it, and if it's outside the working_directory+"\OS\", then it throws you back in there.
     
    trg601 likes this.
  19. andev

    andev Member

    Joined:
    Jul 2, 2017
    Posts:
    444
    If you ever make it open source though..
     
    orSQUADstra likes this.
  20. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    I most likely will, but not in such an early phase. :D
     
  21. Rukiri

    Rukiri Member

    Joined:
    Sep 25, 2016
    Posts:
    141
    Some things I'd change:
    Change the dock to a taskbar which is far more productive than a dock, but I'd like to see a global menu which is one of the things MacOS got right!

    Is this meant to just be like a better file manager for Game Maker? Would be cool if you could edit levels, sprites (with a pseudo photoshop or pyxel edit), maybe even a sound editor.

    I'm still scratching my head what the purpose of this is... If it could possibly be a component based editor for levels, sound, sprites, fonts, etc I'd think it'd do well but based on what I see it's kinda I dunno...
     
    SnotWaffle Studios likes this.
  22. andev

    andev Member

    Joined:
    Jul 2, 2017
    Posts:
    444
    How? I'd argue they're equally productive
     
  23. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    It's just a fun Sub OS made with gamemaker.

    The purpose? The purpose is to get myself more familiar with arrays and the file functions. Which I did, so that's great. But now, I'm just trying to see how far I could go with this project, how can I make it better. It also has some kind of an aim to be a community project I guess, as I made it so you can make 3rd party programs for GM OS. All you need is to know some of the obsolete functions, possibly read the guide I made, and (what I assume most of us do,) know GML.

    I didn't work on this on the last few days as I had many tests lately, and so I was busy with school. But updates will come soon, as well as an .exe :D
     
  24. DividingByZero

    DividingByZero Member

    Joined:
    Jan 31, 2017
    Posts:
    504
    I said it earlier, but I think it would be cool to turn it into a 'hacking' style game - using the OS as your interface for the game.
     
  25. Thunder Lion

    Thunder Lion Member

    Joined:
    Aug 11, 2016
    Posts:
    239
    Or use gml lol
     
  26. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    The .shls are to be written in gml though.
     
  27. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158
    Any updates on this? It's been a while since I've seen a new SubOS made in GM...
     
    orSQUADstra likes this.
  28. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    I'm still working on it, just been quiet here. And the changes weren't too major either.. Just smaller bug fixes and UI changes. I need to change the whole start menu though.

    Sorry for not posting anything here for a while now, I was very sick for a week and had to learn a lot for school aswell. But once I think the build I have is worthy of posting, I'll make sure to post it. :D
     
  29. Carloskhard

    Carloskhard Member

    Joined:
    Mar 13, 2017
    Posts:
    184
    This is so awesome! Didn't imagine someone could do this, very creative :D
     
    orSQUADstra likes this.
  30. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Well, the base idea of making a SubOS with gamemaker wasn't really mine as many attempted it before. The problem with these, is that most of them were silly, small concepts that has no actual functionality. I rember I saw one on the old sandbox which was a Windows 98 knockoff, where the window system was more or less working good, and had a file explorer, but it really was just displaying folders and nothing else, you couldn't do anything with them. And then, buttons on the windows were bugging in and out.

    The first few attempts at making a SubOS, it was the same as the rest: didn't look good, no functionality at all, and you could click through windows. That was a few years ago. Now, that I have more experience, I decided to give it another go, and well, this project is the result xD
     
    Liam Jacobs and Carloskhard like this.
  31. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158
    Well, I can't wait to see the first release! Is this being developed in GMS1 or GMS2?
     
  32. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    None :p I use GameMaker 8.0, because it gives you a free hand, not like the sandboxed file functions in GMS 1 and 2. Also, it still has execute_string, which is important in this project, as that function is used to load up external "applications" that I just call Shells. I know, you can buy marketplace assets that lets you break out of the sandbox, and give an alternative to execute_string, but that would cost me money obviously. Right now, I'm just trying to save up for a new videocard :D
     
  33. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158

    I reckon I would be able to port this over to GMS1 if it's ever released as an open source project. Nevertheless, will be following the progress of this project religiously as new updates come out :).
     
    orSQUADstra likes this.
  34. appleWolf

    appleWolf Member

    Joined:
    Jun 27, 2016
    Posts:
    34
    You could use @Samuel Venable 's stuff and launch stuff that way...

    You could also write your own interpreter for GML, not sure of copyright issues with that, though...
     
    Samuel Venable and orSQUADstra like this.
  35. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    I've been thinking quite a lot about about how I should change the project. Not in functionality, but in design. I've been getting feedback about how people appreciate the dock better, and some a taskbar. I just simply feel like having a dock leaves you free space on the screen, which is good. But then, having a taskbar can make things easier from the coding side. But I really have no idea which one to go for. xD
    Anyway, the images under Gallery are kind of outdated. Here's a screenshot of the current build, with the new (static) blur effect
    [​IMG]
     
  36. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Big update!

    Well, not big, but still can probably have a big impact. This is something that will be appealing to the people who are planning, or already making their own Shells. Not just any shells, but something like, an image viewer, a music player, a text editor, anything like that. ( @trg601 )
    The way Shell programs are going to be written - it'll be simplified. I'll go into more detail once it's actually mostly finished, I'll make a post about that in the Shell program guide thread.

    Before I go into any detail, here's a pic:
    [​IMG]

    Whenever opening something, you'll have that window pop up. Pretty much the same as what you see in Windows when you click on an unknown filetype - it brings up a list of options to choose from, which program you would like to use to open the file.
    If you want a Shell program to appear there, (like the "reference shell test" in the image,) you'll have a text file in your .shl folder where you'll have to set a variable: toolmode=true. That will make GM OS recognize the Shell program as something that can open files. Now, if your shell is being opened through that window, your shell will have a variable set (not sure what it will be named yet, for now I used "test", but I sure as heck will change that to something else). That variable is a string, and contains the path to the file. Otherwise, that variable will simply contain "".

    And, there's another thing that you need to do in order to get your Shell to appear there, as well as in the "installed shells" section - when you right click on your Shell icon, you'll see an option in the right click menu: "Root Shell". This will copy the shell into a folder specifically for Shells that the system will read.

    That's it for now, and for the meantime, I'll be reworking the home menu/screen. Cheers! :D
     
    Last edited: Mar 1, 2018
  37. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Another little update, I finally made shadows for the windows, so they don't blend into eachother :p

    [​IMG]

    But now, here's a question to all of you: Would you prefer if I switched from Dock to a Taskbar?
    It could stilll be resizable, and you'll also be granted an option in System Preferences where you could set a gap between the taskbar's horizontal edges and the edges of the screen - making it have some sort of a Dock feeling for whoever might prefer that.
     
    Gamerev147 likes this.
  38. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158
    This whole project is incredibly professional. I used to be part of a big SubOS development community when such programs were banned from the 'GMC,' and this is the most effort and polish I've ever seen put into a SubOS.

    I'd love to find some of the other SubOS Dev members like Loaf or Brother156 to get their take on this, but I have a feeling that people like that will never be found again, sadly.
     
    orSQUADstra likes this.
  39. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Finalizing things here and there for the first public release. It might take some time though, as I decided to drop the idea of having a simple Dock, and went for a fully customizable hybrid of a taskbar and a dock, where you can set almost everything, and which will even be able to have widgets on.
    One thing to note, is that everything is still very early - for example, in the file explorer, most of the options context menus offer doesn't actually do anything, and many file types still don't have context menus at all.

    But I have a question: If I were to make a youtube channel dedicated to this project, where I would post frequent updates of the progress of the OS, make a tutorial series for making your own Shells and widgets, and probably have one or two videos where I would just talk about something, would you guys be interested in it?
     
    Liam Jacobs likes this.
  40. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158
    I'd certainly watch something like devlogs?

    Just a concept - Why not make the dock / taskbar hybrid something you can switch between in the settings?
     
    orSQUADstra likes this.
  41. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Yeah, it has actually been a hybrid for almost a week now, just not much have I posted about it :D
     
    Last edited: Mar 9, 2018
    Liam Jacobs and hamdrax24 like this.
  42. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Sorry everyone for working so slow on this, I just rarely have motivation to do so. But I'll get to it eventually, lol
     
    Last edited: Apr 9, 2018
    Liam Jacobs likes this.
  43. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158
    Whenever you're ready, man! Also been working a small project.
     
    orSQUADstra likes this.
  44. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Started reworking the UI, now adding some better flow between different UI elements + making the last button selected

    [​IMG]

    I should also note that the images in the Gallery spoiler are heavily outdated by now, so I should probably update them soon :D
     
  45. Samuel Venable

    Samuel Venable Time Killer

    Joined:
    Sep 13, 2016
    Posts:
    1,263
    You should consider adding these UI elements to the marketplace, and make them easily skinnable.
     
    orSQUADstra likes this.
  46. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Well, I don't know, there already are like 10+ GUI packs and I doubt mine would be better than any of these, but we'll see :D
     
    Liam Jacobs likes this.
  47. Liam Jacobs

    Liam Jacobs Member

    Joined:
    Jul 1, 2016
    Posts:
    158
    I've yet to see a 'window' system on there. Let alone one with the ability to anchor elements inside of a window and have them move with it.

    Believe me - I've looked :D
     
    Samuel Venable and orSQUADstra like this.
  48. Samuel Venable

    Samuel Venable Time Killer

    Joined:
    Sep 13, 2016
    Posts:
    1,263
    Why haven't you tried this? Someone wrote a GML interpreter, I can't remember who, but it is written in GML so it is cross-platform.

    If you need to break out of the sandbox for free, I have 2 extensions you can use on Windows, Linux, and potentially Mac as well.

    File Manager:
    https://marketplace.yoyogames.com/assets/5510/file-manager

    File Dialogs:
    https://marketplace.yoyogames.com/assets/6621/file-dialogs

    If you have any experience with VBScript or JScript, that could also be used in place of execute_string/file.

    Microsoft Script Control:
    https://marketplace.yoyogames.com/assets/6342/microsoft-script-control

    Also, YoYoGames can't copyright GML, there are copy-cat game engines that use GML as a base. I won't mention their names. I'm not allowed to. The only reason I'm telling you this is because this is how I know there are no copyright issues with this. If there were, YoYoGames could take legal action to put an end to those game engines permanently. They haven't, because they can't, even though they may want to.
     
    Last edited: Apr 9, 2018
    orSQUADstra likes this.
  49. orSQUADstra

    orSQUADstra Member

    Joined:
    Aug 8, 2017
    Posts:
    237
    Somehow I didn't have any luck using or even understanding interpreters. These marketplace items do seem pretty convinient, but still I'd have to stick with GM8 for execute_string as I couldn't really get parsers to work in GMS 2 and I have no experience with VBscript or JScript at all.. But thanks for mentioning these nonetheless!
     
    Samuel Venable likes this.
  50. Samuel Venable

    Samuel Venable Time Killer

    Joined:
    Sep 13, 2016
    Posts:
    1,263
    No problem! :)
     
    orSQUADstra likes this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice