CASE STUDY

Viewz Demo

Software company, that provides clients with innovative service - VR & AR ads platform.

Solution

Game Development

Industry

Martech

PROJECT DESCRIPTION

Viewz Marketing Inc. is a successful software company that serves to clients as a ads tracker. Their main office is located in the United States, Florida, Tampa. One of the main goals of the company is to help customers monetize applications through advertising within AR and VP applications. The company addressed Computools for an application to demonstrate in practice the principle of placing 3D banners in a virtual environment. During the discussion, the main tasks of the application, the functional spectrum and the necessary options were identified. Gadgets and devices that will be used to launch the application have also been determined. This made it possible in the future to select technologies for development. The finished applications - Viewz Demo - is used for 3D Banner Advertising. It was specially designed for Viewz Marketing Inc. Sales Managers. It supports more than 50 banners at the same time. Special shader for inside light effect and VR support were implemented. This demo app also works on Oculus Go. The application is not publicly available, Sales Managers use an internal Google link to demonstrate the app to customers.

There is no opportunity to load advertisements from the potential client without an admin account to show how it works

Little data draw array for save performance

The absence of the day mode in this demo

The absence of the offline mode

Showing more than 50 3d banners on one scene

Special avert content for showing to potential clients

Showing inside a real-time chart about all banners state

Showing special night custom shaders

Communication Framework

Computools
Project Manager
Business Analyst
Team Lead
Business Development Manager
Viewz Marketing Inc
CEO
Cheaf Digital Officer
Communication

Properly organized communication in the project is of great importance for quick decision making. The initial communication with the client was through Upwork and then moved to Skype. All communication was carried out in this messenger since it was convenient for all parties. Moreover, Skype allows holding regular video and audio conferences. There was also an exchange of telephone numbers to resolve urgent issues.

Interactive Prototype

An interactive prototype allows studying the functions of the finished application before starting its development. Created in parallel with the specification, the prototype contains all the basic options and is prepared for the demonstration. Using it as an example, the necessary set of basic functions and requirements can be considered, as well as unnecessary ones can be removed.

Computools
Project Manager
Team Lead
Business Analyst
UX Designer
Viewz Marketing Inc
CEO
Cheaf Digital Officer
Communication

Digital Platform & Technology

The technology stack is determined by the main objectives of the project. Developers choose the best solutions for the tasks, using ready-made methods and solutions, their experience in creating such applications. For this project, optimal technologies have also been selected to create and maintain the necessary functions.

Computools
Project Manager
Team Lead
Viewz Marketing Inc
CEO
Head of IT Architecture
Communication
Unity3D

Unity3D is a commercially available multiplatform game engine used for the production of 2d and 3D video games as well as non-game interactive simulations and visualizations. Unity is one of the most popular game engines available due to its combination of power, flexibility, and ease of use. Unity’s best asset is that it does a good job at helping develop mobile game content while being cross-platform with a minimum amount of effort.

C#

C# can be used to create almost anything but is particularly strong at building Windows desktop applications and games. It is perfectly combined with Unity3D and provides the best protection of the source code of the app. C# is often thought of as a hybrid that takes the best of C and C++ to create a truly modernized language.

PHP

PHP is a general-purpose, server-side scripting language that was designed to make dynamic pages and applications. PHP as a web development option is secure, fast and reliable that offers lots more advantages to make it accessible to a lot of people. PHP supports MySQL, Oracle, Sybase etc.

MySQL

MySQL is a database platform for businesses, it is extremely easy to use. It is commonly used in combination with PHP. It uses solid data security layers to protect sensitive data from outside access. The database software has been shown to manage memory exceedingly well, and actually prevents memory leaks. MySQL is much faster in terms of performance, and users still have access to all the necessary features they would through other database platforms.

C# custom lib

A custom class library defines types and methods that are called by an application. A class library that targets the .NET Standards allows the library to be called by any .NET implementation that supports that version of the .NET Standard. When the C# library is finished it can be distributed as a third-party component included as a bundled component with one or more applications.

WebExtensions

WebExtensions is the new API for building add-ons in Firefox. It seeks to unify the extension APIs and architecture with those of other browsers in the name of interoperability and modern architecture. Potentially the most impactful aspect of WebExtensions is that it adopts the extension architecture used by browsers built on top of Chromium.

Steam VR

SteamVR is a hardware/software solution that lets the devices know in real-time where they are, within a room. Using this software provides application integration, complete immersion for the user and opens up opportunities for users of virtual reality.

Microsoft Mixed Reality

Microsoft’s unique combination of VR and AR that was designed to immerse more users in the digital experience with lower-priced and easier-to-drive headsets. Developing an application based on this platform expands its capabilities and allows its use on various specialized devices.

Oculus Go

The Oculus Go technology is developed for Facebook’s new standalone VR headset. The Oculus Go is one of the first completely self-contained, dedicated VR devices heading to the consumer market. That means it does not have to be tethered to a computer but has all the parts needed inside. The apps for Oculus Go should be re-packed in accordance with major requirements.

System architecture

Specification

The specification is developed at the prototyping stage and takes into account all the necessary developmental stages. It also takes into account the basic and non-basic requirements, the sequence of tasks. The specification also includes the main criteria for evaluating and testing the application. The final specification is created at the end of the development life cycle.

Goal - Show real example of 3d environment to the potential Viewz Marketing Inc. clients with support 50+ 3d banners with custom self-lighted shaders.

Precondition Sales Manager opens application and makes demonstration. You can shoot in game, look on chart, create clean data from your view.

Main Flow Open your game Watch on ads banners

Postconditions Get clean data about banners report from your game session as client. Alternative Flows 1. No internet connection - the user will see empty billboard in this case.

COMPUTOOLS TEAM

An experienced team of developers, designers, managers and analysts is building specifically to work on the project. The coordinated work of engineers and specialists allows to get the highest quality result - a ready-made application. Computools strives to create comfortable working conditions for the team, therefore it carefully approaches the choice of each participant. The skills, experience, level of expertise of the employee, as well as personal qualities are taken into account.

Project Manager
Viktoria Ruban
UX Designer
Denis Gubrienko
Business Analyst
Nikita Abelmasov
Business Development Manager
Alexander Azmanov
Software Engineering Team
Team Lead
Nikolay Smorgun
3D Designer
Alexander Sosin

BACKSTAGE

The company pays special attention to the organization of the development process. During the work of the team, the latest technologies are applied in the field of brainstorming and the exchange of ideas and experience. Each participant has the opportunity to propose a solution and discuss it with colleagues.

Dev Meeting
Cooperation with other teams and clients also allows to share experiences and make the necessary changes to ready-made solutions, as a fresh look allows to identify small bugs and errors.
Team Brainstorming
The brainstorming sessions help our engineers to find a really innovative solution. They stimulate creative activity and each participant has an opportunity to offer as many options as possible, including the most fantastic ones. It helps to hit the necessary ideas and solutions.
Feedback
After finishing a large part of the work we conduct team discussions and arrange feedback sessions. Thanks to exchanging opinions and emerging ideas, our developers find truly innovative solutions, improving their personal efficiency and the efficiency of the entire team.

Internal Communication Flow

The internal communication system allows to maintain communication in a team, make decisions on the project, discuss the necessary issues and tasks. For daily communication within the team, Skype was used, which allows to quickly contact and choose the best solution. Face-to-Face scrum meetings and retrospective meetings were also used. To manage the project, the manager chose Trello, which allows to distribute tasks among project participants, monitor their status and implementation.

Project Management Methodology

Since this project required quick implementation and thorough testing, it was decided to choose Scrum as the project methodology. It allows project participants to adjust their activities in response to situations that arise during the project management process. Scrum consists of three roles: the product owner, the Scrum master and the team. The product owner is the individual who represents the company. The Scrum master is the project manager tasked with controlling and measuring the process. The team is made up of those who will execute the project tasks. Scrum "ceremonies" are the project steps, which are referred to as "sprints," as well as daily Scrum meetings. Scum "artifacts" include a product backlog, which is a prioritized list of customer requirements; a sprint backlog, or a task list for implementing the priority product features; and the burndown chart showing how much work remains as the backlogs "burn down" toward completion.
The sprint process provides development that results in a saleable product even while the project is in full swing. This incremental delivery system shortens the time to market and may result in higher revenue, as each completed backlog represents a new release of the product. In addition, reviewing each sprint before moving to the next means that testing is conducted throughout the process, which allows teams to change the scope or direction of the project at any point.

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 main restrictions and searching solutions
  • Identifying risks
2
DESIGN
High-Level Architecture
  • Selecting basic architectural patterns and tools
  • Forming an application stack
  • Forming the main development guidelines
Interactive Prototypes & Specification
  • Development of a prototype in parallel with specification
  • Native web implementation (page, work with database, comment update system, date picker, etc)
Build Development Process
  • Choosing project methodology, calculating the number of project teams, forming process configuration
  • Choosing work format
  • 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
  • Unity3d game logic construction
  • Working with animation
  • Adaptation of the app for the Oculus Go
Testing & Stabilization
  • Developing a testing plan
  • Testing following a test case
  • Applying improvements
  • Code stabilization/refactoring, increasing system stability, reducing the probability of bug emergency and speed up development

Design Development

Design development began at the prototyping stage when the visual part of the project was created. Then the design was developed in parallel with the writing of the main code. This method allows to timely implement and connect parts of the project, identifying bugs and inconsistencies that are subsequently eliminated.

Computools
Project Manager
Team Lead
UX Designer
3D Artist
Viewz Marketing Inc
CEO
Communication

CODE DEVELOPMENT

The code development process was divided into sprints since the Scrum methodology was used. This allows to carefully study the finished part of the code before moving on to the next task. This saves time searching for bugs in the finished product and facilitates the work of the entire team. Thanks to the chosen method, the finished application works stably.

CODE SAMPLE

Scan QR code to find code sample

Or use link below

https://github.com/computools/viewz-demo

What our client said

Lewis McClam
CEO of Viewz Marketing Inc.

An excellent team of professionals, everything was done on time and without delay. It was a pleasure to work with real experts. Computools was able to quickly understand my requirements, and provide expert results before the posted deadlines.

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.