Jump to content
  • Advertisement

Durakken

Member
  • Content Count

    621
  • Joined

  • Last visited

Everything posted by Durakken

  1. 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 ^.^
  2. Durakken

    VRMMO design for novel

    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.
  3. Durakken

    VRMMO design for novel

    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 ------------
  4. Durakken

    VRMMO design for novel

    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.
  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. 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; } }
  7.   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.
  8. 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);
  9. Figured it out... still some annoyances I haven't worked out but this particular problem was fixed. Thanks anyways
  10. Durakken

    Population Spread Simulator...

      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. 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...
  12. Durakken

    Population Spread Simulator...

    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..
  13. Durakken

    Population Spread Simulator...

    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 ^.^. 
  14. What I need is to generate a series of 6 pairs from a set of 13 numbers that over the course of a cycle of 13 generations do not repeat, but the cycle repeats all pairs in the same order.    Explanation...   I'm trying to create a small algorithm to predict which portal opens to which world during what year. There are 13 worlds Portals open every 500 years Worlds can only open portals to 1 other world at a time Portals open between each other world, before they open to the same world again...   So let's say we're talking world 0...World 0 will open a portal in the following order... 0 to 1 0 to 2 0 to 3 0 to 4 0 to 5 0 to 6 0 to 7 0 to 8 0 to 9 0 to 10 0 to 11 0 to 12 0 to Nowhere repeat   That's simple enough, but I'm completely lost when taking into acount all 13 worlds, when they're linked with each other, and when they're linked to nowhere.   I'm using Javascript with a simple document.write( world opens to world) format to see the output... I would post up what code I have but I'm so lost that it wouldn't help and is only really that so... yeah. Can someone please help.
  15. 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
  16.   I'm not sure I quite understand or that it works, but I'll try what I think it is in a bit.
  17. Consider it like this...   Here are all the possible pairs that can exist in cycle. If they are alone, they go nowhere...   --------------------------- [00] [01, 00] [01] [02, 00] [02, 01] [02] [03, 00] [03, 01] [03, 02] [03] [04, 00] [04, 01] [04, 02] [04, 03] [04] [05, 00] [05, 01] [05, 02] [05, 03] [05, 04] [05] [06, 00] [06, 01] [06, 02] [06, 03] [06, 04] [06, 05] [06] [07, 00] [07, 01] [07, 02] [07, 03] [07, 04] [07, 05] [07, 06] [07] [08, 00] [08, 01] [08, 02] [08, 03] [08, 04] [08, 05] [08, 06] [08, 07] [08] [09, 00] [09, 01] [09, 02] [09, 03] [09, 04] [09, 05] [09, 06] [09, 07] [09, 08] [09] [10, 00] [10, 01] [10, 02] [10, 03] [10, 04] [10, 05] [10, 06] [10, 07] [10, 08] [10, 09] [10] [11, 00] [11, 01] [11, 02] [11, 03] [11, 04] [11, 05] [11, 06] [11, 07] [11, 08] [11, 09] [11, 10] [11] [12, 00] [12, 01] [12, 02] [12, 03] [12, 04] [12, 05] [12, 06] [12, 07] [12, 08] [12, 09] [12, 10] [12, 11] [12] ---------------------   And then there is    Gen 1 Nowhere Slot :  Pair 1 Slot:  Pair 2 Slot:  Pair 3 Slot:  Pair 4 Slot:  Pair 5 Slot:  Pair 6 Slot:    Repeat that for 13 generations.   Each slot of the 13 generations cannot be duplicated in another slot. Each Slot within the generation cannot have a repeat of a number so once [00] is used every pair with "00" in it cannot be used in that generation.   So once it's used you can just take it out of the list.   I'm sure there is a way to brute force it, but that seems like a lot of processing where there should be some way to sort quickly I'd think.
  18. I thought that was clear enough with that, but I guess not...   World 1 and World 2 can only connect to each other, but can't connect to any other World during each point when portals open. The link is bi-directional so World 1 can't connect to World 2 which connects to World 3. In other words there are only 6 links possible during each open portal period.   There are 78 pairs in the cycle and 78 possible unique pairs... These should be divided into 13 sets of 6. (one of the Worlds aren't connected with each configuration and it's a different one with each of the 13 sets.) This all seems to indicate that there is only 1 possible way to do this.   Other than these thing I don't think there is any other restrictions.   --- Yes 1 World will not have a portal in every generation. The world that does not get a portal shifts every generation... and because these are all happening at once the one that does not connect should only repeat when each of the other worlds have not connected... Not connecting can be treated as another world in that regard.   There is no "rule" for selecting. That's part of the problem. I'd like there to be an easy rule or a pattern, but I need each world to connect to every other world is the priority so if I can't find a pattern from those other rules i guess there is no rule.   So you're example doesn't work, because World 12 would not be the one left out twice in the same cycle. ----   Also, the fact that these links all have to be unique by it's very nature, it's easy to make a list for a generation of a few that works, but when you try to make it for all 13 I find it very hard.
  19. So the idea I have is that the monsters in this game will have a genetic code...and have genes the have dominant, co-dominant, and ressesive genes.   The thing is... when I think it through I come to a problem... If everything is deifned by the genes and the genes can, with breeding change, then the different types of monsters are just skins and I'm not so sure that's a good idea.   So I have 4 general sections currently...   Appearance (pretty limited due to me not knowing how to warp meshes yet) Elemental Values Stat Values (Used to calculate a different set of stats) Stat Growth Values   I was thinking that I could possibly have each monster have a different number of gene slots with the ability to gain or lose them when bred. And then also only allow certain "genes" in certain monsters so that you could never get an Ice elemental monster from a Fire one Or something like that.   So any ideas? Comments? thoughts on whether i'm wrong about this being a problem at all?
  20. Durakken

    Pkmn type game monster differentiation

    It's not. It would be possible to have a pitifully weak monster with huge muscles. Maybe possible to have a Charizard with ice elemental attributes. Would be too weird. It's possible to generate monster appearances procedurally based on their genes. It'd be a lot of work, but it's definitely possible. And it could make the game more interesting, and allow you to reduce the actual content required. :)     I'm thinking something like...   There will be at least 1 slot for each gene, but then have the possibility that there could be more slots for each individual stat... Then each gene will also have various modifiers to various other aspects... like the HPslotGene might have a small STR modifier. And thene each slot has mother and father side.   --------------------   The as faras procedurally generating appearance. You know of any good tutorials on how to do it?
  21.   In one of his QuakeCon keynotes, John Carmack said something along the lines of: "Just because you have the best chisel in the world, that doesn't make you a sculptor".   A lot of people think "I've got all these awesome ideas for images, now if only I knew how to draw!", but there's a problem with that. If tomorrow, everyone on earth was magically able to effortlessly produce on paper the images they had in their minds, the people who had trained to do that would still make better images, since they've come to understand what makes an image good, rather than just having a good idea.   I'd summarize it like this: There's a craft to the art, but there's also an art to the craft. You simply cannot have one without the other.     True. Everyone can speak, but not everyone is good at giving speaches. Regardless, that doesn't mean that we shoudn't be trying to give everyone the ability to speak if for some reason not everyone could.
  22. Ideally, the world of art should be available to as many people as possible with as few technical impediments as possible. Until all impediments have been removed there is a way to improve engines, if not presently, then in the future.   That is to say that "artists", animators, programmers, musicians, actors, voice actors, and writers should be made as obsolete as possible. Until anyone can imagine a world and/or story within that world and have it come to life with a mere thought, then there is much more work to do on engines and the tools we use to express ourselves on the various canvases.   The goal of writing a book is not the words on the page but that the message is transmitted faithfully from author to reader and the same is true of every other medium. We are impeded by the fact we do not have tools to make these mediums available to everyone. To make these tools should always be the end goal of tool makers.   As to specific technologies and ideas that could be improved upon is perhaps a dynamic interpretive model creator and animator which would take input from the person and interpret it into what is desired...  Adaptive AI constrained to certain knowledge and personality settings... Procedural music generation... Voice Synthesis technologies... Common Spoken Word conversion to computer languages...  True procedural world generation and localized predictive procedural generation of language, animals, civilizations, etc   No offense to you guys, but skimming what you guys have said, kinda not evolutionary or revolutionary to engines. All you are talking about is faster CPUs in reality as that is all most of that is. It's not that we don't know how to do it, but that we don't have enough power in the average PC to do it at the level we'd like to do it. It's either a new trick or more power, but that's nothing but a bigger hammer, not a better hammer. True, sometimes a bigger hammer is a better hammer, but when I think of making a better tool it's not very impressive to say make it sharper, make it bigger, make it harder. Those aren't new grounds in technology. They may result from new grounds in other technologies, but they, in themselves, are not new technology. So when someone asks me questions like this, I think what is the goal of the tool and what would make getting to that goal possible for as many people as possible.
  23. I'm trying to figure out the best way to do it, at least in terms of unity's logic without having a lot of redundancy in any place.   Again you seem to be saying that...   Player Monster prefab -> mesh 1 -> mesh 2   Enemy Monster prefab -> mesh 1 -> mesh 2   is the right way to go rather than...   Monster Meshes prefab -> mesh 1 -> mesh 2   Player Monster prefab -> Monster Mesh select from Monster Meshes prefab   Enemy Monster prefab -> Monster Mesh select from Monster Meshes prefab
  24. Again, back with the pkmn-esque clone game...   Again before starting I'm using Unity and C#... Here's the problem I'm having now... Not really a problem so much as how should I go about doing this...   Like Pkmn I want to have 6 slots of monsters that I can select from... hit a button and have that monster come out and I have control of them.   Unity uses the code "Instantiate(Monster, Position, Rotation);" to create a prefab of "Monster"   Now I have however many Monster types and I need to keep track of each instance of a Monster as well obviously.   The problem I'm having is how to handle spawning those individual types? Where to put the Meshes, etc.     My thought is that I need to have some sort of object that has all the meshes attached to it that I call on from the Monster instantiation. It seems wrong to put it on the prefab of the monster prefab as that would make all the meshes load and unload upon creation/destruction. I suppose telling which is selected can be passed from a separate script, but it seems wrong to do this...    Am I thinking in the write direction? Do you guys know? Am I just thinking its wrong cuz I'm still not used to this more Object Oriented programming style?
  25. Thanks for the help here, but I'm implimenting a different system so this is now moot. Either way, A learning experience was had.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!