I saw CallMeKevin play your game and immediately bought it. I played it nearly everyday since then, unlocked everything and am optimizing still.
I work as a software engineer since 20 years, mostly in the Java world, and found the start of your game and every step very good explained and easy to follow. I would recommend your game for everyone who wants to start programming but I have some recommendation that imho would improve your game.
- Keep the breakpoints. After every change in a window/file the breakpoints are removed. If possible they should only be removed if you actively want them removed or remove the line. A pause()-command that you could add to your code would be nice for debugging.
- When the game stops at a breakpoint and you have many lines of code it is sometimes hard to find the line. With an extra window where all the breakpoints are listed you could click on them to jump to the position, show which one is active and you could also add the "Execute one step of code"-button there. I have several empty windows located near larger windows with code so I could click on it because I never had the idea to look for a shortcut. I had some timed-runs where I overlooked several breakpoints and with an extra window this would have been maybe easier to spot so I could have deleted them before.
- Highlight variable names that are used in a global and local context before the code is executed. I know you can deactivate the warning but I would rather keep it and it is very annoying to restart your run just because you named your variable to something global.
- When you are on a timed run make the code readonly and editable after pressing OK. The window where you changed the code looses focus so it can be difficult to find the position where you changed the code.
- When you run your game without steam in the background there is no recorded highscore. Maybe add an extra offline highscore or change it so it is saved everytime. I really like that you don't need steam running to play your game I just want to know my records ;-)
The next ones are more on the would be nice side and aren't that distracting like the last ones.
- When you call get_cost() on Unlocks, that have only 1 level (like Polyculture), that are unlocked should return None like Unlocks with multiple levels on their highest level.
- Sort the Items on the top showing how much you have of them. Maybe just from A-Z or give them a fixed position. Currently it looks random but I don't know why.
- When you are stepping line by line through the code keep the stop execution button as an option. Now you have to double-click on the start-button which feels weird.
- Add a waste()-command so you can remove Items. I currently have more than 80k of Power and it takes very long just to have the drone move around to get rid of it. I just want to try things out without starting a timed run so every Item starts with 0.
- Add a search function so you can find stuff without an external editor.
- When selecting a variable then mark all occurences of the variable in the current function.
- When you click on a variable with underscores (like selected_item) then select the complete word including underscores.
- Add a shortcut like CTRL+SPACE to trigger the code-completion-helper. Currently it only shows when you type something new but closes when you mistype.
All in all your game is very cool and I'm looking forward for your upcoming ideas and updates.
I am a Teacher from a Middle/Interemediate School in New Zealand. I love the look of your game and would love to have a chat about buying in bulk for my class. I have downloaded the full game on Steam on my teacher account, but didn't know how to contact you other than here.
If you could please reply or email me on rorym@his.school.nz, that would be fantastic.
I saw that the game had a "canMove" thing that i think doesnt exist anymore or I just didnt find it but it made moving in a 3x3 to all positions annoying.
Very nice game tho but after 3x3 the game gets to boring so maybe more plants or a different thing would be nice.
Also Setting Variables like ints or booleans would be great!
Thanks. This was a very early prototype. I'm still working on this game and currently the game isn't in a playable state, but once it is I will upload another demo version
There is a Wowie Jam right now with a theme "Collaborate with AI". I am currently considering to join, and if I do, there is a very high chance I'll do something similar to the type of this game (farming with programmed drone)
That's so cool! Just tried it out. (for some reason I'm not getting itch notifications anymore so I just saw it now) I really like the idea of being able to have the previous program work while you program. I would like to add something like that to my game aswell but I can't think of a way of doing it while it also highlights what code is executing currently. Also I see you were facing the same main problem I am: trying not to overwhelm the player. Pretty brutal just throwing a wall of js at you
As I was doing it for a short game jam and I happened to be busy part of the time, my main problem was to at least finish the main loop (buy seed, plant, extract, sell crop) somehow, which I barely managed to do.
But then - yes, I know it's overwhelming. Tutorial and incremental progression is critically missing. Ideally, it would start with only ~5 lines of boilerplate code that you'll expand yourself.
(1) when using the itch.io app, it installs and executes the files locally instead of via a web server. This means any *.gz (GNU gzip) files must be unzipped locally, and the main index.html file needs to be edited to load the files without the .gz extension.
(2) It needs a tutorial to figure out how to play. It took me awhile to figure out that I needed to run a "random" action from the two choices ("use: shovel" and "sell") until I had randomly earned enough money to buy other commands/upgrades.
(3) The "is over" always follows the path to the right, regardless of whether true or not. I put my first node as "is over: tree", and it still took the code path to the right, never to the left. [You might also re-word it as true/false, to avoid confusion with "right" having two meanings: (a) Correctness, as in "that is the right answer", and (b) Directional, as in "turn right at the next intersection."]
(4) Sieve never seems to get any seeds to plant or sell. It also fails silently, still using the soil. If it is randomly determined whether or not a seed is obtained from dirt/soil, it should be noted...
(5) Descriptions should provide more information and insight. I.E., What _exactly_ does the shovel do? It appears to dig up AND till the ground AND put a load of dirt on top of the drone's item stack. So you need to do something with the dirt: Either sell it, or sieve it for seeds. I can sell it without problem, but sieve fails as per (4) above.
~~
Perhaps a shovel should only dig up dirt, and fail if anything but ground. Then add another tool, a hoe, to till the ground. (You might even add branching logic to follow a different pah when a node/command fails.)
The "compare" node needs to be able to "compare" the top of the drone's item stack: Is it dirt? Is it a seed? Et cetera.
Re: (1) -- Fortunately, for me, I already un-gzipped the files and edited the index file. I also run a Linux machine with an Apache web server, so I can always set it up locally, anyhow.
I was mostly letting you know that this is a common issue with WebGL Itch games. The same problem exists if someone wants to download the game to play offline. You can probably make a note of such issues in the game description here.
The only solution I can think of is to provide a a separate "offline" version that contains all the game files in a single zip file, but the game files themselves are already un-gzipped within the zip file. I.E.: Unzip the offline zip file in to a directory of the user's choice, and load the index.html in their web browser to play.
Re: (2) -- I suggest, for now, brief instructions in the game description.
Re: (4) -- I found the problem: The "Use" node kept reverting back to "Shovel" after dragging and placing it. Not certain if this was something within the game or something I was doing incorrectly. It works if I drag and place the node first, then change it to use the Sieve tool.
As an additional side note, you may want to adjust the placement detection to be a little more "forgiving". Sometimes, I drop a node that does not actually "fall" in to the code slot. Instead, it just sits there near the slot. Perhaps give a visual indication when a node is fully in a slot by outlining it in a different color, as well.
EDIT: Just saw you uploaded a new version, and installed it. I like the changes and re-organization -- it is a bit more intuitive and logical. I will play with it further...
EDIT: Yay! The updated version is working! Right now, my drone is programmed as:
Thus, the Drone will try to Harvest and Sell. Then it will obtain a Seed to Plant. Finally, it will repeatedly try to move in a random direction until it succeeds.
(The Harvest/Sell, Seed/Plant, and Move/Random are actually Execute-able functions in my actual code with additional fail-safe logic, such as only Harvest-ing when CanHarvest is True, etc.)
Instead of going in circles and shoveling and planting on 4 tiles, the drone works on just one tile, make the circle and does the same tile again. (i.e. skipping 3 of the shovel and plant commands)
If its a bug, I hope you fix it soon. If it's a feature, could you please explain it?
← Return to game
Comments
Log in with itch.io to leave a comment.
I saw CallMeKevin play your game and immediately bought it. I played it nearly everyday since then, unlocked everything and am optimizing still.
I work as a software engineer since 20 years, mostly in the Java world, and found the start of your game and every step very good explained and easy to follow. I would recommend your game for everyone who wants to start programming but I have some recommendation that imho would improve your game.
- Keep the breakpoints. After every change in a window/file the breakpoints are removed. If possible they should only be removed if you actively want them removed or remove the line. A pause()-command that you could add to your code would be nice for debugging.
- When the game stops at a breakpoint and you have many lines of code it is sometimes hard to find the line. With an extra window where all the breakpoints are listed you could click on them to jump to the position, show which one is active and you could also add the "Execute one step of code"-button there. I have several empty windows located near larger windows with code so I could click on it because I never had the idea to look for a shortcut. I had some timed-runs where I overlooked several breakpoints and with an extra window this would have been maybe easier to spot so I could have deleted them before.
- Highlight variable names that are used in a global and local context before the code is executed. I know you can deactivate the warning but I would rather keep it and it is very annoying to restart your run just because you named your variable to something global.
- When you are on a timed run make the code readonly and editable after pressing OK. The window where you changed the code looses focus so it can be difficult to find the position where you changed the code.
- When you run your game without steam in the background there is no recorded highscore. Maybe add an extra offline highscore or change it so it is saved everytime. I really like that you don't need steam running to play your game I just want to know my records ;-)
The next ones are more on the would be nice side and aren't that distracting like the last ones.
- When you call get_cost() on Unlocks, that have only 1 level (like Polyculture), that are unlocked should return None like Unlocks with multiple levels on their highest level.
- Sort the Items on the top showing how much you have of them. Maybe just from A-Z or give them a fixed position. Currently it looks random but I don't know why.
- When you are stepping line by line through the code keep the stop execution button as an option. Now you have to double-click on the start-button which feels weird.
- Add a waste()-command so you can remove Items. I currently have more than 80k of Power and it takes very long just to have the drone move around to get rid of it. I just want to try things out without starting a timed run so every Item starts with 0.
- Add a search function so you can find stuff without an external editor.
- When selecting a variable then mark all occurences of the variable in the current function.
- When you click on a variable with underscores (like selected_item) then select the complete word including underscores.
- Add a shortcut like CTRL+SPACE to trigger the code-completion-helper. Currently it only shows when you type something new but closes when you mistype.
All in all your game is very cool and I'm looking forward for your upcoming ideas and updates.
All the best and happy coding.
Hi there,
I am a Teacher from a Middle/Interemediate School in New Zealand. I love the look of your game and would love to have a chat about buying in bulk for my class. I have downloaded the full game on Steam on my teacher account, but didn't know how to contact you other than here.
If you could please reply or email me on rorym@his.school.nz, that would be fantastic.
Thank you so much,
Rory
Very nice Game!
I saw that the game had a "canMove" thing that i think doesnt exist anymore or I just didnt find it but it made moving in a 3x3 to all positions annoying.
Very nice game tho but after 3x3 the game gets to boring so maybe more plants or a different thing would be nice.
Also Setting Variables like ints or booleans would be great!
The game has come a long way since this prototype and is now on steam. It is now textbased instead of this clunky UI stuff
https://store.steampowered.com/app/2060160/The_Farmer_Was_Replaced/
Cool idea. I need to try to do something like this myself.
It seems there are only two resources (bush and tree) and with their value quickly diminishing I got stuck around $758
Thanks.
This was a very early prototype. I'm still working on this game and currently the game isn't in a playable state, but once it is I will upload another demo version
Looking forward to it!
There is a Wowie Jam right now with a theme "Collaborate with AI". I am currently considering to join, and if I do, there is a very high chance I'll do something similar to the type of this game (farming with programmed drone)
Between, I ended up making a similar type of game for Wowie Jam 4. If you feel like coding some drone in JavaScript, check it out:)
That's so cool! Just tried it out. (for some reason I'm not getting itch notifications anymore so I just saw it now)
I really like the idea of being able to have the previous program work while you program. I would like to add something like that to my game aswell but I can't think of a way of doing it while it also highlights what code is executing currently.
Also I see you were facing the same main problem I am: trying not to overwhelm the player. Pretty brutal just throwing a wall of js at you
Thanks for trying out!
As I was doing it for a short game jam and I happened to be busy part of the time, my main problem was to at least finish the main loop (buy seed, plant, extract, sell crop) somehow, which I barely managed to do.
But then - yes, I know it's overwhelming. Tutorial and incremental progression is critically missing. Ideally, it would start with only ~5 lines of boilerplate code that you'll expand yourself.
Interesting concept, but too many flaws.
(1) when using the itch.io app, it installs and executes the files locally instead of via a web server. This means any *.gz (GNU gzip) files must be unzipped locally, and the main index.html file needs to be edited to load the files without the .gz extension.
(2) It needs a tutorial to figure out how to play. It took me awhile to figure out that I needed to run a "random" action from the two choices ("use: shovel" and "sell") until I had randomly earned enough money to buy other commands/upgrades.
(3) The "is over" always follows the path to the right, regardless of whether true or not. I put my first node as "is over: tree", and it still took the code path to the right, never to the left. [You might also re-word it as true/false, to avoid confusion with "right" having two meanings: (a) Correctness, as in "that is the right answer", and (b) Directional, as in "turn right at the next intersection."]
(4) Sieve never seems to get any seeds to plant or sell. It also fails silently, still using the soil. If it is randomly determined whether or not a seed is obtained from dirt/soil, it should be noted...
(5) Descriptions should provide more information and insight. I.E., What _exactly_ does the shovel do? It appears to dig up AND till the ground AND put a load of dirt on top of the drone's item stack. So you need to do something with the dirt: Either sell it, or sieve it for seeds. I can sell it without problem, but sieve fails as per (4) above.
~~
Perhaps a shovel should only dig up dirt, and fail if anything but ground. Then add another tool, a hoe, to till the ground. (You might even add branching logic to follow a different pah when a node/command fails.)
The "compare" node needs to be able to "compare" the top of the drone's item stack: Is it dirt? Is it a seed? Et cetera.
Hey thanks a lot for the feedback. This is a very early prototype so naturally there are still a lot of flaws.
(1) That's unfortunate. You have to play it in the browser I guess.
(2) The tutorial is definitely on the priority list but so far I've been too lazy to make one.
(3) I've already fixed this yesterday. just need to upload the new version
(4) It seems to work fine for me. When I have dirt on the drone and call sieve it turns the dirt into a seed 100% of the time for me.
(5) You're right I didn't put much effort into the descriptions.
Re: (1) -- Fortunately, for me, I already un-gzipped the files and edited the index file. I also run a Linux machine with an Apache web server, so I can always set it up locally, anyhow.
I was mostly letting you know that this is a common issue with WebGL Itch games. The same problem exists if someone wants to download the game to play offline. You can probably make a note of such issues in the game description here.
The only solution I can think of is to provide a a separate "offline" version that contains all the game files in a single zip file, but the game files themselves are already un-gzipped within the zip file. I.E.: Unzip the offline zip file in to a directory of the user's choice, and load the index.html in their web browser to play.
Re: (2) -- I suggest, for now, brief instructions in the game description.
Re: (4) -- I found the problem: The "Use" node kept reverting back to "Shovel" after dragging and placing it. Not certain if this was something within the game or something I was doing incorrectly. It works if I drag and place the node first, then change it to use the Sieve tool.
As an additional side note, you may want to adjust the placement detection to be a little more "forgiving". Sometimes, I drop a node that does not actually "fall" in to the code slot. Instead, it just sits there near the slot. Perhaps give a visual indication when a node is fully in a slot by outlining it in a different color, as well.
EDIT: Just saw you uploaded a new version, and installed it. I like the changes and re-organization -- it is a bit more intuitive and logical. I will play with it further...
EDIT: Yay! The updated version is working! Right now, my drone is programmed as:
Main:
1. IsOver:Tree -- True: [ Harvest, Sell ]
2. IsOver:Bush -- True: [ Harvest, Sell ]
3. IsOver:TilledSoil -- True: [ Use:Shovel, Use:Sieve, Plant ]
4. IsOver:Ground -- True: [ Use:Shovel, Use:Sieve, Plant ]
5. RepeatUntilStop
5.1.ChooseRandom:
5.1.1. CanMove:Forward -- True: [ Move:Forward, Stop ]
5.1.2. CanMove:Back -- True: [ Move:Back, Stop ]
5.1.3. CanMove:Left -- True: [ Move:Left, Stop ]
5.1.4. CanMove:Right -- True: [ Move:Right, Stop ]
Thus, the Drone will try to Harvest and Sell. Then it will obtain a Seed to Plant. Finally, it will repeatedly try to move in a random direction until it succeeds.
(The Harvest/Sell, Seed/Plant, and Move/Random are actually Execute-able functions in my actual code with additional fail-safe logic, such as only Harvest-ing when CanHarvest is True, etc.)
Cool that's a pretty good setup. Your feedback helped a lot!
I don't understand what to do :D
Ok, I figure it out. I like this programming logic game!
thanks! what did you have trouble understanding? how to drag and drop the nodes or how it executes them?
First, I tried to controlling the drone. WASD or clicking. I didn't know the Drag&Drop feature, i just thought there is some button at bottom :)
Interesting concept, but I do not understand why some commands aren't executed.
I have a program that is a loop of:
Move left, shovel, plant, move up, shovel, plant, move right, shovel, plant, move back, shovel, plant.
Instead of going in circles and shoveling and planting on 4 tiles, the drone works on just one tile, make the circle and does the same tile again. (i.e. skipping 3 of the shovel and plant commands)
If its a bug, I hope you fix it soon. If it's a feature, could you please explain it?
thanks for reporting it. that does sound like a bug. I'll check it out
Ah I see. The shoveling gets blocked if there is no space for the dirt on the drone. If you add a sell after the shovel it works. This is a bug