Designing a real-time system for growing plant organisms in Unity 3D game engine. The whole life cycle of the plant from the seed level to full growth level shall be shown. Moreover, the growth shown will be in sync with the day and night cycle. Different Plant types covered are basic tree, creeper plants, vines, under water plants, etc. Moreover study on simple Radiosity algorithm is also made. Small game or scenes in Unity3D are used to demonstrate the growth of such organisms.
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Biological organism simulation using procedural growth "Organimo 1.0"
1. BIOLOGICAL ORGANISM
SIMULATION USING
PROCEDURAL GROWTH
“ORGANIMO1.0”
Submitted By: Supervisor:
Shivank Gupta (10103607) Prof. Sanjay Goel
Devyani Singh (10104688)
Jaypee Institute of Information Technology
2. INTRODUCTION
The video game industry is the economic sector involved with the
development, marketing and sales of video games.
Organimo is all about mixing education and biology with gaming.it is a
collection of game objects which would virtually simulate like different
biological components and can be used in different game scenarios.it can be
used to introduce a new kind of genre in video game industry.
Gaming industry has seen the vast usage of mechanics and physics in different
genres. Soon biology will be required to develop more complex games. Our
project is a start to such a genre in which developer can use our game objects
to develop a gameplay based on simulating biological aspects of life.
We will make use of Unity 3D game engine to develop our game.
3. PROBLEM STATEMENT
Design a real-time system for growing plant organisms in Unity 3D game
engine. The whole life cycle of the plant from the seed level to full growth
level shall be shown. Moreover, the growth shown will be in sync with the
day and night cycle. Different Plant types covered are basic tree,
creeper plants, vines, under water plants, etc. Moreover study on simple
Radiosity algorithm is also made. Small game or scenes in Unity3D are
used to demonstrate the growth of such organisms.
4. NOVELTY/BENEFITS
Procedural Growth brings these advantages-
The game variation is in relation to real world, where unique objects exist.
The computer can do the work (possibly during play).
The object can have huge variation, much larger than any manually
designed game objects could possibly be.
The world (or at least parts of it) can be regenerated for each game,
potentially increasing replay value, since the player will always have
something new to discover.
User-generated content. General users of games don’t have the time or
skill it takes to produce modern game-quality content, but if a procedural
system is built to take only a few intuitive inputs, it becomes quick and
easy to use by anyone.
Programmer-generated content. If you’re a lone programmer making a
game, or if you can’t afford enough artists to build the scale of game
you’re making, why not generate content using functions that can
generate unlimited content from simple inputs such as random seeds?
5. Games can be used to an advantage of:
Educating children and increasing their learning many folds.
Games encourage active learning, interaction between multiple
people, encourages team-work, and also provide a free
environment that allows for skill enhancement.
A life simulation game :
Can revolve around "individuals and relationships, or it could be a
simulation of an ecosystem in which the player lives or controls one
or more virtual life forms.
About "maintaining and growing a manageable population of
organisms", where players are given the power to control the lives of
autonomous creatures or people.
Artificial life games are related to computer science research in
artificial life. But "because they're intended for entertainment rather
than research, commercial A-life games implement only a subset of
what A-life research investigates."
6. DESCRIPTION OF PROJECT
Product Perspective:
The objective of this project is to create a tool/library for unity
developers which will help them to simulate biological plant organism
kind of behavior. This tool is not independent. It is dependent on Unity
3D platform to run. It is self-sustained.
System Interface: Cross platform they can be used to develop
games on ios android windows xbox or wii.
User Interface: The UI consists of the Unity game play screen. The
screen displays the stage opened. This screen can change
according to scenes provided.
Hardware Interface: Can be web based or system based. It is
hosted by Unity3D.
Communication Interface (I/O devices):
Input: Keyboard and mouse.
Output: Screen. Everything saved in the computer memory.
7. Software Interface: Windows or mac operating system would be able to
run the tools. Developed mobile application can run on android or ios.
Memory: The size of the memory depends on the size of the game objects
or material imported in the project.
Operations: The application requires elementary operation of input and
output.
Site adaption: No additional site adaptation is required as it is a stand-
alone application.
Product functions:
Creating different varieties/types of plant organisms by procedural growth
method.
Creating a tool so that these can be easily used in Unity 3D.
Creating an interactive UI to showcase the different plant models.
Can be used as means of educating children. It can form a part of
education based games and help in providing learning via fun methods.
8. User characteristics:
Education wise: Users should have basic knowledge of Unity3D.
No pre-experience is required. Only knowledge of Unity3D software
is required.
Technical expertise wise basic handling of keyboard and mouse
may be required.
Apportioning of requirements:
Radiosity algorithm incorporated in the tool for all plant models. Just
now used only for simple tree.
More different varieties of plant organisms may be included in the
tool.
9. FUNCTIONAL REQUIREMENTS
Define the fundamental actions that must take place in the software in
accepting and processing the inputs and in processing and generating
the outputs.
Game objects can be imported in main project.
Objects can be transformed, able to change its local rotation local
position.
Objects should have physics components like rigid body box collider.
If player is in front of the object it is triggered and start growing.
If player reaches on the end point game is over.
Player is not able to cross grown object.
Other objects showcase attributes according to their types. Like creeper
plant climbs up the wall and under water plant grows inside the water.
Radiance algorithm is used. Object grows faster where it is closest to the
light source.
10. NON-FUNCTIONAL REQUIREMENTS
Type of Non-Functional
requirement
Explanation Status
1. Product requirements
Efficiency Specifies how well the software
utilizes scarce resources: CPU
cycles, disk space, memory,
bandwidth, etc.
Much utilization of
resources are not
needed. A dual core
processor (or above)
should be sufficient.
Portability Portability specifies the ease with
which the software can be
installed on all necessary
platforms, and the platforms on
which it is expected to run.
Being a multiplayer
game, it should be
portable enough so that
it can be installed on
any system.
11. Usability Ease-of-use requirements address the
factors that constitute the capacity of
the software to be understood, learned,
and used by its intended users.
The software designing
should be done for lame
user and learning time need
not to be calculated.
Performance The performance constraints specify the
timing characteristics of the software i.e.
response time and processing time.
Response time should be 30-
40 seconds. The time to
process should be 4-5
minutes.
2. External requirements
Privacy The privacy of the user is the most
important priority. The private information
of one user should not be accessed to
others.
Our software does not
indulge in private
information of the user.
Hence, it is not required.
Safety System use shall not cause any harm to
human users.
Its not required since
system involved is merely
a processor.
Security System should be securable enough so that
user cannot hack or harm the system.
Login facility is sufficient as
security.
12. IMPLEMENTATION ISSUES AND DETAILS
Implementation Issues:
Some issues related to Graphic card.
Orientation of Game Objects.
Interaction with different Game Objects.
Real time incorporation issue.
Heavy computing brings load on laptop/computer.
Algorithms used in following Modules:
a.) Scenes:
Dungeon Maze scene:
Description: An interactive scene is created depicting a
dungeon maze. The scene environment is lighted with flames
placed at regular distance on the dungeon walls. The skybox
used is of a night time to add to the eerie effect. God of war
sound track is added to the background.
Algorithm: Procedural Growth using L-System, Golden Ratio
13. Under Water scene:
Description: In this scene, a small pond/lake type structure is
added in middle of small and medium sized hills. The player is
given a platform to jump inside the lake. The bubble effect of the
player inside the lake is added to give authenticity to the game.
The underwater effect is given by adding fog and many daylight
water game objects. The skybox added is sunny day light. A
soundtrack is added at the background to enhance the effects
of the scene.
Algorithm: Procedural Growth using L-System, Golden Ratio
Creeper plant scene:
Description: This scene is a simple one. To depict the climbing
properties of the creeper plant we are adding a wall i.e. a cube
with brick material texture on it.
Algorithm: Procedural Growth using L-System, Golden Ratio
Vine plant scene:
Description: In this scene a vine is shown. The vine grows on
starting the scene. It is a simple scene only used to show the
growth of vine plant.
Algorithm: Procedural Growth using L-System, Golden Ratio
14. Radiosity Algorithm scene:
Description: In this scene a basic tree and a light source like sun is shown.
The tree’s branches grows faster when the intensity of light falling on that
tree branch is more.
Algorithm: Growth using Radiance Algorithm, Golden Ratio
b.) Game objects:
Basic Procedural tree: This is the procedural growth of the tree on
the surface.
Underwater Procedural tree: This is procedural growth of the tree
underwater.
Creeper plant: This is the creeper plant.
Vine plant: This is the vine plant.
Sun: This is the light source.
Tree: This is the tree on which radiosity is applied.
15. Scripts:
Procedural growth script: Applied to the Basic procedural tree in the
dungeon maze scene.
Underwater Effects script: Applied to Underwater Procedural tree in
the Under Water scene.
Creeper script: Applied to Creeper plant in the creeper plant scene.
Vine script: Applied to Vine plant in the vine plant scene.
Sun script: Applied to the sun (light source) in the Radiance
algorithm scene.
Game Time1 script: Applied to sun (light source) and scene in the
Radiance Algorithm scene.
Growth script: Applied to the tree in the radiance algorithm scene.
16. RISK ANALYSIS AND MITIGATION PLAN
Risk
ID
Class Class
Descriptio
n of Risk
Risk Area Probability Impact RE Mitigation Mitigation
Plan
Contingenc
y plan
Risk
Avoidance
Activity
1 Product Product
Time
constraint
issue
Reliability Medium
(3)
High
(5)
15 Y By
applying
more
reliable
algorithms
.
Fast PC
and by
applying
more
reliable
algorithms.
Use small
and
efficient
codes.
2 Program Input
devices
Issue
Hardware High (5) High
(5)
25 Y By
checking
of all the
input
devices
Keeping
space input
devices
Checking
before
hand
17. Risk
ID
Class Class
Descriptio
n of Risk
Risk Area Probability Impact RE Mitigation Mitigation
Plan
Contingenc
y plan
Risk
Avoidance
Activity
3 System Exceptional
halt of the
program.
Hardware Medium
(3)
High
(5)
15 N NA High speed
GPU
Use testing
to time
and keep
record of
breakpoint
s
4 Program Different
versions of
software
Human
factor
High (5) Medium
(3)
15 Y Develop
UIs for
other
platforms
NA NA Issue
special
instructions
5 Program Code Error Maintain-
ability
Low (1) High
(5)
5 N NA Go through
code or use
testing
software.
Use testing
to time
and keep
record of
breakpoint
s
18. TESTING
Testing plan
Type of Test Will it be performed? EXPLANATIONS Software
Component
Requirement
Testing
Yes
Yes Requirement testing is
testing the requirements
whether they are feasible
or not. Because a project
depends on a number of
factors like time, resources
etc. Before we start
working on a project it’s
important to test these
requirements.
Manual work, need to
plan out all the software
requirements, time
needed to develop,
technology to be used
etc.
19. Type of Test Will it be performed? EXPLANATIONS Software
Component
Unit Yes
Testing by which individual
units of source code are
tested to determine if they
are fit for use.
All major codes like
creating procedural
primitives etc. and Libraries
involved like openGL etc.
Integration Yes
Testing wherein individual
Algorithm modules are
combined and tested as a
group.
Compiling various codes
and testing them as one
single code.
Performance Yes
Testing to evaluate the
input where the best and
most optimal output is
yielded by the system.
Works best for simple
procedural growth tress
with no. of generations less
than 30.
Stress Yes
Testing beyond normal
operational capacity.
Complex meshes such as
sphere with more than 100
vertices.
Security Yes
Testing to determine that a
system protects data and
maintains functionality as
intended.
Keeping the project
password protected to
ensure network security.
20. Test Environment:
Software Items:
Unity3d-Cross platform game engine
MonoDevelop- Open source integrated development
environment.
Operating System(Windows 7 ultimate)
Hardware Items:
The only hardware is computer systems which will act as server,
data center and front end for user.
PC 1.6 Ghz or higher.
512 Mb Ram or higher.
5 GB disc Space or higher.
Internet Access.
Operating System - Win98 or higher
Test team Members: Shivank Gupta , Devyani Singh
Technique for testing: Black Box testing and White Box testing
21. Findings
L system: An L-system or Lindenmayer system is a parallel rewriting
system and a type of formal grammar.
Space Colonization: The cornerstone of the proposed method is the
space colonization algorithm which treats competition for space as
the key factor determining the branching structure of trees.
Golden Ration: In mathematics, two quantities are in the golden ratio
if their ratio is the same as the ratio of their sum to the larger of the two
quantities, i.e. their maximum.
Radiosity: Radiosity is a global illumination algorithm used in 3D
computer graphics rendering. Radiosity is an application of the finite
element method to solving the rendering equation for scenes with
surfaces that reflect light diffusely.
22. Conclusion
We design a real-time system for growing plant organisms in Unity 3D
game engine. The whole life cycle of the plant from the seed level to full
growth level shall be shown. Moreover, the growth shown will be in sync
with the day and night cycle. The growth shall be maximum during the
day and minimum during the night. All the data of the plants thus
gathered can be later used for other kinds of plant organisms.