17 coaches online • Server time: 06:36
* * * Did you know? The best interceptor is Leena with 22 interceptions.
Log in
Recent Forum Topics goto Post Is kicking first wit...goto Post UW Goblins - Disturb...goto Post A Very Steely Setup ...
Kalimar
Last seen 17 weeks ago
Lizardman
Emerging Star
Lizardman
Record
13/8/11
Win Percentage
53%
Wood Elf
Veteran
Wood Elf
Record
9/1/12
Win Percentage
43%
Overall
[R]
Emerging Star
Overall
Record
60/31/61
Win Percentage
50%
Archive

2017

2017-03-14 14:14:32
rating 6

2016

2016-12-23 18:26:42
rating 5.9

2015

2015-12-02 16:47:16
rating 5.9

2014

2014-09-28 09:30:46
rating 6
2014-09-23 13:52:23
rating 6
2014-03-08 23:27:43
rating 6

2013

2013-12-10 15:26:46
rating 6

2012

2012-11-21 23:01:48
rating 6
2012-10-16 10:19:33
rating 5.6
2012-09-24 15:31:57
rating 5.9
2012-08-08 14:29:11
rating 6
2012-07-27 14:16:42
rating 5.9
2012-05-22 17:11:25
rating 5.8
2012-04-20 14:20:14
rating 6
2012-03-16 15:40:18
rating 5.8

2011

2011-10-25 16:33:27
rating 6
2011-05-20 11:52:47
rating 5.9
2011-05-10 15:05:36
rating 6
2011-03-14 17:53:36
rating 5.9

2010

2010-12-13 17:02:31
rating 5.9
2010-11-07 14:19:10
rating 5.9
2010-09-12 23:43:04
rating 5.8
2010-08-10 10:22:53
rating 5.9
2010-08-05 10:34:47
rating 5.7
2010-07-08 13:22:46
rating 5.9
2010-06-15 17:29:49
rating 5.7
2010-05-20 17:04:05
rating 5.7
2010-05-16 08:19:01
rating 5.2
2010-05-12 17:13:23
rating 5.7
2010-04-30 14:10:06
rating 5.7
2010-04-22 21:26:21
rating 5.6
2010-04-14 13:55:38
rating 5.9
2010-03-23 11:29:31
rating 5.9
2010-03-18 13:27:14
rating 5.8
2010-03-10 20:42:47
rating 5.8
2010-03-04 16:56:41
rating 5.7
2010-02-26 22:22:32
rating 5.5
2010-02-16 16:15:38
rating 5.8
2017-03-14 14:14:32
37 votes, rating 6
Closed Source
In a recent forum posting a user asked if FFB "is still closed source". I thought a bit about how to properly respond to that and wanted to share my views.

The situation

The FFB code (client and server) lives in a repository on github.com. Currently only Christer and myself have access to that. 99% of that code has been written by myself, with some minor contributions by Christer and some small help by others in the past (most of that code has been refactored over and over by now, so it's basically all gone).

Why not Open Source?

At first the idea to make the code Open Source and through this enable others to add to the code, test and fix it, seems appealing. So the original poster's question is a valid one - why not go Open Source, indeed?

The first limiting factor is TIME. As a family dad with a day job, 2 kids and a gaming hobby my free time is limited. I can either spend that time working on the code (building new features, fixing bugs) or teaching others to do so and/or controlling their work. I cannot reasonably do both. The FFB project is pretty complex by now. If no one is controlling what is done to the codebase, the project will soon be unmaintainable and broken.

The other limiting factor is MOTIVATION. For me (as for Christer) this is recreation time. I have much more fun happily coding away, than I have instructing others, controlling their work and discussing how things ought to be done (I have enough of that at work). If it is less fun however, I tend to drift off to other things to do (as probably all of us). The long-term motivation of those helpers-to-be is also a major problem. The past has clearly shown, that while some individuals are really motivated in helping out at first, they lose their focus over time and drop out sooner or later. So the teaching process begins yet again.

I hope this casts some light on the matter and why things are usually not so easy as they seem at first. It is not a matter of me not wanting to share, but rather the consequences such a step would have on the project.

EDIT: While writing this I became curious myself about the current state of the project and did some statistics. FFB client and server are currently at 31.643 lines of code and 1.226 type declarations (classes and interfaces). The projects have actually shrunk significantly during the last year of refactorings (changing communication to WebSocket and JSON in preparation of moving the client to JavaScript).
Rate this entry
Comments
Posted by Burnalot on 2017-03-14 14:34:34
Well, I don't really understand the open/closed stuff I just want to thank you for your work. So thanks a lot!
Posted by JellyBelly on 2017-03-14 14:35:44
Very interesting blog Kalimar - thanks for sharing :)
Posted by Cloggy on 2017-03-14 15:24:34
Rated 6 for being you!
Posted by Sir_Vivor on 2017-03-14 16:06:00
Cool to take a look behind the curtain, thanks for the clarification although I think you don't need to justify anything. It's your code and that's it. If you decide out of whatever reasons not to go open-source (e.g. lot of work obviously to do so) that's fine. I personally adore those 31.643 lines of code.
Posted by krom72 on 2017-03-14 16:14:52
Thanks for the hardwork ! (Does the RNG lies somewhere in these 31643 lines ? The heart of the conspiracy against me ... ? :-D) thks for explaining
Posted by Wreckage on 2017-03-14 16:25:57
https://fumbbl.com/help:FFB_RNG
Posted by krom72 on 2017-03-14 18:41:11
thanks (it was a joke)
Posted by SzieberthAdam on 2017-03-14 18:45:30
I see many open source project of a single individual. They usually does not teach/coach anyone. Still there is an opportunity for a qualified programmer to send a pull request and fix a bug by himself. In that rare case the author is still have the opportunity to do what he wants.

Open source brings transparency. People can see what a code does if they know how to read it. It is not about teaching them how to program in Java.
Posted by koadah on 2017-03-14 19:02:23
If TIME & MOTIVATION are the only issues then you could just chuck the code up there and let people make of it what they will. If no one does anything then you haven't lost anything.

If there are other issues, that is different.

Yes, people would 'steal' the code. ;)
Also have more knowledge to mess with the server.
Posted by MattDakka on 2017-03-14 19:04:52
Infinite thanks and gratitude for your work Kalimar!
Posted by SzieberthAdam on 2017-03-14 19:07:00
I agree. Plus, it is better to mess with the server based on exact than reverse engineered knowledge.
Posted by mrt1212 on 2017-03-14 19:07:55
Why can't you set up a series of trials to find people worthy of gazing upon the glorious code? Vine swinging, boulder leaping, scorpion avoiding trials!
Posted by SzieberthAdam on 2017-03-14 19:24:40
For example, I see that UtilInducements.findInducementCost does an equality check on Halfling (Master Chef) and Goblin (Bribe). I guess it would be not much time to replace it to contain check both client and server side to make Pro Halflings and Night Goblins to get the lower cost inducement. Soft coded inducement values are tougher, but this thing seems pretty trivial to fix. I understand you have more important things to do than to code this enhancement. There could community step in. And if not, you do not loose anything.

Either way, thanks for your efforts over the years. You give us many many great times.
Posted by Kalimar on 2017-03-14 20:11:29
@koadah: I don't feel that I've made my point very clear. perhaps I should have put QUALITY up there as well. you can't just throw out the code and let people do with it what they will. you'll end up with a large buggy mess. people may like to contribute code, but they usually dislike to test it. so you (as a maintainer) end up managing pull requests, handling merges, checking and testing. there is no other way.
Posted by Roland on 2017-03-14 20:30:33
@SzieberthAdam: and witch elves get chef (cauldron) at reduced price
Posted by Endzone on 2017-03-14 20:32:53
Amazing work Kalimar, infinite thanks.
Posted by SzieberthAdam on 2017-03-14 20:41:39
@Kalimar: The way you see it would not let good and healthy small-scale open source projects to exist. But they do.
Posted by koadah on 2017-03-14 20:50:11
@Kalimar: Maybe someone else would be interested in managing/coordinating the project, testing etc.

None of your points explain why no one is allowed to even see the code.
Posted by SzieberthAdam on 2017-03-14 21:16:46
Thinking of it again, why am I trying to convince someone who actually pays for his code to be hidden (open source codes are free of charge on Github)?

The game server/client is your child Kalimar and it is completely understandable that you do with it the way you feel the most comfortable. But your justifications are too week for me, sorry for that.
Posted by Balle2000 on 2017-03-14 22:16:00
I must say, some of the comments to this blog leaves me with a very sour taste in my mouth...
Posted by Jeffro on 2017-03-14 22:41:37
I'll say it...

SzieberthAdam: don't like it? Make your own. Nobody is stopping you. Except maybe TIME and MOTIVATION. But those are weak arguments, no? :\
Posted by JellyBelly on 2017-03-14 23:26:36
I have to agree that given the huge contribution Kalimar has made to the site and all the time and effort he has donated for free, he shouldn't have to justify why he doesn't want to publish his code. Thank you so much for everything you have done for the site Kalimar - we owe you a huge debt of gratitude.
Posted by Macabeo on 2017-03-15 00:07:55
First of all, me too I'd like to thank Kalimar and Christer for making this awesome place work. I also respect Kalimar's decision about keeping the project as a one-man thing, and I agree that very often having more contributors doesn't mean that the project is going to progress forward faster, but rather the opposite.

However, I don't understand why the code is closed. As a fellow Java programmer I'd be quite interested in taking a good look at it, I'm pretty sure I would learn a thing or two. Why not having an open repository but not allowing pushes?
Posted by thoralf on 2017-03-15 00:15:55
"None of your points explain why no one is allowed to even see the code."

All do, actually. Pair programming saves time and makes coders happy.

Unless by "allowed" you are asking for an ethical reason?
Posted by DonnyRainboe on 2017-03-15 13:26:23
This.

I have to agree that given the huge contribution Kalimar has made to the site and all the time and effort he has donated for free, he shouldn't have to justify why he doesn't want to publish his code. Thank you so much for everything you have done for the site Kalimar - we owe you a huge debt of gratitude.
Posted by SzieberthAdam on 2017-03-15 16:17:34
I am not justifying Kalimar, I am just disagreeing with him. But that is not a big deal as he is the author so his will what matters; which I am completely understand and accept.
Posted by thoralf on 2017-03-15 19:20:07
"he is the author so his will what matters"

Then there's no need for the justifications being asked of him. Open source fans, go work with Linus:

https://arstechnica.com/information-technology/2013/07/linus-torvalds-defends-his-right-to-shame-linux-kernel-developers/

Report.

If requests were being made by Fumbbl supporters, that'd be great.