This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Akuukis's profile picture

How to start/manage open-source project?

Started by Akuukis, 24 July 2014 - 04:09 PM
Akuukis #1
Posted 24 July 2014 - 06:09 PM
Hello Everyone,

I have been following this forum and learning Lua for last 2-3 months because I want to build code of Artificial Intelligence for turtles where they independently sustain themselves, build bases, explore, reproduce, grow their own color colonies and fight other color colonies in a no-player server (spectators allowed), where admin puts down first turtle for every colony and players interact only through pastebin by upgrading code of his color colony and them observing results (for example how his colony unsuccessfully destroys another colony) as spectators.
It's quite huge project for one person with few friends and that's where I need your help to figure out…
  1. what is the best moment to start inviting other coders to the project and how to do that,
  2. must to-do list before that,
  3. how to best coordinate multiple people in Github while making this code and
  4. anything else I couldn't think of.
So far I have made Coroutine Manager and Navigation libraries, a bit useful stuff like automatic digging scripts, wrote a bit of documentation for something, thought few concepts not yet documented online and left junk-someday-maybe-will-be-useful code here and there. There's already 1400 lines of useful code, and 2850 lines of code, documentation and junk in total. You can check it here: https://github.com/A...TurtleColorWars

Thanks!

[Edits in italic for clarity]
Edited on 25 July 2014 - 07:20 AM
Bomb Bloke #2
Posted 25 July 2014 - 04:57 AM
what is the best moment to start inviting everyone to project

I would say it'd be the point where you've set up some sort of rednet system that allows users to request new turtles. This'd deliver "blank slate" systems to a desired location, where they can be programmed for specific tasks - eg, building, exploring, rigging GPS satellites and what-not.

must to-do list before that

I would say the two main things to deal with would be turtle production and turtle co-ordination. Everyone participating needs to be provided with systems to use, and a protocol for making sure the units they provide code for aren't interfering with units other users are providing code for.

how to drive / coordinate everything

So long as turtles know when they've run into other turtles, and know how to get around them without doing too much (or preferably "any") damage to the surrounding environment, this shouldn't be too hard. Just make sure you know what projects all your coders are working on and make sure there are no double-ups.

anything else I couldn't think of

Turtle production, while being the cornerstone of the whole endeavor, will also be the hardest step to pull off. You may be able to use Inksaver's project for that, though at the very least you should study his work to get an idea of the scope of it.
Akuukis #3
Posted 25 July 2014 - 09:30 AM
Thanks Bomb Bloke, you made few good points I should think of. Also, I updated the first post to clarify several things I think was unclear after reading your answer.
hilburn #4
Posted 25 July 2014 - 10:15 AM
Hehe I quite like this idea, reminds me of how I learned to code Java waaay back in the day with Robocode.

Your main issue is going to be chunkloading, namely that, left to their own devices your turtles will do absolutely zilch. So starting them off with a crafty mining turtle and a chickenbones chunk loader is a better idea, as well as ensuring that there is some sugarcane anywhere in that 3 chunk radius which would allow the turtles to make and place additional loaders.

Would you be providing a CC format NEI equivalent for the players? because that will be essential for everyone and would be quite a tedious duplication of effort to code in the recipes for everything.

I would recommend also including OpenPeripherals Addons to allow for sensor turtles who can hunt down mobs (for example for enderpearls for more chunk loaders)

Other than that I would be quite interested in competing at some point, and it sounds like a really fun idea. To facilitate development between the rounds you might want to specify that the players have to release their code at the end of each match (not necessarily commented) to prompt the exchange of new ideas

Edit: You would probably have to provide a table with the locations of all bases to the players, or else someone with an evil mind (like myself) would have the turtles build a big dirt dome over the base which an "enemy" turtle would just see as ground, the only other alternatives would be to search the world from bedrock to 256 or ban camouflage
Edited on 25 July 2014 - 08:24 AM
Akuukis #5
Posted 27 July 2014 - 07:26 PM
I am back from countryside, so

Chunkloading: check! CC style NEI, haven't though about it, point taken. OpenPeripherials already on core mod list. About code releasing I think that it should not be obligated but after stealing opponents turtle anyone can release their opponents code. Info or restrictions on bases, hmm, should see how smart the turtles will become. Anyway, thanks for interest! :)/>