Thrive Game Development
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  Latest imagesLatest images  SearchSearch  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 is 1 user online :: 0 Registered, 0 Hidden and 1 Guest

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
Building Microbe Stage - Page 6 Emptyby NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
Building Microbe Stage - Page 6 Emptyby NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
Building Microbe Stage - Page 6 Emptyby crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
Building Microbe Stage - Page 6 Emptyby tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
Building Microbe Stage - Page 6 Emptyby NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
Building Microbe Stage - Page 6 Emptyby NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
Building Microbe Stage - Page 6 Emptyby crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
Building Microbe Stage - Page 6 Emptyby The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
Building Microbe Stage - Page 6 Emptyby crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
Building Microbe Stage - Page 6 Emptyby MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
Building Microbe Stage - Page 6 Emptyby tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
Building Microbe Stage - Page 6 Emptyby tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
Building Microbe Stage - Page 6 Emptyby Kaiju4u Wed Jun 10, 2015 11:16 am

» Presentation
Building Microbe Stage - Page 6 Emptyby Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
Building Microbe Stage - Page 6 Emptyby crovea Sun May 31, 2015 5:06 pm

» want to contribute
Building Microbe Stage - Page 6 Emptyby Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
Building Microbe Stage - Page 6 Emptyby Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
Building Microbe Stage - Page 6 Emptyby Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
Building Microbe Stage - Page 6 Emptyby TheBudderBros Sun May 24, 2015 9:00 pm

» A new round of Forum Revamps!
Building Microbe Stage - Page 6 Emptyby Oliveriver Wed May 20, 2015 11:32 am


 

 Building Microbe Stage

Go down 
+24
penumbra espinosa
Dalroc
PortalFan1000
FalmerbloodElixir
Tarpy
WilliamstheJohn
Thriving Cheese
Oliveriver
DesertBeagle
hypoxanthine
untrustedlife
Atrox
WJacobC
Mysterious_Calligrapher
Seregon
Nimbal
Bed_Invader
Tritium
TropicalMammoth
The Uteen
~sciocont
PTFace
Daniferrito
NickTheNick
28 posters
Go to page : Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
AuthorMessage
Oliveriver
Music Team Co-Lead
Oliveriver


Posts : 579
Reputation : 59
Join date : 2013-01-21
Age : 25
Location : England, United Kingdom, Europe, Earth, Solar System, Milky Way, Virgo Supercluster, The Universe

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyMon Jun 03, 2013 12:03 pm

Well, back at school after a half term holiday/vacation in the middle of the school term. The UK summer holidays/vacation start/s in about six weeks and go/es on for six weeks. Sometimes I envy US students - you have a much longer holiday/vacation.
Back to top Go down
http://oliverlugg.com/
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Compound Visuals   Building Microbe Stage - Page 6 EmptyWed Jun 05, 2013 5:22 pm

OK, It's time to discuss the visuals of compounds. This is going to involve both our programmers and our artists, because we not only need to let the player know what's what, we need to handle what would be >billions of particles in a simple way. The actual movement and behavior of compound entities needs to be properly defined.

Here are the options that I can think of of handling compounds.

Spoiler:

Unless someone has a better Idea, I'm going to assume the Density Cloud system will be used: in previous discussions, I believe Nimbal or Dani have alluded to a system like that described. If you have another system in mind, feel free to post it.
Now, about that clever visual system.

I'd propose we still handle the visuals of the compounds with sprites, but the sprites in question will exist within the microcosm of the compound cloud. Let me explain.

The compound cloud is essentially a bitmap that is scaled and faded (lowered in opacity) as it disperses. We can use the alpha values of the cloud to render sprites at random positions within the cloud, then change the sprites' opacity to match (or scale with) the opacity at their position. That way, we get visual representation via shape and color without having to handle all of the sprites individually in terms of the physics. To illustrate that the sprites rendered within the cloud are not individual items, they can "twinkle" byt fading from an alpha of 0 to the max alpha at their position, then disappearing, with a new sprite being rendered somewhere else in the cloud.

Spoiler:


Last edited by ~sciocont on Wed Jun 05, 2013 7:59 pm; edited 2 times in total
Back to top Go down
WJacobC
Outreach Team Lead
WJacobC


Posts : 220
Reputation : 17
Join date : 2013-04-05
Age : 25
Location : The United States of America

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyWed Jun 05, 2013 5:54 pm

I too vote for density cloud system as well. This system will work very well. A few examples I came up with:
-When a cell dies all compounds inside it would spill out in a high gradient.
-As you evolve, you could mutate organelles that acted as sensors, so that when you entered a cloud a visual representation would begin to show. This could be upgraded to show other toxins that cells have excreted, etc.
-You could couple this with toxins that you have evolved to show other cells where food is, or to trick other species into a deadly toxin.

This system excites me. I'm not sure about visual system. I thought just an alpha map with a more intense gradient as the compound grows more sense. Great idea, ~scio.
Back to top Go down
http://WJacobC.com
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyWed Jun 05, 2013 6:00 pm

Bumping to draw attention to the proposed visuals.
Back to top Go down
NickTheNick
Overall Team Co-Lead
NickTheNick


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

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyWed Jun 05, 2013 6:54 pm

~sciocont wrote:
I'd propose we still handle the visuals of the compounds with sprites, but the sprites in question will exist within the microcosm of the compound cloud. Let me explain.

The compound cloud is essentially a bitmap that is scaled and faded (lowered in opacity) as it disperses. We can use the alpha values of the cloud to render sprites at random positions within the cloud, then change the sprites' opacity to match (or scale with) the opacity at their position. That way, we get visual representation via shape and color without having to handle all of the sprites individually in terms of the physics. To illustrate that the sprites rendered within the cloud are not individual items, they can "twinkle" byt fading from an alpha of 0 to the max alpha at their position, then disappearing, with a new sprite being rendered somewhere else in the cloud.

Spoiler:

I much prefer the cloud idea as well. Plus, the manner of using sprites for the graphic would be very effective too.
Back to top Go down
WilliamstheJohn
Regular
WilliamstheJohn


Posts : 409
Reputation : 10
Join date : 2012-12-26
Age : 30
Location : Third Rock from Sol

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 1:55 am

I vote for it to. Does anyone have any other idea?
Back to top Go down
Thriving Cheese
Art Team Lead
Thriving Cheese


Posts : 321
Reputation : 9
Join date : 2013-01-06
Age : 24
Location : Sweden

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 2:35 am

That sound pretty good.
Back to top Go down
http://thrive-game.deviantart.com/
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 2:49 am

Before I comment on the compound visuals, I'd like to remind you that the naming issue of toxins / enzymes is still up in the air. The wiki still says "enzyme", which is apparently incorrect. I'd like to rectify that, but not without the blessing of someone more knowledgeable in biology than me. The proposed names so far:


  • Toxin (confusing for beneficial stuff)
  • Enzyme (scientifically incorrect or inaccurate)
  • (Biological) Agent
  • Protein (Wikipedia says they "perform a vast array of functions within living organisms", which seems kind of fitting)


Ideally, I'd like to have one general term for both beneficial and harmful stuff, and one specialized term for each. Toxin is a great, immediately recognizable name for harmful stuff. But what about the general name and beneficial stuff?

Now, about the compound visuals. I like the idea of a mixed alpha map / sprite approach. But I' wouldn't dismiss the straight-forward approach of discrete particles just yet. At least in theory, the physics engine we use can handle it. And manipulating an alpha map with potentially thousands of pixels isn't exactly cheap either. I'll see if I can whip up a test run with a few hundred particles in our current engine.
Back to top Go down
Daniferrito
Experienced
Daniferrito


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 30
Location : Spain

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 7:23 am

I'm with Nimbal here. Having independant entities for the compoundsis is what our engine is most used doing. And simulating many entities in the physics engine wont be too hard for the computer, taking into acount that whenever they colide, they will disapear and get added to whoever colided with them. Usually collisions are the reason physic engines lag. On top of that, if we just leave the compound "bubbles" there, without moving them, they will just be tagged by the physics engine as inactive, which makes them much easier to simulate.

@Nimbal: I'm quite sure that video is "baked", which means it is simulated as perfectly as possible in whatever fps it comes out, and then re-speed up so you cant feel the difference. I believe he said it was like a night to simulate that 12 seconds of video.
Back to top Go down
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 12:40 pm

Ok, good to hear from you guys. Is there a better way to handle the cloud than an alpha map? Maybe a 3D gaussian function or some f(x,y)=z where the z coordinate is the toxin level at (x,y)?
If we can handle 1000s of particles at once with everything else that's going on, that's fine, but I want to make sure of it before we release a game that runs at 10 fps, hence the density cloud backup.
Back to top Go down
Daniferrito
Experienced
Daniferrito


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 30
Location : Spain

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 1:19 pm

Well, if you want the cells to actually modify it, you will need an alpha map. Lets say the cell is absorbing the "protein/enzime" cloud from the left. Only the actual parts it is going through should get their values reduced, not the whole function as a whole (that is, the right part should stay without change). You could describe the simple maps as a function, but not once cells start to add or remove from it.

Other than that, a cloud visually representing the proteins would look nice.
Back to top Go down
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyThu Jun 06, 2013 9:09 pm

But would it really be an issue if we did subtract from the function as a whole? That was my original idea, since there would (in reality) be billions upon billions of particles in the cloud and they would be diffusing about fairly uniformly? I don't think there would really be gameplay ramifications if you simply updated the magnitude of the entire compound cloud based on absorption of all of the cells within it each frame. Also, we're representing what is really a 3D space in a ostensibly 2D environment: In a 3D space, there would be a lot of space for the compounds to move in and around the cells easily- they're not large enough or moving fast enough to have a very large effect on the currents around them that a wake caused by their passing would last very long.

Either way, I'm perfectly happy to use the individual entities system, provided Bullet can handle it well.
Back to top Go down
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyFri Jun 07, 2013 12:18 pm

Another issue I'd like to clear up would be cell membrane shape generation in the editor. I'm sure both Dani and Nimbal have a pretty good idea of the algorithm for it, but in the interest of collaboration, here's mine.

Spoiler:

Does that seem good ? What better ideas do you have? I'm trying to write as much pseudocode as possible as I'm beginning to learn LUA.
Back to top Go down
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyFri Jun 07, 2013 3:10 pm

That should work for the outer periphery. For inside "holes" in the cell, I think the anchor points have to lie on the edges of the hexagons, not the corners.

But to start from the beginning, we have the following requirements and goals:

  • The final shape of the microbe should not betray the hex-grid underneath
  • The hex-representation of the microbe must be completely contained inside the rendered shape. Otherwise, artists will have a hard time predicting how large an organelle may be.
  • A lone hexagon should be rendered as a perfect circle
  • A "circle" of hexagons (e.g. one hexagon in the centre together with its six direct neighbours) should also be rendered as a perfect circle.
  • A "line" of hexagons should be rendered as a straight line with rounded end points.


Smooth curves in computer graphics usually require Bezier curves or splines. Splines are a little easier to control because they actually go through the control points, so I'd go with (cubic) splines.

That leaves us with the problem of finding those control points. Scio has already described part of the algorithm, but it's still a little nebulous (among other things, it doesn't give the order of the control points), so let's formulate this a little stricter. First off, some terminology and conventions:


  • A hex is said to be "active" if it's part of the microbe's shape. Otherwise, the hex is "inactive".
  • We use flat-topped hexagons and the axial coordinate system (the last one described in the link).
  • The right most corner of a hexagon is labeled "A". From there, it goes clock-wise through the alphabet, with the upper-right corner being the last one with the label "F".
  • Each corner has three adjacent hexes: "left", "above", "below". In the algorithm below, these adjacent hexes are also called "neighbours" of the corner.
  • Note to self: find a nice drawing program that can handle hex-grids without too much fiddling.


Now, the algorithm in pseudo-code:

Code:

// List of control points, initially empty
controlPoints = []

// Outside shape counter. We will use this counter to detect
// when a control point should be in the center of an inactive
// hex instead of on the corner of an active one
osc = 0

// Find any hex on the outer edge of the microbe
currentHex = findPeripheralHex()

// Select corner A as the currentCorner
currentCorner = currentHex.A

// Find a corner that has at most 2 active adjacent hexes
while currentCorner.activeNeighbours == 3 do
    currentCorner = currentCorner + 1
end

repeat
    if currentCorner.activeNeighbours == 1:
        controlPoints.add(currentCorner)
        osc = 0
        currentCorner = currentCorner + 1
    else if currentCorner.activeNeighbours == 2:
        osc = osc + 1
        if osc == 2:
            // Since the current corner has two active neighbours, there can be
            // only one inactive one
            inactiveNeighbour = currentCorner.findInactiveNeighbour()
            controlPoints.add(inactiveNeighbour.center)
        currentHex, currentCorner = switchHex(currentHex, currentCorner)  // See below
until controlPoints.size > 2 and controlPoints.first == controlPoints.last

Note: the scrollbar for code sections in this forum is really annoying.

The "switchHex" function used above takes a hex and one of its corners that has only two active neighbours. It then returns the other active neighbour along with the same corner, but in the neighbour's coordinate system. For example (better make a sketch of this), say we have two active hexes, Hex1 and Hex2. Hex1 is directly above Hex2. Hex1 is our current hex, and B is our current corner. That's the left hand corner that both hexes share. The "switchHex" function would then return Hex2 and F. Same corner, but on a different hex.

I've tested the above algorithm on paper for a variety of hex arrangements. If you find an edge-case where it produces undesirable results, please post that case here.

Regardless of whether that algorithm works or not, it doesn't handle "holes" in the cell, i.e. areas of inactive hexes that are enclosed by active hexes. I don't have the time to write out the whole algorithm for those right now, but the main problem here is not finding the control points (just use the midpoints of the edges instead of the corners), but rather finding those areas. That's still not really complicated though, a flood fill algorithm will take care of that.
Back to top Go down
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyFri Jun 07, 2013 4:17 pm

Great post. Eventually I will be able to help with this sort of thing to a somewhat competent extent.
Also, this webpage that you linked is fantastic. Props to the author.
Back to top Go down
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 8:16 am

Over in the Agent Cloud Implementation thread, I've mentioned some ways we could simulate believable clouds of agents and compounds in the environment. But there are some details of microbe / agent interaction we need to flesh out before we can make a decision on which algorithm to use. Since they have gameplay consequences, I'll post them here.



  • Do microbes absorb agents? In other words, is the agent concentration diminished by a microbe moving through an agent cloud?
  • If yes, do all microbes absorb all agents? Or just those that would have an effect on the microbe?
  • If agents are not absorbed (i.e. they are only removed from the world by dissipation), do microbes displace agent particles, pushing a wave of agents in front of them when they move through a cloud?
Back to top Go down
Daniferrito
Experienced
Daniferrito


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 30
Location : Spain

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 11:18 am

1) Yes, microbes should decrease the amount of agent in the area they are, as long as they are absorving it.
2) No. A microbe should not keep absorving something once it is "full". More on that later
3) I would vote for yes. That way, when the player is a multicelular creature (but still composed of cells), outer cells will absorv components before they get to inner cells. That allows for a much simpler early multicelular implementation.

What about this: Agents have a concentration of compounds stored inside them. That includes oxygen, CO2... and of course agents. If the inner concentration is higher than the concentration around the cell (CO2, for example), it will throw away the excess amount until the water around it and itself have equal percentages. Similar with the oposite case, if the inner percentage is lower (like for oxygen), it will absorv from the outside to equalize.

Here are some examples:

  • As a cell uses oxygen, its internal reserve will decrease. That makes the outside percentage higher, so it will start absorving to refill its reserves.
  • When the cell creates CO2, it will throw it away whenever its concentration gets higher than the outside concentration.
  • To throw agent to other cells, it will release them into its internal storages. As the outside contentration is 0%, it will start to "bleed" it off.
  • Whenever another cell enters an agent cloud, as its internal percentage for that agent is 0%, it will start absorving it untill the percentages equal. Whenever the agent is inside itself, it will "spend" it to perform the action the agent does, decreasing its internal amount of the agent.
  • Cells surrounded by other cells (like an internal cell from a multicelular creature, or a cell that was surounded by enemies) doesent get any concentration outside of its membrane, so it wont get any intake. For cells from a multicelular creature, it will echange compounds with them directly. If the other cells dont allow such thing (like the cell surrounded by enemies) it will eventually starve to death.


The Lattice Boltzmann Method you mentioned on the other thread seems the best aproach (looking at the videos)
Back to top Go down
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 11:41 am

You mean you want to simulate osmosis? That can get really confusing when the player moves from a compound rich environment to a compound starved environment and suddenly loses resources like a leaking pinata. It also poses algorithmical and conceptual challenges. For example, how would you calculate the concentration values for "outside" and "inside"? What about if the concentration is high on one side of the microbe and low on the other side? How would you communicate to the player that the concentration over there is high enough that he can gather stuff up, but over here it's so low that he would lose his reserves?
Back to top Go down
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 11:51 am

I agree with pretty much everything Dani just said. That's a great way of simulating absorption, but it will only work if we're using an alpha map style system, not an individual entity system, since we don't know concentrations inherently with an individual entity system.
Another problem is that cells need more of many compounds inside them than outside. Compounds that diffuse freely across the cell membrane like simple gases (O2,CO2) and water can be modeled easily like this, and we simply need to specify a constant ATP drain rate that the cell must spend to keep these concentrations within a certain range. 
However, for larger compounds, such as glucose, fats, proteins and agents, the cell has to spend energy to transport them across its membrane, and thus just needs to expend some energy when it comes into contact with them, but doesn't need to spend a constant amount to keep them from falling out.
Agents are designed to be pumped out on command, so the source cell doesn't need to worry about their concentrations except to stop making them when they're full.
In conclusion, some compounds dissipate freely (water, oxygen, nitrogen, methane, carbon dioxide) and require energy to keep in the correct concentrations, while other compounds (agents, fats, proteins, sugars) simply need to be picked up and require a small energy expenditure when they are picked up.
Back to top Go down
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 12:03 pm

Guys, slow down. For one, you are proposing half-cooked ideas again. The whole point of this design document for the microbe stage was that we have clear, concise rules that serve as a straight-forward guide to implementing the game. So if you want to have such a system, please take the time to fully think them through with all odds and ends, then formulate them.

Also, don't worry about the specific method for fluid simulation here. Just think of the gameplay, not the way to implement it.
Back to top Go down
Daniferrito
Experienced
Daniferrito


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 30
Location : Spain

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 12:08 pm

Oh, i just realized i missed a few things in the last part of my post. But yes, i meant simulating osmosis to some extent. (scio comented some of the things i was intending to say)

Cell membranes have a few extra properties. For example, they can prevent some compounds going through or allow them, depending on the situation. When Oxygen (or any other usefull compound) gets under a thereshold, it prevents it from going out.

Membranes also contain "pumps" that can force some compounds in or out ignoring the gradient, in echange of some energy. That means that even though you will most of the time have more sugar than the outside, you will absorb any that comes by. You would never let sugar out.

The value for inside is easy. As it is only stored as a number, you can easily make calculations with it. If the volume of the cell is 3/4*Pi*r3, the concentration is amount/volume, with the right units.
For the outside, we just take an average. Either we take the area the cell "reaches" or we divide that area into smaller sections and treat each one individually.

For showing the player if it is gathering or losing compounds, we could show a table with the internal and external percentages, and an arrow in between that indicates where the flow is going. The faster the transaction, the bigger the arrow. That table would be hiding most of the time and only show up if the player decides it. A more visual method would be better, but i'm not really good at such things.

@Nimbal: Sorry for starting this. It just seemed natural to me that if this level of simulations with agents could be reached, the next natural step would be to simulate all compounds as agents.
Back to top Go down
~sciocont
Overall Team Lead
~sciocont


Posts : 3406
Reputation : 138
Join date : 2010-07-06

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 12:19 pm

Thanks for stopping us Nimbal. So the current system is:
"Cell comes into contact with compound and absorbs it unless it is already full of that compound."
Correct? That's about the simplest thing we can do, and I think it will work.
Back to top Go down
Seregon
Regular



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

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 12:27 pm

As usual I'm following whats been posted here, but haven't really had time to post much of a reply.

The ideas on how compounds (including agents) will be transfered between cells and their environments have been around for some time, though I'm not sure if they're explained in full anywhere.  Some details may be covered in the compound system thread, other aspects were certainly discussed by me and Scio over PM last year (@scio - you posted some of these in a thread in the hard development section before the restructure, I can't seem to find them now?). 

From memory (and as mentioned by Scio and Dani above), only a few compounds will freely osmose accross the membrane, most will need to be channelled or pumped.
- Channelling allows compounds too large for regular osmosis to pass freely over the membrane, effectively making them subject to osmosis.  In this way, the cell can allow or not the osmosis of certain compound by having/not having chanels.
- Pumping, as explained by Scio, moves compounds accross the membrane at an energy cost.  These compounds may or may not be affected by osmosis otherwise.  This is the only way to transport compounds against a concentration gradient, and the only way to maintain a concentration other than that outside for compounds subject to osmosis.

Concentrations inside the cell are calculated as the quantity stored / maximum capacity.  Depending on the compound that capacity may be the total volume of the cell, or depend on the size of storage organelles like the vacuole.  Concentrations outside the cell would be the amount present in a location / that locations volume.  I've meant to post on this before, but haven't had time - this is one key reason why some sort of alpha map approach would be much nicer than a particle approach for running the compound system.

Also, some of the discussions on fluid flow seem to assume that different agents/compounds will interact (i.e.: seperate).  Most compounds we use (with the exception of water, I would suggest all compounds, for simplicity) are dissolved in water, so they aren't actually seperate fluids.  What's flowing isn't the compounds/agents but the water they are dissolved in, so there doesn't need to be any interactions, most compounds/agents should mix perfectly.

...ninja'd ofc, originally wrote this into Nimbals post.
@ Dani - mostly agree.
@ Scio - that works for now, but it won't be enough if that's all we're going to do.  We need cells to be able to excrete compounds as a minimum.  Whether they do that for osmosis, active pumping of waste products, or production of agents, we need to be able to do roughly the same thing for the fluid simulation - calculate the rate at which agents/compounds are placed/absorbed in each fluid grid cell according to the presence of a cell and its contents.

This post is really rather rushed, but some of it needs to be mentioned before this discussion goes on.  If you need me to clarify anything I'll try and do so tonight.

EDIT - and I just noticed the new posts in the fluid dynamics thread, which cover atleast some of what i posted here, sorry.


Last edited by Seregon on Tue Jun 18, 2013 12:47 pm; edited 1 time in total
Back to top Go down
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyTue Jun 18, 2013 12:31 pm

By all means, I didn't want to discourage the osmosis idea. It just needs a lot more work until it's ready for implementation.

Nimbal wrote:

Also, don't worry about the specific method for fluid simulation here
As an amendment: just assume that you can query the density and velocity of a given fluid at any point, or the average of those values in a given area. Whatever simulation method we end up using, that's the minimum it should be able to do. And I don't know any method that can't do that.
Back to top Go down
NickTheNick
Overall Team Co-Lead
NickTheNick


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

Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 EmptyMon Jun 24, 2013 4:11 am

I would just like to ask, I never saw anywhere how the effects of the agents you produce will be decided. Will it be procedural? Customizable? Will the effects of the agents you secrete evolve as you do? If it does evolve, is it independent of you or do you control its progression?
Back to top Go down
Sponsored content





Building Microbe Stage - Page 6 Empty
PostSubject: Re: Building Microbe Stage   Building Microbe Stage - Page 6 Empty

Back to top Go down
 
Building Microbe Stage
Back to top 
Page 6 of 8Go to page : Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
 Similar topics
-
» working in "microbe stage"
» Microbe Stage GDD
» Microbe Stage Mobs
» The Finalization of Microbe Stage
» Microbe Stage First Build Concept

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