WARNING!
Few honest
informations.
I have a few years
experience in software developer BUT I
am NOT a game developer! I am NOT
an expert.
This guide was
written by person who want write game as part of hobby and make
dreams come to true (As i want to write simple RPG game in future).
I put
best efforts to write
accuracy informations,
but I cannot
guarantee the perfect accuracy of all content in this articles
on this blog.
I do not take any responsibility or liability
for any error, omission , inaccuracy or
destructions!
How to make simple application or game in Android
BASED ON GAME EXAMPLE:
DOMS COUNTRIES, CAPITOLS, FLAGS AND CONTINENTS QUIZ GAME
Part 3
PLANNING
It this part I will explain how I prepare, plan and setup my project.
I start from list of things, which is good to do and remember during
preparing and planning
:
1. Write
down all ideas and conclusions from brainstorm - as best ideas and solution
for your problems appear in most unexpected moments. In toilets, just before go
to sleep. Always write them somewhere!
2. Create
a “to do” list. It is many way to do .Starts from notes on piece of
paper (notepad in your device) through program for task management, GTD-like
application or Kanban like application. Make sure that you setup priority
(Most practical are (must have, maybe have, useful to have). I using Kanban to
3. DO
BACKUP and keep it in external place (for example: If you work on PC
at home. Your backup should be keep NOT at home.You must store backup in different place like cloud service(Dropbox) , pendrive at parents home etc.).
6. Collect all interesting resources and keep source information (in this example, I collected all
flags), sounds and data/algorithms that will be useful during implementation.
7. If
you have any problems with planning particular parts of you application use UML
software for class design, user cases or flow. Mock some UI using UI designers
in Eclipse or IntelliJ IDEA), to see how things look and allow you to test
usability of your application or game. Make some quick user cases.
8. If
you planning to be a professional software developer. You can start select to
use specific methodology or use some "software development methodology"
principles to improve your skills. I suggest read at least this:
http://en.wikipedia.org/wiki/Software_development_methodology
.If you want. try one of plenty methodologies like Agile ,Incremental ,
Iterative , V-Model , Spiral , Scrum , FDD , TDD , XP
and many more. (Btw. Forgot about waterfall is worst approach, as it will doom
you, if requirement changes over time, which happen even in my doms countries
capitals flags quiz example, where I added a new game mode and change high
score). I usually used Kanban based methodology and it works fantastic for me (however,
I loosely followed my Kanban board.).
9. Write
down all bugs, which you find in one place. In can be in your to-do list or you
can use bug tracking software .I used
This and design stage are
very important.
Why? As more effort you put it, then you will lower your chance to re-write
your code. You will be more flexible for adapt to unexpected changes. Do not
design everything upfront (like in waterfall methodology). Think more about
flow, cases and usability and prepare task-list with prediction for how
important it is and how difficult/how much time it will take. Tasks should be designed
and implemented independently.
Important: this is only suggestion .Choose what can be useful for you.
How I planned my game?
This how looks my setup and planning for my project
I used IntelliJ IDEA as IDE. I used some agile and Kanban principles as
methodology. I used Kanbanize.com as my Kanban board ,where I store my
brainstorm idea, task list , bug tracking and as visual process management (to
visualise workflow, manage flow and to-do list, manage adaptation for changes
in requirements).I use Git as my source code management and my own program
called nanobackup to do .. backups (that were stored internally and on Dropbox).
For simple game as doms countries, capitols, flags and continents quiz game
that was based on previous project it was a bit easy, but this is shortcut of
how I done it. I started from brainstorm. All ideas from brainstorm I added
into task list. I put all task on Kanban board (I used kanabinze.com). I
collected most data (flags, icons) and add/edit/remove task during my free time
prior start of implement specific tasks.
I draw some UI to play with usability and with game flow. I used UI builder
for Android that can be found in IntelliJ IDEA (better tool can be found in
Eclipse). I decided then priority and task order for each task/feature. I
create a text file with my loose plan about what will be including for each
main release (v0.4, v0.5, v0.6, v0.8 and v1.0 (unfortunately I deleted file
with info, what was in each release).
I play around with planning flow as part of test.
That is all.
Note: Even in small project like this one. Few elemnts in my plan changed
few times during development. My planning is very flexible and it allowed me to
fit these changes to development flow.
It was quick as my plan for this project was very similar to Dom’s learn Chinese
game, so I followed pattern used in past.
Strategy vary depends on project size, deadline, complexity, your experience
and many other factor, but do not worry too much about. If you just started,
try to have some fun with planning and design that and allow a lot time for implementation.
In next part, I will describe my design for “doms countries, capitols,
flags and continents quiz game” with some example of uml ,task and etc.
Go to part 4:
Design