RoboScratch devlog #9 - Introducing Multiplayer mode!

Log#1

Hello Guys,

In the beginning of this year I started to develop a Scratch-like game in Roblox.
(Here is Scratch link if you are not familiar in Scratch)

This is my very old dream, as I would like to have a flexible tool to make simple story-teller app (to make videos), an animation maker, or even sg to test simple game ideas.

This is an extremely serious challenge, as I want to make a good-looking environment / flawless engine / easy-to-use GUI, so I have a list of hundreds of todo.

Now Iā€™ve reached the first milestone (after appr. 2-3 weeks): the ā€˜scriptā€™ builder works properly and the RUN button starts the interpreter / compiler that runs the code(s) realtime.

This is a single-player experience now (I need to solve many multiplayer issues before it can be a real multiplayer experience).

Unfortunately I have 2 test commands only + a START object, so it is not a working game, but sg really new and you may enjoy it while testing :slight_smile:

I hope Iā€™ll have the time and passion to go through the next steps, so I think it is sg to share with you here, Iā€™ll post the milestones here and on my YouTube channel.

Check out the first video: or the most recent one here:

This is a kick-off video, no narration (in the next one Iā€™ll tell sg about what is happening + Iā€™ll share a test experience).
It is just some ā€œclicking and draggingā€ show to get the taste of the idea.

What do you think about such a game/tool/experience?
I donā€™t even know the category yetā€¦

Is it interesting? Exciting? Boring?
Is it sg that you would use if it is ready?

What features you think important?

I plan to implement many commands, like

  • loops (for, while)
  • conditions (if), wait
  • variables
  • object based: move, rotate, tween, animations
  • changing a lot of properties
  • GUI based: lead-in/lead out screens, subtitles, overlays
  • save/load
  • theme based objects / sounds + user objects, user sounds
  • multiplayer mode, shared works, public works
    and many more.

Probably some of the ideas are not possible or more than I can develop at all.
I think it will take foreverā€¦

May you like this concept, please join to Apafey Studio group :slight_smile:

Even more, you can support the project via Patreon!

Enjoy your time!

11 Likes

This is a great idea! I used scratch myself for a while, and the code blocks work much like it. I would suggest allowing you to set the coordinates for the block(s) to move to in the move command. Another thing that would be interesting to see is the pen. During my time on scratch, I never used it much but I saw some cool projects people made using it.

Some of these ideas sound hard to code, like the sharing projects system, but I think it is possible. Good luck, and I hope it succeeds!

2 Likes

This sure does give me back memories of Scratch 1.0
It looks good so far, UI is a bit rough around the edges but Iā€™m sure thatā€™ll recieve a bit of polish

A recommendation for the Say block, instead of throwing the hello message in console, I think it would be cool to use ChatService to get speach bubbles true to the original Scratch for example:

local ChatService = game:GetService("Chat")
ChatService:Chat(script.Parent, "Hello!", "White")

Result:

One other thing I wished Scratch had was once you made the blocks, you could see the innerworkings of the blocks, e.g.

game.Workspace.Brick.Position = Vector3.new(5, 10, 15)
say("Hello!")

Something basic, and would really help users understand what theyā€™ve essentially put together but in real code, it could also get them more into coding if they tried to get it to work in Luau instead of this game which then could introduce them into debugging

3 Likes

Ty for your comment!

ā€œI would suggest allowing you to set the coordinates for the block(s) to move toā€

This is absolutely in the todo list, probably one of the top/first priorities.
About ā€œPenā€: Iā€™ll check how it works in Scratch (I donā€™t use pen), but if it sg like a paint/drawing tool, that can be a challange to implement.

3 Likes

Log#2

A quite big update to RoboScratch project:

  • a smart menu system
  • multi window / multi object scripting

Restrictions:

  • commands canā€™t be moved between command frames!
  • drag & drop is vailable to active window only

Working on:

  • adding some ā€œrealā€ commands
  • variables

image

May you like this project, please join to Apafey studio Group!

This is still a POC phase, but it is quite a big jump!

Leave your comments below!

1 Like

Log#3
Next RoboScratch Game stage achieved:

  • improved build functions - object mover handlers with snap to grid function
  • add/remove scripts buttons (working)
  • run/stop scripts buttons (working)
  • a ā€œlobbyā€ GUI when you login (press Private Place button, currently it works only)
  • improved in-game GUI (checkboxes donā€™t work yet but they are related to the upcoming features)
  • added compass (added with my compass adder plugin)

Iā€™m working on the GUI and build functions heavily (move, rotate, resize) - the script runner remained the same, even more, it has a bug: it runs the script twice.

It takes a loooooooot of time to reach the next small stepā€¦

May you like this project, just let me know and join to Apafey Studio!

1 Like

Log#4

Iā€™m close to finish the in-game building tools in RoboScratch project.
Tools include move/resize/rotate the selected model.

Select ā€œSingle Playerā€ in the start menu.
I hope Roblox servers are working properlyā€¦

No info labels or any other extra right now.
Snapping:

  • Rotation snaps by 5 degrees,
  • Moving snaps 0.5 blocks
  • No snap in resizing.

In fact, that was really hard to fix all issues, especially resizing the models both on client and server. I still donā€™t beleive if Iā€™ve done it at all!

Iā€™m waiting for your comments on the system, especially if you find some annoyances or bugs. Any positive feedback is also welcome :slight_smile:

You can turn on/off visual elements on the left bottom corner, resize handles are turned off by default.

Scripting part does not too much, I wanted to finish the mechanics first (as the script part is working on the minimal ā€œproof of concpetā€ level as written above).

2 Likes

Tested it and it itā€™s coming along well! Would be nice if the resizer resized in the direction being dragged. But really, Iā€™m looking most forward to the Blockly style drag-and-drop functionality. Keep up the good work.

1 Like

Maybe you could add ___ spots. I would be willing to help with this project after I finish what Iā€™m working on and if I have no work from a group.

1 Like

Alright so I got around to testing it, and it is a very good start. Only problems are the renaming just renames it automatically to newName[number], and there is no input for move/say blocks. I would suggest adding these as soon as possible. Otherwise itā€™s pretty good for how early on it is.

1 Like

TY for your kind words :slight_smile:

Resizing is a real nightmare, I was fighting with troubles for 2 days. Finally I managed to get this universal resizer feature (working the same way in each direction).

Probably later Iā€™ll come back to this tool, currently the math part would be a bit too complex to me. May you know a good script for this Iā€™d be happy if you could share it with me!

P.S. Consider that resizing in-game means resizing models with different object types like parts, meshparts, specialmesh, textures/decals etc. and it needs to be replicated from local to server, so it is not enough to find a 10-line scaling script :frowning:

TY for your kind words!

There are many-many things to add, this is still a pre-pre-pre alpha, itā€™s still a ā€œproof of conceptā€ only.

About your great offer to give me some help: I think about it, Iā€™m not sure how to split the tasks. There are extremely lot to do, I have a plan in mind but I change it daily :slight_smile:

Iā€™ll come back to this kind offer soon!

TY for your kind words!

You are right, renaming does nothing useful yet (as many other buttonsā€¦)

Renaming was the most recent update to the demo.

I had to solve many possible issues when implementing the rename feature (e.g. to avoid script injection via object naming), so I used an automated random name first, next step is to give an input area.

Furthermore, to let the user add any string, I need to add text filtering as I plan to let users share their scripts (feature coming probably in a year :slight_smile: )

Anyway, Iā€™m happy that developers like You started to try and follow this project.
Iā€™d be happy if you join to the Apafey Studio group!

1 Like

Log #5
Moving command blocks between scripts

It took appr. 3 days, but now command blocks can be moved between script frames.
This was the most important change before the next step(s):

  • addig parameters/variables
  • touch support (+ GUI redesign)

I added a ā€œwhatā€™s newā€ welcome screen too.

Feel free to try it out :slight_smile:

image

1 Like

Log #6
A very important update, many thanx to Xsticcy for his support! !

  • Mobile / Tablet support (touch events, zoom, move etc. + GUI redesign, tiles etc.)
  • Freecam option, works similar to Studio - supports keyboard/mouse/gamepad!
  • remark: some checkboxes remained, they will be moved to a setting menu soon

Important!
Freecam doesnā€™t support touch screen/touch events, Iā€™m on the way to solve it!
ANY HELP IS WELCOME (e.g. a devforum link, a plugin, a script, any idea etc.)!

image

1 Like

v0.003

Another big TX to XSticcy!
He delivered a ā€œliteā€ touchscreen support to RoboScratch!

I plan to make a plugin by which you can give ā€œfreecamā€ support to any game (coming soon).

Before it can happen it requires

  • some script revision, simplification
  • fusion of two different scripts (one for keybpoard/gamepad + one for touch)
  • a user-friendly (easy-to-use) setup

but it will be surely great :slight_smile:

Now, you can check how ā€œfreecamā€ works in RoboScratch (link above).

May you have any feedback/comment, please let me know!

To be informed about and to support RoboScratch project, please join to Apafey Studio Group now!

1 Like

Itā€™s kinda cool, for me itā€™s like making games on mobile

1 Like

Hello,
Ty! I hoped someone will share this kind of comment with me, you made my day! :slight_smile:
Keep following this project!

Log #7

Another big step to me but small to the projectā€¦

  • preparation for LOAD function (now it loads / reloads two prepared objects, not saved onesā€¦)
  • preparation for Variables (one V3 variable added, representing a future ā€œVector3ā€ variable)

None of the above functions works as intended, but they have some ā€œdemoā€ function and - believe or not :slight_smile: - they were quite hard to be scripted.

2 Likes