0.9.0.Ex (Experimental)

It's work complete, the playtesting forum rides off into the sunset.
User avatar
20 characters!
Posts: 19204
Joined: Thu Dec 26, 2013 12:08 am
Location: North America, the best and worst bit of it.
Contact:

Re: 0.9.0.Ex (Experimental)

Post by 20 characters! » Fri Mar 11, 2016 4:43 am

So this time all I did was to click on a creature inside a fence with the game paused...and the game crashed

NullReferenceException

Object reference not set to an instance of an object.

at SpeciesALRE.UI.UIManager.Compact_Update() in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\UI\UIManager.cs:line 6901
at SpeciesALRE.UI.UIManager.Update(GameMouse gameMouse, KeyboardState kState) in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\UI\UIManager.cs:line 5921
at SpeciesALRE.Game1.Update(GameTime gameTime) in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\Game1.cs:line 518
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.Run()
at SpeciesALRE.Program.Main(String[] args) in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\Program.cs:line 21

Species, Version=0.9.0.385, Culture=neutral, PublicKeyToken=null

Installation Path: C:\Users\Max.P\Desktop\Species 0.9.0 (Prerelease #2)
CultureInfo: English (United States) | Decimal Character: "."
UIView: Compact | SelectionMode: Creature
youtubeuserSara3346
20 characters! wrote:*explodes into a gore shower
combi2 wrote: ... thought that all cows could produce unlimited antibodies,boy am i a retard.
combi2 wrote:you can`t thats not how humans work
Grockstar wrote:Bats it is then. They are the poor man's snake.
ImageImageImage

User avatar
Grockstar124
Posts: 3801
Joined: Sun Jan 18, 2015 12:09 am
Location: The dark places of your mind.

Re: 0.9.0.Ex (Experimental)

Post by Grockstar124 » Sun Mar 13, 2016 9:25 pm

This happened when clicking the Select Target button in the Nursery screen with a target in place.
ArgumentOutOfRangeException

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at SpeciesALRE.UI.UIManager.Paused_Import_Update() in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\UI\UIManager.cs:line 6213
at SpeciesALRE.UI.UIManager.Update(GameMouse gameMouse, KeyboardState kState) in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\UI\UIManager.cs:line 5988
at SpeciesALRE.Game1.Update(GameTime gameTime) in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\Game1.cs:line 518
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.Run()
at SpeciesALRE.Program.Main(String[] args) in C:\Users\Quasar\Documents\Qu's Projects\Species\Source\Species\Program.cs:line 21

Species, Version=0.9.0.385, Culture=neutral, PublicKeyToken=null

Installation Path: D:\Species 0.9.0 (Prerelease #2)
CultureInfo: English (United States) | Decimal Character: "."
UIView: Paused_Import | SelectionMode: Ecosystem
The only other minor bug I found was that whatever tool icon you had selected last, if you quit to the main menu without switching back to the default cursor, it will retain the icon, until you close the game or load a save.

Also, a creature I found in the nursery.
131023734291444311.jpg
131023734291444311.jpg (123.41 KiB) Viewed 2154 times
Note the deep, eyeless sockets that stare into one's soul.
See how the game of life is never won, you only play
Bore him and you will find you're crumpled up and thrown away
Clinging to fate and blaming it when life won't go your way
Such a laugh, HA! Life is just a game!

↑The Game of Life↓

toboR
Posts: 4
Joined: Thu Mar 03, 2016 8:00 pm

Re: 0.9.0.Ex (Experimental)

Post by toboR » Sun Mar 13, 2016 10:06 pm

Slightly late since i was away for a while, i have been asked questions and try to answer:
Quasar wrote:
Genetic potential. It seems to be to low. It does not take long (10x speed that is) to end up with unchangeable creatures, no matter how high any mutating mechanism or survival pressure is set.
Do you mean in the nursery, or in the wild? In the nursery, it is actually advantageous to reduce the mutation rate as you get closer to your target, which allows the nursery to 'home in' on the target somewhat by reducing the amount of random noise (which generally pushes them away from your target).
It was most visible in the nursery, the crature did not change for days. Mutation rate was lowered somewhat as it was not to far from target according to the scale with the blue dots. In the end i did play around with mutation rate and even added radiation manually. No changes. Creatures genom must have turned to nothing but noisy chaos at some point. Almost same can happen in wildlife too, all the species look kinda same at the end, time after time. Guess it could happen irl too at some point in the far future :lol:
Quasar wrote:
Automatic population control. With creature cap set to 1500, apc seems to try to keep creature count between 100-500 while food efficency is around 1.5. Even more strange, disabling apc and reset food efficency to 1 results in sudden explosion of population. How makes that sense? (Less food should not lead to higher population)
Hmm... automatic population control continually modifies food efficiency to correlate with how well the population is doing. Was it at 1.5 when you changed it, or at 1.5 when you started the game?
APC has tuned things to around 1.5. It was often on by accident (looks like it turns itself on when restart after crash?) No clue what the numbers where on start.

User avatar
Quasar
Site Admin
Posts: 1731
Joined: Tue May 29, 2012 2:04 am

Re: 0.9.0.Ex (Experimental)

Post by Quasar » Mon Mar 14, 2016 9:40 pm

Thanks for sending me the saves, toboR. I'm examining them now.

This is interesting. The undecaying corpses are showing their Biomass as NaN (not a number). NaN errors are like a contagion: if a number gets added or multiplied with an NaN, the result will always be NaN, so they can travel quite a distance through the game.

In this case I got lucky: your nursery target was generating the NaN, which made backtracking a lot easier than it would otherwise have been. The original NaN seems to be coming from the creature's body physics, specifically the bit that calculates Torque in the tail and neck (from which it calculates Droop, which is factored into EnergyLoss, which is subtracted from Energy each frame, which is transferred into Biomass upon the creature's death, thus corpses with a Biomass of NaN).

Still looking...

(Edit) Yep, there it is. Looks like it might even be a functional bug in the body physics simulation. Check it out:

Code: Select all

public float function(double x)
{
return (float)(1 - 1 / Math.Exp(x));
}

If (x) in the above snippet is an Extremely Large Negative Number, Math.Exp (that's Eulers number (e) to the power of x) will evaluate to an Extremely Small Number. The
computer can't handle Extremely Small Numbers, so it will round to 0, resulting in a divide by 0: hense the NaN.

The above snippet is used to calculate droop amounts from TorqueForce magnitudes, like so:

Code: Select all

Amount = function(Magnitude / 50000f);

Which is all well and good as long as said magnitudes are positive... but torques can go both clockwise and counterclockwise. Positive and negative. So I need to account for that, which I'm not currently doing.

So that's 1.sav's main problem down. I'm still looking at the other save file: the undecaying corpses in it *might* be the same issue, but it might also be something else. Part of me is tempted to simply cull organisms with NaN errors in their biomass/energy stats, but it's always better to fix these sort of problems at the source.

Natural_20
Posts: 1649
Joined: Mon Jul 14, 2014 5:25 am

Re: 0.9.0.Ex (Experimental)

Post by Natural_20 » Tue Mar 15, 2016 1:14 pm

Quasar wrote: (Edit) Yep, there it is. Looks like it might even be a functional bug in the body physics simulation. Check it out:

Code: Select all

public float function(double x)
{
return (float)(1 - 1 / Math.Exp(x));
}

If (x) in the above snippet is an Extremely Large Negative Number, Math.Exp (that's Eulers number (e) to the power of x) will evaluate to an Extremely Small Number. The
computer can't handle Extremely Small Numbers, so it will round to 0, resulting in a divide by 0: hense the NaN.

The above snippet is used to calculate droop amounts from TorqueForce magnitudes, like so:

Code: Select all

Amount = function(Magnitude / 50000f);

Which is all well and good as long as said magnitudes are positive... but torques can go both clockwise and counterclockwise. Positive and negative. So I need to account for that, which I'm not currently doing.
Could this also contribute to the way creatures evolve? I'm just wondering if a fix here might actually result in more sensible body plans.
Quasar wrote:Dammit, we forgot to sell the psycho drugs and now the chickens are ODing.

User avatar
20 characters!
Posts: 19204
Joined: Thu Dec 26, 2013 12:08 am
Location: North America, the best and worst bit of it.
Contact:

fences and emails.

Post by 20 characters! » Wed Mar 16, 2016 7:13 pm

It is a good thing that I already have quasars email since relocatig it using his forum profile/blog seems quite difficult. that or I am very incompetent, I do not know which is worse as i am currently encountering a bug on one of my crater worlds where i cannot remove fences. :oops: :oops:
youtubeuserSara3346
20 characters! wrote:*explodes into a gore shower
combi2 wrote: ... thought that all cows could produce unlimited antibodies,boy am i a retard.
combi2 wrote:you can`t thats not how humans work
Grockstar wrote:Bats it is then. They are the poor man's snake.
ImageImageImage

User avatar
20 characters!
Posts: 19204
Joined: Thu Dec 26, 2013 12:08 am
Location: North America, the best and worst bit of it.
Contact:

Re: 0.9.0.Ex (Experimental) sorry

Post by 20 characters! » Wed Mar 16, 2016 8:09 pm

So after further testing this bug seems to affect all my worlds after the hot fix. Luckily I can still add and remove environmental condition generators properly.
youtubeuserSara3346
20 characters! wrote:*explodes into a gore shower
combi2 wrote: ... thought that all cows could produce unlimited antibodies,boy am i a retard.
combi2 wrote:you can`t thats not how humans work
Grockstar wrote:Bats it is then. They are the poor man's snake.
ImageImageImage

User avatar
Quasar
Site Admin
Posts: 1731
Joined: Tue May 29, 2012 2:04 am

Re: 0.9.0.Ex (Experimental)

Post by Quasar » Thu Mar 17, 2016 12:01 am

Alright, I should have a new version up in a day or two. I've fixed a few things, but mostly I've been focusing on implementing two supporting systems:

* XML Saving and Loading. Should make our .sav files human-readable and a lot more robust, so they won't break if I so much as breath on them between hotfixes the way they currently do.

... and more importantly:

* Gene Map Distances. This means the game knows the difference between being 6 mutations away from a specific head/limb type or only 2 mutations away. As you can imagine, this makes a *huge* difference in the Nursery: it's now possible to specify the styracosaurus head and actually get the styracosaurus head instead of that bloody muppet-looking thing.

Combined with the selection-pressure checkboxes, this gives you a tremendous amount of control as to what evolves in the nursery. I tried it with a randomly generated creature I'd previously exported and managed to make a near-duplicate out of Primum specium simply by waiting.

I also threw in a slight change to the camera controls: if you move the mouse to the edge of the screen, the game no longer pans if you're over a UI element. This means you won't be accidentally panning when you're aiming for the interaction tools.

And there are bugfixes, of course. The torque issue I discussed above, the game no longer crashes if you stay in the New World screen with Temperature/Fertility set to "Height" for too long, and a few other minor ones. Unfortunately, I suspect I'm going to introduce more bugs than I fix this time around, mainly thanks to the XML stuff.

geckoguy42
Posts: 1251
Joined: Sun Feb 01, 2015 3:07 pm
Location: the year 2016

Re: 0.9.0.Ex (Experimental)

Post by geckoguy42 » Sat Mar 19, 2016 11:18 am

There is water on my nursery... i increased the sea level and my nursery was flooded
Image

THIS MUST BE FIXED
He is the all imortal DRAGONHORSE!
Image

User avatar
Grockstar124
Posts: 3801
Joined: Sun Jan 18, 2015 12:09 am
Location: The dark places of your mind.

Re: 0.9.0.Ex (Experimental)

Post by Grockstar124 » Sat Mar 19, 2016 9:25 pm

2 more bugs:

If creatures are against the nursery fence, the game counts them as wild, and they can breed with creatures on the other side.

Sometimes, if pausing on x10 speed, the creatures and world stop, but the game generates phantom creatures and starts lagging hard.
See how the game of life is never won, you only play
Bore him and you will find you're crumpled up and thrown away
Clinging to fate and blaming it when life won't go your way
Such a laugh, HA! Life is just a game!

↑The Game of Life↓

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest