Help wanted!

All projects that somehow make usage of code.
User avatar
xarn
Posts: 101
Joined: Thu Oct 13, 2011 11:50

Help wanted!

Postby xarn » Fri Nov 25, 2011 16:31

Such a project is big enough for several people ...and I'd be glad to guide people into it (...and it's boring to code alone :?)

The game can be divided roughly in three parts and can be done independently by different persons:
- the client side
- the server side
- ensuring the various clients and servers work well together (protocol, data access, big picture, etc...)

The prototype currently still has a manageable size/complexity. By reading through it, you should be able to understand how it works, which is a great advantage. It would be a good time to join. It is likely that it will grow in the future and become way harder to "get into it" ...while it is now doable to do so with moderate effort.

A yeah, and feedback / cheering up is always good so that we don't get the feeling we're working hard for nothing! :roll:

User avatar
snowdrop
developer
Posts: 793
Joined: Mon Feb 01, 2010 15:25
Location: Sweden
Contact:

Re: Help wanted!

Postby snowdrop » Sat Dec 10, 2011 13:18

Xarn, I think you have been doing a great job this far but am worried about a couple of things relating to your project.

I'm writing this as a reaction to what I have understood as your attitude. Please correct me if I have gotten it all wrong, the internet sure doesn't help people with the subtleties. ;)

a) You want help?

b) You intend to not make your project feature-full because you work alone on it?

c) You work alone on it and began a brand new browser project from scratch, because you had vastly different understanding and approach of the subject matter than what was going on in already existing project?



nature of open source project
I don't know how many times you have been on open source projects or part of different open source constellations. The thing is that 99,99% of all open projects need help. 99% are undermanned, lack resource, lack funding, lack time, and in many times also lack enough knowledge (but might get it during the process or will fail miserably because they never did learn anything).

Open source projects, although community driven, don't become so of a coincidence. People join forces and work together because they believe in what they do, and in the other individuals. For example, if you'd see our project and thought it all sucked or wasn't at all interested in games or whatever, you wouldn't have put in such a huge effort as you have already done into creating something playable.

People that work in teams usually do different things, else there would be little point in forming a team to begin with. ;) That sad, nothing stops us here from putting 10 people on rules, 10 people on your client, and 10 people somewhere else. Or, actually, nothing does in theory, but in real world we don't have that manpower.

I hope you are not disappointed that nobody of us that have already been around for a while jumped on your project and began coding on it. As I have explained earlier all have their hands tied up with jobs, universities and families etc, which is a good and healthy sign. ;) On top of that, many of us have dedicated plenty of hours on various and very different tasks that relate to WT as a whole. For example, ishara has done some gccg stuff, aspidites is researching and preparing for desktop client, q_x is constantly art-directing and has done a million other things relating to templating, foodoo is coding on cardscape, knitter is coding on SandScape... all do what they can, when they feel like it, and if they can. Also notice that most of them work alone. Why? Bevause there is nobody there to help them. As easy as that.

Now, I would be sad if any one of them showed up and told me "I will do half of this but then I refuse to do more, since nobody helps me." I don't think it's a constructive attitude and I don't really understand the point with it. It won't lead to more people helping, since there is still no people around that a) have the proper skills for that specific project or b) are free to start working on that in addition to what they are already doing. Point being, that the reason people in an existing team don't help newcomers on the newcomers sub-project is that they're all already busy on their own sub-projects.

What is important to understand is that WT, although a meritocracy and havign me as benevolant maniac around, is not centrally governed in such a way that gives me possibility, incentive or authority to order people to work on a project, for free. As an example, I couldn't order you to work on Sandscape. On the contrary, I encouraged you to pursue your own path if that's what you believe in. In the same manner I can't order anyone else to help you out, even though my wish would be that people got money from a magic source and could stay at home and code away, fully paid and all taken care of, on all things related to WT. My wish is irrelevant for obvious reasons. In the same manner, Knitters was when you decided to start a project instead of hooking up with him. And, in the same manner, your wish is also irrelevant. At least in the sense for what actions members of a team take in the end.

I am immensely grateful to all the people that are dedicating their spare time on a hobby project such as this, and surely the project would have come nowhere at all without them. In the end however, people do what they want, for as long as they want and are able to. Hopefully that will be enough to pull things through in our case.

The nature of open source projects is a shaky one. People come and go as they please as most of them don't feel obligated to stick around and follow through. Some have to go even if they would really want to stay. Such is life.

What I have said time and again is that the rate of success of a project depends only on it's members. How they work, how they plan, what they try to achieve, what competence they have and so on. A part of that is also dedication and will to follow through on stuff people initiate themselves. Again, nobody does anything in here that isn't from their own free will.

Many times though, one has to do a lot of boring stuff as a milestone towards the completion of a subproject, and every subproject is usually a huge component of the overall WT project - a free/libre CCG. In addition, many of the sub-projects are designed in a way that will maximize the world's utility of them, making them viable and interesting options even independently of WT as a game. All that is good, and very FOSS. :) All that also makes it possible for each sub.project to grow, on it's own right, independently of how it goes for WT as a game, and that is also very good.

strength of community
The strength of community shows when you puzzle together all these subprojects and pair them with a legally free game. That is what WT is about. It started off with zero ambitions when it came to code and people helping out with anything beyond the scope of rules and card creation. Yet, it proved very fast that people are interested in writing code and helping out in all other ways as well, and better still - all those efforts have an impact of how CCG:s can be used and or created in an open source world.

We're doing a lot of stuff here that hasn't been done before as an open sourced project. From what I have seen there is really only one single project that even comes close to creating a free ccg, but it's using CC, lacks the scope of what we imagine and has totally different goals and approaches, does not contribute with source code nor does it have anything that's very coherent, be it rules, crew or art.

getting help
It is of course always more fun to work on something if you have a partner. That is our main drawback in WT: We have only one person per subproject, give and take. We try to support each other whenever there is an interest and knowledge. For example, it is easier for most people to discuss background story of a faction, than to help out with code in language x.

The nature of open source makes it hard to get help. It is hard to make people interested in joining up and actually do something else than just talk. Talking is easy. Wishing is also easy. Delivering however is another deal.

My experience from work with people, and open source in general, tells me that most of the ones that say they will do something do not follow up. They do not deliver anything useful in the end. 90% of those that say they will do something either never start, start or abandon really quickly, or abandon it half-way through for whatever reason. Many times their work efforts, code, whatever, will be lost into oblivion since dead projects don't attract people.

What does attract people is seeing finished projects: A finished projects signals something. It tells people that you're serious with what you do, that you take the time to deliver and can be trusted, and just as importantly - it gives an immediate impression of what quality your work has and your own skills, as well as if the overall idea with the project is a sane one or not.

In best case scenario and in an ideal world one might deduct all that from just talking with a coder and by reading all his documentation, plans etc, and then hope all that work will eventually become something. In reality however people won't do that. Seeing is believing. As simple as that.

I like your project. I also like the fact that you aren't just all talk, and that you did something and did it very rapidly even though you came in new and are occupied with other stuff in life, going through huge changes and all. I respect your efforts. That is why I'm going to write the stuff below, in an effort to salvage your mood and energy, and to hopefully help you with your project the way I can as a non-coder and project lead.

This is what you have to do to succeed with getting more help:

1. realization
That help must come from external sources and not from here. We're already all busy. Nobody will drop anything and ignore his own subproject. Thus, you must realize we need to recruit for you to ever get help on your subproject.

2. documentation
You must have serious and well written documentation, of code, of design ideas, of features and milestones etc. If you lack that, no coder in his right mind will ever help you. That's just a fact. Make an effort. Document. Put some time into it. It will help you on a personal level, and also making your project more attracting.

3. more polish
If you want to get help, you need to show something more polished. Then you will increase the chances that you will ever get a partner. Currently what you have is a very early tech-demo, at best. It lacks much in functionality that is needed to show the world your skills and to demonstrate the potential. Make people more excited by having a more polished product. More feature rich and smoother. That will, indeed, make people more likely to contribute to the code.

4. reposition your position
Somewhere here in the forum or elsewhere you announced something that could give the impression that you really don't fell like coding at all and that you are more interested in dictating what others should code for you. If that is a correct understanding, I think you are in good company: Most people would like that. Even most coders ;)

Problem is nobody will ever help you out if you really have those thoughts or goals. The person that would want to be your "code slave" is non-existent. The sooner you realize that, the faster you will actually find somebody that will help you on equal terms.

The way we have solved it this far in WT is simple: Whoever initiates a project and puts down the most work in it is automagically the lead developer. As lead dev one is in charge of the codebase and major decisions. As simple as that. There is of course also the chance that whoever is lead decides to work democratically or make decisions at random, or wants to share the burden in some other way. The details are not relevant. Sufficient to say those specifics can be solved however people want to.

There is nothing wrong with a project having a lead dev. You being lead on your subproject is given. But please make sure that you, if you expect people to help, don't give signals of you sitting back, directing, and others doing the work for you. That won't happen. Ever.

Should I have totally misinterpreted you I apologize for this paragraph taking your time - in such a case just disregard it. :)

5. value of universality
When you code and design a project try to do it in a way which will make as many potential coders and users interested of your software. That way you will get help and attention much much faster.

For instance, writing code that can only run WT is probably not a good idea. Why? Because WT is still in dev and very unknown. Nobody will help you with you websolution because of that.

You want help? Then start writing useful code. Useful in the eyes of the world, not just me and other WT-people. :)

Your absolutley safest bet to attract massive attention in an instant is to make Magic playable with your client (and still staying 100% legal by not including their text/art etc). If you show the world that you can use it to play Magic, and play a complete game of magic as it is intended, then people will become interested. You will get a partner sooner or later the, because what you are creating doesn't exist, and MtG has millions of players.

All this relates to making something that is generic and customizable. Creating a real "engine", and not just a sloppy implementation of a specific game. It all relates to giving people something that has a high utility for them. Playing WT has, and will have in the coming year, zero utility for the world since the game is unknown and unfinished.

By attracting people that get utility since they can use your code to play the already existing and favourite games they happen to have, you get coders, moral support, energy and maybe even donations. That in the end will result in better code, more features, and something that would be playable enough so that we can use it for WT.

6. marketing
Where exactly are you asking for help? Have you tried the worlds largest CCG forums? Magic forums etc? If you haven't, I would be happy assist you with writing up an official recruitment post that we could use and post across boards.

I also think we should create a nice promotional video showing off some of your features once you have polished it some more and added somethign mroe to show up. Then I think we are in a very good position to market your stuff and actually get some help. :)

User avatar
xarn
Posts: 101
Joined: Thu Oct 13, 2011 11:50

Re: Help wanted!

Postby xarn » Fri Dec 16, 2011 14:57

Wooaah! What a long post! :shock: ;)

...let me some time to read through it.

a) hell yeah! :D

b) partly, kindof, see below

c) yes, I considered their approach, architecture and technical choices to be questionable


You probably wondered about the stagnation of this. The reason is quite simple actually:

1. last time I checked, the rules were still worked on ...so it is natural to wait for the rules to be finished before actually implementing them. ;)

2. I think being the sole developper is bad for several reasons:

> it's dangerous. Since I am the only one understanding it well, and if I am run over by a bus / too busy at work / leaving for a reason xxx... then, this has high chances to come to a standstill, or at least it will be a little more difficulties to take over.

> it's the tip of the iceberg. This was a simple and cute prototype, the real work is only coming, when all the rules and features will have to be implemented. I already know it would be way too much for me, or any one-person volunteer for that matter.

> it's a bit lonely for the long term.

Therefore, I considered that the only viable option for me is to wait. Moreover, the more I would have continued development, the bigger the code would be, the harder it would be for someone to get its grips on it. Now it's cute and simple, yet working, so that people could join or take over easely. In programming, there is a lot of complexity involved, and people have to invest a lot of time to even "get into it". It's not like art where you can draw pictures independently one after another.

Believe me, it's not a rant. I'm good (morale). I am willing to provide my expertise and help for several hours a week, and I stay available to you. However, I also know what all this would involve, and that going solo is not option for the reasons previously mentionned ("too much work in the long-term" and "the more complex the code, the harder it would be for new people to get in, the more likely the standstill"). In order to have this successful, at least a couple of developers need to be united, ideally three. Without that, the odds are that it will fail and never take off. Sorry to put it bluntly, but as you said, at some point its also about "delivery", and this would be too much software for a single volunteer to deliver.

I aslo do not want "code slaves". Hell no!!! Since its volunteering, people should be self driven, and decide for themeselves. What I can provide is guidance, the prototyope just shows I know what I'm doing.

I see myself as a "technical expert", I have no intentions to develop a full fledged "magic clone" because this would require unrealistic amounts of time. This would cost you hundred thousands of dollars if you ask professionals, depending on the quality. ...and the difficulty lies in details, like the rules the effect of the cards themeselves, making it barely reusable. And if something is finished, there is no point in joining anymore.

To summarize it:
- I stand by, ready to volunteer several hours per week
- Going solo is not an option
- I keep the current version as it stands, because it's the easiest for anyone to dive into it

...so, yeah, basically this will be in a standstill until some people pick it up again. However, when that happens, I am ready to be there. And as said previously, it's not because I want to screw it or because I'm lazy, it's just that I know one person isn't enough. Continuing alone on it would just be a postponed failure and wasted effort.

In the end, this prototype is good, but it needs more people to progress further.

Cheers!
:mrgreen:

User avatar
snowdrop
developer
Posts: 793
Joined: Mon Feb 01, 2010 15:25
Location: Sweden
Contact:

Re: Help wanted!

Postby snowdrop » Sat Dec 17, 2011 06:55


User avatar
xarn
Posts: 101
Joined: Thu Oct 13, 2011 11:50

Re: Help wanted!

Postby xarn » Sat Dec 17, 2011 10:40

Well, i'm a "doer". I like to puts my hands into things and actually "realize" something. Here I know it's to much for me and I think it has dangers to die if I'm the only one on it. Extending it is all and nice but it doesn't really help. I know artists and other contributors like to work with "finished" projects, but that should not be the case of developers. Besides, if is already stable and with all kind of features, the work is already done and help is not really needed anymore.

Documentation

Considering the size of this project, the thread:
viewtopic.php?f=16&t=221
should be enough. Perhaps we could move that into a wiki page instead.
Perhaps also add the protocol.
The rest of the code is self explanatory.

Rules

Making a basic AI is probably easier than enforcing the rules themeselves.

Joining

I consider it the optimal moment to join. I don't think that having an additional dice throw would impact the decision of someone to join or not. And if it was, that person would probably not be the right one. Adding features consumes my time, allegedly making it more likely that someone joins, which I don't beleive. On the opposite, I think now would be the optimal time.

PS: the bus mentionned previously comes from developer's jargon known as the ;)

In the end, I consider having a bus factor of 1 to be too risky (for the project itself, and that my effort would be wasted as well). Therefore, I will wait until this increases. Of course, I'll still spend an hour here and there for small easy improvements, but that's it. What could be done is either a little advertisement, outside and inside, to attract someone which will take this into hands. Trying to convince me otherwise on the other hand, is a wasted effort. I know my trade, I've experienced this many times. I've seen big projects (with big codebases and many intense months of invested time) go dead precisely because the main developer was gone, for a reason or another. I don't want this to happen. Now is the time to put some devs together. It's a difficult task, sure. But beleive me, this is the only way to go.

User avatar
Q_x
developer
Posts: 334
Joined: Thu Sep 23, 2010 15:10

Re: Help wanted!

Postby Q_x » Sat Dec 17, 2011 20:27

I'm the great philosopher of the bus factor :P:P

From what I understand:
The rights are more or less distributed across all devs - for example I have, or have access to, all visual materials, which I consider to be a vital (partially unreleased) part of the project. Also I believe the authors have copies too, and significant amount of work is copied many times across launchpad, OGA, team members, dropbox account and so on.
The other thing is wiki - which we all have access to.
The rest is not as important, but ICE it still can be copied into a new place. Things like domain name ownership and payments are better kept by a single person, and are not vital for the project. This can be fixed easily announcing change wherever possible. and, from what I remember, snowdrop has a plan even for that.
Information channels - like freegamer planet - are open and maintained by other people, it's not a part of the project, we just have to update them when things will change.
Subprojects are maintained by their respective owners, that's yet another story.
If WT's bus factor considers you - worry not, even if the world will turn ugly, as long as we have Internet connection, we're pretty much safe.
I'm the filthy bastard you wish you never met.


Return to “Code”

Who is online

Users browsing this forum: No registered users and 1 guest