Skip to content

Tier 4 RAM modules, which can be crafted #1698

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
IgorTimofeev opened this issue Mar 18, 2016 · 39 comments
Closed

Tier 4 RAM modules, which can be crafted #1698

IgorTimofeev opened this issue Mar 18, 2016 · 39 comments

Comments

@IgorTimofeev
Copy link

For a long time, our team has been developing software for OpenComputers: mainly we specialize one the GUI-based programs. For example, here is a screenshot of our computer:

2016-04-07_04 58 46

Please, think about adding Tier-4 memory modules for computers (not servers), because we are sorely lacking memory when running programs. Of course, we're working on our software optimization, using a various methods, but it can not continue forever. We have a lot of ideas for your beautiful mod: video playback, animation, 3D games, but it will consume a lot of computer resources, all of our ideas is restricted by non-craftable components, that are not allowed for regular players. We have already made an optimized library for double buffering, which uses a one-dimensional array to reduce RAM usage, that library allows you to draw graphics faster than ever. Of course, we can use servers that support the 4 Mbytes of memory, but most players prefer to have a more powerful computer than the server rack.

Maybe I talk too much... But, please, add more features and more customization for computers (and tablets, if you can): for example, craftable Tier3 APU, craftable Tier3 tablet cases and more, more. The difficulty of crafting does not matter - we just need the opportunity to craft it, we need less restrictions.

Sincerely yours, Russian team of OC-developers.

@Vexatos
Copy link
Contributor

Vexatos commented Mar 18, 2016

For things that use lots of RAM, you should be required to have a server.

Also, optimization is always a good thing. OpenOS recently got its memory usage cut down by roughly 50%.

@IgorTimofeev
Copy link
Author

For things that use lots of RAM, you should be required to have a server

That's not realistic. In real life i will not buy a server rack for, hmm, Black Ops 3, i will just upgrade my computer GPU and buy more RAM.

I am not blaming you, and, of course, not teaching how to do things, I just want more features and less restrictions to your wonderful mod.

Also, optimization is always a good thing. OpenOS recently got its memory usage cut down by roughly 50%.

It is normal. We're reduced memory usage for our MineOS by 50% too, also we're reduced HDD usage by designing very compact image format, but as I said, optimization can not be done forever. There are limits, and we just can't go through them. For now we have enough RAM, but it can't be forever.

We're not asking you to write something complex, not asking you to add more blocks, turrets, VR glasses, cameras, etc - we're just want less limitations for everything we have already, nothing more.

@gjgfuj
Copy link

gjgfuj commented Mar 19, 2016

If I recall correctly, it's possible to adjust memory amounts in the config
file.

Otherwise... Try networking! Remember that these computers are akin to
80s/early 90s computers, and as such.. Lack some things.

Also, the reason for the low memory restrictions is because of servers, and
no real crafting price could change that.

But if your server can handle it, feel free to change the RAM amounts in
the config file!

On Sat, 19 Mar 2016, 9:41 AM Igor Timofeev notifications@github.com wrote:

For things that use lots of RAM, you should be required to have a server

That's not realistic. In real life i will not buy a server rack for, hmm,
Black Ops 3, i will just upgrade my computer GPU and buy more RAM.

I am not blaming you, and, of course, not teaching how to do things, I
just want more features and less restrictions to your wonderful mod.

Also, optimization is always a good thing. OpenOS recently got its memory
usage cut down by roughly 50%.

It is normal. We're reduced memory usage for our MineOS by 50% too, also
we're deduced HDD usage by designing very compact image format, but as I
said, optimization can not be done forever. There are limits, and we just
can't go through them.

We're not asking you to write something complex - we're just want less
limitations, nothing more.


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#1698 (comment)

@IgorTimofeev
Copy link
Author

If I recall correctly, it's possible to adjust memory amounts in the config
file

If I wanted to increase the amount of memory through the server configuration, I would have already done it. I'm just asking you to add crafting recipes for the existing "creative" items, such as APU and Tablet Case, and imploring you to add Tier4-memory. For example, it can be 2x 1.5MB modules for one Tier3 computer. And for server racks it can be 1x Tier4 and 3x Tier3 slots for memory. So total we will have 4.5MB of memory per one server - I strongly doubt that the real Minecraft server will not be able to cope with such a "colossal overloading".

Also it would be great to add supporting of Tier3-GPU and Tier3-monitors in the tablets. Why not? Modern tablets are often have the same or greater resolution than desktop computers. And if you are talking about "80s/early 90s computers," I want to remind you that flying drones, holoprojectors and nano-robots in this time period were just a fantasy :D
So I have to compare OpenComputers with modern and post-modern analogues.

Please, give us more opportunities and less artificial limitations!

@gjgfuj
Copy link

gjgfuj commented Mar 19, 2016

If you want them, just minetweak in some recipes.

@Kubuxu
Copy link
Contributor

Kubuxu commented Mar 19, 2016

Problem is that he can't develop Operating System that requires users or admins to tweak configs or add recipes.

Those limitations were stated arbitrary as they seemed "enough", nobody knew how OC would develop, what would become possible. As you can see on screenshot, this is something nobody of us dreamed of when OC's constance were being set.

I don't see reason to against adding next tier of RAM, yet we have really good reasons for it.
We also have not the best tradition of calling things Over Powered, is adding next tier of RAM Over Powering OpenComputers? How would be it OP, what other gameplay features would it deprecate?

@Vexatos
Copy link
Contributor

Vexatos commented Mar 19, 2016

The problem is that a Tier 4 Memory stick would involve adding a case that supports this Tier 4 component (i.e. a Tier 4 case) and anything following that. Currently, Tier 4 is reserved for creative-only items.

@jhagrid77
Copy link

Couldn't he give a link to the config and instruct them on how to replace the original? Just thinking.

@Techokami
Copy link
Contributor

Well, there's a possible solution that will fit within the timeframe of 80s/early 90s computing technology. Ever hear of piggy backing RAM? It's somewhat crude, but done right, it allows for doubling RAM density in the same amount of space. So, we could piggy back more RAM onto the items that exist within OpenComputers to get bigger modules. It'd have to be somewhat expensive, though.

Aside from that, uhm, what's wrong with modifying the config server-side, or using a T3 Server for the extra RAM and peripherals? (with the right video card, a server could be the most kickass gaming machine around!)

@jhagrid77
Copy link

(That's true, I just wish you could "screen mirror" on here). I never heard of that, thanks!

I'm not sure why they, don't want to use a T3 Server, but it would be a bit easier. I will admit, I don't really play in survival mode, so I always use the Creative items...

@gjgfuj
Copy link

gjgfuj commented Mar 23, 2016

Because it's "not realistic" to use a server for gaming.

On Wed, 23 Mar 2016, 10:26 AM jhagrid77 notifications@github.com wrote:

(That's true, I just wish you could "screen mirror" on here). I never
heard of that, thanks!

I'm not sure why they, don't want to use a T3 Server, but it would be a
bit easier. I will admit, I don't really play in survival mode, so I always
use the Creative items...


You are receiving this because you commented.

Reply to this email directly or view it on GitHub
#1698 (comment)

@jhagrid77
Copy link

Alas it is, it's just really expensive, and over-powered. Plus most server CPUs aren't the greatest for gaming, but they are still pretty good. Look at this build: http://pcpartpicker.com/p/gVhNXL

@gjgfuj

@Techokami
Copy link
Contributor

One of my friends swears by server-grade ECC RAM for everything he builds and uses, because that stuff is battle hardened and absolutely the highest possible grade of RAM you can get your hands on.

Also, servers are still computers, because any computer can be a server. In OpenComputers 1.6, they're more like complex computer cases now, with server blades acting like motherboards, and you can add in floppy disk drives you can interface with, and cool things like light boards for indicators if you install Computronics.

@jhagrid77
Copy link

Yeah, people think servers are always like the rack-mountable ones, when they truly aren't, there are ones that are desktops that could destroy many games by performance.
@Techokami

@iamgreaser
Copy link

Maybe the default RAM sizes need to be upped, but I don't think adding a 4th tier is worth it.

To be blunt though, I've never hit the 2MB limit of a standard case on a stock OC setup. The only time I needed more than 4MB of RAM was to run Linux on OCMIPS... which doesn't quite end up mounting root.

Oh, and

video playback, animation, 3D games

First has been done, the last one I'd like to have a go at.

@Shuudoushi
Copy link
Contributor

How about just adding a T3 expansion card that adds as much RAM as two T2 sticks? No extra cases, more RAM, ect.

@jhagrid77
Copy link

@Shuudoushi That would actually be cool if MineOS could come up with a way for VM like Windows does, that could be cool.

@fnuecke
Copy link
Member

fnuecke commented Apr 2, 2016

A lot of good points have been made here. While I agree that OC and in particular the software people write in OC has come a long way, and it can make sense to re-evaluate some of the limits, I'll also say that if you're not using servers yet, do. Yes, in real life servers are not typically used for graphical fidelity as a desktop PC, but this is not real life. Servers in OC were always meant to be a higher tier computer.

That said, if even after that you run into memory issues, a card providing memory might indeed be the solution I'd be most comfortable with. I don't like the idea of adding another tier, because that'd break tiering even more, and I don't want that (the .5 rams are already a bit of a meh workaround.)

For now, I'd ask you to use servers, but I'll leave this open for the time being.

(BTW: amazing work on MineOS!)

Sorry, something went wrong.

@Shuudoushi
Copy link
Contributor

@fnuecke another way around this issue, adding more methods to RAM so that something like a swap partition can be setup more easily. Then people can just setup a RAID or something and have 'UNLIMITED POWA!!!' or whatever.

Something like memory.load(address)and memory.unload(address) should work I guess.

Sorry, something went wrong.

@jhagrid77
Copy link

@Shuudoushi That sounds amazing, but the question is how would it work? Would tier * HDDs be like tier * RAM?

Sorry, something went wrong.

@fnuecke
Copy link
Member

fnuecke commented Apr 2, 2016

It wouldn't. Not with Lua anyway.

@IgorTimofeev
Copy link
Author

Here's a new reason to add better RAM:

2016-04-07_04 07 07

<333

@iamgreaser
Copy link

You can totally do that on a T1 stick of RAM.

Despite the fact that every screen takes up ~32KB of actual RAM, making it about 640KB total, each screen uses its own RAM and does not touch the RAM of any of your computers.

If for instance this is a PNG image you only need to keep enough of the data in RAM to hold this information:

  • Image parameters (e.g. IHDR, PLTE, tRNS blocks)
  • A block of RFC 1951 DEFLATE data in compressed form
  • A block of RFC 1951 DEFLATE data in uncompressed form
  • A raw scanline of data
  • A filtered scanline of data

If you don't want to have to fight hard to make this work, you can pick a more low-RAM-friendly image format, or arrange your data better, e.g. you could use a 5x4 arrangement of 160x50 CTIF images (I have a test image which is 24KB regular CTIF, 30KB when converted to a format optimised for drawing on OC - you can fit this on a T1 HDD).

All you need to do really is be creative with your data - how you store it, and how you process it.

@IgorTimofeev
Copy link
Author

@iamgreaser Of course we can. But it will be too slow, that's not interesting. We use triple buffering concept to draw this shit as fast as it can be, but the price is higher RAM usage.

There's no problem with image format - we have our own, it costs 7-11KB of disk space per 160x50 image, the problem is speed of drawing. For example, picture from screenshot above have 640x200 resolution, and it is completely drawn on all monitors for ~ 25 seconds using magic of tripple buffering. And if we read the image directly from the hard drive, then everything will be much sadder ... about of 1.5 minutes for whole image. So that's the point why we need more RAM to draw better graphics and do it faster.

@iamgreaser
Copy link

And that's the point where you change the RAM sizes in the config.

But I don't see how ~140-220KB of data would take a whole minute to load off a hard drive when it takes about 10 seconds for me to load a 2.4MB ELF binary. By default you can load up to 2KB (2048 bytes, 0x800 in hex) using a single read() call. Is this a case where you simply need to buffer a bit more creatively?

@IgorTimofeev
Copy link
Author

@iamgreaser While loading images directly from the HDD we can't use triple buffering to optimize rendering: we can't use greedy meshing and color grouping, so it there are a lot of unefficient GPU-operations, which leads to a slowdown. The hard drive reading itself works almost immediately, but millions of calls to GPU leads to 1.5 minutes of script execution.

Hope this will explain why HDD direct drawing is not good.

@iamgreaser
Copy link

How large would the image files be if you pre-processed them with the information required to draw them quickly? From my understanding you only need to draw the images screen-by-screen, and you can only optimise them screen-by-screen, so you only need to load the parts screen-by-screen.

This would be better as a forum topic, or as a discussion on IRC, so if you want to move to one of those places, feel free to start a topic or jump on the #oc channel.

@Vexatos
Copy link
Contributor

Vexatos commented Apr 7, 2016

For what it's worth, Computronics will have a creative memory stick providing as much RAM as it can in the next version.

@jhagrid77
Copy link

Thank you, @Vexatos

@S0ZDATEL
Copy link
Contributor

If you have a problem with that fourth tear reserved under creative items - why don't you transfer all the creative items to fifth tear, and fourth tear to do non-creative?

@payonel
Copy link
Member

payonel commented Oct 24, 2017

computronics has the ram you need :) i think we'll keep the three tiers of ram for oc

@payonel payonel closed this as completed Oct 24, 2017
@purplemonday
Copy link

well you got somewhat of a point
and a reballance of the tiers might make sense,

OC can deal with 64mb and you only get 4mb with 4 slots

config/OpenComputers.cfg line 270
Default
ramSizes=[192, 256, 384, 512, 768, 1024]
sugested
ramSizes=[256, 512, 1024, 2048, 4096, 8192]
max
ramSizes=[512, 1024, 2048, 4096, 8192, 16384]
max = tier 3.5 = 16mb and 4x = 64mb

You also want to adapt
\config\opencomputers and make the reciepe harder
exsample from gregtech
}
ram6 {
input: [["oc:circuitChip3", "oc:circuitChip3", "oc:circuitChip3"]
["oc:ram5", "oc:materialCircuitBoardPrinted", "oc:ram5"]
[circuitUltimate, craftingToolWrench, circuitUltimate]]
}
with the next tier requiring twice the prevous tier doubling sizes would make sense.

this all done with config files and you can do this all yourself
what it does performance wise.. i think your not going to get results you hoped for.

@Darinth
Copy link

Darinth commented Nov 14, 2017

Within OC, servers are just higher tier computers. Use them. With that said, I can still see a complex & powerful operating system utilizing more memory than that allocated by a computer. In concept, the idea of 'swap space' seems like it may be a good solution. What about a 'swap drive' that produces a component which is more or less just there to act as a table to store data in. Anything stored in the table doesn't count against the computer's RAM usage.

I don't know enough about the back-end of OC unfortunately, but it should be possible to setup either A: a table that has it's underlying metatable locked and setup to route all access through specific functions or B: a user defined type. Any attempt to write to/read from the table/user type then ends up going through predefined methods. It can then limit it's size just like a computer normally limits it's RAM. Make access slower and you've got what is fairly effectively emulating the effects of swap space. It's also probably possible to setup this as part of the file system reported back by actual hard drives, enabling swap spaces to be setup on hard drives and similar.

OpenOS should actually in theory be able to support a similar architecture right now by making a component that more or less wraps a filesystem or unmanaged drive and any attempt to access table contents are just relayed to the reads/writes on the hard drive.

@skyem123
Copy link
Contributor

That does make me wonder how much one is allowed to mess with the _ENV table...

@Kommand
Copy link

Kommand commented Jun 19, 2019

You know you can just Make a “MineOS Server” GUI (because an actual operating system would be able to boot standalone) And add the games there.

@Chlorobyte-but-real
Copy link

With the (relatively) recent announcement of Netherite, I can probably see Tier 4 hardware happening. And besides, real hardware has improved within these 4 years, so it wouldn't hurt too much.

@snaildos
Copy link

snaildos commented Sep 9, 2020

This is old and all. Why is this still not a thing. This is pathetic. At least have some sort of virtual ram.

@MicrolemurDev
Copy link

Sorry pal, but the project seems to have died :(

@snaildos
Copy link

snaildos commented Jul 3, 2021

Sorry pal, but the project seems to have died :(

Sigh. Oh well...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests