SlideShare a Scribd company logo
Sephy Engine
& Based RTS Game
Jaejun-Kim
redforce01@naver.comCreated. `17.08.29
Contents
• Sephy Engine ------------------------------------------------------------------ 3
• Map Tool [Isometric Based] ------------------------------------ 26
• Unit Tool [Unit Balancing Tool] ----------------------------- 33
• Battle ------------------------------------------------------------------------------------------ 37
• Project Review ---------------------------------------------------------------- 53
• Reference ----------------------------------------------------------------------------- 54
Comment
이 프로젝트의 동영상은 Reference에 Youtube 링크로 첨부되어 있습니다.
[This Project Video Link is written on reference page at last slide page]
이 문서에는 프로젝트에 대한 모든 내용이 담겨져 있지는 않습니다.
Sephy Engine
DirectX Based 2D Engine
Jaejun-Kim
redforce01@naver.com
Sephy Engine
•Engine Spec
- Direct9 + Win32 Based(used C, C++)
- File System Support
- TXT Data Parser Support
- 2D Collision Physics Support
- 2D Graphics Support
- Single Frame - MultiThread Worker Support
•Engine Architecture
- Main Framework
- Engine System
- Game Code
- Support Code(Utility Method)
•Engine Run Logics
- Engine System
§ Engine Boot System
§ Main System
- MainFrame Load
- Game Code Run
Engine Spec
•Direct9 Based + Win32 API
- C, C++ Language
- Win32 - x86
- Direct9
•File System
- Auto Read File In Resources Folder
- Auto Read Designated Extension File
- Write File Support - Designated Extension File
•TXT Data Parser Support
- *.txt extension File Read/Write
- Automatic parsing data Files like XML Format
Engine Spec
•2D Sprite Graphics System
- Image / Texture Manager Class
- Automatic Upload Texture To Device
- Alpha Blending (used 24bit:ARGB) Support
•2D Collision Physics Support
- Entity Class
- Collision Type
§ BOX
§ ROTATED_BOX
§ CIRCLE
§ PIXEL
- Different Collision Type Intersect Check Support
§ ex) circle to box collision
- Collision Type is Designated Based Own Sprite
Image Basically
Engine Architecture
•Single Frame - MultiThread Worker Support
- Game (Scene) Class Update Architecture
§ Game Initialize(First Call - Only One Time)
§ Update Thread
§ AI Thread
§ Collision Thread
§ RenderGame(Last Call)
Update
AI
Collision
Game
Game Thread
Create
Each Frame
Render
Game Thread
Join
Engine Architecture
- Engine System MultiThread Architecture
§ Engine Sub 4 Thread
§ ex) auto worker = Engine.GetWorkerThread();
worker->( myFunction );
§ Each Sub Thread Works Some Fuctions by Designated
Code
Engine Function B
Function C
Function A
Engine Main
Thread(Game)
Game Loop
Work Sub
Function
1. Network Connecting Check
2. File Watcher
3. Sub Programmers Code
Engine Architecture
•Main Framework
- Console
- Game
- Game Interface
- Graphics
- Input
- FileSystem
- ImageSystem
- SoundSystem
- Utility
•Engine System
- Engine Core
- Engine Main System
- Engine Boot System
Main Framework
•Console
- Engine Console is mean In Game Console System
- Programmer or player can use script their own In
console
- case our project, we use some command
§ debug, mute, help, fps, etc..
- Console Picture
Console
Main Framework
•Game Class
- Game class is mean scene
- Game class has follow next pure virtual functions
§ initialize, update, render, AI, collision, release,
releaseAll, deleteAll
- If programmers want to make new Scene,
programmer could use this class as parent class
- Initialize function needs window screen handle
- Other functions are following like generally another
game loop system
Main Framework
•Game Inteface
- Sephy Engine has basic Game Interface Code
- This Code will help easily to make UI
- Support UI Contents
§ Button(Include Image Button)
§ EditText
§ Scroll
§ Dialog
§ Progressbar
- Sample Picture [case our project - Lobby]
DialogButton
Main Framework
•Game Inteface
- Sample Picture [case our project - maptool]
Image Button Dialog
EditText
Scroll [Log]
Main Framework
•Graphics Class
- Graphics class is managing Engine's graphic
device resource and included about all graphic
information
- Basically, Sephy Engine used 24 bit color format
for sprite file
- Graphics class has drawing functions
§ drawline, drawRect, drawCircle, drawSprite
- Graphics class check Stencil Support for perfect
calculate pixel collision
- Graphics class code
§ http://redforce01.tistory.com/category/MyProject/Sephy
Engine
§ https://github.com/redforce01/SephyEngine/blob/Jaejun
-Kim/Sephy_Engine/graphics.h
§ https://github.com/redforce01/SephyEngine/blob/Jaejun
-Kim/Sephy_Engine/graphics.cpp
Main Framework
•Input Class
- Input class is controlling engine's key input
message
- Input class is processes gamepad key event not
only keyboard, mouse
- the gamepad is supported only xbox pad controller
- case our project, we used keyboard and mouse
event so we are not sure the gamepad event
process working every time but maybe it's working
- Input Class Code
§ http://redforce01.tistory.com/174
§ https://github.com/redforce01/SephyEngine/blob/Jaejun
-Kim/Sephy_Engine/input.h
§ https://github.com/redforce01/SephyEngine/blob/Jaejun
-Kim/Sephy_Engine/input.cpp
Main Framework
•File System
- File System is a part of sephy engine's main
framework
- basically, file system find resources folder and
inspect all files
- the files are splitted 4 types following data, image,
sound, etc format
- File formats designated in source code that's
following next picture
- If File System find not designated file format, the
file would be classified other format(etc format)
Main Framework
•File System
Main Framework
•Image System
- Image System is depend on File System
- Sephy Engine Load Sprite (TextureFile) at Start.
If File System check All Files in Resources Folder,
Image System would upload texture to directX
device
Main Framework
•Sound System
- Sephy Engine's Sound System Used FMOD
- Sound System is depend on File System Too
- Sound System is Load Sound Files to FMOD
through designated Folder
Main Framework
•Support Code(Utility Method)
- Random Maker
§ Used <random> header
§ Used std::random_device, std::mt19937
§ Random bool, Int, pair<int, int>, vector<int>, ptInCircle,
Random Rect
§ ...etc Type
§ Random Maker Class
Main Framework
Main Framework
•Support Code(Utility Method)
- TXT Parser
§ TXT File Read/Write
§ Data Parsing (like : XML Format)
[Not Yet Perfect Implemented]
Main Framework
•Support Code(Utility Method)
- Math Functions
§ Distance(x1, y1, x2, y2)
§ Angle(x1, y1, x2, y2) [Radian Value]
§ Object Screen In Check
§ Pt In Rect(used winapi function)
§ Pt In Circle
§ Pt In Isometric
§ Circle In Rect (For not used Entity)
§ Circle In Circle Intersect (For not used Entity)
§ ...etc
Main Framework
•Support Code(Utility Method)
- Math Functions
Engine Run Logic
•Engine Core
- Engine Core Class include some Threads for
programmer's non-sync functions
•Engine System Class
- Engine System Class is Project's Main Class that is
included Engine Initialize Progress and Engine
Boot System
•Engine Boot System
- Engine boot System Class has File System That's
working for Engine System initialize and Resource
Recognize
What is Our Project?
•Game
- Genre : Turn Based World + RTS Battle
- Resource : Used Navy field 1 Resources
- Configuration : Game + Tool [For make game data]
- Dev. Environment : Sephy Engine Based 2D PC
Game
- Dev. Period : `17.05.24 ~ 17.08.25
In Game System
Isometric Based 2D MapTool
uMapTool Video Link
https://youtu.be/P1KWafPZ1MY
Jaejun-Kim
redforce01@naver.com
Isometric Based 2D MapTool
•Isometric Based Tile System
- Isometric Tile [Cell]
- MapTool Object Layer
§ Tile
§ Object
§ Event Object
•Object
- Object is Just Visual Object
- Bbject Type
§ Island Object
§ Building Object
•Event Object
- Event Object is Something Eventable
- Collision Box
- Repair Area
- Observer Area
- Weather Fog
Isometric Based 2D MapTool
•MapTool Main System
- Object Control System
§ Setup Object Items
§ Remove Object Items
[ Cell(Tile) / Object / Event Object ]
- Resource Control System
§ Tile / Object Sprite Resource Load
§ Resource Interface [ UI ]
- Map System
§ Camera Control
§ Minimap Control
§ Tool Log Manager
- MapTool Control System
§ Tool Control
• Save/Load
• Reset
• Object Border Drawing Control
§ Object Detail Control
• Object Infomation View
• X, Y Position
• Free Position Mode
Isometric Based 2D MapTool
•MapTool Picture
Tool Control Viewer
Event Object Control
Viewer
Minimap Viewer
Log Viewer
Object Resource
Sprite Viewer
Object Detail
Control Viewer
System State Log
Isometric Based 2D MapTool
•MapTool Picture
- Cell Texture Change [To Select Tile] : Mouse Drag
- Camera Move : Arrow Key
- Object Setup : Mouse LButton
Isometric Based 2D MapTool
•Map Data Format
- TXT File String Data
- Cell Data
§ Cell Texture File Name
§ Total Cell Size : Cell X * Y
ex) 128 * 128 = 16384 Cell
- Object Data
§ Object Texture File Name
§ Object Position(X, Y)
§ Object Width, Height
- Event Object Data
§ Event Object Type
• Collision Box, Repair Area, Observer Area, Weather
§ Event Object Texture File Name
§ Event Object Position(X, Y)
§ Event Object Width, Height
Isometric Based 2D MapTool
•Map Data Format Picture
In Game System
Unit Balancing Test Tool
uUnitTool Video Link
https://youtu.be/WKNsiv22H1Y
Jaejun-Kim
redforce01@naver.com
Unit Balancing Test Tool
•Unit Tool System
- What is Unit Tool?
§ Unit Tool is Battle Simulation Testing Tool. You can
check each unit's performance on your designated unit
performance for balance.
- Unit Control System
§ Unit List Viewer
§ Unit Attribute[ability] Setup
§ Make Designated Attritube Unit
§ Unit Update Controller
- Basic Tile MapSystem
§ Setup Basic Sea Tiles
§ Camera Move
Unit Balancing Test Tool
•Unit [Battle Ships]
- In Game Unit Type
§ Battle Ship, Cruiser, Destroyer, Frigate, Corvette
§ Carrier [Not Implemented]
- Unit Attack Type
§ Cannon - Bullet
§ Torpedo [Not Implemented]
•Unit Attributes
- DP [Ship Health] + Max DP
- Repair Speed [Self Healing Speed]
- Engine Speed [Move Speed] + Max Speed
- Rotate Speed [Rotation Speed]
- Accelerate Speed [Accelate Speed]
- Radar Range [Ship Sight Range]
- Turret [Cannon] Include Damage Performance
- Performance [Ship Performance Ability]
- Sailor [Ship Sailor Count]
- Antiair Capacity [Antiair Turret Count]
- Antiair Range [Antiair Turret Range]
- Antiair Damage [Antiar Turret Damage]
- Phase [Ship Call Phase]
- Mass [Ship Mass]
- Evasion Radius [Ship Evasion Value]
Unit Balancing Test Tool
•Unit Tool Picture
Unit List View Update Controller
Made Unit List Unit Attribute
Controller
In Game System
Battle
uBattle Video Link
https://youtu.be/wTWE4sUKa6Q
Jaejun-Kim
redforce01@naver.com
Battle System
•Battle System
- Battle
§ This Project's "Battle System" is always passes through
"World System". in this document, to explain "Battle
System" has what logics and how to be made.
- Battle Loading
§ Generally, "Battle System" is always started through
"Loading". when is loading, battle map data is
uploaded and each player's unit data are initialized
process.
- System Configuration
§ Battle Main System
• Camera System
• Map System
• Unit System
• Fleet System
• Sound System
• Fog System
§ Battle Result System
Battle System
•Camera System
- Camera System is managing camera position
related all Object's position.
- Minimap System
§ Minimap Interface
[Not yet perfect Implemented]
•Map System
- Map System is called when is main system
initializing, setup battle map data to screen what
are cells, objects, event objects and manage all
object's position relative with camera system.
•Unit System
- Unit System is managing all units in battle.
- Checking unit's dead or alive, making ship[called
by player], unit's position relative with camera
system, ..etc.
Battle System
•Fleet System
- Fleet system is a interface used when player want
to make some ships setup to fleet
- Fleet types are Alpha ~ Hotel [A~H] (8 slots)
- If player setup some ships to fleet, the ships would
be received buff effect.
•Sound System
- Sound system is a simple managing system for
battle background sound.
- Sound system control playing background sound
or changing sound related battle phase.
•Fog System
- Fog System is implemented for fog of war in battle.
- Fog count is just related game resolution
- Fog of war is different one of in game event
object's weather fog
Battle System
•Set up Units [Before Battle Start]
§ Before Battle start, player can set up units only phase 1
battle ships
§ Second, player can set up ships only in starting area
§ If player set up ships of phase 2 or 3, it would be
canceled when battle start
§ But player can control "Fleet Make System" for ships
of phase 2 or 3
Battle System
•Set up Units [After Battle Start]
§ Click what player want ships in list on left top interface
§ Click Mouse LButton where player want position
§ And then there is made dummy ship sprite
§ The dummy ship has spawn delay time
§ If spawn countdown finished, the ship would be created
in spawn area
§ Finally, the ship move to setup position when created
Battle System
•Fire & Bullet
- If the battle ship has turret and in sight enemy ship,
the ship would shoot bullets at once
- Each ship has designated turret data
- Each ship has turret count so fire bullets for turret
count
- the bullet's damage is designated from Turret Data
Battle System
•Damage & Effect
- All Ships taken damage following under rules
§ Miss Shot : low damage
§ Hit : high damage
§ Whether Miss or Hit ? Pixel Collision Check between
Bullet and Ship
§ Miss Shot Sprite : Water Effect
§ Hit Sprite : Explosion Effect
Battle System
•Damage Digit
- Split Damage Count To Digit
- Make Each Digit Sprite
Battle System
•Ship - Island Collision
- All Ships couldn't passed Island Object
- Exactly, All ships are checked ship's pixel whether
intersect to Collision box made from map tool every
frame time
Battle System
•Relation Ship's Radar Range and Fog of
War
- All Ships has Radar range
- this radar range means each unit's sight range
- If fog of war tile intersected player ship's radar
circle, the fog would be cleared
Blue Line -
Radar Circle
Battle System
•Observer Area Relate Fog of War
- Observer Area same work ship's radar circle
- Picture before captured area
- Picture after captured area
Battle System
•Repair Station
- Repair station give to each ship's repair speed buff
- If player capture repair area, the area given to
player ships about 120% repair speed up
- the area has buff range so ship taken buff only
near area
Battle System
•AI
- In this project, Battle AI is not implemented
- Current, Battle AI is just waiting player ships on
starting area
- We expect patrol type AI with using fleet system
Battle System
•Result System
- Result system is managing battle's result data and
throw data to World Campaign
- Result Data
§ Remain Ships
§ Battle Score [Damage Score]
Player Result Data AI Result Data
Battle System
•Recently Working Contents
- Fleet System Implement
- Patrol Type AI System
- Aircraft Implement
- Carrier Ship Implement
- Torpedo Weapon Implement
- Fog of War Sprite Implement
- Battle Random Event Weather
- Confuse State Ship Implement
- More Reality Turret Firing
ex) Sequencial Fire, More Reality Turret Fire
- bug Fix
- ...etc
Project Review
•Simple Comment [Jaejun-Kim]
- English : I will never more develop rts game!!!
- Korea : 다신 전략 게임 개발하기 싫어요...
- Review
§ 나만의 엔진을 만드는 과정에서 습득하는 지식과 늘어
나는 스킬은 확실히 프로그래밍을 계속 하게만들어주는
원동력이 되었다. 독학으로 공부하여 여기까지 달려오
는 과정에 쏟아부은 시간에 비하면 많은 결과를 내놓지
못한 것 같아 아쉬움이 많다.
혼자 제작한 자체엔진으로 게임을 하나 만들어보고자
석 달동안 열심히 공부하고 작업을 하였으나 게임은 미
완성으로 프로젝트를 종결하게 될 것 같아 아쉽다. 그러
나 2D가 아닌 3D 엔진을 만들어보고 그 엔진으로 또 다
시 새로운 게임을 제작하고 싶은 마음이 이미 나로호 마
냥 하늘높이 솟구치고 있다.
프로그래밍을 하면서 실수한 부분 또는 미흡한 부분이
수두룩하나 중요한 부분들은 지속적으로 수정해나가고
발전해 나간 것 같다. 이 문서를 확인 하신 분들께 감사
인사를 드리며 문서를 마무리 합니다.
§ 추신. 이 프로젝트에서 smart pointer를 제대로 못쓴게
엄청난 한이다. 다음 프로젝트 부터는 엄청나게 써야지..
Reference
• Book [주요 참고 서적]
- 2D Game Programming
- Game Engine Architecture
- Game Programming Pattern
• Video Link [Youtube 영상 링크]
- MapTool
§ https://youtu.be/P1KWafPZ1MY
- UnitTool
§ https://youtu.be/WKNsiv22H1Y
- Battle
§ https://youtu.be/wTWE4sUKa6Q
- Dummy Simple Battle Video
§ https://youtu.be/VTCVWAdKf-A
- Engine
§ ...
• Blog Link
- http://redforce01.tistory.com/174
• Project Github Link
- https://github.com/redforce01/SephyEngine/tree/Jaejun-Kim

More Related Content

What's hot

PlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge TechniquesPlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge Techniques
Slide_N
 
Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*
Intel® Software
 
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Intel® Software
 
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
Intel® Software
 
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsUnreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Nick Pruehs
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Intel® Software
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)
Alexander Dolbilov
 
Optimizing Games for Mobiles
Optimizing Games for MobilesOptimizing Games for Mobiles
Optimizing Games for Mobiles
St1X
 
Optimizing Large Scenes in Unity
Optimizing Large Scenes in UnityOptimizing Large Scenes in Unity
Optimizing Large Scenes in Unity
Noam Gat
 
Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019
Unity Technologies
 
Parallel Futures of a Game Engine
Parallel Futures of a Game EngineParallel Futures of a Game Engine
Parallel Futures of a Game Engine
Johan Andersson
 
Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet
Anand Bhojan
 
How to build a gaming computer
How to build a gaming computerHow to build a gaming computer
How to build a gaming computer
Donald Gillies
 
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters AdventureHow we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
Felipe Lira
 
Run commands
Run commandsRun commands
Run commands
ejaj ahmad
 
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
Infoshare
 

What's hot (16)

PlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge TechniquesPlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge Techniques
 
Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*
 
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
 
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
 
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsUnreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® Graphics
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)
 
Optimizing Games for Mobiles
Optimizing Games for MobilesOptimizing Games for Mobiles
Optimizing Games for Mobiles
 
Optimizing Large Scenes in Unity
Optimizing Large Scenes in UnityOptimizing Large Scenes in Unity
Optimizing Large Scenes in Unity
 
Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019Custom SRP and graphics workflows - Unite Copenhagen 2019
Custom SRP and graphics workflows - Unite Copenhagen 2019
 
Parallel Futures of a Game Engine
Parallel Futures of a Game EngineParallel Futures of a Game Engine
Parallel Futures of a Game Engine
 
Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet
 
How to build a gaming computer
How to build a gaming computerHow to build a gaming computer
How to build a gaming computer
 
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters AdventureHow we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
 
Run commands
Run commandsRun commands
Run commands
 
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
 

Similar to Sephy engine development document

Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
slantsixgames
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
Terrance Cohen
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
Rajkumar Pawar
 
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Piccolo Engine
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
Soc research
Soc researchSoc research
Soc research
Bryan Duggan
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance GameplayGDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
Terrance Cohen
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
slantsixgames
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
Changwon National University
 
Unreal Engine Basics 02 - Unreal Editor
Unreal Engine Basics 02 - Unreal EditorUnreal Engine Basics 02 - Unreal Editor
Unreal Engine Basics 02 - Unreal Editor
Nick Pruehs
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game Development
Wakka Monkey
 
Unreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game FrameworkUnreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game Framework
Nick Pruehs
 
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Lviv Startup Club
 
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
Amazon Web Services
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
Prashant Warrier
 
Unity workshop
Unity workshopUnity workshop
Unity workshop
fsxflyer789Productio
 
Bringing Supernatural Thriller, "Oxenfree" to Nintendo Switch
Bringing Supernatural Thriller, "Oxenfree" to Nintendo SwitchBringing Supernatural Thriller, "Oxenfree" to Nintendo Switch
Bringing Supernatural Thriller, "Oxenfree" to Nintendo Switch
Unity Technologies
 
Capstone Project Final Presentation
Capstone Project Final PresentationCapstone Project Final Presentation
Capstone Project Final Presentation
Matthew Chang
 
Planet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance EnhancementPlanet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance Enhancement
up2soul
 

Similar to Sephy engine development document (20)

Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
 
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Soc research
Soc researchSoc research
Soc research
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance GameplayGDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
 
Unreal Engine Basics 02 - Unreal Editor
Unreal Engine Basics 02 - Unreal EditorUnreal Engine Basics 02 - Unreal Editor
Unreal Engine Basics 02 - Unreal Editor
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game Development
 
Unreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game FrameworkUnreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game Framework
 
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
 
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
 
Unity workshop
Unity workshopUnity workshop
Unity workshop
 
Bringing Supernatural Thriller, "Oxenfree" to Nintendo Switch
Bringing Supernatural Thriller, "Oxenfree" to Nintendo SwitchBringing Supernatural Thriller, "Oxenfree" to Nintendo Switch
Bringing Supernatural Thriller, "Oxenfree" to Nintendo Switch
 
Capstone Project Final Presentation
Capstone Project Final PresentationCapstone Project Final Presentation
Capstone Project Final Presentation
 
Planet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance EnhancementPlanet-HTML5-Game-Engine Javascript Performance Enhancement
Planet-HTML5-Game-Engine Javascript Performance Enhancement
 

Recently uploaded

Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 

Recently uploaded (20)

Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 

Sephy engine development document

  • 1. Sephy Engine & Based RTS Game Jaejun-Kim redforce01@naver.comCreated. `17.08.29
  • 2. Contents • Sephy Engine ------------------------------------------------------------------ 3 • Map Tool [Isometric Based] ------------------------------------ 26 • Unit Tool [Unit Balancing Tool] ----------------------------- 33 • Battle ------------------------------------------------------------------------------------------ 37 • Project Review ---------------------------------------------------------------- 53 • Reference ----------------------------------------------------------------------------- 54 Comment 이 프로젝트의 동영상은 Reference에 Youtube 링크로 첨부되어 있습니다. [This Project Video Link is written on reference page at last slide page] 이 문서에는 프로젝트에 대한 모든 내용이 담겨져 있지는 않습니다.
  • 3. Sephy Engine DirectX Based 2D Engine Jaejun-Kim redforce01@naver.com
  • 4. Sephy Engine •Engine Spec - Direct9 + Win32 Based(used C, C++) - File System Support - TXT Data Parser Support - 2D Collision Physics Support - 2D Graphics Support - Single Frame - MultiThread Worker Support •Engine Architecture - Main Framework - Engine System - Game Code - Support Code(Utility Method) •Engine Run Logics - Engine System § Engine Boot System § Main System - MainFrame Load - Game Code Run
  • 5. Engine Spec •Direct9 Based + Win32 API - C, C++ Language - Win32 - x86 - Direct9 •File System - Auto Read File In Resources Folder - Auto Read Designated Extension File - Write File Support - Designated Extension File •TXT Data Parser Support - *.txt extension File Read/Write - Automatic parsing data Files like XML Format
  • 6. Engine Spec •2D Sprite Graphics System - Image / Texture Manager Class - Automatic Upload Texture To Device - Alpha Blending (used 24bit:ARGB) Support •2D Collision Physics Support - Entity Class - Collision Type § BOX § ROTATED_BOX § CIRCLE § PIXEL - Different Collision Type Intersect Check Support § ex) circle to box collision - Collision Type is Designated Based Own Sprite Image Basically
  • 7. Engine Architecture •Single Frame - MultiThread Worker Support - Game (Scene) Class Update Architecture § Game Initialize(First Call - Only One Time) § Update Thread § AI Thread § Collision Thread § RenderGame(Last Call) Update AI Collision Game Game Thread Create Each Frame Render Game Thread Join
  • 8. Engine Architecture - Engine System MultiThread Architecture § Engine Sub 4 Thread § ex) auto worker = Engine.GetWorkerThread(); worker->( myFunction ); § Each Sub Thread Works Some Fuctions by Designated Code Engine Function B Function C Function A Engine Main Thread(Game) Game Loop Work Sub Function 1. Network Connecting Check 2. File Watcher 3. Sub Programmers Code
  • 9. Engine Architecture •Main Framework - Console - Game - Game Interface - Graphics - Input - FileSystem - ImageSystem - SoundSystem - Utility •Engine System - Engine Core - Engine Main System - Engine Boot System
  • 10. Main Framework •Console - Engine Console is mean In Game Console System - Programmer or player can use script their own In console - case our project, we use some command § debug, mute, help, fps, etc.. - Console Picture Console
  • 11. Main Framework •Game Class - Game class is mean scene - Game class has follow next pure virtual functions § initialize, update, render, AI, collision, release, releaseAll, deleteAll - If programmers want to make new Scene, programmer could use this class as parent class - Initialize function needs window screen handle - Other functions are following like generally another game loop system
  • 12. Main Framework •Game Inteface - Sephy Engine has basic Game Interface Code - This Code will help easily to make UI - Support UI Contents § Button(Include Image Button) § EditText § Scroll § Dialog § Progressbar - Sample Picture [case our project - Lobby] DialogButton
  • 13. Main Framework •Game Inteface - Sample Picture [case our project - maptool] Image Button Dialog EditText Scroll [Log]
  • 14. Main Framework •Graphics Class - Graphics class is managing Engine's graphic device resource and included about all graphic information - Basically, Sephy Engine used 24 bit color format for sprite file - Graphics class has drawing functions § drawline, drawRect, drawCircle, drawSprite - Graphics class check Stencil Support for perfect calculate pixel collision - Graphics class code § http://redforce01.tistory.com/category/MyProject/Sephy Engine § https://github.com/redforce01/SephyEngine/blob/Jaejun -Kim/Sephy_Engine/graphics.h § https://github.com/redforce01/SephyEngine/blob/Jaejun -Kim/Sephy_Engine/graphics.cpp
  • 15. Main Framework •Input Class - Input class is controlling engine's key input message - Input class is processes gamepad key event not only keyboard, mouse - the gamepad is supported only xbox pad controller - case our project, we used keyboard and mouse event so we are not sure the gamepad event process working every time but maybe it's working - Input Class Code § http://redforce01.tistory.com/174 § https://github.com/redforce01/SephyEngine/blob/Jaejun -Kim/Sephy_Engine/input.h § https://github.com/redforce01/SephyEngine/blob/Jaejun -Kim/Sephy_Engine/input.cpp
  • 16. Main Framework •File System - File System is a part of sephy engine's main framework - basically, file system find resources folder and inspect all files - the files are splitted 4 types following data, image, sound, etc format - File formats designated in source code that's following next picture - If File System find not designated file format, the file would be classified other format(etc format)
  • 18. Main Framework •Image System - Image System is depend on File System - Sephy Engine Load Sprite (TextureFile) at Start. If File System check All Files in Resources Folder, Image System would upload texture to directX device
  • 19. Main Framework •Sound System - Sephy Engine's Sound System Used FMOD - Sound System is depend on File System Too - Sound System is Load Sound Files to FMOD through designated Folder
  • 20. Main Framework •Support Code(Utility Method) - Random Maker § Used <random> header § Used std::random_device, std::mt19937 § Random bool, Int, pair<int, int>, vector<int>, ptInCircle, Random Rect § ...etc Type § Random Maker Class
  • 22. Main Framework •Support Code(Utility Method) - TXT Parser § TXT File Read/Write § Data Parsing (like : XML Format) [Not Yet Perfect Implemented]
  • 23. Main Framework •Support Code(Utility Method) - Math Functions § Distance(x1, y1, x2, y2) § Angle(x1, y1, x2, y2) [Radian Value] § Object Screen In Check § Pt In Rect(used winapi function) § Pt In Circle § Pt In Isometric § Circle In Rect (For not used Entity) § Circle In Circle Intersect (For not used Entity) § ...etc
  • 24. Main Framework •Support Code(Utility Method) - Math Functions
  • 25. Engine Run Logic •Engine Core - Engine Core Class include some Threads for programmer's non-sync functions •Engine System Class - Engine System Class is Project's Main Class that is included Engine Initialize Progress and Engine Boot System •Engine Boot System - Engine boot System Class has File System That's working for Engine System initialize and Resource Recognize
  • 26. What is Our Project? •Game - Genre : Turn Based World + RTS Battle - Resource : Used Navy field 1 Resources - Configuration : Game + Tool [For make game data] - Dev. Environment : Sephy Engine Based 2D PC Game - Dev. Period : `17.05.24 ~ 17.08.25
  • 27. In Game System Isometric Based 2D MapTool uMapTool Video Link https://youtu.be/P1KWafPZ1MY Jaejun-Kim redforce01@naver.com
  • 28. Isometric Based 2D MapTool •Isometric Based Tile System - Isometric Tile [Cell] - MapTool Object Layer § Tile § Object § Event Object •Object - Object is Just Visual Object - Bbject Type § Island Object § Building Object •Event Object - Event Object is Something Eventable - Collision Box - Repair Area - Observer Area - Weather Fog
  • 29. Isometric Based 2D MapTool •MapTool Main System - Object Control System § Setup Object Items § Remove Object Items [ Cell(Tile) / Object / Event Object ] - Resource Control System § Tile / Object Sprite Resource Load § Resource Interface [ UI ] - Map System § Camera Control § Minimap Control § Tool Log Manager - MapTool Control System § Tool Control • Save/Load • Reset • Object Border Drawing Control § Object Detail Control • Object Infomation View • X, Y Position • Free Position Mode
  • 30. Isometric Based 2D MapTool •MapTool Picture Tool Control Viewer Event Object Control Viewer Minimap Viewer Log Viewer Object Resource Sprite Viewer Object Detail Control Viewer System State Log
  • 31. Isometric Based 2D MapTool •MapTool Picture - Cell Texture Change [To Select Tile] : Mouse Drag - Camera Move : Arrow Key - Object Setup : Mouse LButton
  • 32. Isometric Based 2D MapTool •Map Data Format - TXT File String Data - Cell Data § Cell Texture File Name § Total Cell Size : Cell X * Y ex) 128 * 128 = 16384 Cell - Object Data § Object Texture File Name § Object Position(X, Y) § Object Width, Height - Event Object Data § Event Object Type • Collision Box, Repair Area, Observer Area, Weather § Event Object Texture File Name § Event Object Position(X, Y) § Event Object Width, Height
  • 33. Isometric Based 2D MapTool •Map Data Format Picture
  • 34. In Game System Unit Balancing Test Tool uUnitTool Video Link https://youtu.be/WKNsiv22H1Y Jaejun-Kim redforce01@naver.com
  • 35. Unit Balancing Test Tool •Unit Tool System - What is Unit Tool? § Unit Tool is Battle Simulation Testing Tool. You can check each unit's performance on your designated unit performance for balance. - Unit Control System § Unit List Viewer § Unit Attribute[ability] Setup § Make Designated Attritube Unit § Unit Update Controller - Basic Tile MapSystem § Setup Basic Sea Tiles § Camera Move
  • 36. Unit Balancing Test Tool •Unit [Battle Ships] - In Game Unit Type § Battle Ship, Cruiser, Destroyer, Frigate, Corvette § Carrier [Not Implemented] - Unit Attack Type § Cannon - Bullet § Torpedo [Not Implemented] •Unit Attributes - DP [Ship Health] + Max DP - Repair Speed [Self Healing Speed] - Engine Speed [Move Speed] + Max Speed - Rotate Speed [Rotation Speed] - Accelerate Speed [Accelate Speed] - Radar Range [Ship Sight Range] - Turret [Cannon] Include Damage Performance - Performance [Ship Performance Ability] - Sailor [Ship Sailor Count] - Antiair Capacity [Antiair Turret Count] - Antiair Range [Antiair Turret Range] - Antiair Damage [Antiar Turret Damage] - Phase [Ship Call Phase] - Mass [Ship Mass] - Evasion Radius [Ship Evasion Value]
  • 37. Unit Balancing Test Tool •Unit Tool Picture Unit List View Update Controller Made Unit List Unit Attribute Controller
  • 38. In Game System Battle uBattle Video Link https://youtu.be/wTWE4sUKa6Q Jaejun-Kim redforce01@naver.com
  • 39. Battle System •Battle System - Battle § This Project's "Battle System" is always passes through "World System". in this document, to explain "Battle System" has what logics and how to be made. - Battle Loading § Generally, "Battle System" is always started through "Loading". when is loading, battle map data is uploaded and each player's unit data are initialized process. - System Configuration § Battle Main System • Camera System • Map System • Unit System • Fleet System • Sound System • Fog System § Battle Result System
  • 40. Battle System •Camera System - Camera System is managing camera position related all Object's position. - Minimap System § Minimap Interface [Not yet perfect Implemented] •Map System - Map System is called when is main system initializing, setup battle map data to screen what are cells, objects, event objects and manage all object's position relative with camera system. •Unit System - Unit System is managing all units in battle. - Checking unit's dead or alive, making ship[called by player], unit's position relative with camera system, ..etc.
  • 41. Battle System •Fleet System - Fleet system is a interface used when player want to make some ships setup to fleet - Fleet types are Alpha ~ Hotel [A~H] (8 slots) - If player setup some ships to fleet, the ships would be received buff effect. •Sound System - Sound system is a simple managing system for battle background sound. - Sound system control playing background sound or changing sound related battle phase. •Fog System - Fog System is implemented for fog of war in battle. - Fog count is just related game resolution - Fog of war is different one of in game event object's weather fog
  • 42. Battle System •Set up Units [Before Battle Start] § Before Battle start, player can set up units only phase 1 battle ships § Second, player can set up ships only in starting area § If player set up ships of phase 2 or 3, it would be canceled when battle start § But player can control "Fleet Make System" for ships of phase 2 or 3
  • 43. Battle System •Set up Units [After Battle Start] § Click what player want ships in list on left top interface § Click Mouse LButton where player want position § And then there is made dummy ship sprite § The dummy ship has spawn delay time § If spawn countdown finished, the ship would be created in spawn area § Finally, the ship move to setup position when created
  • 44. Battle System •Fire & Bullet - If the battle ship has turret and in sight enemy ship, the ship would shoot bullets at once - Each ship has designated turret data - Each ship has turret count so fire bullets for turret count - the bullet's damage is designated from Turret Data
  • 45. Battle System •Damage & Effect - All Ships taken damage following under rules § Miss Shot : low damage § Hit : high damage § Whether Miss or Hit ? Pixel Collision Check between Bullet and Ship § Miss Shot Sprite : Water Effect § Hit Sprite : Explosion Effect
  • 46. Battle System •Damage Digit - Split Damage Count To Digit - Make Each Digit Sprite
  • 47. Battle System •Ship - Island Collision - All Ships couldn't passed Island Object - Exactly, All ships are checked ship's pixel whether intersect to Collision box made from map tool every frame time
  • 48. Battle System •Relation Ship's Radar Range and Fog of War - All Ships has Radar range - this radar range means each unit's sight range - If fog of war tile intersected player ship's radar circle, the fog would be cleared Blue Line - Radar Circle
  • 49. Battle System •Observer Area Relate Fog of War - Observer Area same work ship's radar circle - Picture before captured area - Picture after captured area
  • 50. Battle System •Repair Station - Repair station give to each ship's repair speed buff - If player capture repair area, the area given to player ships about 120% repair speed up - the area has buff range so ship taken buff only near area
  • 51. Battle System •AI - In this project, Battle AI is not implemented - Current, Battle AI is just waiting player ships on starting area - We expect patrol type AI with using fleet system
  • 52. Battle System •Result System - Result system is managing battle's result data and throw data to World Campaign - Result Data § Remain Ships § Battle Score [Damage Score] Player Result Data AI Result Data
  • 53. Battle System •Recently Working Contents - Fleet System Implement - Patrol Type AI System - Aircraft Implement - Carrier Ship Implement - Torpedo Weapon Implement - Fog of War Sprite Implement - Battle Random Event Weather - Confuse State Ship Implement - More Reality Turret Firing ex) Sequencial Fire, More Reality Turret Fire - bug Fix - ...etc
  • 54. Project Review •Simple Comment [Jaejun-Kim] - English : I will never more develop rts game!!! - Korea : 다신 전략 게임 개발하기 싫어요... - Review § 나만의 엔진을 만드는 과정에서 습득하는 지식과 늘어 나는 스킬은 확실히 프로그래밍을 계속 하게만들어주는 원동력이 되었다. 독학으로 공부하여 여기까지 달려오 는 과정에 쏟아부은 시간에 비하면 많은 결과를 내놓지 못한 것 같아 아쉬움이 많다. 혼자 제작한 자체엔진으로 게임을 하나 만들어보고자 석 달동안 열심히 공부하고 작업을 하였으나 게임은 미 완성으로 프로젝트를 종결하게 될 것 같아 아쉽다. 그러 나 2D가 아닌 3D 엔진을 만들어보고 그 엔진으로 또 다 시 새로운 게임을 제작하고 싶은 마음이 이미 나로호 마 냥 하늘높이 솟구치고 있다. 프로그래밍을 하면서 실수한 부분 또는 미흡한 부분이 수두룩하나 중요한 부분들은 지속적으로 수정해나가고 발전해 나간 것 같다. 이 문서를 확인 하신 분들께 감사 인사를 드리며 문서를 마무리 합니다. § 추신. 이 프로젝트에서 smart pointer를 제대로 못쓴게 엄청난 한이다. 다음 프로젝트 부터는 엄청나게 써야지..
  • 55. Reference • Book [주요 참고 서적] - 2D Game Programming - Game Engine Architecture - Game Programming Pattern • Video Link [Youtube 영상 링크] - MapTool § https://youtu.be/P1KWafPZ1MY - UnitTool § https://youtu.be/WKNsiv22H1Y - Battle § https://youtu.be/wTWE4sUKa6Q - Dummy Simple Battle Video § https://youtu.be/VTCVWAdKf-A - Engine § ... • Blog Link - http://redforce01.tistory.com/174 • Project Github Link - https://github.com/redforce01/SephyEngine/tree/Jaejun-Kim