If you want to stand out with your community/gamemode you will most likely have to invest (time/energy/money) into custom content/features. This can come in the form of a custom gamemode, automated donation system, crossover features, in-game content or special applications. If you have the skills to program your own features then you are in a good position and this article/guide most likely isn’t for you (might still contain some useful tips though). This article will focus on working with first and third party developers, also referred to as coders or programmers. In this article we will discussing the scale of a project, the skill level of both the developer and the project itself, the financial aspect, How to communicate with developers and their position within the staff team.
Just to be clear; A first party developer is someone within your own team and a third party developer is someone external.
Scale of the project
Whatever the project is, you will always have to determine the scale and set boundaries. A common mistake is that communities are too ambitious with their projects and might lack the knowledge and skill to finish them, this results in a lot of DOA (Dead On Arrival) projects/communities. So when you (and your team) are brainstorming have a clear goal in mind and stick to that goal. Along the way you might have interesting ideas that might “stimulate” this goal, but once in awhile stop and re-evaluate to see if it actually helps the project instead of steering it of course.
If you’re lucky you can find a developer who speaks the language of “wild ideas” (will be discussed in a later paragraph), but normally experienced developers need a well formulated plan with logical decisions. Therefore you should involve the developer in the planning phase, that way both parties can adapt to the plan and each other. Because we all know a project build on assumptions is destined to fail.
Regarding planning; Trello is a very useful tool for working with a team. This tool allows you and your team to organise, delegate tasks and keep on track on what has been finished and needs to be done
Each project has a skill level this depends on the scale of the project we just discussed.
That is why finding a developer suited to the skill level is really important. You will have to filter through a lot (mostly younger) of people who call themselves coders/developers that in reality only made a HTML page or copy paste other people’s creations. This will only slow you and your project down and might end up you getting scammed. The best way to get insight in the skill level of your project is to have a basic understanding of programming yourself. Once you understand programming and how to approach it you will be able to make an estimate and then you actually know what you are asking from the developer.
The financial aspect
Whether you are working with a first or third party developer, at some point you will most likely have to discuss money. Before the development/planning starts you and the developer(s) will have to negotiate on the terms so that problems won’t arise later down the line (this happens way too often). Whether it be a specific number you had in mind for the finished product or obtain a “pay per update” method this is all up to you, as long as you are clear about it Be sure to write every step you take in a document and let the developer sign it, this way you always have proof to fall back on. When it comes to numbers, this depends on the project itself.
Whenever you are working on a new project be sure to work with milestones! It is up to you to set those milestones. Whenever the developer reaches one of those milestones he receives X amount of money. This way you get an insight in the development progress and are sure your developer delivers. Besides that it’s a good motivation for the developer to reach those milestones.
Be very cautious of scammers and people who think they can “code”. Before contacting a developer do research first and open up a conversation. Ask for a portfolio and past experience/projects. This is a good way to determine the skill level and credibility of the developer. Be extra careful when a developer gets referred by a friend, if the developer under performs/scams you this might damage your relationship.
How to communicate with developers
Now this is the part where the frustration kicks in for many people.. communicating with developers. Communication can be slow, misinterpreted and straight out annoying. This is of course depending on both you and the developer in question. There are two problems that cause this.
The language of “wild ideas”
After having a brainstorm sessions you come up with a wild idea for your new gamemode and are writing everything down in a document that you can present to the developer. You put your heart and soul into it and are highly motivated and convinced this gamemode is the next big thing!
After finding a qualified developer you start explaining what you want in the gamemode and then it hits you… “That’s not gonna work”. What do you mean not gonna work? “It’s not gonna work because X and Y can’t work together. Also I think you should change Z to X”. but..but.. “No, sorry”
You sir, are talking the language of “wild ideas”
Most developers don’t speak this language, the ones that do can translate your wild ideas in their head and find a way to transform that into functions. But normally you would have to formulate the features in a logical way and be clear about it. This is why (again) I advise you start learning at least the basics of programming so you know what you are asking from your developer.
Custom content can mean live or die for a community. A developer knows this and therefore puts him in a powerful position. If you have an unqualified or lazy developer he most likely will abuse this position by not following deadlines, underperforming or abandoning the project after taking a sum of money. I personally have also been in this position. Always have a backup plan and never lose control.
A developer’s position within your community
The developer needs enough tools and privileges to conduct his tests while developing, but whenever the project is live remember this : By default a developer is not an admin. functioning as an admin/moderator requires a different skillset and should be done by the appointed persons. Of Course if you have flexible developer (who actually wants to manage the players) a position is negotiable.
Learn programming yourself, this saves you a lot of money, problems and frustration. *laughs while crying on the inside