Sign in or create your account | Project List | Help


A Fruit Machine Game app for iOS

Project Description


The task is mainly creating a fruit machine app for the iOS App Store, natively using objective C. This task is approached using typical software engineering methodologies and requires identifying the user requirements for the software.
The idea of a fruit machine began about 130 years ago, when two people, Sittman and Pitt from New York developed a gambling machine that used 5 drums holding a deck of cards. When the player pulls the lever, the drums would spin and produce a random combination. A winning combination was based on poker. Several years later, Charles Fey conceived the slot machine due to the high probability of winning. He replaced the five drums with the three reels with five symbols on each. This has become one of the most famous gambling machines to date. Some machines used to give out chewing gum to the winner depending on what fruit the player had won with, which is how the name ‘Fruit Machine’ came to be. Nowadays, players win money, which tempt some players even more. Many enjoy the experience of playing with fruit machines, however in their traditional machine format you cannot play them on the go. The project is to build a high quality fruit machine app for iOS, bringing the fruit machine experience to the player’s handset.

The Initial Product Idea

After conducting initial research into how fruit machines traditionally function, further research was conducted looking into how existing mobile apps on Android and iOS had approached the idea. In order to make the project creative and competitive research was carried out on the existing apps and made notes about what features were good, as well as what made the apps bad. The research conducted was stretched from Android, iOS and also Desktop versions, in-browser and installable to see where the differences were. When the research was finished, all the ideas were brought together and an initial set of requirements were written for the project. An app will be created to run on all iOS devices (iPhone, iPad, iPod Touch) running iOS 6.0+. Firstly, the fruit machine will be designed for a normal size of 3 by 3 cards. As with a traditional fruit machine there will be basic features such as nudges and hold buttons. The user will receive coins every day and potentially bonus coins given providing they continue to play the game. As the player continues to play they will reach higher levels, the difficulty of the game will increase. The user has to spend more coins on a single game with more profit, so they will both lose and win coins easily. The way how the user will win coins will become much more complicated than the basic version. The user can add more coins to increase the winning percentage by choosing other winning combinations. On the last part, in order to avoid the user getting too many coins easily, the difficulty of the game will increase. A super version will be provided when the user has got a very big number of coins. On this version, the user also has to spend more coins on a single game to get more profit. The difficulty is that after winning a single game, a mini game has to be played in order to get their profit. These mini games will be a key feature of the app, rather than just based on a fruit machine. If the user fails the mini game challenge, they will lose not only the profit but also the coins he has spent on the former game. The game created will also feature tight integration with social features. These features will include the sharing of scores to Facebook, with an incentive to do so as the user will receive additional coins to play with. Coins can be shared by the users via the social network, and see how many points/coins their Facebook friends have. A highscore system will be added with integration with Apple's Game Center, which handles highscores and achievements natively on all versions of iOS proposed to target. Aside the Game Center integration, highscores will also be tracked on an independent website which will allow scores to be accessed from the user's web browser.

The Development Plan and Approach Taken

The initial step will be the creation of the project site which will be used to introduce ideas towards the project and the software being produced. Trello, a web-based collaborative project management application, is used to aid communication, planning and managing deadlines collaboratively. A number of interactive boards will be provided by Trello, which will be used as a Kanban board to move tasks along the stages of development to keep track of the group’s overall process. The Test-driven development (TDD) methodology will be used for the implementation and testing processes where test cases will be created before implementing features. Thus, a cycle will be used for each of the test cases, which are tested automatically. Each test case will represent a piece of functionality in program, and can be modified and extended to define improvements. All of them are expected to fail before any development is actually completed, and through development the aim is the write code to make the tests pass, at which point the program should take shape. The advantage of TDD is that it can break up steps for developers to start and enable developers to focus on separate tasks. Although more code will be required, TDD can not only reduce the number of errors but also strengthen the design. Xcode will be used to complete the implementation stage, an IDE (integrated development environment) developed by Apple for developing software for OS X and iOS. It also supports languages like Java, C++. This is a fast and convenient tool for iOS programming and with a developer license will provide everything needed for development, including testing on an emulator or remote device. Code produced independently will be brought together using version control tools, allowing the group to develop collaboratively. It was agreed that Git version control would be used, provided by GitHub. It is the most popular code repository site for open source projects providing easy collaboration between multiple contributors, and is heavily integrated with a web based service extending the range of features connected to the repository. Git allows the user to maintain a local repository, allowing collaborators to work at the same time and merge changes together on the remote Git server. An initial beta version of the app will be created, published and available on the App Store so that members of the public can download it. The intention is that a broad spectrum of users will try it out, report any bugs, provide suggestions and comment on the design and functionality. This feedback will be used as part of the testing and maintenance process of the development to understand what changes should be made for the next iteration of the app. The software will be continually upgraded until a satisfying result is reached or until the project has been completed.


The minutes can be found on the documentation page: Documentation


Group Project Site

  • Group Project Site - COMPLETED

    • Description of the project

      • “What we are making” section completed by Jiangxiao Zhou on 23/10/2013
      • Introduction has been completed by Luke Kartsolis on 24/10/2013
    • Agenda and Minutes

    • Minutes have been regularly taken by Matthew Herod and Ryan Shaw

    • Collectively Created, Version-controlled, Document

      • This was completed on 24/10/2013 by everyone
    • Raising and Closing of issues

  • Interim Group Report - COMPLETED
    • Extended Description of the problem
    • Background Information and Research
    • Requirements Specification
  • Record of Key Implementation Decisions - COMPLETED

    • Results of Any Initial Implementation Steps
    • Discussion of Any Problems Encountered So Far
    • Time Plan of The Project
  • Software Implementation - COMPLETED

    • Prototyping
    • Implementation
      • Fruit Machine
        • Graphics
        • Sound
        • Code
    • Testing
    • Submission to The App Store
  • Final Group Report - COMPLETED

  • Updated Design of the system and its User Interface - COMPLETED
  • Discussion on the Implementation and Testing of the System - COMPLETED
  • Summary of what was achieved - COMPLETED
  • Reflective Comments on the Success of the Project - COMPLETED
  • Include all Minutes - COMPLETED
  • User Manual - COMPLETED

  • Complete Peer-Assessment Forms - COMPLETED

    • Complete Ethics Documentation
    • Complete Individual Reports
  • Open Day

    • Complete Equipment Form
  • Presentation Day

    • Prepare Presentation
      • Create Presentation Slides
      • Complete Equipment Form
    • Presentation Roles

Powered by InDefero,
a Céondo Ltd initiative.