SlideShare a Scribd company logo
PREPARED AND PRESENTED BY
Dr.Saajid Abuluaih, PhD
22nd of August 2021
J I S T & A R C H E P R E S E N T S
Web−Based Second−Life
School Management System
Workshop
Team: "Fantastic−Team”, Project: "GatherRound”
[ A s s i g n m e n t s ]
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 2
The Project Workflow
Reorganizing the teams
And the teamwork
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 3
Teams Organizational Structure
Te a m s M a n a g e m e n t s
We have two distinct teams:
1. Logic development team: their responsibility includes (Game Physics, Game Controls, and Game AI).
2. Artistic development team: their responsibility includes (UI Design, Level Design, and Character Design).
I’ll be the project manager and the team-leader for both teams. The tasks will be assigned directly by me
The team members are:
• Logic Development Team:
• Papa: Game mechanics, camera controls, and an AI/physics assistant
• Nazhif: Artificial Intelligence
• Saggu: Physics and overall performance rating
• Artistic Development Team:
• Gucy: Level Designer and Quality Assurance
• Neha: Level Designer & Animator and special effects specialists
• Liu: 2D/UI Designer
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 4
Te a m s M a n a g e m e n t s
• Task Management Platform: ClickUP
• Assigning tasks is going through the platform
• Extension for your VSCode: Todo Tree
• This extension will help you find the place where
you are supposed to write your code.
• Art Development style: Voxel
• It is much easier than low-poly design style
Changes on Working
Environment
Check out this LINK, LINK, and this LINK
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 5
Te a m s M a n a g e m e n t s
• That tasks will be arranged and assigned by me (Saajid Akram).
• We MUST conduct a weekly meeting to report the progress (other than the class meeting).
• Do NOT push your code to the repo without check it with me first.
• IF YOU CANNOT COMMIT TO COMPLETE YOUR TASKS, WITHDRAWAL FROM THE PROGRAM
To Ensure Developing
The Solution Progressively
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 6
Progress Report
What have we done so far
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 7
The project structure
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
I have reconstructed the project and divided it into five major parts:
• Core: this is the division that devoted to host all the objects that are necessary to kickoff
the app and perform the major operations to start the engine, it consist of two files:
• App.ts: everything to start the app is in this file, that includes initializing almost all
major components.
• AppConfig.ts: this object contains the major settings needed to configure the app.
• Scenes: this division is devoted to hold all information on the scenes of the app. It
consists of:
• Scene object: this object contains all the information about the current scene
• ScenesDB: this object contains a database of all scenes that can be loaded
throughout the app.
• Players: this division is devoted to store all information related to the players spawned in
the current scene.
• Controllers: this division is devoted to host the logic of the . So far, we have only one
controller which is Keyboard.
• Assets Managers: this division is devoted to load the assets of the game depending on
the chosen scene.
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 8
App.js
The Core of the App
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
Client file is still the starter (the first file that will be requested and works as an entry point).
However, all what it does is that it calls a function (START) of object app
App object is devoted to host the environment variables, the scenes and players lists, and to manage clocks.
• This object contains the GAME LOOP which is the function tick(). The function contains time calculating section which calculates:
• _elapsed: the time in ticks (millisecond) since the app started
• _delta: the differensial time between current frame and the previous one
• The function tick() calls function update() which itself calls all updating functions from the moving objects.
• In the object constructor, we initialize all THREE js main objects, we initialize all timing variables, and we load the current scene (out of all the scenes the App
has) and the players in that scene as well.
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 9
Player.js
Making the Player Model
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
This class defines the player avatar (looks and attributes). For now, this object consists of two main functions besides the constructor, and they are:
action() : [Private] which moves the avatar geometry
Update(): which calculate the current speed and direction and call action function to move the avatar.
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 10
Player.js
Making the Player Model
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
action() : [Private] which moves the avatar geometry. It moves the avatar to all directions using the calculated speed.
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 11
Player.js
Making the Player Model
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
Update() : it calculates the current speed & direction and if certain key were pressed on keyboard; it calls action function to move the avatar.
Can you guess why are we using Math.sin() here to
determine the direction?
Can you guess why (unlike to jump action) we need to
register the last action of pressing on “C” key?
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 12
Player.js
Making the Player Model
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
Update() : it calculates the current speed & direction and if certain key were pressed on keyboard; it calls action function to move the avatar.
This is the fun part :D .. The speed is determined here and
then passed to action() if the key was pressed
Can you think of a way to improve the performance here?
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 13
Player.js
Making the Player Model
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
We define the status of a player within their constructors. The basic states are: Idle, Crouching, Walking, Running, and jumping
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 14
Player.js
Making the Player Model
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
Creating the geometry model of the player: in the constructer we call a function to create a specific character for the characters Database. So far we have only
one character.
In CharacterDB object we call create character function and send how big the model is and the texture path
Have you noticed that the texture has two characters not one!
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 15
KeyboardController.js
Adding the Movement Control
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
This class is responsible for registering the pressed / released
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 16
Scene.js
Building the Environment
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
The scene object can store the information about the current level. One environment can hold several scenes.
This object needs to be enhanced …
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 17
First task!
R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e
Explore the project files, get yourself familiar with the functions, and let me know if you have any question.
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 18
Team Members’
Tasks
First of all, install the following extension
Restart your VSCode. You should see this in your
side menu:
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 19
Papa
C a m e r a c o n t r o l a n d G a m e M e c h a n i c
• Do a quick research on third person camera vs first person view vs fixed camera,
take into the consideration the following:
• In one paragraph, compare the three types against each other.
• In one paragraph, list down the characteristics of third person camera
• In one paragraph, list down the things that must be avoid when you develop third
person camera.
• The current task: Develop functionality of third person camera, taking into
consideration the following features (refer to the images):
• Smooth camera movement (not snappy)
• The camera should not go below the ground level or behind the walls
• The camera is a bit shifted to the right (the main character is not centered)
• Change the game mechanics and introduce the mouse movement to the project. When
the mouse moves to the left; the main character turns anticlockwise, and vice versa.
• Bugs: investigate the current bug in when the character jumps and fix it
Check out the following resources:
• Tips and Tricks for a Robust Third-Person Camera System
• 50 Game Camera Mistakes
• Resident Evil - 1st Person vs 3rd Person vs Fixed Cameras - Which is Better?
• Implement A Third-Person Camera just like Mario Odyssey In Unity
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 20
Nazhif
A r t i f i c i a l I n t e l l i g e n c e
• Do a quick research “fear and aggression behavior”:
• In one paragraph, define and differentiate between fear and aggression behavior.
• In one paragraph, list down the characteristics of fear behavior
• In one paragraph, list down the characteristics of aggression behavior
• The current task: Develop a functional NCP agent that always looks toward the main character (start with a cat):
• If the main player gets closer to the agent (the safe distance got violated); fear behavior kicks-off the agent does the following:
• Turns around to the other direction.
• Runs away to maintain the safe distance (same forward direction movement, opposite side direction movement).
• If the agent gets cornered; aggressive behaviors kicks-off:
• The agent turns toward the player and takes a defensive position.
• If the player gets any closer, the agent attacks the player … the player loses points.
Check out the following resource:
• Experiments in synthetic psychology
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 21
Saggu
P h y s i c s a n d M a t h e m a t i c s p r o b l e m s o l v i n g s p e c i a l i s t
• Do a quick research on “Collegian Detection”:
• In one paragraph, Pythagorean Theorem and how can be used in collegian detection
• In one paragraph, define collegian detection and list down its uses.
• In one paragraph, list down the categories of collegian detection
• In one paragraph, list down the characteristics of an efficient collegian detector
• The current task: let the scene contains “Special Areas” that have cylindrical shape, develop collegian
detection taking into consideration the following criteria:
• Raise flag “ObjectTouch” if the player bounding box touches the special area (See figure 1)
• Raise flag “ObjectIn” if ALL player bounding box is the special area (See figure 2)
Figure 1
Figure 2
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 22
Gucy
L e v e l D e s i g n
• Do a quick research on “Game Level-Design”:
• In one paragraph, What is Game level-design
• In one paragraph, What is Voxel Art
• In one paragraph, How to construct an enjoyable level (what is the characteristic of an interesting level)
• In one paragraph, list down the constraints that need to be taken in to account when designing a level
• The current task: Complete the School using voxel art style and add to it its texture.
• The design feature that need to be considered is as follows:
• The school is two stories
• Follow the Voxel style (refer to the pictures)
• Put all the textures that you will use in only one file
• Lights is Gucy responsibility
Check out the following resource:
• A Beginner's Guide to Designing Video Game Levels
Check out these voxel City 3D models:
• Voxel City
• Japan Voxel
• Voxel City - Voxel art
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 23
Neha
L e v e l D e s i g n a n d A n i m a t o r
• Do a quick research on “Game Level-Design”:
• In one paragraph, what is game level-design.
• In one paragraph, what is voxel art.
• In one paragraph, animation in game design.
• In one paragraph, special effects and particle system in game design.
• The current task:
• Design streets blocks as square assets and texture them (see the images)
• Design Luigi and NCP (cat/kitten)
• Add visual effect: motion blur when the main character is jumping (refer to this example)
• Design skybox (refer to this example)
Check out the following resource:
• A Beginner's Guide to Designing Video Game Levels
Check out these voxel City 3D models:
• Voxel Road Sections & Signs (69 Items)
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 24
Liu
U I S p e c i a l i s t
• Do a quick research on “UI/UX design in games”:
• In one paragraph, what is UI/UX design for 3D games.
• In one paragraph, what is the characteristics of a good UI for a game.
• The current task: Develop a 2D compass that always points to the north at the bottom right of the
screen
• Display the name of the player and their next task at the top left corner of the screen
• Show the random message of places name “Door, Window, sidewalk” when the
“ObjectTouch” flag is raised [Consult with Saggu]
• Show the message “Hit F for action” when the “ObjectIn” flag is raised [Consult with Saggu]
• Enable Debugging mode
© 2021 arche1.co.jp | jaist.ac.jp
All rights reserved.
P A G E 25
T H A N K S F O R Y O U R
AT T E N T O N

More Related Content

Similar to Workshop[22nd august][assignments]

Climberreport
ClimberreportClimberreport
Climberreport
LuckyTolani1
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
Luca Galli
 
Final project report of a game
Final project report of a gameFinal project report of a game
Final project report of a game
Nadia Nahar
 
J editor
J editorJ editor
J editor
ankit saini
 
Pong
PongPong
K2P workshop 3-23-13
K2P workshop 3-23-13K2P workshop 3-23-13
K2P workshop 3-23-13
FakeGreenDress
 
engine_terminology 2
engine_terminology 2engine_terminology 2
engine_terminology 2
Alexballantyne
 
Unity 3d scripting tutorial
Unity 3d scripting tutorialUnity 3d scripting tutorial
Unity 3d scripting tutorial
Blaž Gregorčič
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial
tutorialsruby
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial
tutorialsruby
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
Abhishek Singhal [L.I.O.N]
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native
Eric Deng
 
MotionPad
MotionPadMotionPad
MotionPad
wangxdynasty
 
Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
Indrit Vogli
 
intern.pdf
intern.pdfintern.pdf
intern.pdf
cprabhash
 
Spine Simplified
Spine SimplifiedSpine Simplified
Spine Simplified
Artmiker Studios
 
Programmers guide
Programmers guideProgrammers guide
Programmers guide
Karla Paz Enamorado
 
Y1 gd engine_terminologY
Y1 gd engine_terminologYY1 gd engine_terminologY
Y1 gd engine_terminologY
ElliotBlack
 
Polybot Onboarding Process
Polybot Onboarding ProcessPolybot Onboarding Process
Polybot Onboarding Process
Nina Park
 
New 2D World-Building, Animation & Graphics Features in Unity
New 2D World-Building, Animation & Graphics Features in UnityNew 2D World-Building, Animation & Graphics Features in Unity
New 2D World-Building, Animation & Graphics Features in Unity
Unity Technologies
 

Similar to Workshop[22nd august][assignments] (20)

Climberreport
ClimberreportClimberreport
Climberreport
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
Final project report of a game
Final project report of a gameFinal project report of a game
Final project report of a game
 
J editor
J editorJ editor
J editor
 
Pong
PongPong
Pong
 
K2P workshop 3-23-13
K2P workshop 3-23-13K2P workshop 3-23-13
K2P workshop 3-23-13
 
engine_terminology 2
engine_terminology 2engine_terminology 2
engine_terminology 2
 
Unity 3d scripting tutorial
Unity 3d scripting tutorialUnity 3d scripting tutorial
Unity 3d scripting tutorial
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native
 
MotionPad
MotionPadMotionPad
MotionPad
 
Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
 
intern.pdf
intern.pdfintern.pdf
intern.pdf
 
Spine Simplified
Spine SimplifiedSpine Simplified
Spine Simplified
 
Programmers guide
Programmers guideProgrammers guide
Programmers guide
 
Y1 gd engine_terminologY
Y1 gd engine_terminologYY1 gd engine_terminologY
Y1 gd engine_terminologY
 
Polybot Onboarding Process
Polybot Onboarding ProcessPolybot Onboarding Process
Polybot Onboarding Process
 
New 2D World-Building, Animation & Graphics Features in Unity
New 2D World-Building, Animation & Graphics Features in UnityNew 2D World-Building, Animation & Graphics Features in Unity
New 2D World-Building, Animation & Graphics Features in Unity
 

More from Saajid Akram

Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]
Saajid Akram
 
Class[5][9th jul] [three js-meshes_geometries_and_primitives]
Class[5][9th jul] [three js-meshes_geometries_and_primitives]Class[5][9th jul] [three js-meshes_geometries_and_primitives]
Class[5][9th jul] [three js-meshes_geometries_and_primitives]
Saajid Akram
 
Class[4][19th jun] [three js-camera&light]
Class[4][19th jun] [three js-camera&light]Class[4][19th jun] [three js-camera&light]
Class[4][19th jun] [three js-camera&light]
Saajid Akram
 
Class[2][29th may] [javascript]
Class[2][29th may] [javascript]Class[2][29th may] [javascript]
Class[2][29th may] [javascript]
Saajid Akram
 
Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]
Saajid Akram
 
Workshop[3ed Apr]-[Git]
Workshop[3ed Apr]-[Git]Workshop[3ed Apr]-[Git]
Workshop[3ed Apr]-[Git]
Saajid Akram
 
Workshop[1st apr]-[introduction]
Workshop[1st apr]-[introduction] Workshop[1st apr]-[introduction]
Workshop[1st apr]-[introduction]
Saajid Akram
 

More from Saajid Akram (7)

Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]
 
Class[5][9th jul] [three js-meshes_geometries_and_primitives]
Class[5][9th jul] [three js-meshes_geometries_and_primitives]Class[5][9th jul] [three js-meshes_geometries_and_primitives]
Class[5][9th jul] [three js-meshes_geometries_and_primitives]
 
Class[4][19th jun] [three js-camera&light]
Class[4][19th jun] [three js-camera&light]Class[4][19th jun] [three js-camera&light]
Class[4][19th jun] [three js-camera&light]
 
Class[2][29th may] [javascript]
Class[2][29th may] [javascript]Class[2][29th may] [javascript]
Class[2][29th may] [javascript]
 
Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]
 
Workshop[3ed Apr]-[Git]
Workshop[3ed Apr]-[Git]Workshop[3ed Apr]-[Git]
Workshop[3ed Apr]-[Git]
 
Workshop[1st apr]-[introduction]
Workshop[1st apr]-[introduction] Workshop[1st apr]-[introduction]
Workshop[1st apr]-[introduction]
 

Recently uploaded

PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
RAHUL
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 

Recently uploaded (20)

PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 

Workshop[22nd august][assignments]

  • 1. PREPARED AND PRESENTED BY Dr.Saajid Abuluaih, PhD 22nd of August 2021 J I S T & A R C H E P R E S E N T S Web−Based Second−Life School Management System Workshop Team: "Fantastic−Team”, Project: "GatherRound” [ A s s i g n m e n t s ]
  • 2. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 2 The Project Workflow Reorganizing the teams And the teamwork
  • 3. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 3 Teams Organizational Structure Te a m s M a n a g e m e n t s We have two distinct teams: 1. Logic development team: their responsibility includes (Game Physics, Game Controls, and Game AI). 2. Artistic development team: their responsibility includes (UI Design, Level Design, and Character Design). I’ll be the project manager and the team-leader for both teams. The tasks will be assigned directly by me The team members are: • Logic Development Team: • Papa: Game mechanics, camera controls, and an AI/physics assistant • Nazhif: Artificial Intelligence • Saggu: Physics and overall performance rating • Artistic Development Team: • Gucy: Level Designer and Quality Assurance • Neha: Level Designer & Animator and special effects specialists • Liu: 2D/UI Designer
  • 4. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 4 Te a m s M a n a g e m e n t s • Task Management Platform: ClickUP • Assigning tasks is going through the platform • Extension for your VSCode: Todo Tree • This extension will help you find the place where you are supposed to write your code. • Art Development style: Voxel • It is much easier than low-poly design style Changes on Working Environment Check out this LINK, LINK, and this LINK
  • 5. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 5 Te a m s M a n a g e m e n t s • That tasks will be arranged and assigned by me (Saajid Akram). • We MUST conduct a weekly meeting to report the progress (other than the class meeting). • Do NOT push your code to the repo without check it with me first. • IF YOU CANNOT COMMIT TO COMPLETE YOUR TASKS, WITHDRAWAL FROM THE PROGRAM To Ensure Developing The Solution Progressively
  • 6. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 6 Progress Report What have we done so far
  • 7. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 7 The project structure R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e I have reconstructed the project and divided it into five major parts: • Core: this is the division that devoted to host all the objects that are necessary to kickoff the app and perform the major operations to start the engine, it consist of two files: • App.ts: everything to start the app is in this file, that includes initializing almost all major components. • AppConfig.ts: this object contains the major settings needed to configure the app. • Scenes: this division is devoted to hold all information on the scenes of the app. It consists of: • Scene object: this object contains all the information about the current scene • ScenesDB: this object contains a database of all scenes that can be loaded throughout the app. • Players: this division is devoted to store all information related to the players spawned in the current scene. • Controllers: this division is devoted to host the logic of the . So far, we have only one controller which is Keyboard. • Assets Managers: this division is devoted to load the assets of the game depending on the chosen scene.
  • 8. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 8 App.js The Core of the App R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e Client file is still the starter (the first file that will be requested and works as an entry point). However, all what it does is that it calls a function (START) of object app App object is devoted to host the environment variables, the scenes and players lists, and to manage clocks. • This object contains the GAME LOOP which is the function tick(). The function contains time calculating section which calculates: • _elapsed: the time in ticks (millisecond) since the app started • _delta: the differensial time between current frame and the previous one • The function tick() calls function update() which itself calls all updating functions from the moving objects. • In the object constructor, we initialize all THREE js main objects, we initialize all timing variables, and we load the current scene (out of all the scenes the App has) and the players in that scene as well.
  • 9. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 9 Player.js Making the Player Model R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e This class defines the player avatar (looks and attributes). For now, this object consists of two main functions besides the constructor, and they are: action() : [Private] which moves the avatar geometry Update(): which calculate the current speed and direction and call action function to move the avatar.
  • 10. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 10 Player.js Making the Player Model R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e action() : [Private] which moves the avatar geometry. It moves the avatar to all directions using the calculated speed.
  • 11. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 11 Player.js Making the Player Model R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e Update() : it calculates the current speed & direction and if certain key were pressed on keyboard; it calls action function to move the avatar. Can you guess why are we using Math.sin() here to determine the direction? Can you guess why (unlike to jump action) we need to register the last action of pressing on “C” key?
  • 12. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 12 Player.js Making the Player Model R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e Update() : it calculates the current speed & direction and if certain key were pressed on keyboard; it calls action function to move the avatar. This is the fun part :D .. The speed is determined here and then passed to action() if the key was pressed Can you think of a way to improve the performance here?
  • 13. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 13 Player.js Making the Player Model R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e We define the status of a player within their constructors. The basic states are: Idle, Crouching, Walking, Running, and jumping
  • 14. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 14 Player.js Making the Player Model R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e Creating the geometry model of the player: in the constructer we call a function to create a specific character for the characters Database. So far we have only one character. In CharacterDB object we call create character function and send how big the model is and the texture path Have you noticed that the texture has two characters not one!
  • 15. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 15 KeyboardController.js Adding the Movement Control R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e This class is responsible for registering the pressed / released
  • 16. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 16 Scene.js Building the Environment R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e The scene object can store the information about the current level. One environment can hold several scenes. This object needs to be enhanced …
  • 17. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 17 First task! R e a r r a i g n i n g t h e p r o j e c t ’ s f i l e Explore the project files, get yourself familiar with the functions, and let me know if you have any question.
  • 18. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 18 Team Members’ Tasks First of all, install the following extension Restart your VSCode. You should see this in your side menu:
  • 19. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 19 Papa C a m e r a c o n t r o l a n d G a m e M e c h a n i c • Do a quick research on third person camera vs first person view vs fixed camera, take into the consideration the following: • In one paragraph, compare the three types against each other. • In one paragraph, list down the characteristics of third person camera • In one paragraph, list down the things that must be avoid when you develop third person camera. • The current task: Develop functionality of third person camera, taking into consideration the following features (refer to the images): • Smooth camera movement (not snappy) • The camera should not go below the ground level or behind the walls • The camera is a bit shifted to the right (the main character is not centered) • Change the game mechanics and introduce the mouse movement to the project. When the mouse moves to the left; the main character turns anticlockwise, and vice versa. • Bugs: investigate the current bug in when the character jumps and fix it Check out the following resources: • Tips and Tricks for a Robust Third-Person Camera System • 50 Game Camera Mistakes • Resident Evil - 1st Person vs 3rd Person vs Fixed Cameras - Which is Better? • Implement A Third-Person Camera just like Mario Odyssey In Unity
  • 20. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 20 Nazhif A r t i f i c i a l I n t e l l i g e n c e • Do a quick research “fear and aggression behavior”: • In one paragraph, define and differentiate between fear and aggression behavior. • In one paragraph, list down the characteristics of fear behavior • In one paragraph, list down the characteristics of aggression behavior • The current task: Develop a functional NCP agent that always looks toward the main character (start with a cat): • If the main player gets closer to the agent (the safe distance got violated); fear behavior kicks-off the agent does the following: • Turns around to the other direction. • Runs away to maintain the safe distance (same forward direction movement, opposite side direction movement). • If the agent gets cornered; aggressive behaviors kicks-off: • The agent turns toward the player and takes a defensive position. • If the player gets any closer, the agent attacks the player … the player loses points. Check out the following resource: • Experiments in synthetic psychology
  • 21. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 21 Saggu P h y s i c s a n d M a t h e m a t i c s p r o b l e m s o l v i n g s p e c i a l i s t • Do a quick research on “Collegian Detection”: • In one paragraph, Pythagorean Theorem and how can be used in collegian detection • In one paragraph, define collegian detection and list down its uses. • In one paragraph, list down the categories of collegian detection • In one paragraph, list down the characteristics of an efficient collegian detector • The current task: let the scene contains “Special Areas” that have cylindrical shape, develop collegian detection taking into consideration the following criteria: • Raise flag “ObjectTouch” if the player bounding box touches the special area (See figure 1) • Raise flag “ObjectIn” if ALL player bounding box is the special area (See figure 2) Figure 1 Figure 2
  • 22. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 22 Gucy L e v e l D e s i g n • Do a quick research on “Game Level-Design”: • In one paragraph, What is Game level-design • In one paragraph, What is Voxel Art • In one paragraph, How to construct an enjoyable level (what is the characteristic of an interesting level) • In one paragraph, list down the constraints that need to be taken in to account when designing a level • The current task: Complete the School using voxel art style and add to it its texture. • The design feature that need to be considered is as follows: • The school is two stories • Follow the Voxel style (refer to the pictures) • Put all the textures that you will use in only one file • Lights is Gucy responsibility Check out the following resource: • A Beginner's Guide to Designing Video Game Levels Check out these voxel City 3D models: • Voxel City • Japan Voxel • Voxel City - Voxel art
  • 23. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 23 Neha L e v e l D e s i g n a n d A n i m a t o r • Do a quick research on “Game Level-Design”: • In one paragraph, what is game level-design. • In one paragraph, what is voxel art. • In one paragraph, animation in game design. • In one paragraph, special effects and particle system in game design. • The current task: • Design streets blocks as square assets and texture them (see the images) • Design Luigi and NCP (cat/kitten) • Add visual effect: motion blur when the main character is jumping (refer to this example) • Design skybox (refer to this example) Check out the following resource: • A Beginner's Guide to Designing Video Game Levels Check out these voxel City 3D models: • Voxel Road Sections & Signs (69 Items)
  • 24. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 24 Liu U I S p e c i a l i s t • Do a quick research on “UI/UX design in games”: • In one paragraph, what is UI/UX design for 3D games. • In one paragraph, what is the characteristics of a good UI for a game. • The current task: Develop a 2D compass that always points to the north at the bottom right of the screen • Display the name of the player and their next task at the top left corner of the screen • Show the random message of places name “Door, Window, sidewalk” when the “ObjectTouch” flag is raised [Consult with Saggu] • Show the message “Hit F for action” when the “ObjectIn” flag is raised [Consult with Saggu] • Enable Debugging mode
  • 25. © 2021 arche1.co.jp | jaist.ac.jp All rights reserved. P A G E 25 T H A N K S F O R Y O U R AT T E N T O N