Return to “Technical”

Processing Priority Controls

The LT engine is doing quite a lot in terms of simulation, and I thought that maybe the processing priorities should be a controllable feature from within the game.

Essentially, all the various algorithms in LT are put in a list from highest priority to lowest priority. From a menu, the player would be able to see how much processing power each part of the engine takes, and pick from various filters, which simply re-arrange this list and divert more CPU/GPU time to certain aspects of the game.

You might have a Commercial filter which puts economic and production simulations at the top, but doesn't give as much priority to graphics and simplifies or eliminates collision detection. Or you could have an Explorer filter which prioritizes graphics and worldgen, but halves the number of market variations and NPC trade calculations. Or you could have a Combat filter which highly details collision detection, weapons production, and collision detection, but severely restricts "real" mining. Or you could have a Historical filter which greatly increases worldgen priority and high level decision making, but places almost no emphasis on collision detection, real mining, pathfinding, or physics. Or you could set up and save your own Custom filter to give the highest fidelity to whatever you feel is most important and low/no priority to things you don't care about.

With these filters, which you can change at any time, you would be able to tweak the engine so that it prioritizes your playstyle; Whatever you don't really care about, neither does the engine. This might be a way to get more oomph out of weaker computers and allow stronger computers to build more satisfying universes.

Image The traditional view of robotics, the metal servant who doesn't ask questions, is merely nostalgia for slavery.
User: JoshParnell is accountable for this user's actions.

Re: Processing Priority Controls

It's an interesting thought.

It's hard to say how practical it might be without knowing more about how Josh has designed the processing architecture for his core engine. If it's now basically a big task processor with scheduling, then presumably there's already some logic built into the processor for handling prioritization.

This scheme would hook into that system by keying task prioritization values to gameplay system categories. The task processor would keep doing what it does; the scheduler would just also take into account the global prioritization given to each categorized kind of gameplay.

I'm sure it's a little more complicated than that. For example, if someone has high-end graphics hardware on their machine, and the LT engine knows to offload graphics tasks to the GPU, then there's no value in turning down graphics to get more commercial processing.

I expect "graphics" was just one example of some gameplay that might be sacrificed in favor of other gameplay interests. I'm only noting that not all gameplay system tasks are equal. A good prioritization scheduler should take into account not just demand (the user's gameplay priorities) but also the supply of specialized resources as well, by which I mean the player's gaming hardware: the sizes/speeds of CPU, GPU, RAM, and storage.

It's been a long time since I wrote a scheduler for an operating system, so I may be getting some things wrong. But from what I recall, Hyperion's basic idea is feasible in a general sense. Whether it's something that's already in LT, or could be added to LT, or would be hard or impossible to add to LT... no idea.

Re: Processing Priority Controls

Never heard of it :p

I often reinvent the wheel, so entirely possible that other developers have done what I suggest. I'm just a guy with an active imagination who finds problem solving as fun as literature or music. :)

As to the technical limitations, you're right, it really depends on Josh's architecture. He would have to say whether or not it's possible
Image The traditional view of robotics, the metal servant who doesn't ask questions, is merely nostalgia for slavery.
User: JoshParnell is accountable for this user's actions.

Re: Processing Priority Controls

BFett wrote:
DWMagus wrote:Hyperion, have you been playing 'Uplink'? :P

It sounds very similar to the way you'd organize CPU usage among your different modules running.
I bought Uplink as a Christmas present for $1.60. It's the best dollar and change that I've ever spent on a game :thumbup: .
My only complaint is the whole lack of true dual monitor support. The game still holds up well today. Glad you like it! :thumbup:
Image Early Spring - 1055: Well, I made it to Boatmurdered, and my initial impressions can be set forth in three words: What. The. F*ck.

Online Now

Users browsing this forum: No registered users and 1 guest