Логічна гра "Light Maze"
Аналіз існуючих технологій для створення ігор. Вибір технологій та мов програмування для розробки логічної гри з елементами розвитку зорової пам’яті. Опис алгоритму функціонування програми. Компонування елементів на платформі Unity3D та UML-діаграми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 08.06.2015 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Харківський патентно-комп'ютерний коледж
Відділення „Розробка програмного забезпечення”
Предметно-циклова комісія „Програмування”
Дипломний проект молодшого спеціаліста
на тему «Логічна гра «Light Maze»»
ДП5.05010301.11.15.00
Виконав студент IV курсу групи П-11 спеціальності 5.05010301
“Розробка програмного забезпечення”
напряму підготовки 050103
«Програмна інженерія»
Макаров О.С.
Харків - 2015 року
Реферат
Об'єкт дослідження - логічна гра з елементами розвитку зорової пам'яті «Light Maze»
Мета дослідження - розробити логічну гру з компонентами розвитку зорової пам'яті, яка працює під ОС Windows та Android.
У технічному завданні визначені вимоги до дипломного проекту і надійності. Вказано призначення розробки, необхідні функціональні характеристики та вимоги до вихідних та вхідних даних. Визначені необхідні умови експлуатації та параметри технічних засобів. Описані етапи розробки програмного продукту, порядок контролю та приймання.
У першому розділі пояснювальної записки проаналізовано існуючі технології для створення ігор та різноманітність мов програмування. А також обґрунтовано вибір технологій та мов програмування для розробки логічної гри «Light Maze»
У другому розділі пояснювальної записки розглянуто опис алгоритму функціонування програми, а також опис розробки та компонування елементів на платформі Unity3D та UML діаграми.
У третьому розділі пояснювальної записки розраховано економічну ефективність розробки та супроводження даного програмного забезпечення.
У четвертому розділі пояснювальної записки був проведений аналіз дотримання норм з техніки безпеки при роботі з ВДТ та умов праці на робочому місці відповідно до нормативів.
У програмі та методиці тестування наведено результати тестування програмного продукту.
У керівництві оператора представлено опис виконання програми та повідомлення оператору.
Ключеві слова: ЛОГІЧНА ГРА, UNITY3D, КОМП'ЮТЕРНІ ІГРИ.
Abstract
The object of research is logical game with development elements of visual memory named «Light Maze».
The purpose is - to develop a logical game, which works on Windows and Android, with development elements of visual memory.
The TOR defined the requirements for the diploma project and reliability. The purpose is specified, also the necessary development functional characteristics and requirements for output and input are shown. The necessary exploitation conditions and parameters of technology are defined. It is also describes the stages of the software, order control and acceptance.
The first section of the explanatory note analyzes existing technologies to create games and the variety of programming languages. And also it substantiates the choice of technologies and programming languages of the development logical game «Light Maze».
The second section of the explanatory note descripts the algorithm of the program, the design and layout of elements on the Unity3D platform and UML diagrams.
The third section of the explanatory note calculates the cost-effectiveness of the development and support of software.
The fourth section of the explanatory note contains the analysis of compliance with safety when working with PC and working conditions in the workplace in accordance with regulations.
The results of testing the software are shown in the program and methods of testing.
The manual operator is a description of the program and message to the operator.
Keywords: LOGICAL GAME, UNITY3D, COMPUTER GAMES.
Перелік основних позначень та скорочень
MMORPG - Massively multiplayer online role-playing game - жанр онлайнових рольових відеоігор, в якій велика кількість гравців взаємодіє один з одним у віртуальному світі.
MMOG - Massively Multiplayer Online Game - мережева відеогра, в яку одночасно грає багато гравців.
MOBA - Multiplayer Online Battle Arena - піджанр відеоігор-стратегій в реальному часі, де гравець контролює тільки одного персонажа в складі однієї з двох протиборчих команд.
ПК - персональний комп'ютер.
XML - Extensible Markup Language - cтандарт побудови мов розмітки.
GUI - Graphical user interface - тип інтерфейсу, який дозволяє користувачам взаємодіяти з електронними пристроями через графічні зображення та візуальні вказівки.
CPU - Central processing unit - функціональна частина ПК, що призначена для інтерпретації команд.
GPU - Graphics Proccesing Unit - окремий пристрій персонального комп'ютера або ігрової приставки, який виконує графічний рендеринг.
ЕПТ - електронно-променева трубка.
ВДТ - відео дисплейний термінал.
ЕОМ - електронна обпилювальна машина.
Вступ
Розробити логічну гру з компонентами розвитку зорової пам'яті, яка працює під ОС Windows та Android.
1 Підстава для розробки
Основою для розробки є завдання на дипломне проектування, видане Харківським патентно-комп'ютерний коледжем 06 квітня 2015 року. Найменування: «Логічна гра з компонентами розвитку зорової пам'яті». На замовлення Макарової І. В.
2 Призначення розробки
Програма несе, насамперед, розважальний характер, але включає компоненти розвитку зорової пам'яті. Призначена для людей різних вікових категорію. Може використовуватись студентами для розвитку зорової пам'яті у вільний від навчання час.
3 Вимоги до програмного продукти
3.1 Вимоги до функціональних характеристик
Програма повинна працювати в режимі реального часу через функції update, що викликаються один раз за функцією кадру. Програма повинна виконувати наступні дії:
- при натисканні на контролюючі клавіші arrows, player буде здійснювати рух в заданому напрямку по лабіринту;
- генерація лабіринту алгоритмом Еллєра та запис його окремим компонентом в файл;
- зчитування компоненту для створення рівня;
- розташування старту та фінішу у будь-яких місцях даного рівня;
- перемикання між сценами програмного забезпечення керуючи простим GUI. Контролюючий процес здійснюється за допомогою миші;
- програвання аудіо файлів, відтворення світлових ефектів та particle system під час проходження рівня, з потужністю в залежності від місця положення джерела в лабіринті.
3.2 Вимоги до надійності
Програма повинна виконувати перевірку вірності введених параметрів і видавати повідомлення в разі невірної виконаної дії, під час тестування, а при експлуатації завершати роботу ПЗ з повідомленням про помилку.
3.3 Умови експлуатації
Програма може зберігатися на будь-якому носії інформації достатньою для її запису ємністю. Рекомендований тип носія - жорсткий диск. Умови навколишнього середовища повинні відповідати умовам експлуатації цих носіїв, які вказуються в їх технічних характеристиках. При їх недотриманні автор програмного продукту не буде нести відповідальності за коректність роботи програми.
3.4 Вимоги до складу та параметрів технічних засобів
Технічні засоби для використання даного програмного продукту повинні включати в себе: ПК з частотою процесора більш ніж 1.2 ггц, RAM 1 гб, графічним відеоадаптером ємністю 512 мб, ОС Windows XP і вище, або мобільний пристрій з частотою процесора більш ніж 1 ггц, RAM 500 мб, ОС Android 2.3.6 і вище.
3.5 Вимоги до інформаційної та програмної сумісності
Програма повинна використовувати стандартні елементи управління ОС windows 7 для сумісних з іншими версіями ос цієї родини. Вихідні дані повинні бути написані на мові с#, з використанням сторонніх бібліотек та програмних засобів від unity, дотримуватись державних стандартів на програмний продукт.
4 Техніко-економічні показники
Можливий термін окупності повинен становити 1-2 роки.
Вартість однієї копії не повинна перевищувати 200 грн.
5 Стадії та етапи розробки
Процес розробки програмного продукту включає такі етапи:
- аналіз предметної області задачі;
- розробка алгоритму функціонування програми;
- розробка та компонування елементів на платформі Unity3D;
- програмна реалізація програми;
- тестування і налагодження програми;
- створення документації;
- введення програмного продукту у експлуатацію.
6 Порядок контролю та приймання
Випробування даного програмного продукту і контроль якості його роботи провести на власному ПК. Під час випробувань перевірити працездатність роботи програми по наступних позиціях:
- загальна працездатність програмного продукту;
- перевірка основних можливостей програмного продукту.
Більш ніж 90% сучасних дітей і безліч дорослих грають у відеоігри, тому безсумнівно на сьогоднішній день розробка комп'ютерних ігор є найбільш розповсюдженою в IT-сфері. Вони є повсюди: web-ігри, flash-ігри: мобільні ігри для смартфонів і планшетів, консольні ігри, глобальні ігри типу MMORPG, MMO, MMOG, MOBA; сервісні ігрові станції, звичайні ігри для ПК і багато іншого. Конструювання якісних комп'ютерних ігор входить у клас найскладніших задач розробки ПЗ в цілому.
Комп'ютерні ігри, як і багато інших явищ в цьому світі, можуть нести в собі різне призначення. Коли справа стосується дорослих, то вони самі в змозі вирішити, потрібні їм ці ігри чи ні. Багатьох комп'ютерні ігри просто рятують, тому що допомагають пережити важкий час (особливо під час хвороби) або стрес, коли поруч нікого з близьких людей немає. Але як бути з дітьми? Чи насправді відеоігри їх розвивають, а якщо це так, то скільки часу їм можна приділяти без шкоди для гармонійного розвитку дітей та підлітків?
А як бути з дітьми? Цим питанням займався ряд науковців, педагогів, психологів та інших фахівців. Більшість з них зійшлися на тому, що комп'ютерні ігри не шкідливі для дітей. В деяких випадках, навіть жорстокі ігри бувають корисні для дітей. Багато ігор розвивають стратегічне, творче, нестандартне мислення, а групові ігри вчать взаємодії між людьми. Однак вони забирають час, який дитина могла б витратити на інші заняття. Тому діти, які занадто захоплюються відеоіграми, витрачають на домашні завдання приблизно на 40% менше часу, ніж це було б потрібно, а на читання - на 30% менше часу. Тому справа батьків - регулювати час, який діти проводять за відеоіграми.
Таким чином, відеоігри можуть бути корисними, а можуть і нашкодити. Якщо діти займаються ними в розумних межах, це сприяє, поряд з іншою їхньою діяльністю, розумовому розвитку і допомагає засвоювати нові навички. Перш за все, дитина набуває і вдосконалює навички роботи з комп'ютером, що стане в нагоді йому при подальшому навчанні. Правильно підібрані комп'ютерні ігри розвивають у дітей мислення, увагу і логіку, пам'ять і здатність приймати рішення. Управління грою покращує координацію рухів дитини. Навчальні ігри допомагають підготувати його до школи. Групові відеоігри вчать терпінню і взаємодії в групі. Деякі ігри розвивають творчу уяву.
Отже, якщо неправильно підходити до розробки комп'ютерних ігор, можна натрапити на наслідки руйнівного характеру, тому необхідно спрямовувати цю енергію в потрібне русло. Саме тому однією з головних задач є розробка продукту, який би вміло поєднував корисні якості і водночас ніс у собі розважальний характер.
1. Теоретичний розділ
1.1 Аналіз предметної області
Розробка комп'ютерних ігор дуже широка галузь програмування, тому ігри поділяються на велику кількість різновидів, та більшість з них класифікуються за наступним жанрами:
Екшен - жанр комп'ютерних ігор, в яких успіх гравця залежить, насамперед від його швидкості реакції і здатності швидко приймати тактичні рішення. Дія у таких іграх розвивається дуже динамічно і вимагає напруження уваги і швидкої реакції на події, що відбуваються у грі.
Симулятори - жанр комп'ютерних ігор, які імітують управління яким-небудь процесом, апаратом або транспортним засобом. За допомогою комп'ютерно-механічних симуляторів, абсолютно точно відтворюють інтер'єр кабіни апарату, а це, в свою чергу, дозволяє тренуватися пілотам, космонавтам, машиністам високошвидкісних поїздів та іншим.
Стратегії - ігри, що вимагають планування і вироблення певної стратегії для досягнення якоїсь конкретної мети, наприклад, перемоги у військовій операції. Гравець управляє не одним персонажем, а цілим підрозділом, підприємством або навіть всесвітом. Розрізняють покрокові стратегічні ігри, де гравці по черзі роблять ходи, і кожному гравцеві відводиться необмежений або обмежений (залежно від типу і складності гри) час на свій хід, та стратегічні ігри в реальному часі, в яких всі гравці виконують свої дії одночасно, і хід часу не переривається. Щоб здобути перемогу в таких іграх, потрібно мислити на кілька кроків вперед, випереджаючи суперника. Тому Стратегічні ігри розвивають аналітичне мислення на рівні з грою в шахи.
Пригоди - гра-розповідь у якій керований гравцем герой просувається по сюжету і взаємодіє з ігровим світом за допомогою застосування предметів, спілкування з іншими персонажами і вирішення логічних завдань. Розвивають уяву і фантазію, а також здібність приймати рішення.
Музичні ігри - жанр комп'ютерних ігор, де на перше місце ставиться музична складова, тому допомагають розвивати почуття ритму та слух.
Головоломка - ігри, метою яких є вирішення логічних завдань, що вимагають від гравця задіяння логіки, стратегії та інтуїції.
Метою мого дипломного проекту є розробка програми, яка б несла, насамперед, розважальний характер, але включала б компоненти розвитку зорової пам'яті. Призначена для людей різних вікових категорію.
Було переглянуто і проаналізовано безліч комп'ютерних ігор різних жанрів, але майже не знайшлося тих, які б задовольняли цим умовам.
Тому ця розробка є актуальною, вона допомагає відпочити після важкого робочого дня, водночас розвиває зорову пам'ять, та при цьому не займає забагато часу, тому не відволікає надовго від важливих справ.
1.2 Аналіз технологій та мов програмування
C# і Java - дві найзатребуваніші мови, які сильно вплинули на усе сучасне програмування. Обидві мови із збіркою сміття і компіляцією при виконанні. Обидві мови мають C++ подібний синтаксис. Нижче розглянуті схожості і відмінності цих однотипних мов.
Слід уникати спокуси «вести рахунок», а натомість звернути увагу на причини, по яких було зроблено те або інше рішення.
Обидві мови реалізують принципово однакову модель роботи з динамічними даними: об'єкти створюються динамічно за допомогою конструкції new, середовище виконання відстежує наявність посилань на них, а складальник сміття періодично очищає пам'ять від об'єктів, посилань на які немає.
Для оптимізації збірки сміття специфікації мов і середовищ виконання не містять обмежень на час життя об'єкту після видалення останнього посилання на нього - складальник працює незалежно від виконання програми, тому реальне знищення об'єкту може відбутися у будь-який момент після видалення останнього посилання до завершення роботи програми.
У реальності складальники сміття оптимізують виконання так, щоб забезпечити прийнятну витрату пам'яті при мінімальному уповільненні роботи програм.
І в Java, і в C# є сильні і слабкі посилання на об'єкти. Обидві мови підтримують методи-фіналізатори. Із-за невизначеності моменту видалення об'єкту фіналізатори не можуть використовуватися для звільнення системних ресурсів, зайнятих об'єктом, що вимушує створювати додаткові методи для «очищення» об'єкту і викликати їх явно.
C# містить в стандартній бібліотеці інтерфейс IDisposable і спеціальну конструкцію using, що гарантує своєчасний виклик методу очищення. В Java подібної конструкції немає і очищення об'єктів може бути виконане тільки уручну.
Обидві мови - об'єктно-орієнтовані, з синтаксисом, успадкованим від C++, але значно переробленим. Код і дані можуть описуватися тільки усередині класів.
Інкапсуляція. В Java модифікатор protected в описі, крім доступу з класів-нащадків, вирішує доступ зі всіх класів, що входять в той же пакет, що і клас-власник. В C# для об'єктів, які повинні бути видні в межах збірки (зразковий аналог пакету Java), введений окремий модифікатор internal, а protected зберігає свій початковий сенс, узятий з C++, - доступ тільки з класів-нащадків. Допускається комбінувати internal і protected - тоді вийде область доступу, відповідна protected в Java[1].
Внутрішні класи. Обидві мови дозволяють визначити клас усередині класу. Внутрішні класи Java мають доступ до нестатичних членів батьківського класу, тобто «знають про this»; крім того, усередині методів можна визначати локальні класи, що мають доступ по читанню до локальних змінних, і безіменні (анонімні) локальні класи, які фактично дозволяють створювати екземпляри об'єктів і інтерфейсів, що перекривають методи свого класу. На цьому механізмі в Java-програмах може будуватися обробка подій. Підхід C# більш нагадує C++. Внутрішні класи в C# мають доступ тільки до статичних членів зовнішнього класу, а для доступу до нестатичних членів потрібно явно указувати екземпляр зовнішнього класу. Локальні внутрішні класи в C# не підтримуються, обробка подій в нім не вимагає таких класів, оскільки будується на інших механізмах.
Методи. В обох мовах методи, по аналогії з C++ - функції, визначені в класі. Тіло методу розташовується усередині опису класу. Підтримуються статичні методи, абстрактні методи. У C# також є явна реалізація методів інтерфейсу, що дозволяє класу реалізовувати методи інтерфейсу окремо від власних методів або давати різні реалізації однойменних методів, що належать двом різним інтерфейсам. В C# примітивні типи (byte, int, double, float, bool і ін.) і структури (struct) передаються по значенню (т.з. значущі типи), решта типів передається по посиланню (т.з. посилальні типи). C# також підтримує явний опис передачі параметрів по посиланню (ключові слова ref і out). При використанні out компілятор контролює наявність в методі привласнення значення. У Java параметри методу передаються тільки по значенню, але оскільки для екземплярів класів передається посилання, ніщо не заважає змінити в методі екземпляр, переданий через параметр.
Примітивні типи. Обидві мови підтримують ідею примітивних типів (які в C# є підмножиною типів-значень - value types ), і обидва для трансляції примітивних типів в об'єктні забезпечують їх автоматичне згортання в об'єкти (boxing) і розгортання (unboxing) (у Java - починаючи з версії 1.5).
У C# є більше примітивних типів, чим у Java, за рахунок беззнакових цілих типів (unsigned), що є парно до всіх знакових, і спеціального типа decimal для високоточних обчислень з фіксованою комою (у Java для цього служать класи java.math.BigInteger і java.math.BigDecimal).
В Java відмовилися від більшості беззнакових типів ради спрощення мови. Одна з відомих проблем з такими типами - складність визначення типу результату арифметичних операцій над двома аргументами, один з яких є знаковим, інший - беззнаковим.
Перевантаження операцій. C# включає перевантаження операцій і приведення типів, що задається користувачем. C# їх підтримує з деякими обмеженнями, що забезпечують логічну цілісність, що при обережному використанні допомагає зробити код лаконічнішим і читаним. Java не включає перевантаження операцій щоб уникнути зловживань нею і для підтримки простоти мови.
Умовна компіляція. C#, на відміну від Java, підтримує умовну компіляцію з використанням директив препроцесора. У нім також є атрибут Conditional, що означає, що вказаний метод викликається тільки тоді, коли визначена дана константа компіляції. Таким шляхом можна вставляти в код, наприклад, перевірки допущень (assertion checks), які працюватимуть тільки в налагоджувальній версії, коли визначена константа DEBUG. У стандартній бібліотеці .NET такий метод Debug.Assert(). Java версій 1.4 і вище включає в мову можливість перевірки допущень, що включається під час виконання. Крім того, конструкції if з константними умовами можуть розгортатися на етапі компіляції.
Таким чином ми бачимо, що C # і Java є потужними мовами, а також потужними платформами (.NET і Java). Кожна з яких підходить під свій тип завдання.
1.3 Обґрунтування вибору технологій та мов програмування
Разом з випуском платформи .NET компанія Microsoft представила мову, що ідеально підходить для нової платформи - C# (читається "сі шарп"). На мій погляд будь-який .NET програміст повинен знати C#, як мову спеціально створену для роботи з цієї платформою. Тим більше, що в ньому багато хто знайде улюблені риси. Він близький і Delphi, і C ++, і Java програмістам.
C# - об'єктно-орієнтована мова програмування. Розроблена в 1998-2001 роках групою інженерів під керівництвом Андерса Хейлсберга в компанії Microsoft, як мова розробки додатків для платформи Microsoft .NET Framework. Визначена стандартом ISO / IEC 23270[2].
У мові для роботи з подіями і зворотними викликами представлена об'єктно-орієнтована концепція і безпечне, з точки зору системи типів, посилання на функцію - "делегат". Саме ця концепція дозволяє описувати події C# компонента без зворотних інтерфейсів і додаткових зусиль, досить використовувати ключове слово Event. Індексатори і властивості органічно доповнюють події до створення описуваного сигнатурою компонента.
C# має C стиль синтаксису (для керуючих конструкцій, блоків коду, описи сигнатури методів та ін.), багато спільного з Java (відсутність множинного спадкоємства і шаблонів, наявність збирача сміття) і Дельфі (орієнтованість на створення компонент), в той же час має і свій колорит.
При створенні мови в основу дизайну лягла легкість використання, домінуюча над потужністю мови і швидкістю виконання. Звідси і збирач сміття з керованими об'єктними посиланнями, який автоматично звільняє за вас пам'ять, відбираючи при цьому процесорний час. Ви також отримуєте безпеку роботи з типами, а це на думку багатьох є другим найважливішим чинником уникнення помилок[3].
Цілісність концепції видна, скажімо, в реалізації упакування / розпакування. Це дозволяє розглядати всі типи (навіть примітивні) як об'єкти, що вирішує багато проблем дизайну додатків.
При створенні мови розглядалася не тільки простота написання додатків, але і їх підтримка - у зв'язку з чим в мову включили підтримку XML коментарів і контролю версій. Справжній подарунок для програмістів.
У C# представлена концепція просторів імен, аналогічна пакетам в Java. Це дозволяє ієрархічно структурувати вашу систему типів, роблячи код набагато більш зрозумілим і дозволяючи уникнути проблем з ім'ям. Ви можете розглядати простори імен як директорії, а мовні типи як файли в цих директоріях.
Робота з атрибутам дозволяє використовувати COM, COM + і DLL в C# додатках, що працюють в середовищі .NET. Перерахування дозволяють убезпечити роботу з перерахованими типами.
Реалізація структур як типів, робота з якими йде за значенням, укупі з можливістю використовувати не тільки вкладені масиви (як в Java), але і багатовимірні дозволяє оптимізувати продуктивність додатків.
Для розробки програми, окрім платформи .NET, використовувалась також середовище розробки ігор Unity3d. Вибір даної мови програмування C# для проекту був обумовлений, в першу чергу, вибором цього середовища.
Unity - це потужний движок з безліччю інструментів, які можуть бути використані для реалізації ваших потреб. Редактор інтуїтивний та легко настроюється, надає більше свободи в робочому процесі.
Переваги Unity:
- редактор Unity має простий drag & drop інтерфейс, який легко налаштовувати, з різних вікон, завдяки цьому можна виконувати налагодження гри прямо в редакторі;
- можливостями для скриптинга - на відміну від UDK, в якому писати можна тільки на вбудованій мові, в Юніті доступні аж три мови: JavaScript, C#, і діалект пітона під назвою Boo. Тому швидкість виконання скриптів в UDK менше в декілька разів;
- кроссплатформенность - як вже згадувалося раніше, підтримуються Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 і XBox 360. А також є можливість встанови веб-плагін. Програми, створені за допомогою unity, підтримують directx і opengl;
- сучасний рівень графіки. В Unity є deferred освітлення, вбудований редактор шейдеров, стандартний набір постпроцессінгових ефектів, SSAO - весь набір інструментів для створення повноцінного проекту;
- розрахунки фізики виконує фізичний движок physx від nvidia;
- проект в Unity ділиться на сцені (рівні) - окремі файли, що містять свої ігрові світи зі своїм набором об'єктів, сценаріїв, и налаштуваннями. Об'єкти містять набори компонентів, з якими і взаємодіють скрипти. Також у об'єктів є назва (в unity допускається наявність двох і більше об'єктів з однаковими іменами). У будь-якого об'єкта на сцені обов'язково присутній компонент transform - він зберігає в собі координати місця розташування, повороту, і розмірів об'єкта по всіх трьох осях.
Всі вище приведені особливості та можливості Unity є гарантом можливості створення якісного, яскравого програмного продукту на мові C#. Тобто вибір мови програмування та технології розробки спирався на аналіз функціоналу гри.
логічний гра програмування алгоритм
2. Проектний розділ
2.1 Алгоритм функціонування програми
Розглянемо роботу програмного забезпечення. Програма “Light Maze” розроблена на мові програмування С# з використанням платформи Unity3d та призначена для людей різних вікових категорій. Може використовуватись студентами для розвитку зорової пам'яті у вільний від навчання час.
Після запуску програми засобами бібліотеки unity.engine створюється вікно та графічна основа. Гравець опиняється в головному меню, завдяки якому він може здійснити необхідні налаштування або перейти безпосередньо до гри. Після проходження кожного рівня дані рекордів оновлюються в спеціальному файлі на жорсткому диску. Після завершення виконання програми відбувається очищення оперативної пам'яті, закриття вікна та видалення останніх даних «сміття» з ОЗП. Детальна діаграма прецедентів представлена на рисунку А.1 додатку А.
Програма складається з основних класів, які відображені на рисунку А.2 додатку А:
- MonoBehaviour - головний клас від якого успадковуються всі скрипти;
- Camera2DFollow - клас, який створює динамічне пересування камери за гравцем. Завдяки налаштуванню певних параметрів визначається рівень затримки та ковзання камери, що в свою чергу добавляє більш реалістичного почуття. Містить наступні функції:
а) Start - відповідає за ініціалізацію камери та налаштування її на гравцеві;
б) Update - функція, що викликається кожний кадр. Дозволяє пересуватися за гравцем;
- MainMenu_GM - клас ігрового менеджера головного меню (рисунок А.3 додатку А). Відповідає за графічне наповнення меню, а також дозволяє проводити налаштування гучності музики під час гри. Містить наступні функції:
а) Start - відповідає за ініціалізацію головного меню;
б) Update - повідомляє якщо гравець вийшов з гри;
в) OnGUI - головна функція, яка відображає основні GUI-елементи та дозволяє керувати ними;
- ChoiseLV_GM - клас для реалізації та контролю меню вибору рівня (рисунок А.3 додатку А). Графічна частина дозволяє забезпечити зручне для користувача графічне меню, а функціональна відповідає за розблокування наступних рівнів та взаємодію з файлом рекордів. Містить наступні функції:
а) Start - відповідає за ініціалізацію меню вибору рівня. Діаграма діяльності представлена на рисунку А.4 додатку А;
б) UnlockNextLevel - дозволяє розблокувати наступний рівень;
в) SaveInfoLevelInFile - записує до бінарного файлу такі показники як відкриті рівні, кількість зібраних зірок та рекордний час для кожного рівня;
г) ReadInfoLevelFromFile - зчитує з бінарного файлу такі показники як відкриті рівні, кількість зібраних зірок та рекордний час для кожного рівня;
д) OnGUI - головна функція, яка відображає основні GUI-елементи та дозволяє керувати ними;
- GenerationLevel - клас, який використовується при розробці нових рівнів лабіринту. Генерує новий випадковий лабіринт завдяки алгоритму Еллєра та заданому розміру. Містить наступні функції:
а) Start - відповідає за ініціалізацію алгоритму Еллєра;
б) CellCoordinate - дозволяє визначити координати клітинки;
в) WallCoordinate - дозволяє визначити координати стінка;
г) GenerationMap - основна функція, завдяки якій відбувається генерація лабіринту;
д) CreateWall - добавляє нову стінку в лабіринті;
- ConnerInsert - клас, який дозволяє графічно вдосконалити рівні. Містить наступні функції:
а) Start - відповідає за ініціалізацію скрипта та визначає розміри лабіринту;
б) InsertCorner - розставляє куточки;
- FinishControll - клас реалізації фінішу. Забезпечує керування основними функціями під час проходження рівня. Дозволяє відстежувати статистику та оновлювати необхідний файл після завершення рівня. Містить наступні функції:
а) Start - відповідає за ініціалізацію скрипта та починає відстежувати гравця;
б) Update - рахує час проходження рівня;
в) OnGUI - дозволяє відображати статистику проходження;
г) OnTriggerEnter2D - повідомляє, якщо рівень пройдений;
д) timeToStr - дозволяє конвертувати час проходження для зручного відображення;
- GameControll - клас, який забезпечує керування основними функціями під час проходження рівня. Дозволяє відстежувати статистику та обновляти необхідний файл. Містить наступні функції:
а) Start - відповідає за ініціалізацію скрипта;
б) Update - повертає до меню вибору рівня при натисненні відповідної кнопки;
в) FinishLevel - обробляє завершення рівня та забезпечує перехід до наступного;
- PlayerController - дуже важливий клас, який відповідає за гравця. Дозволяє рухатись та взаємодіяти з предметами. Забезпечує необхідними графічними ефектами. Реалізує смерть та перезапуск рівня. Містить наступні функції:
а) Start - відповідає за ініціалізацію гравця;
б) OnCollisionEnter2D - дозволяє керувати зіткненнями та повідомляє при зборі зірки;
в) Update - забезпечує рух гравця та реалізацію смерті;
г) DeadPlayer - створює анімацію смерті;
- Cell - клас для опису одного осередку;
- Row - клас реалізації строки осередків.
Робота програми базується на окремих вагомих компонентах “сценах”. Кожна має свій унікальний індекс і може включати своє ресурсне наповнення та один або більше файлів програмного коду обробки цих ресурсів. Перемикання між сценами залежить від етапу роботи ПЗ та від дій користувача.
У грі присутні наступні сцени:
- відображення головного меню передбачає запуск початкової сцени старту гри “0”, яка базується на найпростіших елементах GUI. Обробка сцени виконується засобами вбудованого класу MMGM. Взаємодія між користувачем і сценою “0” відбувається за допомогою миші (рисунок А.3 додатку А);
- якщо користувач обирає пункт меню “play”, то запускається сцена “1” вибору рівня гри. Після вибору i-го рівня відбувається завантаження сцени “i”. За реалізацію даного процесу відповідає клас CHGM. В разі вибору пункту “back” відбувається повернення до головного меню (рисунок А.3 додатку А);
- сцени, починаючи з “2”, являють собою безпосередньо ігрові рівні. Після проходження і-го рівня запускається сцена “1” вибору рівня гри. Користувач може завантажити наступний рівень.
Вихід з гри відбувається при натисненні пункту головного меню “exit”.
Кожен рівень (ігрова сцена) також поділяється на окремі компоненти - префаби, в той час, як кожен префаб може мати свій файл коду обробки його властивостей (текстура, положення, орієнтація, розміри, тощо). Рівень включає такі основні префаби:
- лабіринт - префаб, який складається з інших префабів в залежності від розмірів та складності рівня. Основними складовими префабами є стіни. Лабіринт не має елементів освітлення. Для оптимізації програмного забезпечення використовується клас оброки - combinechildren;
- player - ігровий компонент, який переміщується по лабіринту при натисканні регулюючих клавіш клавіатури. Player не може проходити через колайдери стін. Завершення рівня вважається, коли player досягнув фінішної точки лабіринту (вступив в взаємодію з фінішним префабом). Клас обробки - playercontroller, відповідає за переміщення player по сцені;
- фініш - ігровий префаб, що знаходиться в точці фінішу, являється тригером-ідентифікатором взаємодії. Клас обробки - fnishcontroll, відповідає за вихід з рівня;
- стіни - головні префаби, які являються колайдерами об'єктів, слугують основними межами лабіринту;
- камера - головний ігровий префаб, що відповідає за відображення подій сцени, пропускаючи дані через сукупність власних параметрів. Клас обробки -camera2dfollow, відповідає за динамічне переміщення камери в слід за player;
- світло - сукупність префабів, в залежності від бажаних ефектів, слугують для освітлення інших графічних префабів;
- динамічні елементи - окремі префаби, з якими може взаємодіяти гравець. Наприклад, телепорт або кнопка, яка відкриває двері.
Серед найбільш важливих та складних функцій потрібно відзначити функцію «GenerationMap», яка дозволяє створювати випадковий лабіринт, який має тільки один можливий шлях між будь-якими двома комірками. Вона не використовується при виконанні програми користувачем, але є дуже необхідною для попереднього створення рівнів лабіринту.
За основу роботи функції конструктора випадкової генерації рівнів був взятий алгоритм Еллєра.
Сам по собі алгоритм дуже швидкий і використовує пам'ять ефективніше, ніж інші популярні алгоритми (такі як Prim і Kruskal), вимагаючи пам'яті пропорційно числу рядків. Це дозволяє створювати лабіринти великого розміру при обмежених розмірах пам'яті. Для його роботи задаються такі основні параметри, як кількість комірок по вертикалі та горизонталі, які визнають розміри майбутнього рівня.
Загальна ідея алгоритму полягає в порядкової генерації, де між кожними двома клітинами рядка за певних умов (щоб не було циклів і недоступних клітин) випадковим чином виникає стінка. При цьому наприкінці всі клітини виявляться «в одній множині, що означатиме, що між будь-якими двома клітинами існує шлях.
Таким чином, розглянувши роботу даного програмного забезпечення, можна побачити дуже складну структуру, яка складається не тільки із класів і об'єктів, але й з окремих сцен і префабів, які контролюються платформою Unity3D.
Правильна структуризація програми дозволяє без зайвих зусиль керувати всіма необхідними елементами: функціональною складовою, світлом, графічними та звуковими ефектами.
Поділ на сцени дає можливість в будь-який час розширити та доповнити гру, не вносячи кардинальних змін та не ламаючи дійсні напрацювання, а також дозволяє окремо їх тестувати.
2.2 Розробка та компонування елементів на платформі UTINY3D
Програма “Light Maze” розроблена на мові програмування С# з безпосереднім використанням платформи Unity3d, тому слід детальніше розглянути роботу з платформою.
Головне вікно редактора складається з декількох вкладок, які називаються “Види” (Views). У Unity є декілька типів основных видів, кожен з яких призначений для конкретних цілей, серед яких знаходяться проект, редактор сцен, ієрархія, список інструментів та інспектор.
Рисунок 2.1 - Вікно редактора Unity
Проект відображає всі елементи, які використовуються під час розробки гри, а саме анімації, моделі, звуки, текстури, сцени, код та інші матеріали. Unity не примушує до конкретної організації ресурсів проекту, але для “Light Maze” було вибрано розподілення ресурсів по їх типу. Були відокремлені такі групи ресурсів, як сцени, скрипти, спрайти (зображення), префаби, анімації, звуки, GUI (елементи графічного інтерфейсу ).
Редактор сцени. Сцени містять згруповані об'єкти гри. Можна вважати кожен файл сцени окремим ігровим рівнем. У кожній сцені можна розмістити об'єкти оточення, загородження, декорації, по шматочках створюючи дизайн і саму гру. В моїй грі було спроектовано 14 сцен: одна для головного меню, одна для меню вибору рівня та ще дванадцять для окремих рівнів лабіринту. Розбиття гри на окремі сцени дозволило значно ефективніше розподіляти оперативну пам'ять та навантаження на процесор, а ще працювати над кожною сценою окремо.
Ієрархія відображає всі об'єкти на активній сцені. Завдяки цій панелі можна зручно керувати об'єктами на сцені та встановлювати взаємозв'язок між ними. Для цього необхідно перемістити в меню ієрархії об'єкт до іншого, і він причепиться. У підсумку вийде своєрідна папка. В “Light Maze” використовується строга ієрархія об'єктів, яка допомагає не тільки керувати об'єктами, але й оптимізувати програмне забезпечення. Наприклад, стіни та підлога лабіринту складається з однакових, часто повторюваних, об'єктів, тому я застосував клас оброки combinechildren, який дозволяє групувати об'єкти. Таким чином значно знизилась кількість звернень до CPU та GPU.
Список інструментів закріплений у верхній частині редактора. Він допомагає використовувати основні функції редактора. Наприклад, там можна переключатись між 2D та 3D режимами або запускати сцени. Під час запуску сцени моделюється ігровий варіант даної сцени, що дозволяє все перевірити від імені гравця. Під час розробки гри кожна сцена перевірялась багато разів для тестування окремих елементів або сцен в цілому. Це дозволило виправити недоліки та знайти необхідний баланс між складністю і цікавістю.
Інспектор відображає всі характеристики вибраного об'єкта. За допомогою нього можна додати анімації, скрипти, звуки та інше на конкретні об'єкти. Там можна використовувати такі інструменти як переміщення камери, переміщення об'єкта, розтяжка, розворот об'єкта. Це все дозволило створити окремі об'єкти, які відрізняються своїми характеристиками і відображеннями, та при цьому мають власний код обробки. Завдяки об'єднанню об'єктів у префаби, з'явилося можливість до багаторазового їх використання. Подібні особливості були дуже корисні при створенні кнопок і дверей, телепортів, пил, шипів та багато іншого.
Таким чином добре видно усі переваги платформи Unity3D. Завдяки правильному використанню усіх функціональних можливостей редактора мною була розроблена гра “Light Maze”. Чітка структура та ієрархія програми дозволяють дуже зручно працювати з існуючим проектом та легко вносити необхідні зміни.
3. Бізнес-план
3.1 Резюме
У даній дипломній роботі розроблена гра «Light Maze» з компонентами розвитку зорової пам'яті. Призначена для людей різних вікових категорій. Може використовуватись студентами для розвитку зорової пам'яті у вільний від навчання час.
Швидкість виконання програми залежить від об'єму інформації та від технічних характеристик комп'ютера, на якому буде використовуватися програма.
Даний програмний продукт не є збитковим, так як він має достатньо низьку собівартість, порівняно з конкурентами, тому при реалізації приносить відносно високий об'єм прибутку.
Даний програмний продукт буде розповсюджуватися своїми силами та завдяки рекламі.
Кількість продаж представлено по рокам:
1 рік - 450 екземплярів;
2 рік - 400 екземплярів;
Взагалі, кількість програмних продуктів, реалізованих за три роки буде складати 850 шт.
Доходи від реалізації даного програмного продукту без ПДВ складатимуть:
за перший рік - 67500 грн., за другий рік - 60000 грн.
Усього за два роки реалізації доход буде складати - 127500 грн.
Для створення цього програмного продукту необхідно інвестування у вигляді кредиту на суму 18000 грн., який можна буде повернути вже після першого року , враховуючи 23% річних.
3.2 Оцінка ринку збуту
Даний програмний продукт буде продаватися та рекламуватися в тій області, на яку від буде орієнтований. Товар буде представлений у декількох фірмах - з метою оцінки та в мережі Internet.
Мій програмний продукт дешевше ніж аналогічні ПП конкурентів, а також має достатньо високу систему захисту від копіювання, що дозволяє підняти мій ПП на рівень вище.
Основним місцем розповсюдження програмного продукту будуть Харків і вся Україна в цілому, але також не виключено розповсюдження в містах СНГ, якщо об'єми продажу досягатимуть такого масштабу.
Таблиця 3.1. - Прогноз об'ємів продажу програмного продукту
Періоди |
Споживачі |
Кількість |
|
Для першого року реалізації |
|||
Січень |
Студенти та люди різних вікових категорій. |
25 |
|
Лютий |
50 |
||
Березень |
75 |
||
Квітень |
75 |
||
Травень |
50 |
||
Червень |
50 |
||
Липень |
25 |
||
Серпень |
25 |
||
Вересень |
25 |
||
Жовтень |
20 |
||
Листопад |
10 |
||
Грудень |
20 |
||
Усього за 1-й рік |
450 |
||
Для другого року реалізації |
|||
І квартал |
Студенти та люди різних вікових категорій. |
75 |
|
ІІ квартал |
125 |
||
ІІІ квартал |
100 |
||
ІV квартал |
100 |
||
Усього за 2-й рік |
400 |
3.3 Аналіз конкуренції
У результаті обстеження товарного ринку були виявлені чотири конкурента розробленого програмного продукту та був здійснений аналіз показників їх діяльності.
Проведено ранжирування фірм-конкурентів за результатами аналізу їх позицій на ринку.
Результати ранжирування приведено в таблиці 3.2
Таблиця 3.2 - Аналіз фірм - конкурентів
Ключові фактори успіху |
Результати ранжирування |
|||||
1 |
2 |
3 |
4 |
5 |
||
1 Функціональність |
Х3 |
Х4 |
Х2 |
0 |
Х1 |
|
2 Продуктивність |
Х2 |
Х1 |
Х4 |
Х3 |
0 |
|
3 Об'єм пам'яті |
Х1 |
Х2 |
Х3 |
0 |
Х4 |
|
4 Собівартість |
Х1 |
Х4 |
0 |
Х3 |
Х2 |
|
5 Ціна |
Х2 |
0 |
Х4 |
Х1 |
Х3 |
Тут Х1, Х2, Х3, Х4 - Фірми конкуренти;
0 - розробник цього програмного продукту
Х1 = 1 + 3 + 1 + 4 + 1 = 13б.;
Х2 = 2 + 2 + 5 + 1 + 4 = 11б.;
Х3 = 3 + 4 + 2 + 5 + 5 = 17б.;
Х4 = 5 + 1 + 3 + 2 + 3 = 15б.;
0 = 4 + 5 + 4 + 3 + 2 = 18б.
На підставі даних інформаційно-патентного пошуку результатів розробки розділу «Оцінка ринку збуту» (таблиця 3.1) та даних таблиці 3.2 визначаємо, що головним конкурентом є фірма Х3, яка має найбільш сильну позицію серед фірм-конкурентів на ринку аналогів розробляємого програмного продукту.
Наступний крок в оцінці програмного продукту конкурентів складається з виявлення технічних та економічних показників, які впливають на успіх програмного продукту на ринку.
Перелік показників вносимо в таблицю 3.3.
Таблиця 3.3 - Матриця рангів технічних та економічних показників
Параметри |
Од. вим. |
Значення параметру |
Вага параметру aj, bj |
Одиничний параметричний показ., qj |
Одиничний параметричний індекс, Jт , Jе |
||
Новий ПП, Pjн |
Аналог ПП, Pjа |
||||||
Технічні: |
|||||||
Функціональність |
Шт |
8 |
5 |
0,3 |
1,6 |
0,48 |
|
Продуктивність |
С |
23 |
24 |
0,4 |
1,04 |
0,416 |
|
Об'єм пам'яті |
Мб |
70 |
75 |
0,3 |
1,07 |
0,321 |
|
Всього |
1 |
3,71 |
1,217 |
||||
Економічні: |
|||||||
Ціна |
Грн |
20971 |
18750 |
0,5 |
0,89 |
0,455 |
|
Собівартість |
Грн |
150 |
130 |
0,5 |
0,86 |
0,43 |
|
Всього |
1 |
1,75 |
0,885 |
Таблиця розраховується таким чином:
Відбір технічних та економічних показників, які належить оцінювати називають ключовими факторами успіху. Перелік показників заносимо у стовпчик 1 таблиці.
Далі заповнюються одиниці виміру та значення параметрів на базі експертних оцінок.
Дані (стовпчик 5) - вага j- го параметру, визначаються експертним шляхом.
Для технічних параметрів (3.1)
; , (3.1)
Для економічних параметрів (3.2)
; , (3.2)
Одиничні параметричні показники gj по кожному j-му параметру (як технічних, так економічних) розраховують за наступними формулами.
Якщо (3.3)
, (3.3)
Якщо (3.4)
, (3.4)
де PHJ, Pja - величина j-го параметру нового виробу та виробу конкуруючого (аналога) відповідно
Розрахунок одиничних параметричних індексів іtj ;іej (стовпчик 6) здійснюється наступним чином:
- для технічних параметрів (3.5)
, (3.5)
- для економічних параметрів (3.6)
, (3.6)
Зведений параметричний індекс обчислюється за формулою:
- для технічних параметрів (3.7)
, (3.7)
- для економічних параметрів (3.8)
, (3.8)
Розрахунок інтегрального показника відносної конкурентоспроможності (К) нового виробу по відношенню до виробу - конкурента (аналога) обчислюється за формулою (3.9)
, (3.9)
К = 1,217/0,885=1,42
якщо К > 1 - новий вибір перевищує вибір - конкурента;
К < 1 - поступається;
К = 1 - знаходиться на одному рівні.
К > 1, отже пропонує новий програмний продукт переважає програмний продукт конкурентів.
За розрахунками конкурентоспроможності, виявлено, що даний програмний продукт конкурентоздатний.
3.4 Стратегія маркетингу
Для успішного впровадження програмного продукту на ринок та досягнення запланованого об'єму продаж необхідно щільно спланувати рекламну компанію, яка дала б можливість усім потенціальним користувачам дізнатись про існування розробленого мною програмного продукту. Так як коло потенціальних покупців може бути достатньо широке, то доцільно організувати рекламу програмного продукту в засобах масової інформації (радіо, телебачення), а також замовляти інші достатньо дорогі види реклами[4].
Але для початку рекламна компанія обмежиться розсилкою потенціальним клієнтам представницьких рекламно-інформаційних листів. У них буде міститься повна інформація по даному програмному продукту, що доволі зручно і вигідно. Також в листах вказується адреса, де можна придбати програмний продукт і внести свої пропозиції. Деяким користувачам разом з листом буде запропонований й сам програмний продукт або його демо-версія для візуального ознайомлення.
Таблиця 3.4. - Затрачений час на виготовлення ПП
Найменування операції |
Час в нормах годин |
|
1 Постановка задачі |
15 |
|
2 Проектування |
90 |
|
3 Розробка програми на ЕОМ |
135 |
|
4 Налагодження та тестування програми |
30 |
|
5 Впровадження |
30 |
|
Всього: |
300 |
Трудовитрати, які потребують для розробки програмного продукту складають 300 годин.
Розрахуємо час роботи на машині
15 + 90 = 105 годин.
Розрахуємо немашинний час
135+30+30 = 295 годин.
Розрахуємо вартість машинного часу (електроенергія)
Велектр.ен. = машинний час* потужність машини* тариф, (3.10)
Велектр.ен.= 195 годин * 0,05 КВтчас* 1,022 грн. = 10 грн.
Розрахуємо витрати на матеріали.
Таблиця 3.5 - Витрати на матеріали
Матеріали |
Кількість, шт. |
Ціна (грн.) |
Вартість (грн.) |
|
Упаковка паперу |
1 |
20,00 |
20,00 |
|
Ручка |
2 |
2,00 |
4,00 |
|
Олівець |
2 |
6,00 |
12,00 |
|
Фарба для принтера |
10,00 |
|||
Усього: |
46,00 |
Розрахуємо заробітну плату розробника сайту. Витрачений час на розробку сайту - 300 годин, тариф за годину роботи - 30 грн
300 годин * 30 грн. = 9000 грн.
Додаткова заробітна плата (20% від основної ЗП).
9000 грн. * 0,2 = 1800 грн.
Розрахуємо калькуляцію собівартості програмного продукту.
Таблиця 3.6 - Калькуляцію собівартості ПП
Найменування |
Витрати |
|
Матеріали |
46 |
|
Електроенергія (на технічні потреби) |
10 |
|
Основна заробітна плата |
9000 |
|
Додаткова заробітна плата |
1800 |
|
Відрахування на соціальні потреби |
4104 |
|
Накладні витрати |
5400 |
|
Виробнича собівартість |
20360 |
|
Невиробничі витрати |
611 |
|
Всього: |
20971 |
Відрахування на соціальні потреби (38% від основної та додаткової заробітної плати)
(9000 грн. + 1800 грн.) * 0,38 = 4104 грн.
Накладні витрати (80% від ЗП)
(9000 грн. +1800 грн.) * 0,5 =5400 грн.
Невиробничі витрати (5% від виробничих)
5400 грн. * 0,05 = 270 грн.
Собівартість програмного продукту
С/в = 20971 грн. + 270 = 21241 грн.
Прибуток (20% від С/в)
П= 21241 * 0,2 = 4249 грн.
Розрахуємо ціну програмного продукту
21241 грн. + 4249 грн. = 25490 грн.
Розрахуємо вартість на 1 екземпляр тиражу.
Таблиця 3.7 - Витрати на матеріали на 1 шт.
Матеріал |
Кількість, шт. |
Вартість за одиницю, грн. |
Витрати, грн. |
|
Диск |
1 |
6 |
6 |
|
Коробка |
1 |
7 |
7 |
|
Обгортка |
1 |
5 |
5 |
|
Документація |
1 |
13 |
13 |
|
Всього |
31 |
Матеріальні витрати складають 31 грн.
Витрати на електроенергію
Вел. = 0,16 н/г * 0,2 КВт * 1,02 грн. = 0,03 грн.
Основна з/п
0,16 н/г * 30 грн. = 4,8 грн.
Додаткова з/п
4,8 грн. * 0,16 = 0,786 грн.
Соціальні відрахування
(4,8 грн. + 0,786 грн.) * 038 = 2,12 грн.
Накладні витати
(4,8 грн. + 0,786 грн.) * 0,5 = 2,9 грн.
Загальна сума складає
31 + 0,03 + 4,8 + 0,786 + 2,12 + 2,9 + = 41,6 грн.
Невиробничі витрати
41,6 грн. * 0,3 = 12,48 грн.
Повна собівартість
41,6 грн. + 12,48 грн. = 54,08 грн.
Знайдемо мінімальну ціну одного тиражу
Цmin = С/в + 1,2 * П = 67,1 грн.
Знайдемо максимальну ціну програмного продукту
Цmax = 21241 грн. +18000 грн. + 4249 грн. = 43490 грн.
Виходячи з ринкових цін на аналогічні продукти, приймаємо остаточну ціну нового продукту 150 грн.
3.5 Фінансовий план
Даний розділ містить узагальнення і систематизовані матеріали попередніх розділів.
За рахунок раніше визначених витрат на розробку і реалізацію програмного продукту складені прогнози руху готівкових коштів на наступні три роки.
Таблиця 3.8 - Доходів та витрати
Показники |
Витрати до початку реалізації |
1 рік |
2 рік |
Всього |
|
Обсяг продаж ПП |
450 |
400 |
850 |
||
Доходи від реалізації |
67500 |
60000 |
127500 |
||
Постійні витрати |
|||||
Матеріали |
46 |
46 |
|||
Електроенергія |
10 |
10 |
|||
Основа зарплата |
9000 |
9000 |
|||
Додаткова зарплата |
1800 |
1800 |
|||
Соціальні відрахування |
4104 |
4104 |
|||
Накладні витрати |
5400 |
5400 |
|||
Кредит |
18000 |
18000 |
|||
Відсоток за кредит |
4140 |
4140 |
|||
Всього постійних витрат |
38360 |
4140 |
42500 |
||
Змінні витрати |
|||||
Тиражування |
18720 |
16640 |
35360 |
||
Реалізація |
2500 |
2500 |
5000 |
||
Всього змінних витрат |
21220 |
19140 |
40360 |
||
Всього витрат |
38360 |
21220 |
23280 |
82860 |
|
Прибуток |
-38360 |
46280 |
36720 |
44640 |
|
Податок на прибуток |
7868 |
6243 |
14111 |
||
Чистий прибуток |
-38360 |
38412 |
30477 |
30529 |
Будуємо графік беззбитковості та розраховуємо точку беззбитковості программного продукту за формулою (3.1)
, (3.11)
де - постійні загальні витрати;
Ц - ціна програмного продукту;
- змінні витрати за одиницю продукції
= 414 шт.
Після продажу 414 копій програмного продукту наступає період, коли з'являється чистий прибуток.
Рисунок 3.1 - Графік беззбитковості
4. Охорона праці
4.1 Загальні питання охорони праці
Завдяки досягненням сучасних технологій більшість канцелярської роботи в офісі здійснюється з використанням комп'ютерної техніки. Якщо згадати, що в середньому робочий день офісного працівника складає 7-8 годин (як передбачено нормами Кодексу законів про працю України) при п'яти або шестиденному робочому тижні, можна зробити висновок, наскільки багато часу доводиться проводити віч-на-віч з комп'ютером.
Перелік нормативно-правових актів, що так чи інакше регулюють питання щодо безпеки роботи працівників з використанням комп'ютерів, а також хто і в якому обсягу має відповідати за порушення даних вимог є досить широким. Так, обов'язки роботодавця щодо забезпечення працівникам комфортних та безпечних умов для здійснення роботи, а також права працівників на такі умови передбачено частиною 2 ст. 2 та ч. 1 ст. 21 КЗпП, а також ст. 13 Закону України «Про охорону праці»[5].
Даний закон визначає основні положення щодо реалізації конституційного права працівників на охорону їх життя і здоров'я у процесі трудової діяльності, на належні, безпечні і здорові умови праці, регулює за участю відповідних органів державної влади відносини між роботодавцем і працівником з питань безпеки, гігієни праці та виробничого середовища і встановлює єдиний порядок організації охорони праці в Україні.
Більшість актів у даній сфері становлять акти підзаконного рівня, а саме, численні правила, інструкції, державні санітарні правила і норми (ДСанПІН)тощо, якими врегульовуються окремі моменти щодо власне конструкції електронно-обчислювальної техніки, особливостей облаштування приміщень для роботи з нею та низки інших подібних вимог.
4.2 Гігієна праці та виробнича санітарія
Гігієнічні вимоги до параметрів виробничого середовища включають вимоги до параметрів мікроклімату, освітлення, шуму і вібрації, рівнів електромагнітного та іонізуючого випромінювання.
У виробничих приміщеннях на робочих місцях з ВДТ забезпечуються оптимальні значення параметрів мікроклімату: температури, відносної вологості й рухливості повітря ГОСТ 12.1.005-88, СН 4088-86.
Таблиця 4.1 - Параметри метеорологічних умов виробничого середовища
Параметр |
Фактичне значення |
Значення по СН-245-71 чи державному стандарту |
Висновок |
|
Шум, дБ |
55 |
38-86 |
В межах допустимих значень |
|
Освітленість (загальна), Лк |
450-460 |
300-500 |
В межах допустимих значень |
|
Значення К.П.О., % |
5 |
1,5-100 |
В межах допустимих значень |
|
Загазованість (концентрація і вид газу), мг/м3 |
Азот 5 |
Азот 5 |
В межах допустимих значень |
|
Аміак 10 |
Аміак 20 |
|||
Озон 0,08 |
Озон 0,1-0,2 |
|||
Свинець 0,12 |
Свинець 0,01 |
|||
Температура повітря, °С |
В межах допустимих значень |
Подобные документы
Аналіз технологій розробки систем моніторингу і управління та різноманітності мов програмування. Створення проекту структури Інтернет-магазину, розробка бази даних, UML-діаграми та алгоритму виконання функцій додатку. Результати тестування програми.
дипломная работа [1,6 M], добавлен 08.06.2015Проектування бази даних (БД). Проектування логічної моделі БД. Реалізація БД та створення таблиць. Встановлення зв’язків, вибір мови та середовища програмування. Опис функціональних елементів та реалізація програми. Опис та тестовий приклад програми.
дипломная работа [1,6 M], добавлен 07.01.2017Основи використання інформаційних технологій у галузі освіти. Створення електронного щоденника мовою програмування. Вибір середовища розробки. Установка, налаштування та проектування шаблону програми. Наповнення сайту інформацією та створення бази даних.
магистерская работа [3,9 M], добавлен 25.02.2014Створення і реалізація в СУБД MS Access бази даних "Internet-ресурси з інформаційних технологій". Опис предметної області, інфологічне проектування. Побудова ER-діаграми. Даталогічне і фізичне проектування інформаційних систем. Опис роботи програми.
курсовая работа [8,2 M], добавлен 30.05.2013Дослідження етапів розробки програмної реалізації криптографічного алгоритму RC5. Опис об'єкту, що потребує захисту: операційне середовище, тип програмного забезпечення. Блок-схема алгоритму функціонування програми криптозахисту. Листінг тесту програми.
курсовая работа [4,4 M], добавлен 28.10.2010Мова Асемблера, її можливості та команди. Розробка алгоритму програми, його реалізація в програмі на мові Асемблера. Введення елементів матриці та обчислення cуми елементів, у яких молодший біт дорівнює нулю. Методи створення програми роботи з матрицями.
контрольная работа [50,3 K], добавлен 12.08.2012Розрахунок собівартості інструментальної системи створення електронних підручників. Вибір технології та мови програмування. Загальна характеристика програми і принцип роботи. Вибір мови програмування. Опис тегів, які підтримуються HTML-редактором.
дипломная работа [112,7 K], добавлен 04.06.2010Алгоритмічна мова програмування універсального призначення Turbo Pascal. Розробка і створення програми для гри "Шибениця". Алгоритм функціонування программи, блок-схема алгоритму. Використання додаткових модулів Graph та Crt у процессі створення програми.
курсовая работа [2,0 M], добавлен 23.06.2010Постановка задачі: створення списку співробітників інституту. Аналіз мов програмування та вибір мови PascalABC.Net - 32-розрядної програми, яка може працювати на сучасних версіях Windows. Опис функцій та процедур, реалізації інтерфейсу користувача.
курсовая работа [277,8 K], добавлен 25.06.2015Загальна характеристика алгоритму та опис програми. Керівництво системного програміста. Особливості запуску програми в Linux, FreeBSD, Windows. Аналіз результатів тестування програми, що проектується, вивчення та оцінка її практичної ефективності.
курсовая работа [91,4 K], добавлен 13.06.2014