GithubHelp home page GithubHelp logo

maxbittker / sandspiel-studio Goto Github PK

View Code? Open in Web Editor NEW
31.0 5.0 3.0 2.7 MB

Cellular Autonoma Playground

Home Page: http://studio.sandspiel.club

License: MIT License

CSS 5.32% JavaScript 85.40% GLSL 1.16% TypeScript 8.12%

sandspiel-studio's Introduction

Sandspiel Studio

Sandspiel Studio is a new tool for creating and sharing new Sandspiel elements. It uses a block-based system to let beginners (and pros) create their own simulations.

When it's ready for release, the tool will be free, but right now we're looking for some kind people to support our development process and give us feedback.

So if you're interested in supporting the project and getting behind-the-scenes updates, sign up for our private discord!

- Max & Lu

Try it out!

You can try out Sandspiel Studio at studio.sandspiel.club

  • There are some video tutorials on our youtube channel that show you how to make some simple simulations.
  • Check out the block reference for more detailed information on what each block does.

For developers

This is how you can run Sandspiel Studio locally.
First, clone the repo.

Then, install:

yarn install
yarn build

Then, run:

yarn dev

sandspiel-studio's People

Contributors

labbo-lab avatar maxbittker avatar todepond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sandspiel-studio's Issues

Change base block from statement-style to top-style

Old:
image

New:
Untitled-1

I think this would be better because:

  • it fits in smaller screens better
  • it's cleaner + tidier, so less overwhelming (eg: when you open a complicated element)
  • it's how scratch works, which is what many users will already use, so it'll be more familiar

I think we need to change it now, rather than later because: It'll break all the saved+shared posts, so people will lose their work when we change it.

Arrangement

Different things should re-arrange themselves nicely for different devices + aspect ratios + resolutions! It would be good to try out some different solutions in this repo to see what works/doesn't work!

Touchscreen

You can't paint elements onto the simulation with the touchscreen yet

`ra` and `rb` support

It would be good to get some early placeholder support for setting + getting ra and rb values so that we can implement all the sandspiel elements in sand-blocks.

Too much 'here'

It's annoying having to put 'here' everywhere!!!

image

Like in this screenshot... I don't want to say

set ra 'OF HERE' to ra 'OF HERE' + 1

Instead, I just want to say

set ra to ra+1

Update order messes up stuff

The order that the world updates makes lots of behaviours weird. Change to track which cells have updated, and stop them acting twice? Find a better update order?

No wind

There's no wind or fluid effects in sand-blocks. That's ok for now, but for full compatibility with Sandspiel, we'll need working blocks for this!

`getTypeOfChild` in `generator.js` is unreliable

getTypeOfChild is unreliable. When some (but not all) of a block's inputs are shadows, the order of childBlocks_ can't be trusted... It sometimes goes in a weird order. We should use a different way of getting child blocks.

Update order picker

Make a way of changing between different update order approaches (to test them out)

Make our own plus/minus blocks

Because I haven't got to them yet!

I'm currently experimenting with the best way of implementing them. Watch this space!

Element Group block is weird

It's unclear how it should work.

Stuff like this makes sense:
image

But what would this do? (currently it's not allowed)
image

Maybe there should be an 'is any of these...' condition instead or something...

Visuals?

Consider adding big+clear visuals to the blocks?

Would it be possible to make sand-blocks useable by someone who can't read words?

Operator block should have implicit typing

The operator block (the one with add, subtract, multiply, divide) should implicitly change colour and type depending on what values you place inside it. (You can put both numbers and vectors into it).

I made an issue for this because it's a bit of a big job, and I know how to do it, but I'm focusing on experimenting with other things for now!

More coercion

Many blocks can't be placed in other blocks, which isn't fun.

And types can't be used as other types, which isn't fun.

They should try their best to work!

Nested transformations don't stack

When you put a transformation block inside a transformation block, they should combine. Instead, they should combine. Should be a simple fix by making pushTransformation and popTransformation functions or similar.

Consider 'partial' events

Consider making it so... an element's behaviour doesn't all get done in one event? Some blocks could be 'stopping points'? I see some issues with this regarding checking your surroundings, assuming they're still the same, and then they change in between turns. But maybe there is some potential goodness from having element code look like "do this THEN do this"

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.