Giter VIP home page Giter VIP logo

puzzlegraph's Introduction

PuzzleGraph

PuzzleGraph is a tool for creating simple typical computer game puzzles and then analyzing and visualizing their state space.

Setup and connect puzzle elements like gates, toggles, pressure plates and boulders. See the state space of the puzzle visualized, including solution paths, dead ends and fail states.

The repository is a Unity project. The code base consists of a back-end that does not rely on Unity API and a front-end that's developed on top of Unity's features. (The back-end does not rely on the front-end, so it should be possible to develop an alternative front-end if desired.)

Contribution guidelines

I'll be happy to consider pull requests, particularly if they are of features mentioned in the todo-list, or bug fixes.

For features not part of the todo-list, I'll consider it on a case by case basis. I would suggest reaching out to me early to discuss if and how new features could be integrated.

License

Copyright (c) 2016 Rune Skovbo Johansen

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Todo-list

Loose ends

  • Test puzzles with multiple players.
  • Make sure all edge and node types make sense.
  • Take an extra pass looking into consequences of complicated boolean trigger/effect logic.

State graph

  • Make state graph update while editing.
  • Visualize one-way connections with arrows.
  • Make it possible to click on nodes in state graph to go to that state.
  • Highlight (somehow) adjacent states that can be reached from current state.

Graph reconnecting

  • Allow reversing direction of directional edge elements via option in left sidebar.

Triggers are currently drawn with LineRenderers and are not selectable at all. Not sure yet of best way to solve it.

  • Allow selecting trigger connections and deleting them.

Edges cannot be reconnected to other nodes. Would suggest a workflow where if the edge is clicked near one end or the other and then dragged, it gets detached in that end and can be dragged onto a different node.

  • Allow re-connecting edges to other nodes.
  • Allow re-connecting triggers to other nodes.

Graph authoring without tools

Currently authoring is done by using three different tools for drawing (creating/connecting nodes), moving nodes, and adding triggers. It would be more intuitive and quick if there's no tool switching, and instead small widgets over the hovered node allow dragging edges out and adding triggers. The widgets would appear for one node at a time only, when the cursor is within a given radius of the node.

Mockup:
PuzzleGraphMockup.png

  • Make widgets for dragging edges out - at edge, pointing in direction of mouse cursor.
  • Make widgets for dragging triggers - inside node, in lower half.
  • Remove tools.

Menus

  • Make save and load dialogs look proper.
  • Make About dialog.
  • Make splash screen.

puzzlegraph's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.