Hello Everyone, it's been a while since i have made a post here, if you do not remember, this was the post in question:

https://www.reddit.com/r/feedthebeast/comments/1u22b6e/im_making_a_mod_about_storing_items_in_servers/

Explaining why it took so long

After this much time, i have finally reached an at least playable state of this mod, so, let me say some things, first, i haven't said the name of the mod back then, well, here it goes, the mod is called J's Computers, basically, as you can see, it is obviously about, well, computers. The mod gained a huge amount of things and features, most things that people asked from that post, such as RAID and autocrafting are implemented and fully functional, however, as you saw in the video, the mod much changed quite a lot, so, well, after i started making the programs part, the operating systems just became a necessity, and they quickly became a huge rabbit hole, so, that's why it took so long to release this.

The second thing, is much bigger, after a huge consideration and thinking, i have decided to split the original source code of J's Computers into actually different mods, originally, they were all planned to be released in a single monolithic jar, but it would make things bad and would make everything just a deeply intertwined code that could possibly not have the best integration with other mods. After that, the original J's Computers, which had a different name at the time, just later on was renamed to J's Computers, was split into three mods, and also, it started my own mod series: the J's Tech Series.

What is the J's Tech Series?

Basically, it is a long term project where the objective, will be creating tech mods, fully integrated with themselves, with no duping of systems underneath, no different ways to make the same things, all using a single shared code library, J's Core, which is meant to be not only the J's Tech Series own shared code library, but also, a framework to build tech mods, currently, in most recent version as of this post (v0.5.2a) J's Core handles: sound, tiered progression, custom screens, colours and pallettes that can be changed with resource packs, custom fonts, manuals, multiblocks and much, much, much more, J's Core itself does not add any gameplay, it is just code. In the next version (v0.6.0a) J's Core will add much more systems, such as moving structures, custom skyboxes, custom illumination and much more.

The reason to be rewriting the wheel so much is to have control over the source code of the entire series and to not depend on external libraries, the idea is that if i want to port the series to other versions (ports are only planned to 1.20.1, 1.12.2 and 1.7.10, none of them with a expected release date, the series will stay for now only in 1.21.1), i do not depend on the exact behaviour of a certain library in a specific version, either a recent or older one, this way i can just readapt or rewrite things in a way that work well to that version of the game. There are just three mods, J's Computers, J's Core and J's Industrial for now, the lat one is just a small stub, but will eventually grow, there are plenty of other mods to come to the series in the far future, such as J's Space, J's Transport, J's Warfare and more not yet even started. All versions of J's Tech Series are the same for all mods and share a codename, which is based on a chemical element.

Let's now talk about the big elephant on the room

Yes, J's Computers and the J's Tech Series are made with AI involved in the implementation process, you can check the series AI policy on here: https://github.com/jvpts11/js-tech-series/blob/main/AI_POLICY.md it applies to me and describe how contribution should be made.

As for code, in real life i work as a .NET developer and with machine learning, so, i do know what i am doing here, you can check the implementation as much as you want, if you find something that you judge to be dangerous or just bad just open a pull request or an issue and it will be fixed. Code conventions and structure can be found in the repository as well.

Now, J's Computers itself

As for J's Computers, this mod adds a huge amount of things, ranging from hardware, different types of computers, to operating systems, desktop environments, everything made fully in java, using J's Core's abstractions and tools for that. The mod also have multiple manuals in-game, all using J's Core manual framework, in the next version, all manuals will also be ported to markdown.

But the main focus of J's Computers is to manage your items and organize them, you store your items in disks on servers connected into your network, the network's brain is a specialized computer, the mainframe, which is the most important, each network may have only one mainframe. You basically connect with the network with any computer you want, be it a server, a mainframe, a personal computer and so on, ideally, you use your personal computer to do the connection. Once in the computer, you utilize a program called network interactor, or network, that can be located at the desktop or used as a TUI application. on that, you store your items inside of the network or inside the computer, since all computers can also store your items locally, so you can keep your items in a specialized storage without showing them to the network if you want.

The automation can be either made through the program's various GUIs and the automation programs, which load a .iql file into it or you program a condition or you can use a different operations engine such as the Prophet YourIQL to set a KEEP operation to keep items in a certain state, or you can use the language's programming language, Sigma# and it's subset, Sigma, i have chosen to not use lua because i do not like lua neither like procedural languages, i much prefer object oriented ones, i think it is easier to think on them for me at least. Both languages can be learned in-game with the manual called The Book of Sigma, there you will learn the languages standard libraries, since they use different ones, the synthatic structure, the memory model and so on, some differences you might see, neither languages have garbage collection, both of them are manual, however none of them use pointers, you can read better in-game to see how to handle both languages, but basically, to resume the languages, they are basically c# but withtout exceptions and automatic memory cleanup for now. (yes, a whole compiler was developed for this, completely in java)

As for the servers, you have to install storage drives, there are three types of storage drives: HDDs, SSDs and NVMes, the difference between each other is that HDDs are the slowest, while NVMes are the fastest, you will feel this when moving a huge amount of items. There are three types of servers, normal servers, storage servers and compute servers. Normal servers are just the average non specialized server, storage servers hold more drives but have less space for compute, while compute servers are the contrary. All items you place inside the network will fall into servers, all servers have all of their storage as public, yes, you have private and public storage here. Also, items are not dicerned by type, there is no such a thing as a fluid storage drive or item storage drive, everything is data here, so in a storage drive you will find both fluids and items living in the same place.

J's Computers support autocrafting, for both crafting table patterns and process-type crafting patterns, you can do it in a crafting computer, and to encode crafting you use a program called pattern studio.

All of this sounds like an immense amount of things, and it is because it is a huge amount, J's Computers covers different eras of computing, from the 80s, represented by the vintage era, to the advanced era, which corresponds to our current time, so you will find components, operating systems, desktop environments and programs with familiar names, most of them have parody names tho. It's better if you check the mod, since the amoutn of content is so huge, that is better for you to try it yourself.

While J's Computers is not fully playable in survival now, the mod have a KubeJS integration as a soft dependency made for this release, so you can add recipes and make your modpack with J's Computers, you can get the tags for that here in the mod's own documentation: https://github.com/jvpts11/js-tech-series/blob/main/computers/docs/MODPACKS.md

The mod is also integrated with computercraft as a soft dependency, so you can control the network from a computercraft's computer.

You can download J's Computers here: https://www.curseforge.com/minecraft/mc-mods/js-computers

J's Computers depends on J's Core, you can download it here: https://www.curseforge.com/minecraft/mc-mods/js-core

As for the source code, here it is: https://github.com/jvpts11/js-tech-series/tree/main the entire J's Tech series is open source and is opened for contribution by all kinds, be it for code or assets.



by jvpts11

Share.

4 Comments