CASE STUDY

Photo Fighter

A software company located in the United States.

Solution

Game Development

Industry

Computer Software

PROJECT DESCRIPTION

Photo Fighter LLC is a software company located in the United States, Michigan. The company needed help in creating an interactive game with a non-standard solution regarding the gameplay. After discussions and negotiations, all-important agreements were reached. Development was carried out according to the requirements and wishes of the customer, who was also involved in the process. The result of the interaction was the animation based fighter game.

Main feature of the current game is the opportunity to make or select from archive photo for the character and use it as a mask (life). When a player loses 4 masks he also loses his “real” face and correspondently loses the game. Main target: Changing Face and personalized characters and fight with friends.

Game support bot (if there is no internet connection) and local multiplayer. It is available on desktop and mobile (iOS, Android). Monetization of the game: Patent income.

Does not support global multiplayer

Does not have a lot of joke animation for the opponent

There is no ads and iAPs

It is not supported on Consoles

It is not supported on TV devices

Personalized Characters

Unstandard In-Game lives (Faces)

There is no blood environment

Funny and leafy game

There is no ads and iAPs

Support Local Multiplayer

Communication Framework

Computools
Project Manager
Team Lead
Business Development Manager
Photo Fighter LLC
Co-Founder
Product Owner
Communication

Communication with the customer is one of the key organizational issues that is addressed in the first place. We strive to build a comfortable interconnection system in order to quickly find a solution to urgent issues, exchange opinions and discuss working questions. Communication in this project began through the UpWork service, then for the convenience of the entire team, we moved to Skype. Video conferencing and discussions were held there. In the future, for emergency communications, PM exchanged phone numbers with the responsible representative of the customer.

Business Process Mapping

01
Consult

Consulting on the project is a mandatory preparatory step, thanks to which the main goals and objectives of the project, possible subtasks and functions are clarified. After determining the needs of the customer, we conduct a deep analysis of existing turnkey solutions, methods used by competitors. Also at this stage, risks and perceived obstacles are identified.

02
Design

At the design stage, several important processes take place in parallel. One of them is building a specification - an algorithm of actions and key sequences of the project. Another is the creation of an interactive prototype of the application, which will allow to study the functionality, add new options or remove uncomfortable ones. The foundation for UX/UI design is also created at this period.

03
ENGINEER

Application development begins with building a team. We conduct a careful selection of the necessary specialists, based on their skills and experience in such projects. After the formation of the team, an intro meeting is held and tasks are distributed. Depending on the chosen methodology, the deadlines for completing tasks, checks and testing are set. Upon completion of the project, a full application test is carried out, updates are added and the necessary edits are made.

Interactive Prototype

Building an interactive prototype helps better and more deeply understand the goals of the project. Moreover, this is a great opportunity to study the future functionality of the application, get feedback from the customer, make corrections and changes at the design stage. Thus, prototyping saves time directly on development.

Computools
Designer
Project Manager
Photo Fighter LLC
Co-Founder
Communication

Digital Platform & Technology

The stack of necessary technologies is determined by future application functions, necessary capabilities and tasks. To select the best technologies, programming languages ​​and frameworks, we study ready-made solutions to similar problems and existing technologies. Also, we are always ready to offer something original and suitable exclusively for a specific project. The current game uses web interaction and has cartoon graphics. Based on these arguments we use Unity3D engine to show high interaction and have wider control on native environment affecting.

Computools
Project Manager
Team Lead
Photo Fighter LLC
Co-Founder
Unity3D

It is a comprehensive game development tool that provides fast development speeds. It follows agile game creation and facilitates quick prototyping and continuous releases. Easy and quick import process of resource subsystem leading to an optimized unified Assets pipeline and supports most image, audio, video and text formats band 3D packages. It also has excellent Integrated Level editor with supporting JavaScript and C# for scripting.

C#

It is an object-oriented, general-purpose language. It is highly versatile and is used to create a ton of projects, including but not limited to mobile apps, cloud-based services, enterprise software, and games. It was specially created to make it easier for engineers to build apps quicker at the expense of a loss in overall performance (on modern hardware this is negligible).

PHP

It is widely spread, easy to use and flexible programming language, that can be embedded in any code or system. It is relative fast since it uses much system resource. Moreover, it has strong community support and powerful library support.

Social SDK

SDKs are a spectrum of software intended to make apps and other digital platforms more dynamic. Social SDKs make it easy for developers to create apps that are integrated into larger social media landscapes. They include such functionalities as streamlined user login, app data and analytics, and various gaming features like leaderboards, in-app achievements, and more.

MySQL

MySQL is a free open source database that facilitates the effective management of the databases by connecting them to the software. It is a stable, reliable, secure and powerful solution with the advanced features. MySQL offers unmatched scalability in order to facilitate the management of deeply embedded apps. The star feature of MySQL is the on-demand flexibility, it allows the complete customization to e-commerce businesses with the unique database server requirements.

uNet

The U-net architecture is synonymous with an encoder-decoder architecture. Essentially, it is a deep-learning framework based on FCNs; it comprises two parts: a contracting path similar to an encoder, to capture context via a compact feature map and a symmetric expanding path similar to a decoder, which allows precise localisation. This step is done to retain boundary information (spatial information) despite downsampling and max-pooling performed in the encoder stage.

System architecture

Specification

The project specification is created at the design stage, when the main actions and sequences of tasks are prescribed. This creates an algorithm for further application development. The final specification is made after the completion of the project and contains goals, the main flow, alternative flow and other points.

Goal - Changing Face and personalized characters and fight with your friend.

Precondition Download application from links

Main Flow Choose Single Player or Multiplayer Setup character gender Setup character color Setup character face image Setup background image Play the game

Postconditions Win or lose to your opponent

Alternative Flows 1. If you play offline you play with bot 2. If you play online you can play locally with your friend

COMPUTOOLS TEAM

For the project, all the necessary specialists are selected. Experts with sufficient experience and necessary skills are carefully selected from the company's employees. A well-coordinated professional team is a key to the successful completion of all tasks at a high level and on time.

Business Development Manager
Dubinskiy Denis
Designer
Panchenko Valerii
Project Manager
Nikita Abelmasov
Software Engineering Team
Team Lead
Nikolay Smorgun

BACKSTAGE

Maintaining the productivity of the entire team is the core of the successful interaction of all its members. Besides, it stimulates the development of each involved employee and contributes to his professional growth.
To do this, we use a variety of methods and tools.

Dev Meeting
Developer's meetings help the team interact better and share experience and acquired knowledge. Moreover, this allows identifying errors or bugs in the code that are easily fixed at the development stage.
Team Brainstorming
Brainstorming is recognized as one of the most effective ways to find innovative solutions. At such meetings, developers can offer any idea, even the most incredible. In the discussion of ideas, original solutions are created.
Feedback
An important component of work on a project is getting feedback. This applies not only to interaction with the customer but also between team members. So everyone gets the opportunity to learn about their strengths and weaknesses and become even better as a professional.

Internal Communication Flow

The internal communication system on the project consisted of two parts. Skype was used to quickly discuss and resolve urgent issues, and tasks were distributed through Trello. Such an ecosystem helps to track the status of tasks and quickly find solutions to difficulties.

Project Management Methodology

The methodology is selected individually for each project. A Scrum was selected for this project.

Using Scrum, new features are developed incrementally in Sprints. At the end of each Sprint, a potentially releasable Increment of Software/Product is available. This enables the product to potentially be released much earlier. Maintaining quality is a key principle of development with Scrum. Testing occurs every Sprint, enabling regular inspection of the working product as it develops. This allows the Scrum team early visibility of any quality issues and allows them to make adjustments if necessary.

Scrum development encourage active Product Owner and Stakeholder involvement throughout the Products development. Transparency is therefore much higher for key stakeholders, both of the project’s progress and of the product itself, which in turn helps to ensure that expectations are effectively managed. In agile development, change is accepted and expected. Often the time scale is fixed and detailed requirements emerge and evolve as the product is developed.

PROJECT TIMELINE

1 week
2 weeks
3 months
1
CONSULT
Defining Goals
  • Identifying high-level project goals
Analysis & Exploration
  • Researching the existing and ready-made solutions
  • Defining possible restrictions and providing solutions for them
  • Identifying risks
2
DESIGN
High-Level Architecture
  • Selecting basic architectural patterns and tools
  • Forming an application stack, work processes with VCS
  • Forming the main development guidelines
Interactive Prototypes & Specification
  • Development of an interactive prototype
Build Development Process
  • Calculating the number of project teams
  • Configuring the technological processes and interactions between roles
3
ENGINEER
Build The Team
  • Making the initial scope based on the specification and estimate, calculating the optimal number of specialists for each role
  • Adding executors to the team's core
  • Conducting an intro meeting
Development
  • Distribution and execution of project tasks
  • Integration of the necessary options
  • Implementing the design of the finished page
Testing & Stabilization
  • Developing a testing plan
  • UI & Unit testing
  • Applying improvements
  • Code stabilization/refactoring, increasing system stability, reducing the probability of bug emergency

Design Development

Design development begins at the stage of creating an interactive prototype. During this period, mainly user experience is developed, which is further improved and adapted to all requirements. Next, a user interface is developed. All this is being applied gradually, which allows timely detection of inaccuracies and correct them.

Computools
Project Manager
UX Designer
Photo Fighter LLC
Co-Founder
Communication

CODE DEVELOPMENT

Scrum was chosen as the methodology of the project, so the entire code development process was divided into sprints. At the end of each sprint, a mandatory code check was carried out and, if necessary, work to eliminate errors.

CODE SAMPLE

Scan QR code to find code sample

Or use link below

https://github.com/computools/photo-fighter

Implementation On Client’s Side

01 Launch

The launch of the game application was completed on time. Previously, several checks were carried out, including automatic and compliance with the requirements of application markets.

02 Transfer

Transfer to the customer’s server is carried out in compliance with all security requirements. All data is transferred in accordance with the agreed conditions and upon completion, an additional check is necessarily carried out.

03 Education

No additional tutorials or training seminars were needed for this project. However, we are always ready to provide the necessary training materials.

What our client said

Petrus Alcindor
Co-Founder of Photo Fighter LLC

It was a great and successful collaboration. A team of real experts: the development was fast, only minimal edits were necessary. Definitely will contact it again and recommend to our partners.

CONTACT US

Let's talk about your project.
Use the form to drop us an e-mail.

Thank you for your message!

Your request will be carefully researched by our experts. We will get in touch with you within one business day.