Windows The GM OS Project (GameMaker Operating System)

Status
Not open for further replies.
O

orSQUADstra

Guest




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




~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




 
Last edited:
O

orSQUADstra

Guest
Working on the system preferences right now!



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
 
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.
 
O

orSQUADstra

Guest
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.
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
 
O

orSQUADstra

Guest
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 )
 
O

orSQUADstra

Guest
Context menus on the way!


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

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:

woodsmoke

Member
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.
 
O

orSQUADstra

Guest
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.
Hey, if someone writes Tetris for it then sure.
I'm going to make a pacman game for it at least ;D
 
O

orSQUADstra

Guest
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.
 
D

Dave M

Guest
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.
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.
 
O

orSQUADstra

Guest
Just a screenie of how things are lookin' right now!

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! :)
 
O

orSQUADstra

Guest
Anyone interested in the making of Shell programs ( @Cloaked Games ;) )now have a nice little Guide to help them! (Click the image below)


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.
 

trg601

Member
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.
 
O

orSQUADstra

Guest
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.
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.
 
R

Rukiri

Guest
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...
 
O

orSQUADstra

Guest
Is this meant to just be like a better file manager for Game Maker?
It's just a fun Sub OS made with gamemaker.

I'm still scratching my head what the purpose of this is...
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
 
T

Thunder Lion

Guest
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.
Or use gml lol
 
O

orSQUADstra

Guest
Any updates on this? It's been a while since I've seen a new SubOS made in GM...
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
 
O

orSQUADstra

Guest
This is so awesome! Didn't imagine someone could do this, very creative :D
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
 
O

orSQUADstra

Guest
Well, I can't wait to see the first release! Is this being developed in GMS1 or GMS2?
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
 

MeBoingus

Member
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

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 :).
 
O

orSQUADstra

Guest
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
 
O

orSQUADstra

Guest
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:


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:
O

orSQUADstra

Guest
Another little update, I finally made shadows for the windows, so they don't blend into eachother :p



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.
 

MeBoingus

Member
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:


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 throught 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
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.
 
O

orSQUADstra

Guest
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?
 

MeBoingus

Member
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?
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?
 
O

orSQUADstra

Guest
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:
O

orSQUADstra

Guest
Started reworking the UI, now adding some better flow between different UI elements + making the last button selected



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

Sam (Deleted User)

Guest
You should consider adding these UI elements to the marketplace, and make them easily skinnable.
 
S

Sam (Deleted User)

Guest
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...
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 by a moderator:
O

orSQUADstra

Guest
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!
 
O

orSQUADstra

Guest
Quick progress update, started reworking context menus!



The planned features:
  • Sub-context menus
  • Separators
  • Icons
  • Keyboard shortcut labels
  • Disabled options
I feel like where this is going will be a huge improvement, as the previous context menus only offered to have a list of options without the ability to create sub-context menus, icons for the options, or any of these mentioned above. This might look like a minor work for some of you, but it's the details that matters, right? :D
 
Status
Not open for further replies.
Top