Thank you! :) Glad you liked it, I wish it was in a way more complete state than it is hahah
13x666
Creator of
Recent community posts
What is this?
Quest Lens is a flexible, extendable static code analysis tool for Power Quest games.
It works by parsing source files, extracting events involving entities of interest throughout your project, and linking them back to files, functions, and specific lines of code.
Where do I set this flag to false? Which props react to clicking with this item? What is going on in this room? How many ways are there to get this dialog option to be "OffForever"? Do I ever check if this item is owned?
The Quest Lens window is a full-featured browser for all this data.
The system is modular under the hood, allowing you to easily write your own parsers to extract any project-specific data you might be interested in.
Features:
- Built-in entities and events:
- Global Flags — Set value, Check value;
- Dialog Options — turn On, turn Off;
- Inventory Items — Add, Remove, Owned?, UseInv interactions with every Prop, Hotspot, Character or Inventory;
- Misc. — // TODO comments, Sections;
- Scanner:
- Automatically rescans with each domain reload (in a background thread, and typically <1s);
- Links points of interest to specific classes, methods and lines of code;
- Analyses if-branches with mentioned items
- Is hella smart (sometimes!)
- it will try to deduce what "item", "option", "thisItem", "I.Active", "D.Current", etc. refer to;
- if (item is Apple, Orange or Peach) item.Remove()? It will know what's up!
- Automatically rescans with each domain reload (in a background thread, and typically <1s);
- Browser:
- Badges to indicate potential problems or just properties, e.g.:
- a "red" inventory item is removed but never added;
- a "gray" dialog option is never turned on or off;
- a "red" variable is checked somewhere but never assigned to;
- Preview actual code of every found point of interest;
- Search & Filters;
- Cross-links between entities with navigation History;
- Links to actual code — click a method name or a line of code to open it directly in Quest Editor;
- Links from actual code — when editing code in Quest Editor, click "From editor" and drill in;
- Customization: extend provided classes to easily extract your own data.
- For the adventurous!
- Define entity collection — like from enum values, files, prefabs, predefined lists, etc;
- Describe entity appearance — names, rules for status badges, color-coding;
- Extract data from code — using simple interfaces to assign tags to found events;
- Misc. entities — quickest way to find arbitrary points of interest in the codebase, like comments, uses of a particular function, etc.
Version history:
- v. 0.5 — 29 May 2024
Installation:
- Download PQQuestLens.unitypackage
- Add it to your project via Assets > Import Package > Custom package...
- Open from Game > QuestLens
Notes:
- Current version wasn't tested with verbs or tuned for them, but it can be done;
- Detection of global variables relies on naming convention by default (m_ prefix). Detecting variable access without any convention can potentially be slow (depending on the number of global variables in your project), but possible (just test every line against every variable name, yoohoo);
- If your naming convention has structure (like prefixes for quests, chapters, types, etc) it can be used to render headers in the entity list;
- It's big and wasn't initially planned for publication. I hope it's stable. Seems stable...
Support:
- Reach out in PQ Discord (@13x666) if
- It refuses to work for you
- You found a bug or an oversight
- You have an idea for a great new feature
- You really want to add a project-unique feature but not sure how
I don't think there's any in-depth documentation on how scaling works per se, but just from PQ code it simply scales the character's transform by the value calculated from the position in the current region, and then the pixel-perfect camera effectively applies the "nearest neighbour" interpolation to the result. So the unpredictable result at lower scales is sorta expected.
Don't think there are built-in solutions for your case. And in case of overlapping scale regions, it looks like instead of combining the scales, it uses the values from one of them, which is not really useful.
I'd recommend joining the Discord server and asking in the general chat or creating a topic, the discussion over there is much more active
You can use the scale property of Regions. You add them in the Room tab, define where you want them to be in the scene and then in the Inspector you set Scale top and Scale bottom to the values you like — this will gradually change the scale from one value to the other as your characters pass through the region. So if you need a room where characters are always seen from far away, you just create a region that covers the whole room and set both scale values to the value you need.
Simple interactive map of your game to easily navigate, open scenes or teleport between rooms.
Version History:
- 0.4 — Jan 8, 2024:
- Added QUICK MAP
- 0.3 — Aug 8, 2023:
- ALL tab to see all rooms at once for projects with room subfolders;
- Support for rooms at root level next to subfolders;
- Click active room again to select it for inspection;
- Ability to remove previously added rooms from the map;
- Fix mouse pan speed when zoomed;
- 0.2 — Jul 19, 2023:
- Added zooming (Ctlr/Cmd + mouse wheel or sidebar buttons);
- 0.1.1 — Jul 17, 2023
Installation (v 0.4):
- Do either of these:
- Download PQGameMapEditor.unitypackage and add it via Assets > Import Package > Custom Package...
- OR just download GameMapEditor.cs and stick it into .../Assets/Game/Editor/
- Open the map from Window > Game Map
Usage:
- Optionally, use subfolders in your .../Assets/Rooms folder to separate the game map into areas. Top-level subfolders will be presented as tabs in the side-panel;
- Click [Edit map] button at the bottom to switch to edit mode and create map layout:
- Full list of rooms in current folder will be presented
- Click a room, then click a map cell to place it
- Use arrow buttons under room list to move the whole map if you need more space for new rooms
- Click [Edit] button again to exit edit mode
- Full list of rooms in current folder will be presented
- Use +/– sidebar buttons or Ctrl/Cmd + mouse wheel to zoom the map
- ALL tab: "overworld" view
- Appears if your rooms are sorted into subfolders
- Create a neat area map for every subfolder as described above
- Switch to ALL and enable Edit mode: folders will become selectable
- Zoom out for convenience
- Click a folder and place its map on the canvas
- Click already placed rooms to move whole areas at once
- Click [Edit] button again to exit edit mode
Quick Map:
- Set up the map layout using the Game Map window
- Press ; (semicolon) anywhere in Unity to bring up Quick Map
- Click a room to switch to it
- To close Quick Map, press ; (semicolon) again or just move the mouse out of the map
- If you have room subfolders, use mouse wheel or </, and >/. to navigate between them
- In the main Game Map window you can click Edit and change your Quick Map color if you want!
- Known bug: On some systems it pops up fixed size and square no matter what — don't know how to fix it yet because I can't reproduce it. Please let me know if you've encountered this behaviour too!
Features:
- While the game isn't running, click a room to open its scene;
- While the game is running, click a room to teleport to it;
- Click the active room to select it in the Hierarchy;
- Also, the current room of a running game is highlighted. Just in case you get lost!
Notes:
- If you see empty room thumbnails/prefab icons, refresh the view by clicking Refresh or current folder a few times;
- The layout is stored in ...Assets/Game/Editor/game_map_data.json — delete it to reset the layout;
- Ask me (13x666) in PQ Discord if you have questions/suggestions
Planned features/fixes:
- (your ideas here?)
- The paddle actually is just trying its best to attack the crown, and if there's no better way it will mostly just shoot straight at it. Might be annoying, but it's literally in the name, so... jk, I agree it needs improving :)
- You're right about the fact it's hard to understand how you're given new blocks. We ran out of time when working on HUD and decided in the last moment to just type the explanation under the playing field, but that's not a good way to present important concepts to the player, obviously, must be
improvedmade from scratch. - True about awkwardness with placing sometimes, we'll probably add a way to aim further/nearer at the very least.
- Yeah, there's a lot of potential ways to add variety to the game loop, including some ways to "attack" the paddle, add special attacks to the paddle itself, etc. Definitely worth exploring!
- Given that right now the goal is to maximize the score for the leader board, perhaps the best course of action when you have no blocks left is to just sacrifice the crown and run with the points :) But I agree, in a more sophisticated version this endgame strategy would be pretty boring.
That was a lot of good points, thanks a lot for sharing your thoughts! :)