• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Durakken

Members
  • Content count

    621
  • Joined

  • Last visited

Community Reputation

692 Good

About Durakken

  • Rank
    Advanced Member
  1. Nope. They don't. I don't know where you're getting that. Those traits are for example, if you have a skill for Sword Mastery lvl 1. It adds +2 to Stength. It's not a "limit break"   It takes skill to execute. If you can't physically pull it off it is worthless, more or less, for you. Also I didn't give a %, just said a high chance. What that means I can determine later.   No...It just makes it easier to learn skills that your oponent has learned. It's not even at the same skill level.   Corruption is a gamble. The higher the risk, the higher the reward. You can use it and it may cause your stats to instantly drop to 1 and make the power boost completely worthless.     It gives "permanent" enchants double the effect. It's not doubling all enchants and not the ones you are using in battle.   Just, no. You are still not understanding. There are not 60 traits in the game. There are 60 traits accessed solely in this 1 ways to make jobs mean something. And what the heck makes you think they can change the stats of others? Tamers can't do that that and Summoner is using just switch Strength for Strength with the summon and it is a temporary thing. If used wisely it is useful but if not the summoner can't make use of it at all.     Unless you think about what "unaware" means and realize that those aren't "limit breaks" like you seem to think     Yes, but also consider that item effects could be weaker than magic effects and therefor this balances out.       25% boost may be too strong, but the limit break in this case is fine as it is a once a week thing. Using it like you seem to be thinking is a waste. If I was in a guild with an entertainer and they used it to make a single attack limit break I'd be upset with them. You can't abuse this trait without a fully prepping and planning very far ahead simply by dint of the speed of leveling.
  2. Baka and Test is not a VRMMO. It's an AR game so faras I saw. There are plenty of these that are decently well designed for what they are. I stated in the first line of the first post and made it tthe title of the topic. That's pretty clear... As far s putting it in the Lounge I might have, but that is not  a link in the main drop down menu and I usually forget the main board is there to and I haven't ever seen the Lounge... also this is about game design, not writing the novel. So it is still in the right place because despite the "what makes a game fun doesn't make a good story" thinking, which I don't find to be true, I intend to try make a realistic design as possible for the situation... ----------------------------------- Also... the character does not get the unique trait of the job unless they raise the job to that point and are 1 of the 2 to reach that point... In other words. When you create your character you put levels in Fighter and Defender and get Attacker and Defender traits... then when you level up, if you level up say, Mender, you're not going to get Blessed. You only get 2 of each set of 12, which totals 10 of 60. at lvl 10,000.   ---------------------------   You think this is powerful?       maybe not level but something else. I like this idea ^.^ just not for the reason you probably like it :P ------------
  3. You seemed to misunderstood a bit... VRMMO is an MMO that uses true VR, not the garbage that is being called VR presently which is just an HMD. True VR does not exist currently and VRMMO is a term the originates from light webnovels which is what I'm planning on writing, which is what I'm asking for, not to actually make an MMO. ------------ The 60 "traits" are unique to their jobs. That's the point of what I explained. These are unique traits that cannot be gotten in any other way. This is part of the problem with not having adequate words and me using notes to relay information here. The ability to Mirror and Clone a trait is referring to any trait that isn't one of these 60 and can be "mirrored" so passive traits cannot be cloned. Without this ability those would rely on special events, skill books, etc. to obtain.
  4. So I'm designing a VRMMO for novel and I want some feedback on some parts of it and perhaps some help with one part... The game have 5 races you can select, 2 sexes, and 12 "jobs". When you create the character you can select race, sex, and 2 jobs. These choices add up to given 60 points (Multiply by 10 for HP/MP/Stamina). The race selection makes up 30 pts. The Sex and 2 jobs add 10pts each adding up to 30pts. Each level these stats go up another 60 pts based on the same factors. You can invest a job level into any job as you increase in level. so that you can have, for example, 2 levels in fighter, 1 in defender, and 1 in sorcerer, or 4 in fighter. Every job can learn every trait and use every weapon, skill, whatever. This makes jobs sorta pointless so I decided that each job gets a unique trait that is gotten by the first 2 jobs you select. The problem with this is that then you might select a job for 1 level and then select something else that you think have better stats. Which is fine, but this makes it so a job might start being used just for that first level trait...So I decided that after significant intervals the first 2 jobs you get to that interval gets you an additional trait... Those interals are levels, 1, 100, 1000, 2000, and 10000. This means you end up with 10 of 60 traits that job leveling matters in. The level intervals are as they are because those are stages of development in the game world where a person goes from a normal person to entering into mythical stature and such. Also the levels are high because of the setting. Normally I wouldn't consider such a high level, but the nature of the game world makes it so that it probably needs to be... --------------------------- now the main thing I'm trying to work out is those traits, if the current ones I have seem balanced or not enough and also I'm having trouble coming up with 60, because they have to go with the job, but can't be a specific skill. So like "cure" or "fireball" are out, but modifiers that make those stronger or act in some special way, but broadly effects things and not just those skills... Here is the list I've got so far:    *trait = skill, feat, ability, technique, power, etc. All those terms fit what I mean by trait. Fighter ===== (generic catch-all like 'Warrior' is for most games) lvl 00001 - Attacker : Every damage dealing trait learned increases the relevant stat according to trait's level. lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Defender ==== (generic tanking class) lvl 00001 - Defender : Every Defensive trait learned increases the relevant stat. lvl 00100 - Immovable : Nullifies forced movements of all types and most stuns don't work. lvl 01000 -  lvl 02000 -  lvl 10000 -    Ranger ====== (A damage dealer that uses ranged weapons like bows and guns, not so much throwing stuff) lvl 00001 - Sniper : Has a high chance to instant kill a target with a head shot. lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Shadow ====== (The idea behind this job is like the Ninja/Warrior class from FFXI. Uses tools to be able to tank through dodging and does moderate damage) lvl 00001 - Shadow : Can learn a trait from mirroring it several times within a given time frame. lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Sorcerer ==== (Black Mage) lvl 00001 - Elemental Affinities are increased by spell traits twice as much as normal. lvl 00100 - Corruption - Power can be increased via sacrifices that mutate physical form and stats. lvl 01000 -  lvl 02000 -  lvl 10000 -    Mender ====== (White Mage, but is healing in general, not completely reliant on magic) lvl 00001 - Blessed - Allows any action to have healing, buffing, and Protecting attributes. lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Enchanter === (Red Mage, but focuses more on actual buffing or weapons/armor than on mana regen) lvl 00001 - Imbue - Permanent Enchantments and Gem making are twice as powerful lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Summoner ==== (Somewhat like the common summoner, but think more in line with using spirits and channeling for different effects) lvl 00001 - Soul Link - Creates a link with a summon that allows the user to trade any single attribute with the linked Summon lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Tamer ======= (Basically uses creatures/pets to fight) lvl 00001 - Loyalty - Control over pets extend to infinity lvl 00100 - Pet - Allows any NPC to be turned into a Pet lvl 01000 -  lvl 02000 -  lvl 10000 -    Rogue ======= (More like an opportunists and rule breaker, than 'a thief'. A crafty business man type or a pirate or a thief.) lvl 00001 - Opportunity - Actions taken when the target is unaware have double the effectiveness. lvl 00100 -  lvl 01000 -  lvl 02000 -  lvl 10000 -    Gadegeteer == (Creates things and uses things to do damage, heal, etc. rather than relying on martial or magical abilities) lvl 00001 - Tool Master - Using Gadgets, Items, and Materials will produce higher quality or quantity results. lvl 00100 - Master Tradesman - Crafting Gadgets, Items, and Materials will produce higher quality or quantity results. lvl 01000 -  lvl 02000 -  lvl 10000 -    Entertainer = (Bards, Singers, Dancers, etc. These characters buff/debuff through non-magical means) lvl 00001 - Inspiration - Produces a 25% natural buff to allies, including self to all actions and stats. lvl 00100 -  lvl 01000 - Divine Inspiration - Once a week user's actions produce results that exceed the limits of those actions normally can attain lvl 02000 -  lvl 10000 -      .... Feedback is much appreciated...Thanks ^.^
  5. Made several changes and so far it looks like it completes almost instantly when set to 1000 pop  EDITED because I changed the DeathProb thing from a loop to a straight calculation and that pretty much eliminated the delay. // Age is based on months, not years Population = 0; PregPop = 0; Months = 0; Years = 0; var Women = new Array(); var Men = new Array(); var DeadWomen = new Array(); var DeadMen = new Array(); var Woman = {ID: 0, Age: 240, SinceLastBirth: 0, Pregnant: false, MonthsPregnant: 0, Dead: false}; var Man = {ID: 0, Age: 240, Soldier: false, Dead: false}; Women.push(Woman); Men.push(Man); do { for(x = 0; x < Women.length; x++) { Women[x].Age++; if(Women[x].Age <= 168) { DeathCheck = Math.random(); if(DeathCheck <= 0.00083) { Women[x].Dead = true; //document.write("Dead before 14 <br />"); } } DeathProb = 0; if(Women[x].Age > 168) { DeathCheck = Math.random(); if(Women[x].Age >= 3024) { DeathProb = 0.02; } else { DeathProb = Women[x].Age * 0.000000661; } if(DeathCheck <= DeathProb) { Women[x].Dead = true; //document.write("Woman Dead <br />"); } } if(!Women[x].Dead) { if(Women[x].Pregnant) { MiscarryCheck = Math.random() if(MiscarryCheck <= 0.036){ Women[x].Pregnant = false; Women[x].MonthsPregnant = 0; PregPop--; //document.write("Miscarry <br />"); } else { Women[x].MonthsPregnant++; //document.write("Pregnancy month added <br />"); } } if(Women[x].MonthsPregnant >= 9) { Sex = Math.floor((Math.random() *2) +1); if(Sex == 2) { Man = {ID: Men.Length + 1, Age: 0, Soldier: false, Dead: false}; Men.push(Man); //document.write("Baby Boy Born<br />"); } else { Woman = {ID: Women.length + 1, Age: 0, SinceLastBirth: 0, Pregnant: false, MonthsPregnant: 0, Dead: false}; Women.push(Woman); //document.write("Baby Girl Born<br />"); } BirthDeathCheck = Math.random(); if(BirthDeathCheck < 0.01) { Women[x].Dead = true; //document.write("Mother died in birth<br />"); } else { //document.write("Mother didn't die in birth <br />"); Women[x].MonthsPregnant = 0; Women[x].SinceLastBirth = 48; } Women[x].Pregnant = false; PregPop--; } if(Women[x].Age >= 168 && Women[x].Age <= 1860 && Women[x].SinceLastBirth <= 0) { PregnantCheck = Math.random(); if(PregnantCheck <= 0.013 && Women[x].Pregnant == false) { Women[x].Pregnant = true; PregPop++; //document.write("Woman got pregnant <br />"); } } if(Women[x].SinceLastBirth > 0 ) { Women[x].SinceLastBirth--; //document.write("Since Last Birth working<br />"); } } else { DeadWomen.push(Women[x]); Women.splice(x,1); } } for(x = 0; x < Men.length; x++) { Men[x].Age++; if(Men[x].Age <= 168) { DeathCheck = Math.random(); if(DeathCheck <= 0.00083) { Men[x].Dead = true; //document.write("Dead before 14 <br />"); } } DeathProb = 0; if(Men[x].Age > 168) { DeathCheck = Math.random(); if(Men[x].Age >= 3024) { DeathProb = 0.02; } else { DeathProb = Men[x].Age * 0.000000661; } if(DeathCheck <= DeathProb) { Men[x].Dead = true; //document.write("Man Dead <br />"); } } if(!Men[x].Dead) { } else { DeadMen.push(Women[x]); Men.splice(x,1); } } m = Months % 12 if(m == 0 && Months != 0) { Years++; Population = Women.length + Men.length; PercWomenPreg = ((PregPop / Women.length) * 100).toFixed(2); document.write(Years + " : " + Population + " | " +PercWomenPreg+ "%<br />"); } Months++; } while(Population < 1001 || Population <= 0); Dead = DeadWomen.length + DeadMen.length; document.write("Dead: " +Dead + " | Pop: " +Population);
  6.   I'll look at the year month thing in a bit, but I tried using    } while((Population < 1001 && i % 12 == 0 )|| Population <= 0);   which didn't work, can that not be done?   The moving people from the population arrays to a dead population array thing... I don't know how to do that. But it doesn't seem like it would save time as the average number when aiming for 1000 pop is around 300.   I don't think continue is a valid js keyword, but I've already got the equive as the second if.   boolean is quicker I think... I guess i'll change that soon.   also... The speed of the script right now seems to be about the same speed as executing this... var scalingExp = .75; for (pop = 0; pop <300001; pop++) { HomeRange = Math.pow(pop, scalingExp).toFixed(1); document.write("Pop: " +pop+ " | Home range size: " +HomeRange+ " square km <br />"); } So 1500-ish running is running about the same speed as 300,000 of these power equations.
  7. Well the vast amount of prints/alerts made it hard to pin down till figured out how to handle that. Once I did it was just stupid minor errors probably because I was up late where I missed the array reference and some stupid stuff like that...   I still need to add in soldiering deaths to what I have but other than that it's finished more or less for the base level of what I want. If anyone can help make it run faster I'd apreciate it, because it struggles on my PC to run through it with fairly low numbers. I would like to be able to get the numbers to higher population numbers, but meh. And i might add in a family tree output, but not till later most likely ^.^.The biggest problem is getting the population statistics right. If I set them just a little higher (and more accurately) the population quickly dies off and then there is the fact that I can't find how exactly to model the death rate per month of a persons life... Oh well... Here's the updated code...   Oh also can't figure out how to make the do while loop to end on a year rather than a month which makes the last "year" lower than the 1000 members in a population number and why I just put a population write after that final loop. There should be a away to fix it but meh.   Also ID is currently useless right now, but if I ever wanted to print out the list of relations it would be used to ID mother/father. // Age is based on months, not years py = 0; Population = 0; PregPop = 0; var Women = new Array(); var Men = new Array(); var Woman = {ID: 0, Age: 240, SinceLastBirth: 0, Pregnant: "no", MonthsPregnant: 0, Dead: "no"}; var Man = {ID: 0, Age: 240, Soldier: "no", Dead: "no"}; Women.push(Woman); Men.push(Man); Population = Population + 2; i = 0; do { //for(i = 0; i < 3601; i++) { for(x = 0; x < Women.length; x++) { if(Women[x].Dead == "no") { Women[x].Age++; if(Women[x].Age <= 168) { DeathCheck = Math.random(); if(DeathCheck <= 0.00083) { Women[x].Dead = "yes"; Population--; //document.write("Dead before 14 <br />"); } } DeathProb = 0; if(Women[x].Age > 168) { DeathCheck = Math.random(); if(Women[x].Age >= 3024) { DeathProb = 0.02; } else { y = 0; while(y < Women[x].Age) { DeathProb = DeathProb + 0.000000661; y++; } } if(DeathCheck <= DeathProb) { Women[x].Dead = "yes"; Population--; //document.write("Woman Dead <br />"); } } if(Women[x].Pregnant == "yes") { MiscarryCheck = Math.random() if(MiscarryCheck <= 0.036){ Women[x].Pregnant = "no"; Women[x].MonthsPregnant = 0; PregPop--; //document.write("Miscarry <br />"); } else { Women[x].MonthsPregnant++; //document.write("Pregnancy month added <br />"); } } if(Women[x].MonthsPregnant >= 9) { Sex = Math.floor((Math.random() *2) +1); if(Sex == 2) { Man = {ID: Men.Length + 1, Age: 0, Soldier: "no", Dead: "no"}; Men.push(Man); //document.write("Baby Boy Born<br />"); } else { Woman = {ID: Women.length + 1, Age: 0, SinceLastBirth: 0, Pregnant: "no", MonthsPregnant: 0, Dead: "no"}; Women.push(Woman); //document.write("Baby Girl Born<br />"); } Population++; BirthDeathCheck = Math.random(); if(BirthDeathCheck < 0.01) { Women[x].Dead = "yes"; Population--; //document.write("Mother died in birth<br />"); } else { //document.write("Mother didn't die in birth <br />"); Women[x].MonthsPregnant = 0; Women[x].SinceLastBirth = 48; } Women[x].Pregnant = "no"; PregPop--; } if(Women[x].Age >= 168 && Women[x].Age <= 1860 && Women[x].SinceLastBirth <= 0) { PregnantCheck = Math.random(); if(PregnantCheck <= 0.013 && Women[x].Pregnant == "no") { Women[x].Pregnant = "yes"; PregPop++; //document.write("Woman got pregnant <br />"); } } if(Women[x].SinceLastBirth > 0 ) { Women[x].SinceLastBirth--; //document.write("Since Last Birth working<br />"); } } } for(x = 0; x < Men.length; x++) { if(Men[x].Dead == "no") { Men[x].Age++; if(Men[x].Age <= 168) { DeathCheck = Math.random(); if(DeathCheck <= 0.00083) { Men[x].Dead = "yes"; Population--; //document.write("Dead before 14 <br />"); } } DeathProb = 0; if(Men[x].Age > 168) { DeathCheck = Math.random(); if(Men[x].Age >= 3024) { DeathProb = 0.02; } else { y = 0; while(y < Men[x].Age) { DeathProb = DeathProb + 0.000000661; y++; } } if(DeathCheck <= DeathProb) { Men[x].Dead = "yes"; Population--; //document.write("Man Dead <br />"); } } } } m = 0; y = 0; for(x = 0; x <= i; x++) { if(m == 12) { y++; m = 0; } m++ } if(y > py) { WPop = 0; for(x = 0; x < Women.length; x++) { if(Women[x].Dead == "no") { WPop++; } } PercWomenPreg = ((PregPop / WPop) * 100).toFixed(2); document.write(y + " : " + Population + " | " +PercWomenPreg+ "%<br />"); py = y; } i++ } while(Population < 1001 || Population <= 0); Dead = 0; for(x = 0; x < Women.length; x++) { if(Women[x].Dead == "yes") { Dead++; } } for(x = 0; x < Men.length; x++) { if(Men[x].Dead == "yes") { Dead++; } } document.write("Dead: " +Dead + " | Pop: " +Population);
  8. Figured it out... still some annoyances I haven't worked out but this particular problem was fixed. Thanks anyways
  9. So i'm having a problem here. The code will go into an infinite loop or seems to break and the population seems to stop growing at a low number. But this only happens sometimes. At the end of every 12 months it's supposed to show the year and population and it's working, but only some of the time. I suppose the inconsistency of the population numbers could just be coincidence, but it doesn't seem like it to me and the infiniteloop or whatever is happening that makes it take a longer time to process than i'm willing to wait points to there being a problem, but I can't see it. //y = year //py = previous year // Age is based on months, not years py = 0; var Women = new Array(); var Men = new Array(); var Woman = {ID: 0, Age: 240, SinceLastBirth: 0, Pregnant: "no", MonthsPregnant: 0, Dead: "no"}; var Man = {ID: 0, Age: 240, Soldier: "no", Dead: "no"}; Women.push(Woman); Men.push(Man); for(i = 0; i < 18001; i++) { for(x = 0; x < Women.length; x++) { Women[x].Age++; } for(x = 0; x < Women.length; x++) { if(Women[x].Age <= 168 && Women[x].Dead == "no") { DeathCheck = Math.random(); if(DeathCheck <= 0.00166) { Women[x].Dead = "yes"; } } } for(x = 0; x < Women.length; x++) { if(Women[x].Pregnant == "yes" && Women[x].Dead == "no") { MiscarryCheck = Math.random() if(MiscarryCheck <= 0.036){ Women[x].Pregnant = "no" Women[x].MonthsPregnant = 0; } else { Women[x].MonthsPregnant++; } } if(Women[x].MonthsPregnant >= 9 && Women[x].Dead == "no") { Sex = Math.floor((Math.random() *2) +1); if(Sex == 2) { Man = {ID: 0, Age: 0, Soldier: "no", Dead: "no"}; Men.push(Man); } else { Woman = {ID: 0, Age: 0, SinceLastBirth: 0, Pregnant: "no", MonthsPregnant: 0, Dead: "no"}; Women.push(Woman); } BirthDeathCheck = Math.random(); if(BirthDeathCheck < 0.01) { Women[x].Dead = "yes"; } else { Women[x].MonthsPregnant = 0; Women[x].SinceLastBirth = 48; } } } for(x = 0; x < Women.length; x++) { if(Women[x].Age >= 168 && Women[x].Age <= 1860 && Women[x].SinceLastBirth <= 0 && Women[x].Dead == "no") { PregnantCheck = Math.random(); if(PregnantCheck <= 0.05 && Women[x].Pregnant == "no") { Women[x].Pregnant = "yes"; } } if(Women.SinceLastBirth > 0 && Women[x].Dead == "no") { Women.SinceLastBirth--; } } m = 0; y = 0; for(x = 0; x <= i; x++) { if(m == 12) { y++; m = 0; } m++ } if(y > py) { Population = 0; for(x = 0; x < Men.length; x++) { if(Men[x].Dead == "no") { Population++ } } for(x = 0; x < Women.length; x++) { if(Women[x].Dead == "no") { Population++ } } document.write(y + " : " + Population + "<br />"); py = y; } }
  10.   Dwarf Fortress is not helpful in resolving my issue and as far as I can tell it does not do what I want or not in the way that i can manipulat it in a way that I want.
  11. Well what I'm trying to do right now is create a set of territories and clan divisions over 10,000 years on a continent with 38 million square kilometers starting with 2 people in the population. At roughly 500 year intervals. The maximum hunter-gatherer size population is 600 million. I don't quite need a history of each person, but a general population of clans, tribes, kingdoms, their land areas, etc   One of the bigger problems is placing settlements though because they rely on resources (about 10 of them) which I am not geologically compitent enough to create a of these resurces to make those maps.   I think the best quickest way to do it is create population grow algorithm and place territory at given intervals (10x10km at ~60km intervals for example) creating new ones as the populaion grows, and just make it so that they aren't placed in pixels that are too white or black.   The data that should be able to create the pop generator is...   if age < 14 chances of dying = 14% if age > 14 & < 150 & Female chance of pregnancy = 5% 33% chance of not carrying to term 1% of women who give birth will die soon after if age > 14 & soldier (25% chance of being one) = 4% per year in general (1 in 100). 4% chance of dying on winning battles (1 in 100), 16% chance of dying in losing battles (4 in 100).  if ~300 99.99% chance of dying that year.   Groups tend to keep to about 300, with a maximum of 1000 members Groups, when they split move 1 to 2 days away.   I'm thinking the loop needs to run monthly rather than yearly... I've a bit to write this in JS, but ran into issues of not getting how its class objects work. Also the data is for the species I'm working with now, not humans, but a great number of it is for humans too..
  12. 1> What do you mean simulate life? Cuz "The Game of Life" while interesting is not what I'm looking for obvious. 2> I was thinking of 1 year intervals. I'd assume you could save the "land owned" and heirarchy of govt in 1 file, and then members of the various governments and their positions in a data base, I can foresee 2 ways of doing this for the people and that is have a database that records each year individually in it's own database or have each database have a position for every year possible which would mean each row would need to have 10,000 columns for just that. It's not really all that important where they are overall, but if it deviates it would change the future movements so it wouldn't make sense going forward.   The two main difficulties I forsee is trying to create resource maps that are realistic and the AI which I've never been all that good with.    And yeah 10k years is a long time ^.^ I predict a billion people at the end only because there was 1 billion people in the early 1900s.   3> I has no money... like literally unfortunately. I want this for a utility but I have no way of paying for it, but if I could, I'm curious how much would you say something like this would cost to have someone make?   4> indeed it is, but more so the trying to get things down accurate and trying to follow rules, get far enough in and then realize you should do it a different way and have to restart ^.^. 
  13. I have a black and white heightmap image where rivers/ocean is black land is progressively whiter as it gets higher (as a heightmap does)   I want to be able to place a population, set it's fecundity rate, it's lifespan, generation length, rate of death of offspring before age of puberty, and death from pregnancy rate.   I then want this program to tell me how this species spreads across the map, divides into clans, and countries.   I want to be able to track a family line from begining to end and their associations.   And I need to do this through about 10,000 years. I would like to be able to track forward or backwards in time without it altering the results as well.   ----------   Is there a program that does this? How hard would this be to do? Would anyone be willing to help me make this?    Having to do these things manually is a real pain and having this would be extremely helpful. Obviously I don't do it to the extent I'm asking for but I'd like as much detail as possible to work with.   The main issues I see with this is the number of instances for the population which to get up to modern times, assuming a full world map would be around a billion at the end of the simulation... of course once it gets to that amount I don't think a billion individuals would be needed...
  14. Thank's Alberth. I'm checking it long form... It looks right so far to me.   edit: Finish checking... It is 100% perfect ^.^. Again. Thanks
  15.   I'm not sure I quite understand or that it works, but I'll try what I think it is in a bit.