Discussion in 'Work in Progress' started by orSQUADstra, Jan 3, 2018.
Looks good, you have really made the best of Game Maker 8, when can we expect a release date?
The project is progressing a bit slower right now, as I'm distributing my free time over studying, working on this project and a game. At this moment I'm focusing more on my game than this project, but next week I'll return back to this one. As to when we'll see a public download, I'm not sure, but I will release it once I feel like it has enough functionality and is optimized well enough.
Before the first proper public release I'll make an earlier release (which might still have bugs here and there, and might lack polish at places) so that people who want to start making programs for it can have a few games/software done before the release. The OS will have a built-in software center where you can download community programs and additional "official" software that are not included in the OS.
How are we going to develop these applications?
I have explained it in my older comments, but in short, you'll be able to make programs for the system by having a folder that ends with ".shl", which GM OS will recognize as an app. That folder will have a png for an icon, text files (create.txt, step.txt, etc) containing GML code for your app, and any other resources your app might need which you can import (sounds, sprites). Then you just write your program / game in GML, nothing too special there. I'll post an in-depth guide though, to explain all the UI scripts the OS uses for buttons, text boxes, context menus, all that. Of course the code for the window itself will be added when the program is opened, and everything is drawn onto the window's surface, so you don't have to worry about X and Y coordinates while drawing.
Quick question...will we be able to use newer gml from GameMaker Studio 2 and GameMaker Studio 1.4
Since the project is being developed in GM8 for the ease of creating new objects on the run, which is not something you can do in GMS1.4 or 2, I have to stick with legacy GML. That in itself shouldn't matter too much, you wouldn't be able to use shaders or similar things anyway. But again, since there weren't any major changes in most of GML, and you won't use views because the window is using a surface, there shouldn't be any problems.
Ok I'll start thinking about developing my own .shl
Submenus now work correctly:
As well as shl files (more or less):
The latter still needs some polishing. These programs work in themselves, however there still are a few things to fix on them (for example, at the moment they won't appear on the taskbar as a new running app)
That white border around the file explorer is a little over the board, in my opinion. I get there needs to be some contrast, but I'd personally make it a little bit more subtle.
That aside, it's really looking good. I wish Windows had a blurry transparent side panel on its file explorer.
The submenus also look professional with the keyboard shortcuts being displayed an all that. Will we be able to add elements to the context menu of the explorer? That'd be kinda cool.
Thanks for the feedback!
The border is white because it's using a window configuration that has white borders, this way it doesn't have to calculate where it should be white and where it should use the theme color. Also, as a user you won't really be able to add more options to the context menus in the explorer as it's a built in application, however the "open with" submenu can be extended by adding shl programs. Anyway, context menus are easy to use, and for anyone making shl apps, there are built in script to create context menus, add elements, any number of submenus, icons, tooltips etc, and also returning what the user selected.
Sorry, I don't understand. This is supposed to be an OS for GM-only usage or an OS that operates in GML? I'm lost, hahah.
What you have so far looks neat!
Just an OS (obviously pseudo, not a real one) written in GML, to which you can also write your own apps in GML
Neat! Might make a virus for it one day.
Added a new highlight effect and kind of an animation after opening folders:
Also did some changes to the context menu icons, now they are expected to use two frame sprites but you can leave one empty if you want. Frame 0 would be used for a colored icon, frame 1 (which should be pure white) for an icon that can be colorized based on the background.
I've followed the 'SubOS' side of GM since 2008. It started out with some horrible, stretched-out programs that mimicked the UI of Windows or Mac systems.
People started putting huge amounts of effort into their systems, and we got projects like 'BoredOS' and 'Owl' which looked fantastic, but had very limited functionality.
By the time GMS came around, SubOSes had died out, the official GM SubOS forum was closed and people seemingly forgot about the concept overnight.
In the ~10 years I've seen these applications being made, out of every single one I've ever had the chance to play around with, and the countless hours I've poured into working on SubOS projects of my own... this is BY FAR the best example of what the genre can be. It takes all of the best elements from the other SubOSes made in GM, improves them 10-fold, and appends an incredible amount of of unique, well-coded additions.
I am absolutely FLOORED at what you have been able to create, here. To say that you are a talented young man... would be an understatement.
Bravo, orSQUADstra. Bravo.
A tiny bit of knowledge from someone who's put time into this genre as well:
If you do choose to host this somewhere (for download) use many mirrors. There's nothing worse than running into something that looks amazing, but is impossible to get a hold of.
Your 'appstore' server should be hosted somewhere that 'cannot' go down. I.E. Using your own webserver might be a bad idea, as if you forget about the project, or lose the domain, there will be issues going forward.
There's no such thing as 'too much customization.' SubOSes are fantastic, in that it lets users have the comfort of running a secure, functional operating system (In this case, Windows), while being able to modify how it's appearance and functionality. Users who find projects like this interesting, are most-likely looking to break away from the everyday, 'boring' idea of Windows.
Accessibility for developers is huge. If you throw together a small (almost GM-like) program (shell) INSIDE of your OS, that allows developers to create, edit and test apps inside of the OS, you'll see a lot more Shells being released.
The same can be said for access to the app store. If users can create a Shell inside of the system, itself, and upload it to the 'store' without having to close everything down, access a website on their 'host' machine, and do everything from there - You'll see a huge boost in the number of apps on the store.
Most importantly of all: Make a functional browser in the system. 99% of PC users spend their time browsing the net. If you can offer them a good browsing experience from within your SubOS, they'll have almost no reason to exit back to windows.
Just some stuff I've picked up on, over the years. Best of luck to you and for your project.
Thank you for your kind words! I'm glad you like my project and it especially now that it's slowly coming together, I see that the hard work really is starting to pay off.
Also, thanks for the tips! While I would absolutely love to follow these points, there are some problems that makes it more or less impossible, or at least, for now. I can't just run a server for myself, and as such, the only way I can make a store (which I have done in the past this exact same way) is by downloading an ini file containing all the information that the store has to use (basically, version number and the list of apps with download links). This means it's read-only for the program, so you can't really just upload to the store from the OS, people will have to DM me a download link, title, description etc for their apps. This also means there isn't any real way to have a rating system, but the listed apps can be locally marked as a favorite.
For a GM-like IDE, I was thinking about something like that, however, I'll only include a code editor that contains descriptions for all the custom scripts I made. Making an actual IDE like gamemaker INSIDE gamemaker would be against the TOS, sadly.
And lastly, I don't have any nice way to make a browser. I can use an extension/dll that I have and know it works, but that would be shown on top of everything, so if the window was overlapping the browser window, the website showing part would still be on top. It would kind of ruin the immersion I feel like. The other option that I would have is to write an HTML to GML translator kind of thing, but obviously that would be too much for me. But we'll see what I can do with it.
One thing I would also like to mention is that, since this is being developed in GM8, the performance isn't the greatest. If you have more than 3 explorer windows open, since it has to do call in quite a few draw functions to show the files and everything, the framerate already starts to drop. But I only really noticed this with the explorer, I might have to go through the code a bit later to optimize it, as this isn't really much of an issue with other windows.
Some more progress!
Basically, I continued working on the start menu. I have fixed a bug in the image viewer which resulted in an unexpected behavior when setting an image as the background, now GM OS locks your mouse inside the GM OS window if you're holding the left mouse button (as in, dragging windows), and you can also drag window to the sides of the screen to make them fill that half of the screen, or to the corners to fill the respective quarter of the screen (see: image above).
I've yet to do some stuff, as of now, here's the current plan that I want to do before doing a private release for people who would like to develop .shl apps for the system and to bug-test, then after adjusting and fixing up some things based on the feedback and also doing some optimizing, the first public release can take place.
So, the things I'd like to do:
Finish the start menu (the programs labeled as "Test x" are of course just placeholders at the moment)
Fix a few minor bugs with shell opening (such as, icon not appearing on the taskbar)
Adding a Settings window with preferences allowing to change memory optimization, theme color, blur quality, how the start menu looks, etc
Finishing the update checking window
Adding a login screen, as well as finishing the "first time setup" screen
Adding functionality to the menu icon at the very right of the taskbar
Adding the ability to create popup windows / notifications / similar through scripts (for .shl apps)
And last but not least, making the Store - this one isn't that much of a priority, however I think it would be cool if we would have a working store where you can download apps made by me and some others on the day of release, which is why I'm doing a private release first for those who are interested in writing .shl programs.
On the road, some stuff might be added/removed from this list, I'm not a 100% sure just yet. The development have been going pretty well lately, and I'll try to keep the pace up, but of course I don't want to rush it. That's it for now!
are you using Rainmeter with it? how are you developing it?
No, this is all GML! Though I'm utilizing some DLLs and extensions to get how much RAM it's using, how big a specific file is, when it was last modified, etc., and will also be using an extension to handle downloads.
are u planing on adding some functionality like in rainmeter? like totally costumazible desktop elements.
I'll try my best to make it as customizable as I can
Nice work! It looks great!
How are you planning to relelase it?
Just as an exe (or something) or also open source?
Open source release would be sweet to allow maximum customization of the OS,
so that we aren't just limited to what the settings and personalization offer in the OS (exe).
When will it be available to us?
(Also, under which license will you release it?
And will it be free?)
Also, the more I look at this, the more I wonder, how will this work?
Will it just be a program (exe) that has to run from a Windows (or Mac or Linux) Operating System
OR will this somehow be made to work as an actual Operating System - to boot itself with no help of Windows or any other OS whatsoever?
Howdy! I'm in no way related to this project, but here's some basic stuff I can let you know:
In the old days, these were called 'SubOS'es. It is essentially an emulation (usually run through windows) of an OS. It's a substitute operating system.
Chances are, this will be released as an executable that can be run on most modern Windows versions. It's being developed in GM8, so without the help of some other tools (I.E. Wine), it won't and can't run naively in MacOS or Linux.
The closest I've seen to a SubOS being a 'bootable' OS is a modified version of windows, or a windows clone, that runs the executable upon startup. This essentially allows the user to boot up 'into' the SubOS, which will, for all intents and purposes, seem like the actual OS, itself. Essentially a 'shell.'
We used to refer to this as 'back-booting' the OS, but I doubt that is an official term... anywhere.
@Liam Jacobs mostly answered your questions, I'd just like to add that as of now I would only give out an .exe, I'm not really thinking about going open source at the moment but it could happen.
In my previous comments, I have posted a screenshot and a list of things I'd still like to do before release. I can't really tell how long it will really take, I'll try to work on it more, but of course I don't want to rush it. And yes, It'll be free
Aha a Sub OS.
Oh, kinda makes sense that you're making it in GM8.1.
And while we are on the subject, GM8.1 is still working for you?
I have it bought, licensed and installed for years now on my PC and laptop.
It worked fine all those years until like a month or two ago.
It started asking for the license verification again for no reason.
And if I enter the correct license, it does not accept it.
This is the second time this happened to me in the last 2 months.
The first time it just stopped appearing after a week or so, but this time it (so far) won't go away.
However it still should not happen, because when it asks for license verification, I get to use GM8.1 Lite, not Standard.
I'm actually using GM8, not 8.1, and I don't really know about that license verification issue. Sounds like something you should contact the YYG support for, that is, if they're still willing to help with the legacy versions
Looks pretty cool. I've seen quite a few Gamemaker operating systems, and a lot of them looked pretty... awful. But this one looks uber professional. So you say "Write your own programs in GML". Does this mean the OS can run pre-existing Gamemaker games... somehow? Like for example, could you, if you so desired, make Nuclear Throne work in this?
EDIT: Oh, I see it's made in GM8... So could you run pre-existing GM8 games? Like Spelunky Classic? Also, will it/does it have an internet browser?
Well, already existing projects would need quite some tweaks. Basically how that is going to work is the following: every "app" that GM OS can run is a folder that ends with ".shl". In that folder, you'd have an image named "shellicon.png" for the icon, and text files for the code. These will have to be called "shellcreate.txt", "shellstep.txt", etc. Further down the line I'll add some scripts that you can use to create objects from other text files to use in your app, but that part is not done yet. But overall, you will only need a txt for the create, step and draw event, and you're good to go. I'll update the guide so it's up to date, and I will link to it in the main post, it will have some useful info on how to write these, what the custom scripts are, what they do, how to use them, etc.
About the web browser part, I'll be looking for something better than what I found, but I doubt I can pull it off nicely, if at all. The only way it would work with everything else properly - like, say, being able to have a window cover part of the browser - I would need to make some sort of HTML and CSS to GML converter, which is not too inviting of a job
I actually wrote a HTML/CSS to GML parser/converter a while back, but that machine is dead. I need to work on a new one anyways, so if I make any substantial progress, or reach a final product that would be run well in GM8, I'll contact you .
Just a concept, but if I remember correctly, there is a way to create an object and its events on the fly in GM8.
I.E. I could run some code via script_execute and have it create an object with different events and scripts for each of them.
It might/should be possible to have a shell object that gets fed the code from shl text files and, depending on the name of the shl file, add an event to that object with the given code.
alarm = 60;
do_show = false;
do_show = true;
if (do_show == true)
draw_text(0, 0, "Alarm complete!");
The script(s) that load .shl files could have a few predetermined file names to look for, and if they are found, it could add different events to an object.
I know basically everything in GM can be achieved through create and draw, but it would be a useful feature to have different events.
Are you planning to give a copy of the OS out to Shell developers before release? I'd love to code up a few simple apps for the system, just so there's something user-made on the store upon launch.
So, I think I mentioned it earlier already, but I am in fact using the object_add() and object_event_add() functions, it scans for the specific files, loads them, inserts the code for the window itself, sets it's parent to objWindow, and there it is If you check the spoiler under Gallery in the original post, you can see a gif of opening and using a calculator which is already doing what I described.
And yes, the plan is to have an early release for people who would like to experiment with shells, but this release might still have smaller bugs that aren't on the priority (probably visual problems, or just something so small that it doesn't really affect anything). Also, some stuff might not be finalized for that release, and as such, some parts of the system aren't going to be optimized yet (the file explorer is pretty heavy at the moment because I didn't really clean up the code yet, having 3 of that specific window open already begins to drop the fps. I have ideas on how to fix it, but right now I'd like to finalize the unfinished functions for now)
Edit: For that release I'll also update and link my guide thread for shells, explaining everything that one needs to know to write an app for GM OS. Also, feel free to use some debugging tools that are available in the system. In the start menu there's a shortcut to the "App Manager", one of the tabs in that window shows the icon, title and ID of the open windows in drawing order, while the second tab shows useful information (a graph of fps and memory usage, and some other stuff). Another shortcut is the "Terminal", to which I'll explain the commands in the guide I mentioned earlier. It can be very useful as you can target specific windows, reset them to their original state, change it's variables, stuff like that
Oh okay. By the way, I saw people asking about if you could make your PC boot to GM OS, and then yesterday I found out that you can actually change what EXE file windows boots in. Default it starts "explorer.exe", but if you edit the registry location under the path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell, you can make this the directory for GM OS, then you could boot directly into the OS. Just a note! I will say this: Unless somehow you made a shutdown feature inside GM OS, you cannot shutdown the PC unless you A: Open the task manager and run "shutdown /s" or B: with the power button (Not recommended).
That sounds interesting, however I would really avoid changing the registry. Things can go wrong, and honestly I doubt anyone would actually want to use this sub os instead of Windows (obviously it's slower than Windows, and it's not something that would be ready for everyday use)
Yeah, I get not wanting to edit the registry. Though if you follow trustworthy guides, it's there if you want it. I tested that particular change on my experimental laptop that I don't use for normal use (and am perfectly fine with resetting if I mess something up). It caused me no harm to change, though you have to understand starting a program from the task manager to be able to edit the registry back to "explorer.exe", or open anything else for that matter. I have edited the registry on my normal computer, but it was only by a guide and to fix some broken behavior from my PC's soundcard, but I suppose that's all off topic. Anyhoo, cool project. Hope to see a release one day!
I think you can shut down Windows PCs using this code in a .bat file :
shutdown /s /f /t 0
Just to be clear - the reason these projects were banned on the older GMC forums was because people were doing things such as altering the registry, or running external BATCH files. As GM moved on, we lost the ability to use these functions, and the whole 'Sub OS' genre sort of just... died out.
As these sorts of projects stopped popping up, and stopped being as viable to create, YYG forum staff obviously went with the option of removing the rule, as it was no longer really necessary.
So I think conversations such as this would be better suited for their own thread, or perhaps even profile comments/private messages. The last thing any of us would want is to get a rule reinstated that bans certain projects.
Just my 2 cents.
Wow, it looks great.
I would like to try it in action.
I can't wait to see this great Operating System
any update on this project? im very intrested in it.
Right now, not much. I started moving the project over to GMS2 and reworking the new design a bit more, but that's about it. Right now I'm just waiting for the sandbox on/off switch which will come in a future update so that I can work on the file management side of it.
But here are some previews of it:
Spoiler: Light theme
Spoiler: Dark theme
They added that in the 2.2.3 beta!
Oh! Didn't know that I usually prefer to have my things running on stable versions, but if the beta doesn't have any weird bugs or crashes I'll just switch to that and start working right away
I had the same doubts, so I talked to some friends (experienced GM'ers) who convinced me to switch to the beta version. Now I use it for my serious projects and I haven't had any issues.
Thing is, the stable version isn't really stable either, and it already causes enough issues. The beta seems to be better.
In any case, you should be fine if you're using source control.
The newer version of this is looking fantastic, man. Really liking that Dight theme and the (updated?) blur.
Thanks! The "Dight" was a typo, I meant to write Dark
But anyway I also forgot to include the not-as-dark dark theme which I have no idea what I'm going to call:
Edit: Also the blur shader is from the "Free Shaders" pack, just slightly modified
I'd suggest something like (in order of Light > Medium > Dark): 'Trinity/Teacup', 'Storm/Slate' and 'Universe/Midnight.'
I see the blur for the dock at the bottom, there. Are you planning on going with a MacOS-style dock, or a more Linux/Windows style 'taskbar?' Or is it still up in the air/switchable by the user?
Actually I started thinking about having KDE-like taskbar/panel customization, just a bit watered down. If that doesn't work out, I think I'm just sticking with a taskbar
Been away from this for a while but man it is really coming along