Skip to content

Conversation

@ian-urqu
Copy link

Overview

  • Ability to load, create, or save a new domain (active workspaces for predicates, actions, and objects)
  • Create/load predicates with any 2 (or 1) parameter(s), and easily drag onto action or object asset
  • Create/load actions and customize name, precons, immediate fx, and special fx
  • Create/load objects and specify their assets
  • Save changes to update robotouille.json and robotouille.config files directly

Changes Made

Predicates:

  • Load previously made or create new predicates on the left panel and click to create a new draggable block version of the predicate
  • Predicate draggable blocks can be clicked again to toggle true/false
  • Click their parameter dropdown to change

Actions:

  • Load previously made actions (or create and name new ones) from left panel and drag and drop predicate blocks into sections
  • Parameters for the action will automatically update on the top right of the workspace when accomodating new predicates
  • Drag special FX blocks into the sfx section and click again to bring out their own dropdown workspaces where more predicates can be attached

Objects:

  • Load images in and drag predicates onto them to define the asset condition
  • Save objects to edit robotouille_config.json file when ready

Test Coverage

Mostly done with manual testing, still needs more for limits and edge cases!

To test yourself (assuming you're in the right environment and have followed other steps to setup):

  1. cd frontend && python3 domain_editor.py
  2. Create a fresh action by clicking "New Action" on the top bar
  3. Click "Enter your action name..." and type in whatever name you like
  4. On left hand panel, click to spawn, then drag predicates into snap slots in the sections that you want
  5. Click on the draggable blocks to toggle from True (green) to False (red).
  6. Click Show SFX on the top left to show the 3 pre set special effects, and click + drag to SFX section of your new action
  7. Click again once in a slot to open up their own dropdown, where you can drag more predicates
  8. If you would like to create a new predicate, click New Predicate next to the Show SFX button, then enter name and select parameter types, and click save
  9. Once finished, hit Save Domain (not Save NEW Domain!!!) and check the robotouille.json file to find your new action

Next Steps

  • Fix bugs related to serialization and special fx, because logic is prone to breaking easily
  • Implement final hi-fi theming for components

Related PRs or Issues

[WIP] Ryan/level editor new

Short Demo, full demo in slack thread

Screen.Recording.2025-05-23.at.8.33.28.PM.mov

lsuyean and others added 30 commits May 1, 2024 15:49
* rough draft of creation effect

* implemented pickup and place container

* implemented fill water

* Made boil water: bug when creating new objects, no id assigned

* boil soup bug fixed

* finish implementing all actions

* implemented cook soup test

* added conditional delayed effect for cook, boil, and fry; added versions to env files; empty fields in problem files not not required

* updated based on comments

* edited goal such that it can include objects not in initial state

* pddl functions uncommented

* fixed bug for station location predicates and no conditional effect for filling water

* addressed comments, fixed bug in creation effect

* fixed tests
* rough draft of creation effect

* implemented pickup and place container

* implemented fill water

* Made boil water: bug when creating new objects, no id assigned

* boil soup bug fixed

* finish implementing all actions

* implemented cook soup test

* added conditional delayed effect for cook, boil, and fry; added versions to env files; empty fields in problem files not not required

* updated based on comments

* edited goal such that it can include objects not in initial state

* pddl functions uncommented

* fixed bug for station location predicates and no conditional effect for filling water

* Implemented multi-agent

* addressed comments, fixed bug in creation effect

* fixed tests

* made changes based on comments

* initial implementation

* fixed movement

* fixed issues in simulator in collecting actions from correct players

* path finding ensures that players cannot move to destination of other players

* Enhanced Goals (#29)

* rough draft of creation effect

* implemented pickup and place container

* implemented fill water

* Made boil water: bug when creating new objects, no id assigned

* boil soup bug fixed

* finish implementing all actions

* implemented cook soup test

* added conditional delayed effect for cook, boil, and fry; added versions to env files; empty fields in problem files not not required

* updated based on comments

* edited goal such that it can include objects not in initial state

* pddl functions uncommented

* fixed bug for station location predicates and no conditional effect for filling water

* addressed comments, fixed bug in creation effect

* fixed tests

* temporary commit

* edited based on comments; reworked movement class and added station class

* used pygame clock for animations, cleaned up code

* Updated based on comments

* fixed based on comments

* made edits

* fixed merge issues when rendering containers

* fixed rendering bug
* added blender asset and created mock json

* allow containers and stations to have customize offset

* the platform underneath stations are now defined in config.json

* reverted robotuille_config.json format and refactor code to function

* fix json format

* fixed offset

* menu screen demos

* transition update

* added some sketch up

* added settings/ main_menu transition

* add transition from game back to menu

* fix resize problems

* basic slider

* Add NinePatch
Add Slider
Modify Button to have all 3 states

* fixed variable names

* optimal knob

* added more scene objects to background

* Refactor button and image class

* Refactored screens
Refactored buttons, image, textbox
Fix slider and button interactions

* add pygame pump

* add logo page

* Created the Loading Page
- Loading page (just increments by 1% each time the update function is called), need to switch to based on # of assets loaded
- Added specification to all files

* Add Editable Textbox
Updated Settings
Added Assets for different menus

* refactored code

* fix rescaling problems

* created lobby screen

* end game screen

* add docs

* changing to window + surface

* added basic pause menu

* fix ninepath rescale rendering probelm

* fixed scaling problems

* made anchor explicit

* create intermediate surface

* update setting names

* fix pause, need to fix render jitter

* fix bug

* finished pause menu

* added order bar and refactored how assets are loaded

* pre load all assets in renderer/canvas

* fixed merge issues

* refactor simulator

* separated research and game code

* Added Documentation
Separated research and game

* fixed small bugs

* explicitly import instead of using *

* change camel case to snake case

* changed Loading.ASSETS indexing convention. From absolute path to folder + image name to [absolute path to folder][image name]

* change output type for simulator.update

* added effet: fade in, waits for a bit, fade out

* fixed music slider

* small changes based on pr

* fixed minor issues

* used for loops for end game

* fixed screens

* Refactor game and benchmark renderer into one and add master clock entrypoint for both

---------

Co-authored-by: chalo2000 <gg387@cornell.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants