Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  
Welcome new and returning members!
If you're new, read around a bit before you post: the odds are we've already covered your suggestion.
If you want to join the development team, sign up and tell us why.
ADMIN is pleased to note that this marquee has finally been updated.
ADMIN reminds you that the Devblog is REQUIRED reading.
Currently: The Microbe Stage GUI is under heavy development
Log in
Username:
Password:
Log in automatically: 
:: I forgot my password
Quick Links
Website
/r/thrive
GitHub
FAQs
Wiki
New Posts
Search
 
 

Display results as :
 
Rechercher Advanced Search
Statistics
We have 1675 registered users
The newest registered user is dejo123

Our users have posted a total of 30851 messages in 1411 subjects
Who is online?
In total there are 3 users online :: 0 Registered, 0 Hidden and 3 Guests :: 1 Bot

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
by NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
by NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
by crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
by tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
by NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
by NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
by crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
by The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
by crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
by MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
by tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
by tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
by Kaiju4u Wed Jun 10, 2015 11:16 am

» Translator to Serbian here
by Simeartherist Sun Jun 07, 2015 6:36 am

» Presentation
by Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
by crovea Sun May 31, 2015 5:06 pm

» want to contribute
by Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
by Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
by Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
by TheBudderBros Sun May 24, 2015 9:00 pm


Share | 
 

 Microbial Compounds and Organelles

View previous topic View next topic Go down 
Go to page : Previous  1, 2, 3, 4, 5, 6, 7, 8, 9
AuthorMessage
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Microbial Compounds and Organelles   Tue Feb 04, 2014 4:24 am

NickTheNick wrote:
Quote :
Oh... that will.. require some changes in the implementation then.
I assume it can hold a mix of different compounds in one vacuole then or is it only one type of compound per vacuole but the vacuole can be changed to hold something else.
Yeah, vacuoles are just general storage. Otherwise cell's would have to have so many vacuoles just to hold what they need.

crovea wrote:
brb 11 hours
Hah, okay, see you then.

Well, I discussed this with dani, and we got a solution laid out. Any feebback/criticism is welcome. The second idea I came up with myself for a simpler solution.

Solution A:

A vacuole will at all times excrete unnecessary compounds. However, when it is 80% full or more (that threshold is up for revision) a vacuole starts to excrete NECESSARY compounds, no longer undergoes any processes, and no longer intakes any compounds. This means that even if the cell consumes glucose, it will excrete any glucose in the vacuole until it is below the threshold again. However, it always begins by excreting compounds that are in the most excess. Also, the cell only begins to excrete necessary compounds after ALL unnecessary compounds have been emptied out. 

Okay, how does the cell tell whether a necessary compound is in excess or not? Look at the following example.

A cell has 1 mitochondria and 2 chloroplasts in it. The total "demand" or "need" of the cell is:

Mitochondrion #1:
1 Glucose
6 Oxygen

Chloroplast #1:
6 Water
6 Carbon Dioxide
(Sunlight isn't a compound)

Chloroplast #2:
6 Water
6 Carbon Dioxide

Therefore, the total is:
1 Glucose
6 Oxygen
12 Water
12 Carbon Dioxide

This is assuming all of the above organelles process at the speed, let's just say all of them finish a process in 1 second. This is basically the ratio of compounds that the cell needs in order to keep working. When deciding what to expel, the vacuole gets rid of anything that is over this ratio. So if that cell contained 15 glucose, 90 oxygen, 180 water, and 200 carbon dioxide, it would get rid of the carbon dioxide first, because the carbon dioxide is over that ratio and is therefore in excess. If there are multiple compounds in excess, the vacuole randomly excretes between those two.

However, this means that there could be a scenario where a cell is over 80% full but the storage contains the perfect ratio. In this case, one unit of a random compound is expelled. Doing this will break the ratio, which will cause the vacuole to start excreting the excesses again. If the ratio is met again, then another random one will get kicked out, causing there to be excesses and the vacuole ejects them, and this will keep going until the capacity is back under 80%.

Solution B:

A vacuole will at all times excrete unnecessary compounds. However, when it is 80% full or more (that threshold is up for revision) a vacuole starts to excrete NECESSARY compounds. This means that even if the cell consumes glucose, it will excrete any glucose in the vacuole until it is below the threshold again. However, it always begins by excreting compounds that are the lowest priority. All compounds found in the microbe stage have an inherent priority. Also, the cell only begins to excrete necessary compounds after ALL unnecessary compounds have been emptied out. 

For example, say a cell is storing water, oxygen, and glucose. All of these are necessary compounds, and all unnecessary compounds have been emptied out but the vacuole is still over 80% full. The cell will begin to excrete the lowest priority one first. Water has a low priority, so it goes first. If the cell is still over 80% when all the water is gone, it will go to the next lowest priority, which is oxygen, and excrete that. It will only stop when the vacuole is under 80% again.

---

Also, something I discussed with Psychochef wass the concept of Transport Rate and Transport Weight. Transport Rate, as I mentioned earlier, and as crovea called a "bandwidth" for cells, is basically how many units of compounds a cell can take in or out at a time. Think of a room with a bunch of doors. If only one person can enter or leave the room at a time per door, and there is a certain amount of doors, there is a limit to how many people can be entering/leaving the room at the same time. This in Thrive is called Transport Rate, in units/second. Each exposed hex face would increase this rate by X units/second.

However, something I wanted to add in was the idea of Transport Weight. Each compound has transport weight as a property (but it wouldn't matter for compounds not found in the microbe stage). When a molecule of a compound is transported into or out of a cell, instead of just taking up one unit of space, it would take up as many units as it had transport weight. For example, if a cell has a transport rate of 10 units/second, and compound X has a transport weight of 2, then each second the cell could only take in or eject 5 molecules of compound X. What do you think about this feature? Too complex? It adds in the fact that molecules like glucose take longer to be picked up than other molecules.

Lastly, I did get a suggestion from one of the other users that we should create a prototype or demo of this first, playtest it, and see what the results are and find the best solution in that manner.

So for those who haven't read it, this was what I posted to address the issue of excreting compounds in the Microbe Stage. That is what we're currently discussing, right? Are there any problems with Solution A? Because I think that solution is the better choice.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
crovea
Programming Team lead


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 26
Location : Denmark

PostSubject: Re: Microbial Compounds and Organelles   Tue Feb 04, 2014 6:44 pm

Solution A is pretty much what we have right now. The part about "need" and "demand" is not completely fleshed out in the code, but currently just using a static priority table as a temporary solution. But once seregon puts up his big post we can figure out exactly how that needs to work.

_________________
- jjonj on github/reddit, jjonjex/Jacob Jensen on skype
Back to top Go down
View user profile
Seregon
Regular


Posts : 263
Reputation : 37
Join date : 2011-08-10
Location : UK

PostSubject: Re: Microbial Compounds and Organelles   Wed Feb 05, 2014 7:13 am

The solution we're working towards is similair to both A & B suggested by Nick, but there are a few key issues with each that mean they're not entirely sufficient.

Solution A
Quote :
A vacuole will at all times excrete unnecessary compounds
Realistically, not all unnecessary compounds are worth excreting, it would take too much energy to do so.  Unwanted compounds should be excreted at a rate proportional to their concentration, in an attempt to keep levels low, but not 0.  From a gameplay perspective, having all unwanted compounds excreted as fast as possible may give a player the false impression that their cell is dealing well with any toxins/waste, when its actually using 90%+ of its transport capacity to do so, and any further strain could lead to an unconctrollable build up of waste.

Having waste excreted at a rate proportional to its concentration means that more waste will build up (gradually) as its rate of production/collection increases, providing better feed back to the player.

Quote :
However, when it is 80% full or more (that threshold is up for revision) a vacuole starts to excrete NECESSARY compounds...
I don't like the idea of an arbitrary threshold (regardless of what that threshold actually is, I'll use 80% in this post for clarity though), as it wastes potential storage space, and as with the waste excretion above, causes qualitative changes in a cells behaviour (i.e.: below 80% useful compounds are always kept, above 80% any 'excess' is lost), which aren't as easy for a player to understand.  I'll outline a solution below (and go into details in the mentioned big post, which is taking me far too long to post, sorry), but again I'd suggest a gradual change in the rate at which useful compounds are excreted, proportional to their concentration and their priority.

Quote :
...no longer undergoes any processes, and no longer intakes any compounds
Along with the above problem of qualitative behavioural change (rather than a gradual slow down in process/collection rate), this creates the possibility that a vital compound will not be collected/produced until storage usage is back below 80%.

Quote :
Okay, how does the cell tell whether a necessary compound is in excess or not? Look at the following example...
I like this part, though theres several other factors we want to include in decided compound priority, this is a good place to start.

Quote :
...it would get rid of the carbon dioxide first, because the carbon dioxide is over that ratio and is therefore in excess. If there are multiple compounds in excess, the vacuole randomly excretes between those two.
This part, and that below, all assume that compounds can only be excreted in integer units, one at a time.  A lot of the complexity in the two solutions here (and several solutions I've seen to other problems elsewhere) are caused by this assumption, which is unnecessary.  Compound units (femto-moles) represent ~600 million compound molecules each, so theres no reason we can't excrete 0.2 of one compound and 0.36 of another, at the same time.  The transport capacity (will come back to that later) should be split among all compounds, depending on their concentrations and priority for being kept/got rid of, theres no need to alternate between excreting 1 of each compound.

Solution B
This shares most of the issues with A, with one addition:
Quote :
The cell will begin to excrete the lowest priority one first
If we do this, then your very likely to end up in a situation where you have none of a necessary compound, which will very quickly kill your cell.

Both of these solutions are good, they're just solving a problem we don't need to have.

Transport rate/weight
I like these ideas, and we certainly need to limit the amount of compounds that can be transported into/out of a cell at any time.  Using the number of external hex faces seems like a reasonably easy and realistic option.

I also like the idea of transport weight, though I'm not yet sure its necessary.  Some compounds will certainly take more time/energy to transport, and some will need specialist cell surface structures (pumps) to get them accross at all.  We just need to figure out (and test) how much of this we want to include in the game.

I'd also like us to consider transport time between organelles.  This is likely to be too much detail for the cell stage, but keeping in mind that we want to reuse as much of the compound system for later stages, it makes much more sense when considering factories spread around a city, and to a lesser extent organs in a body.

I'll go into more detail on all of this as soon as possible.  I'd hoped to get stuff posted before going back to work this week, but that didn't happen, so it'll be another day or two, sorry.
Back to top Go down
View user profile
Sponsored content




PostSubject: Re: Microbial Compounds and Organelles   Today at 11:50 pm

Back to top Go down
 
Microbial Compounds and Organelles
View previous topic View next topic Back to top 
Page 9 of 9Go to page : Previous  1, 2, 3, 4, 5, 6, 7, 8, 9

Permissions in this forum:You cannot reply to topics in this forum
Thrive Game Development :: Development :: Design :: Gameplay Stages :: Microbe-
Jump to: