Suggested NPC (GCI Task) - Suraj Datta

#1
Formally Describe the Behavior/AI of a Python
A normal Python has been considered as NPC for this game.


Physical characteristics


The Python considered in the game grows naturally from its earlier age to matured age. The size of the Python can increase up to 30 feet [9 meters] in length. Regardless of length, pythons are bulky for their size. They have triangular-shaped heads and sharp, backward-curving teeth that they use to grab prey. Pythons have thermally receptive pits located near their mouth. The pits detect the infrared energy emitted by predators or prey and then relay this information to the brain, where the image is superimposed over the image produced by their eyes. This allows pythons to "see" warm objects, even in complete darkness.


Natural Behaviour


Default: Because of their bulk, pythons move by scooting forward in a straight line. This is called “rectilinear progression” movement. Pythons stiffen their ribs for support against the ground then lift their bellies and push themselves forward. It is a slow form of movement and pythons can’t go more than 1 mph (1.6 kph). Considering a block is 1 cubic meter a Python would take 2 seconds to travel a block.

Sleeping: Python does not possess eyelids. Despite their not having eyelids, they can sleep just fine. Python's brains are in charge of their sleep when they decide to turn in, they don't have to initiate the process by shutting their eyes. Since it is difficult to figure out whether or not a Python is sleeping by looking at his eyelids, one instead can look at him for any signs of motion. If a Python is totally still, there's a good chance he's catching up on some periods of sleep. On the other hand, he could just be in relaxation mode. Never get close to a Python out in the wild. The Python should be switching from the sleeping mode and relaxing mode, it has been discussed below.

In water: Python are excellent swimmers and love to stay in the water, it often submerges itself near the banks of a stream and waits for prey. it Considering a block is 1 cubic meter, it should move 1 second of each block in water.

In tree: They hang from branches with their prehensile tails. Pythons sometimes launch themselves from branches onto prey below. This could cause serious injury to the Python. Rather, they lie still on a branch and wriggle their tails to lure in their prey. They strike while still in the tree. In this case, if the Python is above 10 block sea level, it is going to die when it falls and 5 blocks above it will lose its half-life and so on.

Prey: When young, prey on small rodents and birds. As they grow to adult size, they prey on larger animals, including small antelope, warthogs, dogs, monkeys, waterfowl, goats and crocodiles. The larger the meal, the longer it takes to digest. This means that a Python may only need to eat 4-5 times a year.

Eating: They use rear-pointing teeth to seize prey and then wrap their body around it, killing by constriction. Pythons do not use their strength to break their prey’s bones. Pythons suffocate their prey, squeezing the prey’s ribs so that it cannot breathe. When the prey is dead, pythons slowly open their jaws and swallow the prey whole, head first. Once the meal is consumed, pythons rest in a warm place while they digest.


Situational Behaviour


Predator: The likely predators of pythons are alligators, American crocodiles, black bears, and cougars. Hatchlings are also likely vulnerable to hawks, Golden Eagles, raccoons, and bobcats.
Adult pythons have a limited number of natural enemies because of their size, and their defensive abilities. However, smaller pythons have many enemies including lizards, crocodiles, large birds, and other large predatory animals.

Baby pythons should be active from a maximum of 5 blocks or distance these include lizards, crocodiles, large birds…. Etc
Adult pythons should be active from maximum 10 to 11 blocks when they are fully awake. (in special cases due to their visibility in dark, they might even sense the enemy from 20 blocks far). Adult pythons should randomly switch between relax mode and sleeping mode if they are not attacked for at least 5 to 10 min. this way it is going to be difficult for the player to identify its status.


Winter: They don't hibernate in the winter unlike other many snakes; they brumate, which is like a semi-hibernation. If it's a cold day, they'll go to sleep, if the temperature is below 0 Degree Celsius they will switch to brumate. But in the middle of winter, if the sun comes out (more than 10 Degree Celsius), they'll come out and take advantage of it. It is encouraged people to use daily temperatures, not the seasons, to predict how active Python will be. Python cannot regulate their body temperatures and are subsequently drawn to external heat sources. They'll go anywhere there's heat. This will usually happen between the temperature ranging from 20 – 50 Degree Celsius Will often be around compost heaps because compost heaps are warm and attract rats and mice, which are their diet. Pythons tend to live in roofs and near heaters during winter.

Summer: Typically, pythons have high body temperatures, and often in the hot region, the main challenge for pythons is to keep cool rather than to warm up. Also, the body temperature in pythons is often above air temperature due to the active occupations and search for microhabitats, where the temperature is higher. Most studies on thermoregulation among reptiles have been done on lizards in deserts, where body temperature regulation may be more of an issue than with pythons. In fact, pythons probably don't spend much time thermoregulating at all as a tolerable body temperature may be achievable through thermoconformity, the same as no thermoregulation at all. In summer their actions will be slower due to regulating their temperature. Which may be a good opportunity for the player to hunt python.

Rain: The rain brings Python out. They are chasing the frogs. Pythons did stay with their eggs but sometimes left their eggs after they had been laid, similar to red-bellied blacks who had live young. If a python protecting its eggs, finds a frog with 2 or 3 blocks it will be activated and move slowly towards the frog and eat it when 1 block near. Or if the python senses someone/something attacking its eggs, Python will move back to its defensive position. If the Python is just roaming around, it will sense frogs from maximum 10 block away and will activate and move swiftly, the Python will eat it after it reaches 2 blocks (because of inertia)

Egg Laying: Females delay reproduction until they have enough energy to breed a large clutch of eggs. Therefore, in periods with plenty of food, pythons can reproduce in vast numbers. This process should be activated once they have reached their maximum energy. Python provides parental care to their eggs. The females will make nests of vegetation and soil or use old burrows. After the eggs are laid, the female will coil around them to protect the eggs and to keep them warm. If the temperature in the nest begins to decrease the female will contract her muscles to warm eggs. This is known as shivering thermogenesis. Females typically do not feed during this time and may only leave the nest to bask. After the eggs hatch, the female does not care for the hatchling Pythons.

Attacking human: Attacks on humans are rare, but Python has been responsible for several human fatalities, in both the wild and captivity. Considering the known maximum prey size, it is technically possible for a full-grown Python to open its jaws wide enough to swallow a human (this is only going to be activated in rare conditions), but the width of the shoulders of some adult human would probably pose a problem for even a Python with sufficient size. They are among the few Pythons that have been suggested to prey on humans there have been reports of the large reticulated Python attacking humans.
When human is holding a Python, it likely sees as a very odd tree and does not recognize as a human being. Pythons react by instinct rather than thought, and as long as this is kept in mind, being around Pythons is very easy to do as well as being interesting.
Python will generally not attack humans unless startled or provoked, although females protecting their eggs can be aggressive. Normal Pythons should get activated when a human is 1 or 2 blocks close or trying to jump on it. The python will either poison the player or run away. In case of female Python, they will get activated when it is 5 or 4 blocks close, and of course, they will attack and not run away. This whole thing also depends on the player size, if smaller than the Python then no harm unless it is Python’s food else that above will apply.

Human Smell: if you smell like food. If you have recently handled a warm-blooded animal, such as mice, guinea pigs, even cats, the Python may smell that on you and mistake you for something edible.
Python’s smelling sense should be activated at least from 15 blocks far.

Reaching down towards Python: If the Python feels you are a predator that is trying to harm it. Especially when reaching down towards a Python, the Python can misinterpret you as something trying to eat it. Python will sense this from 1 to 2 blocks near.

Frightened: The most likely reason Python attack, is simply because they are afraid. When given the choice between biting a human (the 5-6 foot tall giant that just stepped into its territory) or running away as fast as it can, it will choose running away every time. If the Python, however, feels cornered, or for whatever reason unable to hide, it will strike out at a human, more as a warning to leave it alone than to actually do any damage. Pythons will bite if the human is steady and trying to harass it. Else it will run away. All of this is going to happen between 3 – 5 blocks distance.


References:


[1] https://www.livescience.com/53785-python-facts.html
[2] http://www.kidzone.ws/lw/snakes/facts-python.htm
[3] https://www.cuteness.com/article/characteristics-python-snake
[4] https://www.northernstar.com.au/news/reptiles-still-active-in-winter-lismore/1425920/
[5] https://www.oregonzoo.org/discover/animals/african-rock-python
[6] https://www.oregonzoo.org/discover/animals/burmese-python
[7] https://www.thechronicle.com.au/news/rainy-weather-will-bring-out-snakes/2888940/
[8] http://www.petsource.org/pet-reptile-behavior/5422-cat-reptile-behavior.html
[9] https://en.wikipedia.org/wiki/Pythonidae
[10] https://en.wikipedia.org/wiki/Reticulated_python
[11] https://www.quora.com/Snakes-Does-the-Burmese-Python-have-any-natural-predators-anywhere
[12] http://www.pythonsnake.org/
[13] http://animals.mom.me/snakes-sleep-eyelids-8321.html
 
Last edited: