Theory, Design & Programming
GAME DEVELOPMENT
Rickman Roedavan
(Rikman Aherliwan rudawan)
Author, Lecturer, Game Director
PORTOFOLIO
Telkom University
Head of Multimedia Research Laboratory
Game Programming Lecturer
Best Seller Books
Startup Experience
1. Mythologi Studio (Game Director)
2. Cube Studio (Startup Mentor)
3. Jagad Creative (Game Director)
4. Jundi Kreatif (Operational Director)
5. Qiva Project (Technology Director)
6. WOW Komik (Co-Founder)
7. IMedia9 (Founder)
PT. Dirgantara Indonesia (Persero)
1. Bussiness Analyst (Sales Engineer)
2. Tactical Floor Game (Project Leader)
3. Planing Operation System (Senior Programmer)
4. Wargaming System (Junior Programmer)
Outline
Game Theory
Definition
Entertainment Game
Educational Game
Serious Game
Game Development Life Cycle (GDLC)
Game Engine Introduction
Outline
Game Design
Definition
Storytelling
World Building
Character Sheet
Game Goal Typology
Outline
Game Programming
Definition
Game Input
Mouse, Keyboard, Gamepad, Touch, Sensor
Game Event
Calculation, Activation, Visualization
Transformation, Animation, Instantiation,
Interaction, Collision, Iteration, Condition
Game Mechanic Implementation
Physics Calculation, Avatar Controlling, Entity Statistic,
Internal Economy, Tactical Manuevering,
Gameplay Balancing, Social Interaction, User Generated Content
GAME THEORY�
Game Theory (Entertainment)
“Game is any activity which is executed only for pleasure and have two main component namely objectives and rules.”
(Wikipedia)
Game Theory (Educational/Serious Game)
“Games have an explicit and carefully thought-out educational purpose and are not intended to be played primarily for amusement.”
(Clarck C Abt, 1970)
Game Theory (Serious Game)
“Digital Game which are applied in serious fields and have an assessment mechanism for its players to improve their skill.”
(Rickman Roedavan, 2021)
Game Theory (Gamification)
“Gamification is the use of Game Elements of game design in non-game context.”
(Sebastian Deterding, Dan Dixon, Lennart E. Nacke, & Rilla Khaled, 2011)
Game Theory (Game-based Learning)
“Combination of and serious learning and interactive entertainment into a newly emerging and highly exciting medium.”
(Marc Prensky, 2001)
Game Theory (Overview)
Rickman Roedavan, 2021
Game Development Life Cycle (GDLC)
Chandler, H., Game Production Handbook, Sudbury: Jones and Bartletts Publishers, 2009.
Hendrick, A., Project Management for Game Development, http://mmotidbits.com/2009/06/15/project-management-for-game-development. (18 March 2020).
Blitz Games Studios, Project Lifecycle, http://www.blitzgames studios.com/blitz_academy/game_dev/project_ lifecycle. (18 March 2020)
Game Development Life Cycle (GDLC)
Rapid Game Development
Roedavan, R., Pratondo, A., Utoro, R. & Sujana, A., Adaptation Atomic Design Method for Rapid Game Development Model, International Journal of Applied Information Technology, 4(2), pp. 93-102, May 2021.
Serious Game Development Model
Roedavan, R., Pudjoatmodjo, B., Siradj, Y., Salam, S., & Desy, BQ., Serious Game Development Model Based on the Game-Based Learning Foundation, Journal of ICT Research & Application, 15(3), pp. 291-305, Dec 2021.
Game Engine Introduction
Game Engine Introduction
GAME DESIGN�
Game Design
“Game design is the process of designing and developing games, including gameplay, plot, level design, characters, graphics, sound, and the interaction between players and the game. ”
Storytelling
World Building
Worldbuilding is the process of constructing an imaginary world, sometimes associated with fictional universes. The quality of the world created should encompass history, geography, and ecology. Some science fiction or fantasy writers also create their own maps and languages to make their created world seem more real.
Character Building
Character building refers to the process of developing a player's in-game character through the acquisition of skills, abilities, and equipment. This process can involve leveling up, completing quests, earning experience points, and finding or crafting new items. The player's choices and actions throughout the game will also impact the development of their character, allowing for unique playthroughs and replayability.
Game Goal Typology
Choose
Obtain
Configure
Optimize
Solve
Reach
Create
Synchronize
Find
Remove
Michael Debus, 2020
GAME PROGRAMMING�
Game Programming
Game programming is the process of creating computer code that governs the behavior of a video game. This includes writing algorithms to handle game mechanics, designing user interfaces, creating artificial intelligence, and integrating graphics and sound into the game. Game programmers work collaboratively with game designers, artists, and producers to bring a game from concept to completion.
Game Input
Gamepad
Eye
Keyboard
Body
Touch
Mouse
Gesture
Image
Voice
Sensor
Rickman Roedavan, 2021
public class MouseClickDetector : MonoBehaviour
{
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
Debug.Log("Mouse clicked!");
}
}
}
public class TapDetector : MonoBehaviour
{
private float tapTimeThreshold = 0.2f;
private float tapDistanceThreshold = 50f;
private Vector2 prevTapPos = Vector2.zero;
private float prevTapTime = 0f;
private void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
float timeSincePrevTap = Time.time - prevTapTime;
float distanceSincePrevTap = Vector2.Distance(touch.position, prevTapPos);
if (timeSincePrevTap <= tapTimeThreshold && distanceSincePrevTap <= tapDistanceThreshold)
{
Debug.Log("Double tap detected!");
}
else
{
Debug.Log("Tap detected!");
}
prevTapPos = touch.position;
prevTapTime = Time.time;
}
}
}
}
Game Event
Visualization
Instantiation
Activation
Collision
Interaction
Calculation
Transformation
Iteration
Animation
Condition
Rickman Roedavan, 2021
public float moveSpeed = 5f;
private void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(horizontalInput, 0f, verticalInput) * moveSpeed * Time.deltaTime;
transform.position += movement;
}
float speed;
private void Update()
{
if (speed > 0.1f)
{
animator.SetFloat("Speed", speed); //walk
}
else
{
animator.SetFloat("Speed", 0f); //idle
}
}
Game Mechanic Design
Physics Calculation
Branching Progression
Avatar Controlling
Tactical Maneuvering
Entity Statistic
Social Interaction
Internal Economy
User Generated Content
Linear Progression
Gameplay Balancing
Ernest Adam, 2010; Roedavan, 2023
THANKS