Processing Priority Controls

Discuss technical features of Limit Theory and the LT Engine

Processing Priority Controls

Postby Hyperion » Wed Dec 30, 2015 8:34 pm

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.

Thoughts?
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.
User avatar
Hyperion
Rear Admiral
 
Posts: 1928
Joined: Thu Apr 17, 2014 4:59 pm
Location: Sneaking up on the Jabberwocky

Re: Processing Priority Controls

Postby Silverware » Wed Dec 30, 2015 8:50 pm

IMO that might be really difficult to implement without massively impacting overall performance. As each sub process would essentially have to be run inside a Virtual Machine with set capacities. Which is a mass of overhead.
ᕕ(ಠ‸ಠ)⊃━☆゚.*・。゚
Image
User avatar
Silverware
Vice Admiral
 
Posts: 2806
Joined: Sun Sep 07, 2014 3:23 pm
Location: Goattown-Three, Sigma Six, Goat Space

Re: Processing Priority Controls

Postby Flatfingers » Wed Dec 30, 2015 10:47 pm

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.
User avatar
Flatfingers
Vice Admiral
 
Posts: 4484
Joined: Sat Nov 24, 2012 12:45 am

Re: Processing Priority Controls

Postby DWMagus » Thu Dec 31, 2015 10:23 am

Hyperion, have you been playing 'Uplink'? :P

It sounds very similar to the way you'd organize CPU usage among your different modules running.
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.
User avatar
DWMagus
Moderator
 
Posts: 5070
Joined: Wed Dec 05, 2012 3:25 pm
Location: Denver, CO, United States

Re: Processing Priority Controls

Postby Hyperion » Thu Dec 31, 2015 1:41 pm

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.
User avatar
Hyperion
Rear Admiral
 
Posts: 1928
Joined: Thu Apr 17, 2014 4:59 pm
Location: Sneaking up on the Jabberwocky

Re: Processing Priority Controls

Postby BFett » Thu Dec 31, 2015 8:30 pm

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: .
User avatar
BFett
Vice Admiral
 
Posts: 2428
Joined: Thu Jan 23, 2014 6:44 pm
Location: A galaxy far far away

Re: Processing Priority Controls

Postby DWMagus » Fri Jan 01, 2016 1:03 pm

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.
User avatar
DWMagus
Moderator
 
Posts: 5070
Joined: Wed Dec 05, 2012 3:25 pm
Location: Denver, CO, United States


Return to Technical



Who is online

Users browsing this forum: No registered users and 3 guests