Show HN: GodotOS, giao diện hệ điều hành giả được tạo bằng engine Godot
(github.com/popcar2)- GodotOS là một giao diện kiểu hệ điều hành được xây dựng hoàn toàn bằng Godot, cung cấp duyệt thư mục, chỉnh sửa tệp văn bản, xem ảnh, chạy game và nhiều tác vụ khác trong một màn hình được trau chuốt
- Đây không phải là hệ điều hành thực mà là một ứng dụng trông giống hệ điều hành, hướng tới một giao diện có thể dùng cả trên web
- Tính chất của dự án này gần với một món đồ chơi thử nghiệm nhằm đẩy giới hạn của thiết kế UI trong Godot hơn là triển khai một OS nghiêm túc
- Môi trường desktop hướng tới sự tối giản, ít gây xao nhãng và đẹp mắt, đồng thời đóng vai trò hub để dễ dàng gói ghém các game và trải nghiệm nhỏ
- GodotOS không phải là dự án liên kết với các nhà phát triển Godot Engine hay Godot Foundation
Giao diện mà GodotOS cung cấp
- GodotOS là một giao diện theo phong cách hệ điều hành được tạo chỉ bằng Godot
- Trong một màn hình thống nhất, nó hỗ trợ các tác vụ sau
- Duyệt thư mục
- Chỉnh sửa tệp văn bản
- Xem ảnh
- Chơi game
- Các trải nghiệm kiểu desktop khác
- Cung cấp một giao diện tích hợp có thể sử dụng cả trên web
Mục tiêu và tính chất của dự án
- GodotOS gần với một dự án đồ chơi thử nghiệm hơn là một bản triển khai hệ điều hành thực sự
- Mục tiêu là thử nghiệm giới hạn của thiết kế UI có thể đạt được trong Godot
- Môi trường desktop hướng tới các đặc điểm sau
- Tối giản
- Ít gây xao nhãng
- Đẹp mắt về mặt thẩm mỹ
Hub gói các game và trải nghiệm
- GodotOS được thiết kế như một hub có thể dễ dàng tích hợp các game và trải nghiệm nhỏ
- Nếu muốn thêm trực tiếp game vào menu Start, có thể xem hướng dẫn đóng góp
Cách sử dụng
- Có thể thử phiên bản web tại Itch.io page
- Có thể tải tất cả các phiên bản tại releases page
- Video demo được cung cấp tại Trailer
Giới hạn rõ ràng và tuyên bố không liên kết
- GodotOS không phải là hệ điều hành thực mà là một ứng dụng có giao diện giống hệ điều hành
- GodotOS không liên kết với các nhà phát triển Godot Engine hay Godot Foundation
2 bình luận
Đúng là một món đồ chơi thú vị.
Ý kiến trên Hacker News
Trông như một bằng chứng khái niệm tuyệt vời cho việc dùng Godot làm framework đa nền tảng cho ứng dụng desktop
Gói phân phối rất đơn giản, chỉ gồm một file thực thi và một file dữ liệu, hiệu năng cũng xuất sắc
Với cách cung cấp một gói nhị phân độc lập hoàn toàn, tự chứa và không phụ thuộc bản phân phối, nó trông tốt hơn nhiều so với các kiểu như Flatpak; về hiệu năng thì có vẻ vượt xa Electron
Có lẽ ứng dụng desktop làm bằng game engine sẽ là xu hướng lớn tiếp theo
Bạn sẽ vứt bỏ toàn bộ tính năng của hệ điều hành như kết xuất văn bản tốt, giao diện chỉnh sửa văn bản nhất quán, khả năng tiếp cận, độ trong suốt
Tôi cũng không nghĩ Godot về bản chất nhanh hơn Electron với các UI tùy ý
Các app Godot thường nhanh là vì chúng được làm bởi những người muốn dùng game engine và quan tâm đến hiệu năng; nếu lập trình viên quan tâm đến hiệu năng thì Electron cũng có thể đủ nhanh như VSCode
Tôi nói vậy với tư cách người từng làm việc với game engine
Tôi đã định viết một bài về việc tạo ứng dụng đa nền tảng chuyên nghiệp bằng Godot, và có lẽ sẽ sớm viết
Tóm lại, Godot là một UI builder tuyệt vời, và tôi nghĩ nhiều người đang dần nhận ra điều đó
Có nhiều ứng dụng chuyên nghiệp được làm bằng Godot[0], và tôi cũng muốn nhắc đến Lorien[1] dựa trên Godot, ứng dụng bảng trắng yêu thích của tôi và cũng là nguồn cảm hứng một phần cho dự án này
Godot không hoàn hảo và có những phần các công cụ tạo UI khác làm tốt hơn, nhưng nó còn rất nhiều tiềm năng chưa được khai phá
[0]: https://alfredbaudisch.com/blog/gamedev/godot-engine/standal...
[1]: https://github.com/mbrlabs/Lorien
Tôi dùng một chương trình tên Dungeondraft[1] để dễ dàng tạo bản đồ cho TTRPG, và nó được xây dựng trên Godot
Trang API modding[2] cũng nhắc đến Godot
[1]: https://dungeondraft.net/
[2]: https://megasploot.github.io/DungeondraftModdingAPI/
Ngay cả khi app là một binary tự chứa duy nhất, nó vẫn có thể hưởng lợi từ Flatpak
Sandboxing, quản lý quyền, tách biệt khỏi hệ thống, sự cần thiết trên các bản phân phối bất biến/dựa trên image, một định dạng gói thống nhất không cần tạo riêng deb hay rpm, v.v. đều hữu ích cho cả lập trình viên lẫn người dùng
Việc này không liên quan mấy đến chuyện viết UI bằng gì, và chỉ một binary tự chứa thì không thể thay thế hoàn toàn Flatpak
Một nhược điểm khác tôi nghĩ tới là, từ góc độ thiết kế, ứng dụng phải có cùng ngôn ngữ thiết kế trên mọi nền tảng, nên khó có được diện mạo native của từng nền tảng
Còn nhược điểm nào khác không?
Bản thân Godot IDE cũng là một “game” theo nghĩa nó được làm hoàn toàn bằng Godot API
Thực ra tôi tự hỏi liệu đây có thể là một môi trường tốt để làm các ứng dụng nghiệp vụ có tính di động, giống như một Visual Basic hiện đại hay không
Liên quan đến chuyện này, Grey Hack là một hệ điều hành, mạng và Internet giả bên trong một game multiplayer có mục tiêu là hacking
Bao gồm cả việc hack lẫn nhau, và mô phỏng các chức năng cơ bản khá tốt
Bạn có thể đánh cắp file hoặc đặt file lên máy tính khác, cài phần mềm, chạy các lệnh trên command line gồm các bản mô phỏng của nhiều công cụ, và cũng có thể tự viết chương trình
Nó cũng có thể hữu ích trong thực tế
Nghĩ đến ngành điện ảnh thì hệ điều hành giả dùng để cho thấy nhân vật đang làm gì đó trên máy tính gần như đã là một cliché
Gần đây khi nói chuyện với các fan của phim Hackers, tôi được hỏi trong phim đã dùng OS nào; tôi trả lời là thứ mà mọi phim thập niên 90 đều dùng: Mac OS kèm các phần tử UI giả dựng vội bằng Macromedia Director
Trong các phim sau này, Flash đảm nhận vai trò đó; và vì các studio điện ảnh ngày càng dùng game engine để cung cấp hình ảnh tham chiếu CG theo thời gian thực tại trường quay, thứ như thế này có thể là phiên bản hiện đại của nó
Tôi nghĩ sẽ rất hay nếu Godot có chế độ biên dịch tối thiểu tập trung vào UI
Nó rất hấp dẫn cho UI kết xuất bằng GPU, và hiện đã có những thư viện cùng plugin tuyệt vời để tạo các component hữu ích cho kỹ thuật hoặc phân tích dữ liệu
Tôi không biết có thể giảm được đến mức nào trong khi vẫn giữ phần lớn các component 2D/3D, nhưng về nguyên tắc là có thể
[1]: https://docs.godotengine.org/en/stable/contributing/developm...
Với flag
custom_modules, bạn có thể chọn sẽ biên dịch những module Godot nàoVí dụ, chúng tôi phân phối một wasm nhỏ cho game web Godot 2D
Godot là một sketchpad tuyệt vời để tạo ra những thứ như thế này
Có lần tôi đang ở sân bay chờ máy bay, và đã làm vội một bảng ghi chú cho máy tính bảng eInk để chơi trò bút-và-giấy của Nga Virus War (“Война вирусов”) với bạn đồng hành trên chuyến bay
Nó chỉ là một lưới các nút có thể bấm với các trạng thái khác nhau, nhưng tôi đã kịp làm ra một prototype chơi được trước khi lên máy bay
Nhớ hồi khoảng năm 2005, khi Sub OS khá thịnh trong cộng đồng GameMaker
Có vẻ như cứ đủ thời gian trôi qua thì sẽ có ai đó muốn tạo một giao diện giống hệ điều hành bên trong một game engine nào đó
Đó là một cách hay để hiểu về UI và các paradigm về khả dụng, vượt ra ngoài việc tạo cơ chế game, và nó gợi lại khá nhiều hoài niệm dễ chịu
Tôi đã làm Tiagix OS, và theo tôi biết thì đó là một trong những subOS đầu tiên thực sự có hỗ trợ tạo app
Vì phải tự xây từ đầu nên tôi đã học được rất nhiều về GUI toolkit
https://forum.gamemaker.io/index.php?threads/gm8-subos-proje...
Chúng thường có shell UI kiểu hệ điều hành và các ứng dụng, tiếc là tôi đã quên tên rồi
Có đoạn nói “GodotOS không phải là một hệ điều hành thật, mà là một ứng dụng có giao diện trông giống hệ điều hành”; nhưng thực sự thì có thể nói GodotOS kém giống hệ điều hành hơn Windows đời đầu không?
Nhớ hồi Notch thử nghiệm một game không gian với một ngôn ngữ assembly thu nhỏ do chính anh ấy tạo ra
Đáng tiếc là anh ấy đã dừng làm, nhưng tôi vẫn nghĩ thể loại hack trong game còn rất nhiều tiềm năng
Không phải kiểu “nhấn F để hack”, mà là thực sự đăng nhập vào hệ thống để lấy hoặc thay đổi thứ gì đó
Một hệ điều hành trong game trông như thật có vẻ là một bước tiến tốt
https://web.archive.org/web/20130905082541/http://dcpu.com/d...
Bạn đặt một “cơ sở máy tính”, nối nó vào mạng tín hiệu, rồi mở terminal để bắt đầu lập trình
Nó thực sự hữu ích vì nhà máy có thể trở nên rất phức tạp, và điều thú vị là có thể dùng item làm ký hiệu tín hiệu để giao tiếp khá tinh vi qua dây điện
Tốc độ clock của thiết bị bị giới hạn ở vài lệnh mỗi tick của game
Đây là một idle game với mô phỏng “hệ điều hành” hạn chế, nhưng lời giải tốt đòi hỏi tư duy thật và kiến thức lập trình
Bạn sẽ viết script để quét mạng tìm các cổng đang mở và tự động “hack”, rồi cân bằng toàn cục việc phân bổ bộ nhớ trên mọi hệ thống theo các tham số nhất định để việc hack trở nên “sinh lời” nhất
Việc cuối cùng tôi tạo cả giao tiếp socket cơ bản, các script gửi kết quả phân tích về PC tại nhà, và cả giao dịch thuật toán trên thị trường chứng khoán giả lập khá là vui
https://www.zachtronics.com/tis-100/
Trong ảnh chụp màn hình có ghi “GodotOS is a fake operating system”
Nhưng nó có thật sự là giả không? Thuật ngữ “hệ điều hành” có nhất thiết hàm ý cấp độ tầng phần cứng mà nó chạy trên không?
Nếu không, thì dù chạy trên một OS khác, nó vẫn có thể được xem là OS
Tôi đã khá cẩn trọng với cách diễn đạt vì không muốn tạo ấn tượng sai khi quảng bá