Difference between revisions of "LevelEditor"

From Project Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
[[Category:Feature]]
 
[[Category:Feature]]
=== Idea ===
+
=== How to use the Level Editor? ===
''What is my general idea for the feature? ("Tldr!")''
 
  
* Have an easily usable template for Xp-cards
+
==== Placing Objects: ====
* Hav an example Xp-card regarding structure and content
 
* XP-Cards should be formatted in a way that information can be found quickly and efficiently
 
  
=== Intention / Requirements: ===
+
# Aim the cursor at the place you want to place the object
''What am I trying to achieve with the idea and what are my constraints?''
+
# Check that the outline is green
 +
# Click the left mouse button
  
* Designers should be able to check their xp-cards by themselves 
+
==== Removing Objects: ====
* Reduce workload from the lead and give more autonomy to the designers
 
  
=== Refrences ===
+
# Aim the cursor at the place you want to remove the object
''The Refereces (if available).''
+
# Check that the outline is red
{| class="wikitable"
+
# Click the right mouse button
|'''Game'''
 
|'''Mechanic'''
 
|'''Descriptions'''
 
|-
 
|EXAMPLE GAME
 
|Example Mechanic from that game with link
 
|What Part do I reference from the mechanic in the referenced game
 
|-
 
|
 
|
 
|
 
|}
 
  
=== Design ===
+
==== Saving Levels: ====
''What is my specific design for the feature?''
 
  
==== First: ====
+
# Click the 'Save Level' button
  
* The idea behind the feature
+
==== Loading Levels: ====
* Intention and Requirements of the feature
 
* Context needed to understand the design 
 
  
==== Second: ====
+
# Click the 'Load Level' button
  
* Necessary References
+
=== How does the Level Editor work? ===
* The feature design
 
* Feedback needed for the design to work  
 
  
==== Finally: ====
+
==== Placing Objects: ====
  
* Dependency-Links to other features
+
# Checking the world position of the cursor
* Variables, needed to balance the feature design
+
# Checking if the grid is empty or not
 +
# Instantiating the selected object as child of the "Parent" tagged object
  
=== Required Feedback ===
+
==== Removing Objects: ====
''What feedback does the designed feature need to function?''
 
  
==== VFX ====
+
# Checking the world position of the cursor
 +
# Checking if the grid is empty or not
 +
# Destroy object in selected grid
  
* Feedback 1 - Short description how it should look/sound/work
+
==== Saving Levels: ====
  
==== Animations ====
+
# Find all categorised objects using tags (Wall, Sentry, etc.)
 +
# Convert them all into a stripped down serializable datatype
 +
# Insert the stripped down data into an array
 +
# Create a LevelData from all of the data arrays
 +
# Use a binary formatter to encrypt the level data
 +
# Save the encrypted data to file
  
* Feedback 2 - Short description how it should look/sound/work
+
==== Loadng Levels: ====
  
==== Sound ====
+
# Read the data from file
 +
# Use a binary formatter to decrypt the data into a LevelData
 +
# Clearing the level by destroying all objects of the "Parent" tagged object
 +
# Building the level by instantiating every object from LevelData as child of the "Parent" tagged object
  
* Feedback 3 - Short description how it should look/sound/work
+
[[Category:InProgress]]
 
 
=== Variables ===
 
''What Variables do I, as the Designer, need to balance this feature?''
 
 
 
* variableName - what the variable does
 
 
 
=== Dependencies ===
 
''On what other features is this feature rely on?''
 
 
 
[[Link to Dependencies]]
 
[[Category:ToDo]]
 

Revision as of 12:45, 6 May 2021

How to use the Level Editor?

Placing Objects:

  1. Aim the cursor at the place you want to place the object
  2. Check that the outline is green
  3. Click the left mouse button

Removing Objects:

  1. Aim the cursor at the place you want to remove the object
  2. Check that the outline is red
  3. Click the right mouse button

Saving Levels:

  1. Click the 'Save Level' button

Loading Levels:

  1. Click the 'Load Level' button

How does the Level Editor work?

Placing Objects:

  1. Checking the world position of the cursor
  2. Checking if the grid is empty or not
  3. Instantiating the selected object as child of the "Parent" tagged object

Removing Objects:

  1. Checking the world position of the cursor
  2. Checking if the grid is empty or not
  3. Destroy object in selected grid

Saving Levels:

  1. Find all categorised objects using tags (Wall, Sentry, etc.)
  2. Convert them all into a stripped down serializable datatype
  3. Insert the stripped down data into an array
  4. Create a LevelData from all of the data arrays
  5. Use a binary formatter to encrypt the level data
  6. Save the encrypted data to file

Loadng Levels:

  1. Read the data from file
  2. Use a binary formatter to decrypt the data into a LevelData
  3. Clearing the level by destroying all objects of the "Parent" tagged object
  4. Building the level by instantiating every object from LevelData as child of the "Parent" tagged object