You are on page 1of 10

OBJECTP Release Date : February 4, 2015

Machine Problem Due Date for Phase 1 : March 2, 2015


Due Date for Phase 2 : April 13, 2015

HARVEST MOON LITE

GAME DESCRIPTION

Harvest Moon is a farm simulation video game series created by Yasuhiro Wada. The main objective of the game is to
manage a farm and make it productive by planting crops and raising livestock. The first game in the series was released
for the Super Nintendo way back in 1996, and to date there have been more than 15 games in the series, not counting
the spinoffs. Its unique concept and gameplay made it a worldwide success, having sold more than one million copies
as of September 2011.

For this project, your task is to re-create a small part of the original Harvest Moon game. In this project, you are to
focus only on the farming aspect (planting and harvesting crops). Note that some parts of the actual game have been
slightly modified to suit the needs of this project.

In general, your game should cover the following features:

1. A store where the player can buy seeds for your farm.
2. A field where the player can plant seeds and harvest crops.
3. A day system that has randomly generated weather.
4. An inventory that allows the player to equip and use different kinds of tools.

DAY AND WEATHER

The game starts at Day 1, Sunday. For this project, the day will advance only after the player sleeps. The player may
choose to go inside his house and sleep at any point in the day. For this project we would not be dealing with seasons,
so there is no need to label the days by the season (in the actual game it goes from Spring 1, Spring 2, and so on up to
Spring 30, then it moves to Summer 1, Summer 2, and so on). In this project, after Day 30 the game will simply move
on to Day 31, Day 32, and so on endlessly.

Each day has a designated weather. For this project, we will only consider two types of weather: Sunny, Rainy or Storm.
The weather for each day is randomly generated (80% sunny, 15% rainy, and 5% storm) and the weather will remain
the same throughout each day. The player can watch the television inside his house to see a weather forecast for
tomorrow. The weather forecast is always correct.

Sunny is the normal weather and will have no effect whatsoever on the field. During rainy days, all tilled spaces are
considered automatically watered. Thus, you dont have to water your crops during rainy days. During a storm, you

Page 1
cannot go out of the house. The day is automatically skipped (but you still have to pay your rent). Furthermore, each
element on the field (including planted seeds and crops) has a 10% chance of being destroyed.

FIELD

The field is a two dimensional grid representing your farm. For this project, it must be at least 10 rows and 20 columns
in size, but you can make it larger if you wish. At the start of the game, the field is generated with natural field elements
(weeds, rocks, boulders, and tree stumps) randomly scattered. At the start of each new day, more of these natural field
elements may appear randomly across the untilled spaces of the field.

Following is a table containing the natural field elements:

Element Size

Weed 1x1

Rock 1x1

Boulder 2x2

Tree
2x2
Stump

Following is an example of a part of a randomly generated field:

The player the natural field elements with the use of tools (see Tools section below). Once cleared, the player can use
a hoe to till the field. Tilled field spaces mean that they are ready for planting seeds. There should be a visual indicator
that a field space is tilled. An example is shown below.

Page 2
Field Space

Untilled

Tilled

Note that natural field elements cannot spawn on tilled spaces at the beginning of each day. Tilled field spaces can be
transformed back into their untilled counterparts by using a hammer (see Tools section below). However, tilled field
spaces with seeds planted on them cannot be transformed back until the crop is removed. At the top of the field, there
is a small pond where you can fill you watering can with water (see Tools section below).

TOOLS AND STAMINA

The player has tools which he can use to do farm chores. All of the tools are available to him at the start of the game,
except for the axe, which he has to buy in the store (see Store section below). The following table shows all the tools
in the game:

Tool Use Remarks

Hoe Till the field.

Watering Before you can use it, you have to fill it with water. A filled
Watering planted crops.
Can watering can has 10 uses.

Clear rocks and boulders. Un-till


Hammer A rock takes 1 hit to break. A boulder takes 6 hits to break.
the field.

Axe Clear tree stumps. A tree stump takes 6 hits to break.

Sickle Cut weeds and planted crops.

Using a tool decreases your stamina by one. The player always starts with 25 stamina, and this resets every time you
sleep. If the player has zero stamina, then he will be unable to use any tools (although he is still able to harvest). You
can regain stamina within the day by eating harvested crops. However, your stamina cannot exceed the maximum
stamina. You can increase your maximum stamina by purchasing Vitamins from the Store (see Store section below).
Vitamins will increase your maximum stamina by 10.

CROPS

Crop seeds have a set price at the store, and each crop also has a set selling price when you sell them. There are two
kinds of crops, single-harvest crops and multiple-harvest crops.
Page 3
Single harvest crops mean that once you harvest them, they wont regrow anymore. Each type of single-harvest crop
has a set number of days to grow. For example, a turnip takes 4 days to grow. This means that if the seed was planted
on Day 2, and it has been watered at least once each day (including Day 2), then you must be able to harvest the Turnip
by Day 6. Once you do this, the field turns back to normal (untilled), and you wont be harvest more Turnips.

Multiple harvest crops, on the other hand, can bear fruit again after harvest. Each type of multiple-harvest crop has a
set number of days to grow, a set number of days to bear fruit again, and a set number of harvests. For example, a
tomato takes 6 days to grow, 3 days to re-bear fruit, and a total of 2 harvests. This means that if the seed was planted
on Day 2, and it has been watered at least once each day (including Day 2), then the player must be able to harvest the
tomato by Day 6. Assuming it is still watered daily, youll be able to harvest the tomato again by Day 9, after which you
wont be able to harvest more. Unlike single harvest crops which automatically return the field to its un-tilled state
after harvest, multiple harvest crops wither after the set number of harvests has been consumed, and must be cut with
the sickle before you can use the field space again.

Note that if a crop does not get watered on a day (either by watering can or by rain), it does not count in the number
of days for the crop to grow or re-bear fruit.

GROWING CROPS AND SHIPPING

Before growing crops, the player would first have to clear the field. Rocks and boulders can be destroyed by using a
hammer. Tree stumps can be chopped by using an axe, and weeds can be cut using the sickle. For this project, the
player cannot remove weeds by just picking them up, like in the actual game.

To grow crops, the player first has to till the field. Once a field has been tilled, the player can plant the seeds on tilled
soil. After a seed has been planted, the player can use the watering can to water it. If it is raining, all crops are
considered watered whether or not the player waters it with the watering can.

Each seed type has a set number of days before it bears fruit (see Crops section). If the crop does not get watered on
a certain day, it does not count in the number of days for the crop to grow or re-bear fruit. At different stages of the
growth process, there should be some form of indication that the crop is growing (you may change the sprite from a
seed, to a small plant, to a fully-grown plant, etc.)

These are sample images that may help you visualize better the growth process of a crop:

Normal Tilled Field Planted Watered Crop (as it Watered Harvested


Field Seed Seed is growing) Crop (as it Potato
is growing)

A harvested crop can either be eaten or sold. In order to sell a crop, the player has to drop it in the shipping bin, located
at the top the field beside the pond. Once a crop has been dropped in the bin it cannot be retrieved again. All crops in
the bin are considered sold at the end of the day, and the player gets the profit automatically at the start of the next
day.

Page 4
When a crop is eaten, the player would regain stamina depending on the type of crop. Note that the stamina cannot
exceed the players maximum stamina.

The magic grass seed is a special type of crop. While you can eat and sell it, Instead, it can be used as a fertilizer for
crops. When a crop is fertilized, the number of days it takes to grow / re-bear fruit is accelerated by 2 days. Note that
changes will only reflect the next day. Each magic grass can only be used on a single crop.

STORE
The player can buy seeds and other items in the store. At the minimum, the following seeds should be present:

Number
Days to Days To Selling Stamina
Seed Type of Price
Grow Re-bear Price Restored
Harvests
Turnip Seed Single Harvest 4 n/a 1 10 G 15 G 5
Potato Seed Single Harvest 6 n/a 1 15 G 25 G 10
Corn Seed Multiple Harvest 7 3 3 20 G 20 G 10
Tomato Seed Multiple Harvest 6 3 2 10 G 15 G 5
Kamote Seed Single Harvest 8 n/a 1 70 G 120 G 30
Eggplant Seed Multiple Harvest 5 2 5 60 G 30 G 20
Magic Grass Seed* Single Harvest 4 n/a 1 5G 6G 1

The store also sells the following items:

Item Price
Axe 40 G
Vitamins 30 G

PLAYER AND GAME FLOW

You are required to have a player avatar that you can control around in the field. This is not required when moving
around in other places like the house or the store (those things can just be a simple menu). The game starts with the
player having 100 G in his funds.

At the end of each day, the player has to pay a rent. The rent increases over time, as seen in the table below.

The rent is automatically deducted from the funds of the player at the end of each day. The rent deduction is done
after the profits have been added for selling crops (if any). If the player no enough money to pay the rent, the game is
over. The goal of the game is to survive for as long as possible.

Page 5
Day Rent
Day 1 to 5 5G
Day 5 to 10 6G
Day 11 to 15 8G
Day 16 to 20 10 G
Day 21 to 25 15 G
Day 26 onwards 25 G

MACHINE PROJECT PHASES AND DELIVERABLES

For the first phase of the machine project, you are required to submit an object-based implementation of the Harvest
Moon Lite game with the following restrictions:

1. The naturally spawning field elements (weeds, rocks, boulders, stumps) are not yet included.
2. The hammer and axe are not yet included, as they would have no purpose without the rocks and stumps.
3. Only single harvest crops are included.
4. Magic grass seeds are not included.

All other features not mentioned in the list above are to be included.

For the first phase, the user interface should be text-based. For the movement of the player around the field, the user
will have to input a command (right, left, up, down), and the program should display the updated location of the player.
You are not required to clear the screen (simply reprinting the field with the updated location will suffice). The
inventory, house, and store actions can simply be presented as a text-based menu.

For the second phase of the machine project, you are required to submit an object-oriented implementation of the
Harvest Moon Lite game with all of the features present.

For the second phase, there should be a graphical user interface. In the field sections of the game. It is up to you if you
want to use a keyboard control scheme (arrow keys to move) or a mouse control scheme (click right, left, up, or down),
but you are not allowed to automatically jump from one place to another with a single click of the mouse.

For both phases of the machine project, you are required to submit a UML class diagram of your program. The class
diagram has to be designed with the appropriate object-oriented programming principles.

Page 6
GENERAL REQUIREMENTS

The following general set of guidelines should be followed:

1. The implementation of this project will require you to use Java to be compiled and ran with Eclipse, or the
command prompt compiler / interpreter.

2. You are required to create and use functions and classes whenever possible. Make sure to use Object-Based
and Object Oriented Programing concepts properly. No brute force solution.

3. The above description of the program is the basic requirement. Any additional feature will be left to the
creativity of the student. Bonus points would be awarded depending on the additional implemented features.
These additional features could include new character classes, new enemies, etc. Depending on the scale of
the new feature, additional points will be awarded to the team. However, make sure that all the minimum
requirements are met first; if this is not the case then no additional points will be credited despite the
additional features.

4. For the minimum requirements of this MP, all the requirements written in this document should be present
and working.

5. Do not forget to include internal documentation (comments) in your code. At the very least, there should be
an introductory comment and a comment before every class and every method. This will be used later to
generate a Javadoc, which is the required External Documentation for your Machine Project. You may use
Eclipse or the command prompt command javadoc to create this documentation, but it must be PROPERLY
constructed.

6. Statements and methods not taught in class can be used in the implementation. However, these are left for
the student to learn on his or her own.

7. Submission of the project is on the indicated submission deadlines. Late submissions WILL NOT BE ACCEPTED.
A signed copy of the proof of submission will be returned to you.

8. Any instruction not followed will incur deductions (or a 0.0).

9. This project is by pair. Copying other peoples work and/or working in collaboration with other teams are not
allowed and are punishable by a grade of 0.0 for the entire OBJECTP course and a case may be filed with the
Discipline Office. In short, do not risk it; the consequences are not worth the reward. (Also, what is a measly
passing grade compared to a life-long conscience burden?)

10. During the MP demo, the student is expected to appear on time, to answer questions in relation to the output
and to the implementation (source code) of the project, and/or to revise the program based on a given demo
problem. Failure to meet either of these requirements could result to a grade of 0.0 for the project.

11. It should be noted that during the MP demo, it is expected that the program can be compiled successfully
and will run. If the program does not run, the grade for that phase is 0. However, a running program with
complete features may not necessarily get full credit, as implementation (i.e., code) will still be checked.

Page 7
SUBMISSION CHECKLIST FOR EACH PHASE

CD (placed in a case) or flash drive, either of which should be properly labeled with name and section,
containing at least the following files:
o The Java source files
o The output of Javadoc
o A copy of the UML Class Diagram
o any additional libraries you used for your implementation
Take note that in case of a flash drive submission, the flash drive may not be returned.
Printout of the following:
o The Java source files (set the font size to 10 to save space).
o The output of Javadoc for the classes that you created
o UML Class Diagram
Short brown envelope containing all the above requirements, with 2 copies of the proof of submission. One
of the proof of submission is attached at the upper right corner of the back of the envelope (not the side
with the flap). Each should indicate the following information:
Name :
Section :
Submitted To :
Received by :
Date / Time Received :

Email the Java source files as attachments to YOUR own email address and to the email address of the
instructor (dimaunahan.ryan.dlsu@gmail.com) on or before the deadline (to serve as back-up). Take note
that the actual submitted work would take precedence over the email back-up, and in the case of
discrepancies, the actual submission would be considered.

Page 8
APPENDIX B: RUBRIC FOR ASSESSMENT

Criteria Exemplary Satisfactory Developing Beginning

36-50 21-35 11-20 0-10


The code works for The code sometimes
The application meets typical input, but fails fails for typical input. The code often fails,
all the requirements for minor special Many parts of the even for typical
specified in the project cases; the major program input. Most
specification. requirements are implementation indicated
met, though some violate indicated restrictions were
The code is syntactically violated.
and logically correct for minor ones are not. restrictions and some
Program Some parts of the solution
all cases.
Correctness and Implementation of the implementation of are not implemented
Completeness the program violates using appropriate Note: Program that
program follows the
indicated guidelines and indicated programming does not run and /or
does not violate restrictions. constructs. implemented
indicated restrictions. incorrectly (based on
The implementation specifications and
also exhibits appropriate restrictions)
use of programming automatically gets 0
constructs. for this phases
output.

18-20 11-17 4-10 0-3


The UML diagram is
The UML diagram The UML diagram only partially The UML diagram is
conforms to a logical conforms to a logical depicting the correct wrong or there is no
design based on the design based on the design, thus the UML diagram.
Design requirements. requirements. program output is not
Correctness
necessarily coded
properly.
The program was The program was not
implemented based on implemented based
the design. on the design.

18-20 11-17 4-10 0-3


Answers to questions Answers to questions Correct
Answers to questions are correct, but some are correct, but understanding of
are correct, reasonable, justifications cannot justify solution the problem, but
Effective
and reflective of the provided are weak. (e.g., solution via trial was unable to
Communication
code. The justifications and error, rather than explain workings of
/ Concept and
provided are sound. There are minimal proper understanding code provided.
Code
Understanding errors in the solution and application of
Demo problem was to the demo concepts). Only a minor part of
solved correctly within problem. the demo problem
the time limit. There is major was solved.
headway in the

Page 9
solution to the demo Note: Failure to
problem, but the explain and justify
solution was not workings of the code
completed in time. submitted will
automatically merit
0 for this phases
output.

9-10 6-8 1-5 0


The program conforms Minor code Minimal internal Code is not
to a coding standard formatting does not documentation and readable.
that promotes code exhibit consistency in code readability.
readability. coding standard. No internal and
External external
Internal and external Only methods and documentation is documentation.
Readability
documentation is classes have proper incomplete or does
comprehensive. internal not contain useful
documentation. information (like
External parameters of
documentation is methods or
complete. descriptions of
attributes).

Page 10

You might also like