Help wanted!

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

Help wanted!

Post by 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: 796
Joined: Mon Feb 01, 2010 15:25
Location: Sweden
Contact:

Re: Help wanted!

Post by 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!

Post by 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: 796
Joined: Mon Feb 01, 2010 15:25
Location: Sweden
Contact:

Re: Help wanted!

Post by snowdrop » Sat Dec 17, 2011 06:55

xarn wrote:You probably wondered about the stagnation of this. The reason is quite simple actually:
Whatever the reasons, stagnation in the way you declare it is always counter-productive: As I wrote in my previous post, you work against yourself in your attempts to get help from others by taking a pause until somebody shows up, sees you snooze & a tech demo, and from that becomes interested in joining forces with you.

Trust me on this, or better yet - copy & past my step-by-step advice I gave you and ask any coding community out there if they're sound or not, or if you'll achieve greater success with yout strategy. In any case it's up to you i the end, howeber I saw it as my duty in here to give you the best of my knowledge when it comes to the choice you made. Said & done - won't linger nor repeat. Just consider the implications of what you're (not) doing.
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. ;)
If you're honestly thinking about implementing rules you have a serious and massive mission ahead of you.

From my point of view there has never been a demand for rules implementation, nor has I understood until just now that implementing them was your goal. :o

Rules implementation is excellent if you play against an AI - in which case you probably should run local client instead of being on the net - or if you want an idiotproof multiplayer environment.

In the first case we have been contacted by Wagic dev + other devs as well about turning WT into something that runs on their engines using AI. Wagic devs wil do this sooner or later, and they already have an engine, and it is already open source as well and runs on pretty much anything.

Really, making an AI and/or implementing rules will make your client/server a super-huge project that also will not be easily modded into running any other game out there. That, in itself, is as I argued in previous post, a very certain way to see to it that the software never gets a future. And if you code in such a way that it can intellgently support any number of custom AI:s for any number of games, allowing people to script them etc, you are opening up an even bigger project than the massive one you'd already have with just the WT-limitation.

In any case, what's the use? Why implement the rules? The gain is minimal. The only ones that play the game will be those that know the rules. They don't need idiotproofing. The work you will put down is like 99 whatever and the gain will be 1 to 3 utility. I would strongly advise against implementing rules or AI... if you're interested in that you're better of joingin the Wagic team. They're coder has already asked if we have anyone that is interested in co-working with their crew, and at the time we didn't. Should you be him, I'd be happy to put you in touch.

What I'd recommend though is for you to create a virtual table that allows people that know the game they are playing to play it easily, without any artifical restrictions imposed on them. Whatever is possible on a table in a game should be possible in the virtual on as well. Coding that is "easy", as you have probably already done 10 - 20% of the work already.

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.

I've never heard this fatalistic explanation before of why one wouldn't work alone on a project the person himself started :P Creative, the least.

Then again, if I'm to accept the logic in this one, I am also forced to think that it is no use to work on WT since all of us could be strucken by comets raining down all around the world, wiping out our puny WT team. Shit.. now that I think of it, the public doesn't even have the passwords to most much of our stuff... hrm hrm... :twisted:

Seriousley though: I don't think what you're suggesting should be a valid reason in an open project. The while point with FOSS is do-it-yourself and publish, let others help, co-work. If your code is only readbale by you then you have either so brilliant code that you're ahead of the world or that it is badly documented or poorly written. Why else wouldn't people understand it, given they know the language? In any of the two cases you have a problem that needs to be solved if you want to make the chances of getting help greater. :|

You being too busy will happen. It happens everyday that we're all too busy to work on stuff like this. That's what makes it charming and a challenge to work on open projects: All do it as hobbies when they got time & will.
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.
If you forget about rules implementation, which I recommend you to do, and try out OCTGN2, LackeyCCG and gCCG, you will notice that you have come much longer than you think. :)

Even if you just implemented like one to two small things per month you would still make very good progress within just a years time.

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

Therefore, I considered that the only viable option for me is to wait.
Yes, as if I had never written the previous post. You're doing everything inverted, and as I have foreseen it will not help you. If you want help then do the stuff I suggested, or at least parts of it, and you will get it. For that to happen you have to put in some work though, and also tell me if you need help with hunting coders etc once you have documented your code and all.
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.
I can agree up to a point. Then again, I can't imagine that the code is already in such a state that it is "hard" to get into it even if it was more feature rich from the players perspective while playing a game. For example what would impress people is the abiity to build a deck, shuffle decks, throw a die, etc. Stuff that you'd normally do in a game, even if you'd implement it in crude ways it would still add bling to it, making it more probable that your project gets recognition.

that going solo is not option for the reasons previously mentionned
I don't think you should go solo. Just start solo and put it into a shape where it can attract people so you are not solo for long. Goal will still be to recruit people.
In order to have this successful, at least a couple of developers need to be united...
For those to show up you need a sharper tech demo with more features and smoother operation. Put in time to get that + document your code and it will make your project much more attracting. As it is now most people would not join it, if anyone. You have written more in forum than you have on docu ;)

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.
Yes, correct. If and only if you enforce AI. There is no reason to do so though...

To summarize it:
- I stand by, ready to volunteer several hours per week
Just to clarify: What do you want to do?

Several hours a week is a very very generous offer, but I'm not sure I follow what it is you want to do? I'm asking this so I can get you started, and as always you're invited to all subprojects of WT or to start up a new one.
User avatar
xarn
Posts: 101
Joined: Thu Oct 13, 2011 11:50

Re: Help wanted!

Post by 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:
http://www.wtactics.org/forum/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 "bus factor" ;)

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!

Post by 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.
Post Reply