Brilliant. Loving it. This is how kids will learn programming these days ;-)
Unfortunately it is quite a bit buggy. Hope you guys will continue working on it.
Craftomation 101 is a craft automation game about funny programmable robots CraftoMates who can move, eat, and craft things needed to terraform a frozen planet.
You land on a frozen planet in a tiny rocket with a robot inside. Harvest and combine materials to discover new ones. Use visual programming to make the robot do the tiresome work for you. Slowly build a gang of self-sustaining robot workers and watch them terraform the planet.
The current state of the game: Active development, Free demo available.
We release an UPDATE EVERY 2 WEEKS and host an informal stream with developers every Friday on our Discord. Stop by and say hi, we’d love to chat and read all the feedback you want to share.
Here is a limited-time Pay What You Want offer for early supporters of the game. Any price you want from $0.01 to $99.99+.
- Craftomation 101 Soundtrack by Arman Mkhitarian (7 tracks in WAV and FLAC formats). Check this free track out to get the vibe.
- Craftomation 101 Art Pack (30 pictures featuring early days sketches, concepts, and 4K wallpapers)
- Access to the Supporters channel in our Discord
Here is the link.
Log in with itch.io to leave a comment.
Brilliant. Loving it. This is how kids will learn programming these days ;-)
Unfortunately it is quite a bit buggy. Hope you guys will continue working on it.
Yes we are continuing, you can check our Steam page https://store.steampowered.com/app/1724140/Craftomation_101_Programming__Craft/
By the way, we are currently conducting a playtest, so you can try out the latest version there.
This game is my kinda jam. I'll probably never stop playing this!
Can't stop developing this!
P.S. Thank you for the kind words, doing our best and looking forward to the release :)
Very glad to hear this (｡◕‿◕｡)
Could somebody please tell me how to fix my craftomate's arms? They're flashing red!
This indicates that the craftomate cannot execute the command because it is holding something inappropriate in its hands.
As example tryes to combine something uncombinable, or try to pick some item with filled hands.
Try to reset craftomates program with button on the bottom panel.
Oh, okay. I did notice somebody on youtube reset the program when it happened to them. They didn't mention it so I guess knew all about it! I didn't actually know WHY this happens, so thanks
Cool game! I personally find it lots of fun for a browser game - like a modern day Flash type of game that we never saw follow up on the deprecated support of Adobe Flash! Millions of children would open a browser in their school's computer lab and spend countless hours of lunchtime, free periods, afterschool and any free moments between classes playing their favorite Flash game by themselves or against their classmates! However, once Flash was discontinued, decommissioned, deprecated and disappeared, or whatever, from modern day implementation I feel like this once new found gaming platform was dropped and disappeared rather quickly without any eagre successor in line to make use of these newly unplatformed young gamers and the genre of browser games just sort of faded in to obscurity? (Not sure Zynga or Facebook really counts as an attempt at housing this population) Why another technology or company was not quick to take up the slack in supplying even the most basic crossplatform browser game engine or something I can't say - But with games like Craftomation 101 available and playable as it is, I find it even more peculiar to have felt browser games seem to have died out like they did because if games like this can be made I'm sort of surprised developers didn't just transition to whatever this is built on and continue the browser game genre I felt played such a big part in my generation's initiation with computers and internet technologies of the sort? ¯\_(ツ)_/¯
Dear friend, it was very nice to read such warm words about our game, thank you very much. We also started our gaming journey with simple but exciting Flash games, and sincerely mourn the passing of that wonderful era. But the world of business competition is cruel and unforgiving, and the good old Flash fell short of this deadly race, retiring in the prime of his life. Alas and ah .. Now we need to learn to live in a new era, with new game engines and new players who are already growing up and not knowing that there was once such a wonderful thing as a Flash player built into every browser. We will try to do our best working on this game, and always sincerely appreciate your inspirational support. \ (•◡•) /
my game isn't loading
Thanks for reporting, but in my PC it works fine.
What you mean? Game isnt loads at all, or it didn't loading your save?
And what are you playing on?
How do you make wires? I have phosphorus but I have no clue on how to make wires. Surprised you didn't include it in the tutorial considering that batteries were.
wires is stone + steel (a bit weird, yep) :)
Sorry for the late reply, thanks for the help, Though Figure it out around a hour after I submitted the comment. By the way, do you apply feedback received to the itch version, or are you saving it for the full version?
how to make magnet please tell me
Hey :) To make a Magnet you should combine Iron and Steel. Also, there is an in-game Wiki available with all the recipes. I hope it helps :)
game completely froze yesterday when arranging a program. i had to use Alt+F4 to close it.
the fires don't burn long enough. in most cases not even long enough to supply them by a production chain with dedicated jobs.
Thanks for reporting that crash, we'll look into it!
As for the lifetime of the Bonfires - that's something new: usually we get reports from people who managed to load so many Fires into Bonfires by using the robots, they run out of resources on the map.
The typical scheme would be to unlock Storage units and then divide CraftoMates into 2 parties: the bigger party would be busy crafting the Fires, while the smaller party of 1-3 CraftoMates would deliver those Fires to Bonfires.
How are you trying to approach this task?
i had three bots transporting fires to each 2 bonfire+having an emergency crafting in case they found none; and one bot crafting bonfires at a storage directly between stone and coal. the storage was always stocked, but they couldn't deliver it fast enough.
Don't you mind elaborating a bit? I am not sure if I understand the issue you are referring to 100% correctly, especially the part "they couldn't deliver it fast enough". What is current behavior and what is the expected behavior? (Screenshots are always super helpful for me to understand). Thank you!
Whoops, seems I found a bug. When copying a program to another CM, the current program execution position does not get reset (I have not checked if run/pause state changes).
Most likely, the program position _should_ reset to idle and enter paused mode for the CM.
Oh thats not literally bug, but I agre that this is more logical behaviour, we will change it I guess.
After being away for awhile, I got in to a discussion with someone on another game, and this game was mentioned. So I reloaded it to see what, if anything, the developers have done since I last played. I was very happily surprised to see they have done a lot of work on the game, ranging from general tweaks and improvements to adjusting and correcting previously reported issues, to adding user suggested features. Kudos to the developer, and two thumbs up (more if I had more thumbs!)
Nice to hear from you again! Doing our best. Funny coincidence but the next update will bring one of the most requested things :)) Spoiler: CraftoMates will become able to manipulate in new directions :)
There are some other issues, however...
(1) "Find and Pick" needs some more/better logic. Ideally, it should be able to include/exclude types, such as "From Box" (storage boxes), "From Raw" (I call those "piles" of raw/not-yet-mined resources), or even both. Perhaps even the ability to pick both but give a preferred type (Pick from Box, if available, raw pile otherwise). This is because I set up a CraftoMate (hereafter referred to as just CM) with a program to "Find and Pick", "Drop to" a box, then "To idle". But the result surprised me: It worked the _first_ time, but the second time it picked from the box it just dropped to (since it was now closest)! I adjusted to program to include a "Move to" first, but later in the game it caused problems when a) I had multiple storage boxes spread out on the map and the raw resources piles eventually became depleted. (Likewise, the "Drop to" might be able to only drop "On Ground" or "to Box".)
(2) Some degree of "look ahead" would be nice. I was trying to clear two adjacent Stone piles, so I had he logic of "Pick From" the first, and if that failed, it would "Pick From" the second. It worked, but every time it would move back to the first position, fail because it already cleared the tile, then move back to the second position. It should see that the first is already clear and go directly to the second, instead of wasting power moving back and forth needlessly.
(3) Related to (2), the "Warning" icon in the upper right that appears next to the pause button should not appear until the CM becomes truly "stuck". Every time it went to the first position and failed, the icon would pop up and then go away as soon as it went on to the second position. Not only does it create a momentary flash that distracted me, it also made it harder to be able to find and focus on the real problem areas/CMs which are stuck.
Some other observations and ideas:
-- I would like some detail/info on how variables work.
-- I kind of miss the old "Low Power" mechanics. I suggest that, instead of making it an "if/then/else" style operation, that you make it more like a sub-program (but not an exception that can occur any time -- only when instructed to check power). That is, create a "Low Power" label lower down like was done previously, and when the "Check Power" item executes, it will either continue to the next instruction, or "Jump" to the "Low Power" sub-program. This way, upon fixing the low power condition, we can choose to "Resume Next" which will go back to the "Low Power" check and continue on, or we could "Resume Idle" similar to the "To idle" instruction.
-- Make certain items not "eat-able". While experimenting, a flawed program made one of my CMs "eat" a seed. Oops. Also, some way of checking/testing _what_ if being held would be nice, to prevent accidentally eating the wrong item (especially when holding two items).
-- Related to the above, the ability of a grown tree to (sometimes?) "drop" a seed as well as wood would be nice.
-- Add an instruction to "Feed" another CM (as well as one to find one needing power). This way, we could assign one CM to "Stand By" the Battery Storage box, and when another CM needs power, the assigned one can grab a Battery and go feed it to the one needing power. (This could also be combined with my "Low power" suggestion to maybe add a "Call For Help" instruction, which would pause the bot until help arrives... or the player corrects the situation.)
-- Add the ability to pick up and move the "Current Execution" icon to any instruction in the current program screen.
-- A CM instruction to "Wait", which would make it wait (do nothing, such as "10 seconds", or until an even occurs, such as the "Feed" idea).
-- A "Give to" instruction, which could give to another CM. (Useful for things like "Feed"?)
Of course, I still hope to see:
-- Program labels, which could be targets of a "GoTo" instruction.
-- Sub-programs, which could be done with "Call" and "Return" instructions.
-- Real "if (condition) / then / else" logic. (Especially useful with sub-programs.)
-- Looping constructs. (Command Center wants 10 Steel Plates? Set up a CM to deliver exactly 10 then stop.)
Ufff such a huge abd cool feedback, lets starts from point to point.
(1)I think generaly smart commands is about "take less parameters, and make some complicated things" and in this case we dont need to add one extra parameter. Besides it generates some fun situations :)
Other reasin not to add such parameter is that usualy when you want to tell craftomate to "pick some element from storage" you talking about one specific storage, and for this case you have a "pick from"
Btw: we working on command that will dedicade a working zone for each craftomate, this should be usefull for your case
(2)This was some discussion topic for us. But currently our consensus is that this is works precisly like in real programming: "every data read event from isn't free (it costs time and energy)". But now "find and pick" brokes this concept down, so may be thats good idea.
Btw again: may be this problem can be solved by add "find" command: this is command that should save coordinates of coresponding element into variable (currently in work)
(3) Yep I agree Warning icon have outdated logic, we will rework it soon, thanks for reminder, I forget about that icon :)
to be continue...
Re (1), perhaps instead of an option, have different commands? "Find and Pick" to get from storage only, "Find and Mine" to get from raw resource piles only, and maybe a "Find and Get" which would get from either? As it is, it reminds me of how "Smart" phones like to "auto-correct" with the wrong correction... But at least with those you can choose to force it to your desired result.
As map size and game complexity grows. it will become less likely to have a single storage box dedicated to each item. Instead, transport lines will evolve: CMs will mine and deposit raw goods in areas where they are found, while other CMs will transport from those collection centers to different production areas where they are needed. (A true "ideal" would be a distribution "on demand", instead of "equally spread out"...)
In reality, a well-designed distribution is the opposite of "one specific storage", but a need to locate one of possibly many storage and staging sites with the desired item -- the lower cost of finding it outweighs the larger cost of walking across the map only to discover the single storage site is empty.
(2) That is not entirely true. A program can use logic to avoid wasted CPU or I/O. If a file is exactly 2 bytes in size, and you have already read 2 bytes, you know trying to read it again will give an EOF. Likewise, a CM knows if it is occupying the space requested, and nothing else is (or can, as the game is currently designed), it can skip trying to take take a step backwards to try to grab the space it just vacated.
A general "Find" feature would be a suitable alternative. But you can still assume that the CM has sensors (i.e., eyes) and can already know the command will fail.
"-- I would like some detail/info on how variables work."
I guess we will add some wiki for all commands not soon, but precisely wil :)
"-- I kind of miss the old "Low Power" mechanics...."
I guess this is not "low battery issue" this is problem with not enough tools to generate some well structured code. I guess we need something like "goto" instruction, may be it will be...
"--While experimenting, a flawed program made one of my CMs "eat" a seed." oops.. ;)
"Also, some way of checking/testing _what_ if being held would be nice, to prevent accidentally eating the wrong item" you can use compare function for this
"-- Related to the above, the ability of a grown tree to (sometimes?) "drop" a seed as well as wood would be nice."
In early versions wood drops seeds periodically at random time... And it wasnt cool corse most of players dont understand where this seed appeared from. And other problem is that when you get 5-10 seed you dont need it anymore, and corrently we dint have any other vay to use it instred of planting. I hope we can take a second try for this mehanc when we will added second stage of crafting tree, but cant promise this
"-- Add an instruction to "Feed" another CM (as well as one to find one needing power)." Yep this is in plans.
"-- Add the ability to pick up and move the "Current Execution" icon to any instruction in the current program screen." This is also in our warklist but this is quate unordinary feature in technical side, so I dont sure we will implement it in close perspective
"Of course, I still hope to see:" We working on it)
Very short of stones and hard ice can't melt even around with fire.
Hello @dacapoday. We were totally unhappy with the resources situation you are referencing to. That's why the last few weeks we were in the biggest redesign of the map zones since the first Alpha. I can't wait to share the updated version with you.
As for hard ice - it's going to be changed a bit to become meltable and diggable. Probably you saw the Meltomate feature in our roadmap, you can consider it as a spoiler :)
Perhaps the resource positions can hold a variable amount of resources? The image used can vary by how much is currently available? (Right now, there are only two types of each, a "5 count" and "1500 count" version.) Possibly add some very high (maybe even infinite?) resource tiles, especially near the edges.
The ice might vary according to how much heat it is near. Adjacent to a heat source might make it melt (maybe within 2 tiles of a heater?) Likewise, some way to make ice from water might be handy. Could be an "ice machine", and/or a "heat shield" type placement.
Super addictive game. It is very nice, it was very fun until it was just trying to keep them all fed and to keep bonfire active. I would suggest extending the bonfire lifetime, and maybe extending the food meter for the bots. I also struggled in the beginning to find the recipe for the storage, the icon for the storage in the menu is small making it miss-able. Maybe you could reorganize or even categorize the recipes to make them more logical.
Hello @ibrahimbeladi. Thank you for the kind words and for the suggestions. Just discussed all of them with the team :) Hope to roll out the implementation of them really soon :)
Could you take the phone number restriction off of your discord please, I do not have a phone.
Will not execute in Debian 10 (Linux), with the following error:
./Craftomation101.x86_64: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./Craftomation101.x86_64)
Also, in the Itch.io web version, if I right-click any time, the interface goes weird -- It moves the map around instead of picking up objects. The only way to fix this is by saving the game and reloading and starting the web page entirely.
Hi @Casteele. As for Debian - we'll try to find the PC with version 10 and make a test with an empty project. Also in this week's update, we are upgrading our game engine, so probably the issue will be fixed by it.
Just added the right-click issue is our bug list, will be fixed.
Thank you for reporting all of this!
Have you looked in to making a bundle, like a "flatpak" (I think it is called?) that contains all the needed library versions? Most of the libs are likely (L)GPL licensed, so there should be no licensing issues. It would avoid other issues, such as my plans to upgrade to Debian 11 in the next 6 months or less.
I have noticed some other issues...
The tutorial needs some work to make some things more clear/obvious. It is not always clear what to do next. Even with the highlighting, it is always easy to notice that something has been highlighted -- perhaps you could make it flash and make a red arrow point to it the first time it is highlighted. (I.E., use movement -- visually impaired people like me more easily notice movement than color changes.)
One of the first storage bins a player will unfreeze contains some kind of "eat" modules. But I cannot figure out how to make use of them. Even I give one to a CraftoMate, they simply hold it in their hands without doing anything with it. The only way I have been able to obtain the "eat" command is by working to give the command center the requested resources to get (upgrade points) to spend on both the "low battery" and "eat" upgrades. This is _very_ tedious to do as until I get those upgrades, it is hard to keep the CraftoMates powered-up to keep the bonfires burning.
Which leads to this problem: When a CraftoMate is holding two items, I cannot feed it anything to recharge it! This happens when i is holding two stones to create a spark, or a spark and a coal to create a fire. The only way I can get it to drop everything is to completely delete it's current program. Then I can feed it. But then I have to reprogram it. I suggest some way to allow it to eat without needing to do this, such as a drop area on the command bar for feeding.
The code editor... well, it sucks. It is hard to work with. I end up with lines going everywhere making the display cluttered and hard to read/follow. You might add some kind of option to "snap to grid" and/or choose direct connections instead of the curvy ones. I also suggest adding "labels" and a "go to" instruction (or a "jump", for those "anti-goto" people out here), which would only show connections if hovering over them. Looping instructions would also be helpful.
Subroutines would also be helpful. More so with the "low_battery" event -- which could also use a "resume" instruction to resume where it left off, instead of needing to drop everything and jump back to the start.
You might also consider export (save) and import (load) programs, which could then be edited by any text editor. (Format could be very simple, such as DOS batch (*.BAT) files, or TCL scripts ( http://www.tcl.tk ) -- which could embed a TCL interpreter.)
On occasion, I encounter glitches which cause items to appear on screen that cannot be interacted with (or removed from screen!).
Some future improvements might include:
Ability to find nearest resource pile (and/or nearest appropriate storage) to get from/drop to. You would need separate ones for each, to avoid a CraftoMate infinitely getting an item from storage and putting it back in the same storage.
Logical constructs, such as "if/else", or finding, for example, which bonfire has the lowest level of fire.
Found another bug. When making a copy of a program to another CraftoMate, sometimes (but not always?) it seems to "copy by reference" instead of "copy by value", which results in the code becoming messed up if you edit either of the CraftoMate's code to make slight modifications.
... And another ... If you pause a CraftoMate, do a global game pause and then unpause, the paused CraftoMate becomes unpaused as well. You also have to click the CraftoMate's pause button _twice_ to pause it again.
More on the "copy" bug: It seems to affect (mostly, but I just had one time it affected me with no connectors) the connectors. I can reproduce it by chaining several in a row, copy to another CraftoMate, and then disconnect any of the lines connecting the connectors in the source or target Craftomate. If you go back to the other CraftoMate, the same line is broken.
Another update: Further experimentation seems to point not at the connectors themselves, but the connecting _lines_ between program elements (I mainly noticed it with connectors because I would place two connectors in a row, and then "break them" to cause the program to stop at a known point).
Thanks for your very detailed feedback! It's great to know that us and our players often share ideas on what direction the development process should take next: we were discussing many of the issues you've brought up internally.
It will take us some time to process your ideas and write a detailed answer, since our coder is on a little vacation after releasing the past update and a hotfix.
In the meantime, you're very welcome to join our Discord, if you're into this platform - we could use more people with in-depth view on tech games in our lovely little community of players with IT/programming background :)
In any case: thanks again for your very deliberate feedback, it's extremely valuable to us at this point of development!
Linux Mint 19 has the same issue because we have an older version of GLIBC. The game would probably work with Debian 11 or Mint 20 because we would be using the newer version of GLIBC.
The js-web version of the game works fine on Mint 19 and probably works on Debian 10 also, so I would just use that unless you upgrade your distro.
If you use the itch.io app, the html5 version of the game runs in a standalone window instead of running in your web browser, so it's not really any different than running the Linux build.
Playing the HTML/JS version is mostly what I have done. Tweaking some things and running in a sandbox jail with a few modified libs has had some success for me, except an occasional segfault or other crash.
could you add a thing in the program editor where you can store code parts, like a low battery eating part that you can transfer between CraftoMates.
also what can you do with mushrooms?
Hi @conronro :) Thank you, it's a really nice idea! Already in our roadmap. We call it memcopy (it means copy memory which contains program from one craftomate to another).
Mushrooms is some kind of legacy from the previous versions of the game. Previously the game's goal was to create enough oxygen, water and food (mushrooms) to make the planet ready for humans living. It will be changed in the upcoming updates :)
i love this game but how to but how to charge the battery when the battery is about to run out???
Hello @Denzstrike :) Oh, we should make it more clear in the game, thanks for highlighting the issue. To charge your CraftoMates just drag-n-drop an element to them. They will eat it and get charged (a lot from batteries, a little from other things).
I love this game! But may I suggest allowing us to both program or give them jobs? I like the idea of jobs (that i got from reading Schifty's comment) But The programming is so much more personal
jobs could be functions called in a bot?
I love the "jobs" idea too and visual programming allows me to imagine extremely complex systems :) I don't know what is better, but let's talk when we'll roll out the huge update of the programming system with functions, loops, conditions, and all the things we programmers like :)
cool game - I would buy a full version on Steam! couple of ideas:
- instead of programming robots you should make 'jobs' and assign the robots to jobs as this would cut down on script maintenance!
- I don't use fire pits as they require coal and simple flames are free forever; you probably need 'ice levels'; higher ice levels can only be melted by stronger flames; or you can make fire pits revert to lower heat when not maintained
- add a checkbox "2x" to most nodes meaning a robot would pick up, eat, drop up to 2 items
- don't know if that was a bug or not but scripts should automatically trigger idle / restart if they are done; I currently have to build a main loop in idle and revert back to idle after 'low battery'
Thank you for the kind words and wonderful suggestions. Just discussed all of them with the team! Can't wait to share the next update with you :)
Its a good game but, its incredibly hard to keep the ice from coming back and every time you click on the robots, it pulls up their programing, another thing is that once you put something in a storage you cant move the storage anymore. That's the only stuff i got annoyed at, other than that, good game.
Thanks for the kind words and for the super detailed feedback, love it. Just discussed all highlights from your post with the team, some of them probably will be shipped in 0.26 this week :) Have a happy holidays season!
Just wanted to say thank you for bringing up the issue of the annoying auto-open programming panel. We've fixed that in today's update 0.28. Will be much more new stuff in future updates! Have fun :)
wow great game, It makes me play more than 30 minutes.
I can't believe we've published this :)