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 5 users online :: 0 Registered, 0 Hidden and 5 Guests 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
» 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
» A new round of Forum Revamps! by Oliveriver Wed May 20, 2015 11:32 am
|
|
| Microbe Stage Progress Report | |
|
+50Inca spacetime_dinosaur MitochondriaBox TheFellowWithTheHat Dalroc Silver Sterling Mouthwash meldebious PortalFan1000 Tritium Aiosian_Doctor_Xenox Jimexmore Nimbal Mysterious_Calligrapher Naevius Tarpy FunnyGames WJacobC untrustedlife NikolaAnicic007 CoolGuyChris DawnTyrantEo DragonX511 Armok: God of Blood Oliveriver Thriving Cheese Jopetsu WilliamstheJohn Orygandian2 GmansWatching penumbra espinosa Holomanga nziswat Calfeggs decelis93 Dilophoraptor PandaVirus Admantus Daniferrito Gawbad Rorsten594 Raptorstorm ido66667 Brennus MeowMan1 Doggit Seregon ~sciocont The Uteen NickTheNick 54 posters | |
Author | Message |
---|
NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Tue Oct 01, 2013 7:35 pm | |
| That sounds like a good idea, and it's an okay from me. I'll post those on to the Building Microbe Stage's 2nd post (https://thrivegame.canadaboard.net/t1031-building-microbe-stage#20110), where I was looking for a list of steps to take to developing. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Development Bulletin? Tue Oct 01, 2013 8:15 pm | |
| I am planning on programming the saving and loading of cells. Please tell me if this is not what I should be doing. I am considering the save format of cells to be (anything in parentheses is used for elaboration): - Code:
-
Name (Chosen by creator) :Badaba (That was the name of my first SPORE creature)
(optional empty lines go here)
Description (Chosen by creator, may allow some special formatting tools, but for now, plain text. Colons help the reader know when the description is complete) :A vicious carnivore. He attacks enemies with its ferocious claws, even though he is a microbe and does not have any claws. : :His skills are: :Eating :Fighting :Spelunking
Shape (May be revised to be a boolean yes or no rather than a list of coordinates contained. Currently uses hex q, r axial coordinates) :0 0 :-1 0 :0 -1 (Empty lines can also go here, and they will not affect the reading of the file) :1 -1 :1 0 :0 1
Texture (The format for this may change, depending on how texture is implemented) :255 0 0 (Color #1) :255 196 64 (Color #2) :3 (Texture ID)
Organelles (Numbers may be replaced with strings, depending on which implementation is more efficient) :0 (Organelle class, 0=nucleus, 1=vacuole, 2=other) :0 (Organelle type, each specific type of organelle has its own ID) :0 (Number of upgrades on the organelle) :0 0 1 (q, r, and orientation of the organelle, orientation is from 1 to 6, may change to 0 to 5, corresponding to hex-side corresponding to the front of the organelle)
:1 :0 (I really don't know what ID each organelle will have, yet) :4 :-1 0 2 End (If it's easy to reach the end of the file and finalize everything, then this keyword will be eliminated)
The location of the functional edge of organelles that have them depends on the orientation of the organelle. Orientation would also affect which hex cells are taken for organelles that are bigger than one hex space. Writing to the file would be relatively straight forward, just following the script. Parsing the file will ignore empty lines and use lines beginning with colons as content. For instance, the parser would be able to detect the end of the description by finding the first non-empty line without a colon preceding it, ("Shape"). The parser would not actually interpret the words "Shape" or "Description" or "Name." It would instead return an error if the correct word is not included. These names instead serve as dividers between the different specifications of the cell. The parser notices them because they are lacking the distinctive colon at the beginning. If "Name" and/or "Description" end up being unnecessary for the project, they may serve as good placeholders. Please tell me if you want this format modified in any way. I will begin work on the Lua parser for these files. Is there a way to get default files like these included in the installation of Thrive? I assume it involves editing some manifest file somewhere.
Last edited by SuperLala on Tue Oct 01, 2013 9:09 pm; edited 1 time in total | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Tue Oct 01, 2013 8:48 pm | |
| Is this for saving the player's cell? Also, I don't think skills are necessary.
What are size upgrades? The player alters size by just adding or removing hexes.
EDIT: Here are all the organelles I know of that will be in the game:
Kernel (This is something that can't be added or removed, including within it the nucleus, endoplasmic reticulum, etc.) Mitochondrion Chloroplast Thermoplast Vacuole Agent Vacuole Cilia Flagellum
We could number these off for their ID's, or give them acronym ID's. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Re: Microbe Stage Progress Report Tue Oct 01, 2013 8:58 pm | |
| The skills are a part of the description. It would be as if the user decided to type in a set of skills for the fun of it. It has nothing to do with gameplay.
Regarding size upgrades, I can only assume that the goal is to eventually transfer from the microbe stage to the creature stage. To do that with hex cells of a fixed size would require billions of hex cells. I was thinking that, instead, the size upgrades are used to make the microbe get bigger at an exponential rate.
The cell save files would be used for the engine to be able to save microbe designs. It's a possible method to be able to create a database of different microbes and would be necessary if there are preset AI microbe designs.
In short, it is for saving the player cell and the AI cells.
EDIT: I was informed that there is a stage between the cell stage and creature stage (aware stage) that handles the increase of size from microbe to non-microscopic. In that case, the size upgrades are irrelevant.
Last edited by SuperLala on Tue Oct 01, 2013 9:10 pm; edited 1 time in total | |
| | | Immortal_Dragon Regular
Posts : 425 Reputation : 19 Join date : 2013-06-18 Age : 31 Location : Throne of the Immortal Dragon
| Subject: Re: Microbe Stage Progress Report Tue Oct 01, 2013 9:02 pm | |
| Uhh, the game will go through a multicellular stage as well before the traditional creature stage. This is unlocked through the gluer part and the player places it to place another copy of their cell on the other end. This will go on and on until they have a mass of their cells big enough to qualify for the next stage. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: I've been corrected Tue Oct 01, 2013 9:08 pm | |
| Ah, I have been corrected. According the the wiki, the multicellular stage is the stage after the microbe stage. In that case, yes, the size field is irrelevant, and I will eliminate it. I didn't realize there would be a 3D stage in the microscopic level (If there isn't the wiki needs updating). | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Tue Oct 01, 2013 9:13 pm | |
| Yes, before becoming a 3D organism the player must bond with other cells through acquiring a specific enzyme. After reaching 100 or more cells in their colony, the game undergoes a camera transition in which the 3rd dimension is revealed, and the players colony is somehow converted into a 3D organism of similar shape and ability. Oh okay if skills were just an example of something to write in the description box, that's fine. If AI cells are saved using this method when saving and loading the game, I would like to point out that the descriptions for other cells should always be blank by default. Names also are generated based off of the generational lineage of the cell. I'm pretty sure there is a thread on it, so if I can find it I'll post that here. Here it is: https://thrivegame.canadaboard.net/t223-naming-critters?highlight=namingI think we should discuss naming a bit more to settle with something, but before that I'll address the other points. Microbe Stage is 3D as well, but is fixed to a top down movement grid and camera focus. When reaching 100 cells the camera rotates in a way to show the player that the 2D pool they have been playing in this whole time was actually the sea floor of a 3D ocean. When encountering AI cells/organisms, the player should be able to select one, rename it, and change it's description. Descriptions should be blank for all creatures. Names should be generated based off of their ancestry. Okay, so regarding naming creatures, as soon as the player gives them a custom name they are saved into a vault, or fossilized. EDIT: After reading through the naming thread, here is what I think is the best solution: - ~sciocont wrote:
- Procedural names are easier and the player can always rename them. In fact, in game, there's no reason to show the procedural names. If you examine a creature that you haven't yet named, you will see it as "unnamed" once you name it, it gets saved to your hard drive.
I just solved two problems at once- storing creatures and naming. The game should only store the creatures that you bother to name. Once an org goes extinct or evolves, it is lost forever, except in its own lineage. The "lineage" could simply be a bunch of small pictures showing how the org evolved over time. The game could also choose to randomly save some species by "fossilizing" them. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Missing organism shape Tue Oct 01, 2013 11:00 pm | |
| I have been looking through the code, and I have noticed that the hex coordinates are only stored in the organelles and the cell is entirely made up of its organelles. I believe that in the real version, cells will have their own shape and may have empty space rather than organelles in some places.
Also, how do you set the position of a microbe? | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Tue Oct 01, 2013 11:09 pm | |
| Yes empty space, i.e. just plain cytoplasm, should be an option. A hex must first be filled with cytoplasm, or "added" to the cell, before it can have an organelle placed in it. | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Microbe Stage Progress Report Wed Oct 02, 2013 2:56 am | |
| I don't think a separate save format for pre-defined microbes is absolutely necessary. If anything, it's only useful for some testing because eventually, the microbes should be generated procedurally (except for the player microbe which is to be built in the microbe editor). So the goal is to make the different species be part of the game state, i.e. serialized into the savegame. If you really want to make a human-readable format for describing statically defined microbes, I would strongly recommend using Lua tables instead of a custom format that requires a non-trivial parser. Your example would look something like this: - Code:
-
local BadabaMicrobe = {   name = "Badaba",   description = "A vicious carnivore. He attacks enemies with...",   shape = {     {0, 0},     {-1, 0},     {0, -1},     {1, -1},     {1, -},     {0, 1},   },   texture = {     ColourValue(255, 0, 0),     ColourValue(255, 196, 64),     3   },   organelles = {     {       class = 0, -- Maybe a string would be more expressive here       type = 0,       upgrades = 0,       q = 0,       r = 0,       orientation = 1,     },     {       class = 1,       type = 0,       upgrades = 4,       q = -1,       r = 0,       orientation = 2,     },   }, }
The organelle classes and their subtypes can be described the same way. Then a few Lua functions could easily build a microbe just from that table, without the need of an additional file format. I very much agree with the rest of your plan (simple AI, spawning microbes where necessary, cell interaction). | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Re: Microbe Stage Progress Report Wed Oct 02, 2013 10:56 am | |
| OK, that makes a bit more sense. I still believe that there will be more than one instance of a single type of microbe, so having some sort of MicrobeTypeEntity (or some similar name) would still be desirable. When a microbe of a certain type spawns, it would look at that MicrobeTypeEntity to figure out its attributes. | |
| | | untrustedlife Regular
Posts : 252 Reputation : 19 Join date : 2013-03-26 Location : [Classified]
| Subject: Re: Microbe Stage Progress Report Wed Oct 02, 2013 8:22 pm | |
| - Nimbal wrote:
- I don't think a separate save format for pre-defined microbes is absolutely necessary. If anything, it's only useful for some testing because eventually, the microbes should be generated procedurally (except for the player microbe which is to be built in the microbe editor). So the goal is to make the different species be part of the game state, i.e. serialized into the savegame.
If you really want to make a human-readable format for describing statically defined microbes, I would strongly recommend using Lua tables instead of a custom format that requires a non-trivial parser. Your example would look something like this:
- Code:
-
local BadabaMicrobe = {   name = "Badaba",   description = "A vicious carnivore. He attacks enemies with...",   shape = {     {0, 0},     {-1, 0},     {0, -1},     {1, -1},     {1, -},     {0, 1},   },   texture = {     ColourValue(255, 0, 0),     ColourValue(255, 196, 64),     3   },   organelles = {     {       class = 0, -- Maybe a string would be more expressive here       type = 0,       upgrades = 0,       q = 0,       r = 0,       orientation = 1,     },     {       class = 1,       type = 0,       upgrades = 4,       q = -1,       r = 0,       orientation = 2,     },   }, }
The organelle classes and their subtypes can be described the same way. Then a few Lua functions could easily build a microbe just from that table, without the need of an additional file format.
I very much agree with the rest of your plan (simple AI, spawning microbes where necessary, cell interaction). Eventually we want to be converting the cells into a 3d model. (I am back by the way) so I'm still not sure if a lua table is the best idea... I am probably worrying for no reason. Also great work on everything you have done Nimbal. Sadly i still may not have time to work on the code. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Choices, choices Wed Oct 02, 2013 9:20 pm | |
| So, we should come up with a decision pretty soon. How will we save cell types (this will be necessary even for procedurally generated cells)? I see three options:
- Use Lua tables.
- Use a text file format similar to the one I proposed, maybe with a different format
- Use a binary format. This may be the most efficient in terms of disk space and read time, but writing such a file would require running a program to generate it.
- Do something I did not think about. I know I said three options, but this doesn't really count.
And my opinion on each one:
- I am not in favor of Lua tables, since it would easily be readable with C code, and it is not as efficient as other possible options.
- A text file format would be readable by both Lua and C. So would a binary format, but a text file format is human readable and human writable, making it easier to debug initially.
- A binary format may be the most efficient in terms of disk space and read time, but writing such a file would require running a program to generate it.
- I cannot evaluate this option because I added it in case I missed something.
My personal favorite is a binary format. How is everyone else? Also, should we create a new thread for save format, or will that be unnecessary? | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Microbe Stage Progress Report Thu Oct 03, 2013 2:20 am | |
| By the way, there already is a binary serialization format implemented, see engine/serialization.h, especially the StorageContainer class. It's a key-value storage. For examples on how to use it, look for the storage() and load() functions of any Component subclass. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Re: Microbe Stage Progress Report Thu Oct 03, 2013 9:33 am | |
| Can a single component be serialized to a custom file, or is everything always serialized together? If it is the former, storage() and load() should work. I believe saving.cpp handles all the saving and loading, currently, and it does everything at once. What, do you think, is the best way of saving microbe templates separately? We will want to be able to share microbes we created, after all. | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Microbe Stage Progress Report Fri Oct 04, 2013 10:28 am | |
| The serialization mechanism is designed quite general. At the moment, all components are serialized together because that's what a savegame needs to be - a complete snapshot of the gamestate. But saving just part of the game is trivial. Create a StorageContainer, fill it with the data you want to save, and write it to a file with its stream operator.
And exactly because it is so trivial, I don't consider it critical to worry about it now. Because the bigger hurdle before "exporting" microbes is to have a microbe editor. Until we have a functional editor, the only way to create microbes is programmatically. And why export a microbe to a binary format when you can just copy / paste the script that created the microbe? | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 5:08 am | |
| Just as a heads-up, I've tentatively added a milestone in GitHub to complete a prototype for the microbe stage (without editor, mind you) by the end of December. That prototype will still be far from what the microbe stage is eventually supposed to be, but it should give us some feedback on microbe movement and the interaction between compounds and microbes.
You can read about the features I've planned for it here. As always, no promises that the deadline will actually be met or that all of the features listed will be included. Nevertheless, at the current pace, with jjonj / crovea and patowen95 (is that SuperLala from the forums?) chomping through issues almost as fast as I can assign them, I think the goals are realistic. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 12:51 pm | |
| - Nimbal wrote:
- and patowen95 (is that SuperLala from the forums?)
Yes it is. I didn't really consider that the fact that my GIT username is different from my forum username would be confusing. I'm glad that this game is making progress. I joined because I was worried that it wasn't. | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 1:07 pm | |
| Yeah things are going forward quite well, the deadline should be no problem!
jjonj is my original username that i use for general stuff (like programming) but crovea is my gamer tag, which evolved on its own! Gets a bit confusing when my gaming and programming identities confront =P | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 3:48 pm | |
| Spectacular work guys! I really wish I could help more but these days I am really pressed for time.
One question though, what is oxytoxy? | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 4:29 pm | |
| Just a small joke between me and nimbal. "Oxytoxy-neuro-toxin", I needed to come up with a product using oxygen as a component | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 4:40 pm | |
| I hate to be so critical, but what role does oxytoxy play? Why does it destory RpAse? Is it related to anything real in cells? | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 4:45 pm | |
| Don't read too much into it, I just needed something to create a "Game Over" state. I could just as well have called it "poison compound 1". As I said, the planned prototype won't be representative of the eventual microbe gameplay, so don't worry too much about names, let alone whether they make sense. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Microbe Stage Progress Report Wed Nov 06, 2013 8:01 pm | |
| Yeah okay, I suspected as much, since I also noticed that the game is "lost" when RpAse reaches 0. Speaking of which, is there yet a concept on how cell's will live (i.e. what will define their health?) | |
| | | Tarpy Strategy Team Lead
Posts : 337 Reputation : 23 Join date : 2013-03-08 Location : Here
| Subject: Re: Microbe Stage Progress Report Thu Nov 07, 2013 12:57 pm | |
| Just to ask, where can I find the compiled version?
Also, great job, Nimbal, SuperLaLa and crovea! | |
| | | Sponsored content
| Subject: Re: Microbe Stage Progress Report | |
| |
| | | | Microbe Stage Progress Report | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |