General Gamedev Tips
Explore the Defold editor fully. Create every kind of file, open its editor, and interact with it. Understanding the relationship between the different kinds of tools available to you is important to being productive.
Learn Lua. Practice every day making examples that target some kind of problem that you wish to solve.
Learn the Defold API. Begin with reading the entire API and what each part does, and then begin to make examples using each part of the API. Do not go a day without studying and practicing. If you wish to you could make a thread on the official Defold forums documenting what you have learned that day. This can help you solidify your knowledge, and potentially help others if you run into problems which can then become searchable.
Your ultimate goal with learning Lua and the Defold API is to not need to reference documentation while working. You should have as much of what is useful memorized, which, in the case of Lua and Defold, is the majority. Use tools such as https://www.defold.com/community/projects/78498/ to help you quickly look up features.
Make flashcards and study them every day. The Anki software is free, and can help you with automatic spaced repetition. Once you really learn new concepts, tools, functions, then make flashcards to keep that in your long term memory. If you learn something new, and then don’t use it for a few months you may forget it, but if you stay diligent with studying you will reach mastery sooner. Flash cards are for long term memorization of what you already understand. Don't create flash cards for concepts which you do not yet understand.
Use source control. By using source control, you can maintain a historical record of your projects, and be able to peek back in time, or revert to older code without worry while you work. Defold has built in source control where you can sync your project to Defold’s git servers. This is provided for free, but you can also use other private hosting such as Bitbucket. If you don’t use source control at all then start and stay using it. If you don't use source control you will eventually regret this.
You can still make games before you reach mastery level, and you should. Try to make an example of as many older games which inspire you. If you need ideas ask your friends what games they remember being fun, and then show you the progress of you remaking those ideas.
Stay motivated, but understand that discipline is extremely valuable when you can’t seem to get the motivation. Cultivating willpower is done through doing small tasks, denying yourself small rewards in order to be able to do larger tasks, and deny yourself larger rewards and temptations. The more you practice discipline and willpower the better you will get at staying focused and getting your work done.
Break your projects into bite sized tasks. Try to not dwell on the bigger picture, because thinking about how much work you still need to do can completely overwhelm and demotivate you, and cause you to not want to do any work at all. So instead only focus on one task, and break that further into smaller chunks. Then make yourself focus on only those small tasks, and repeat this process daily. Over time, everything adds up, and using this method you can maintain productivity more reliably.
Know that nothing is truly original - everything is a remix. Chasing originality is the wrong idea to have. Remixing good ideas in new, fresh ways is a much better practice than trying to be completely original. Gain inspiration from everywhere, and use it to make better products. It's easier and often better to build on what already works first then evolve it into its own new thing.
There are no dumb questions. Of course you should search the forums (use site:defold.com search term in Google to search the forums and manuals at the same time) to answers to your questions, but if you can’t find answers and feel stuck then you should create a topic and ask. If you have concerns ask.
Defold takes the hard work out of many elements of game development. But make no mistake that making games, making good games is still time consuming and hard work. You must accept this, and give yourself enough time to get to a mastery level.
Success favors perseverance. You must be willing to fail over and over in order to have a chance to succeed. Some people are more lucky than others by doing the right thing at the right time without thinking about it. You can be smart by making your attempts relevant to what is working now. Many people are seen as overnight successes, because they “became somebody” suddenly when so long they were not seen as anybody, but the years of work and failure is rarely shown. Failure means doing things wrong in order to learn how to do them right. It means improvement. Failure is not necessary to being successful, but you should still not allow fear of failure from preventing you from attempting in the first place, and continue to make attempts as many times as it takes for you to reach your goals.
Never become complacent. You may reach great success, but maintaining it still takes work. Don’t rest on your laurels. If you have great opportunity then take it. If you’ve made a good IP of a game that people like don’t immediately jump to making something completely different. It may not feel great to keep working on the same project so long, but if people like it and are buying it then strongly consider making more of it.
Don’t take on too much at once either, don’t try to do everything. Do one thing at a time, and finish it. Don’t leave projects unfinished. Resist the temptation to work on what’s new and fun. This is something nearly every game developer struggles with. We’re excited, and interested in so many things, but getting distracted is bad, and not putting in the work work to finish what you started is a bad habit to cultivate. After some point, of working on new projects, the honeymoon period fades, and it begins to become real work. This is when having discipline and willpower matters.
Be willing to cut. If gameplay mechanics are not actually fun then cut them. Part of the polishing process is removing things which do not add to the whole to create a new whole that has higher total value even with less content.
Sometimes simple features can be the most compelling. Recognize these, and make room for them in your projects. Empires have been built on taking simple mechanics, and refining them to be extremely compelling games which have garnered hundreds of millions of downloads.
Subdue your gamer / artist / developer ego. People like different things. Some people like super simple mechanics which you may feel you can’t even begin to understand the appeal of. A reaction I see from many dev when they talk about games they think of as being lesser is to over emphasize their disgust. Acting this out does you no good. Reality is that you need to make money, and you need to serve sizable audiences that actually buy things, want things, are willing to watch ads to get. As a commercial developer, it’s in your interest to get to know your audiences that you choose to serve, and have a willingness to make what they want without letting your personal preferences as a gamer get in the way of delivering a quality product that people enjoy. It’s mostly about money and that’s OK, but it’s also about fulfilling the needs and desires of real people. There is a ton of opportunity in the world. Be honest with yourself with what people actually want, and deliver the best example of that product to them.
Do what you can on your own. Be willing to learn new things. Don’t rush to hire people when you can do it yourself. At the same time, recognize that more successful teams are made up of people who specialize on specific tasks. Still, it’s entirely possible to do everything, or most everything on your own with well scoped projects, and still create hits. Avoid hiring full time people for work that you know is only short term. Pay people based on contracts, and make sure you use good contracts so that you only pay people when work is completed - don’t accept excuses - work with professionals. When you do grow your team grow it slowly. Higher exceptional people who can directly impact your team’s ability to produce great games and pay them well.
Be careful with how you spend your time and your money. Don’t spend money just because you are flush with cash. If you get some success, don’t share the news with friends and family. You will find that people will begin to expect things from you (for you to pay - don’t - everyone can pay their fair share), ask things from you (if you loan money to friends or family it can end the relationship - they may avoid you until they can pay you back, and they may never pay you back), and some may even begin to resent you or feel you didn’t earn it and attack you. These are pretty normal things to happen especially with people who come from poverty. You may even begin to feel you didn’t earn it, and feel like you just got lucky. Well, maybe you did do the right thing and the right time, but never forget how much you have worked to get what is yours. It’s your success, and you don’t owe anyone else anything. Do what’s in your best interest first always.
Be careful with partnerships. If you can afford to you should prefer to be the owner and hire others. If you must partner with others then make sure the terms are clearly laid out and documented. Being the one willing to sell your share to others is an easier situation than being the buyer.
Be willing to work for others. Many of us have a strong, independent spirit, but if you lack experience, then you should strongly consider waiting to go indie. Find a good employer who can give you stability, and work super hard to become an indispensable employee. Learn as much as you can, push yourself as much as you can.
When hiring programmers make sure that they sign contracts which state that the work they do for you is entirely owned by you. This may seem like it’s not necessary. After all, if you are paying for it don’t you own it? For the entire rights to the work, not necessarily, and that’s why you should make it absolutely clear in a contract.
Be careful with non-compete contracts both when hiring and working for others. You don’t want to be legally obligated to not work on certain kinds of work for so long after leaving a job. And, when employing, even if you do get someone to sign a non-compete that doesn’t mean it will “protect you”. The truth is that even if someone begins to work on a project similar to what you produce it’s unlikely to eat into your company’s own profits. The gaming industry is growing, and what’s more likely to happen is the work they do brining in more customers into the market, which means more potential for you. My advice is don’t bother. Same with non-disclosure agreements. Most of the time they are a pain without any gain. Just don’t share work with people you don’t trust, and if they do break your trust then they are doing you a favor by telling you to not trust them again. There are kinds of contracts which are very important, such as distribution agreements. Read everything before you sign.
Trademarks are useful, but they can also be costly to maintain (it’s your job to watch for the incorrect use by others, and warn people to stop infringing on them). If you publish a mega hit: absolutely yes try to get it trademarked, but don’t spend time and money getting everything trademarked before it even makes its first sale. Don’t try to trademark common words. Especially single words. Don’t try to block other developers from using single or common words in their own game. The game developer community is extremely hostile to people who try this. What do you trademark? The full name of your game only, and the logo.
Patent offices are notorious for allowing patents of so many absurd things. Don’t patent game mechanics. You will spend time and money to file the paperwork, you may or may not get it approved (it’s a gamble pure and simple), and you’ll have to spend more money and time if you really wish to defend it in court. Unless your plan is to get money from and shut down others who are making similar things (only terrible people who hate games would do this), there is little profit in patenting game mechanics. There is a ton of bad karma if you do.
Know that well made projects can result in products that can produce long term, passive income. This requires paying attention to the market, and having a willingness to make games which are more likely to have long term consistency rather than what’s hot right now.
Sometimes projects have to die and can’t be finished. These kinds of projects are where you can no longer see how they could be fun - what sounded good on paper just isn’t working in practice. Sometimes markets can shift too, and you can be left with a project that no longer is commercially viable. You must make the decision to cut your losses (avoid sunk cost fallacy), or cut the scope of the project down until it can be released.
If you are making and finishing projects that does not mean you have to release them. What matters is that you don’t foster a habit where you leave work unfinished, and to follow through with what you start. The reality of the world is that people are shallow creatures who will judge you for work that doesn’t quite hit the mark, and try to get closer to you for your success. A strategy that seems to work is to only publish your best work, and to not reveal anything about what you are working on until it’s finished. Work to be smarter, but stay humble. Don’t let anything get to your head else you may alienate the people who really matter while surrounding yourself with narcissists. Helping others is great for community, and can help you learn or to solidify knowledge, but you should also make sure you prioritize what matters in your work and not allow distractions to consume too much time.
Always act professionally when dealing with other professionals and customers. If someone acts like a troll, don’t act like a troll back. Don’t point out their behavior to others, don’t signal boost people who may be doing you wrong. Do report credible threats to law enforcement. Don’t try to get others to change their ways directly. Instead "kill them with kindness", and unwavering professionalism. Don’t block - instead you should mute, and ignore. It’s better to never react at all than to show a reaction when you think or feel you or what you have made are being attacked. If you must react, do it privately, or in an offline journal. Some people may be having a bad day, and may become converted to a close ally, or a super loyal fan if you don’t attack back. There are trolls out there, and they quickly lose interest when they realize they can't get any satisfying reaction out of you. Simply put: don’t burn bridges, don’t feed the trolls, don't help people to make yourself into their enemy.
Don’t take customer or press reviews personally. In some situations, it’s good customer service to respond to reviews (for example, to help them fix a technical problem), but not always. It’s better to do and not say. Sometimes reviews by press, especially games press you enjoyed personally, can upset you. Here is what you need to realize about games press: most of them are not gaming enthuists and never were gamers, most are jaded people with uselsss liberal arts degrees who hate video games and hate gamers. The only people whose opinions should matter to you are your direct cusomters who happily pay you money for what you make.
Many people say they wish companies would communicate more, but that doesn’t mean making promises you can’t keep. It is better to not publish release dates than to miss them. Promotion, marketing, building hype is important, but letting people down is very bad. Under promise, over deliver.
It’s OK to hint at a Game 2 in a Game 1, but if you do you should be prepared to work on it immediately, and release it as soon as possible after Game 1. If you’re not prepared to put everything into making a Game 2 after a Game 1, don’t hint at Game 2. Even if you don’t make any hints, if your game is popular people will constantly ask you if there will be a Game 2. Especially if there is a story narrative in your game. Let them know your policy is to not publish release dates or information for unfinished games, and instruct them to sign up for your newsletter so that they can be notified of any news.
When making a Game 2 it is better to make improvements than to redo every part of it from scratch. Don’t try to reinvent what already works, focus on what didn’t work well in the first game and fix that. For example, is there something that people seem to complain about in a very strongly negative way frequently? Fix that first.
Just because people complain about things does not mean you are right to “fix” them. Some game design elements which cause pain are also a reason for why people play. Take random loot for example - people may complain that loot drops are so low, but at the same time if you make them super high then getting loot feels effortless and less rewarding. Players working through pain and to complete their goals can both make people rage quit, and give people a great sense of accomplishment when they succeed. Balancing this is important, and it’s also important to recognize these kinds of features and not just make changes to shut complainers up when you may also be making changes that rob other players of enjoyment.
Iteration is important, but starting projects over from scratch is very bad. Finish what you started first, then make the next full iteration. Game developers are notorious for restarting projects from scratch over and over again when they could have finished and released several full games in succession.
If you don’t have a newsletter - start one immediately (Sendy.co + Linode is good for cheap self hosting), and begin to encourage people to sign up to get news. Try to at least send a few newsletters a year to keep your list warm even if you don’t have real news. Having a list of people’s e-mails can be long term much more valuable than having many Facebook likes or Twitter followers. E-mail does not appear to be going away any time soon, but those social media sites may collapse and shutdown overnight. Still, don’t disregard social media for marketing, but also always keep a newsletter.
Be aware of complying with COPPA. Read the rules, and follow them even if you do not live in the US. If you distribute apps in the US then you must follow COPPA. https://www.ftc.gov/tips-advice/business-center/guidance/complying-coppa-frequently-asked-questions
If you are making games not just as a hobby, but as a way to do a profession then you must be brutally honest with yourself as to what various markets want, and what you on your own, or with a small team can produce to meet market demand. Don’t make games no one wants or never asked for. Pay attention to what the market is buying, and playing. There is true opportunity everywhere, but it may take humility to truly see. If you are too proud, have too much hubris then may become blind to opportunity.
Defold might not be the right tool for you and the projects you may want to make. Even if you feel excited about learning and using Defold you should keep and open mind, and maintain a factual perspective of what tools you have available to you. For example, making 3d games with Defold is possible, but it will take extra work compared to other tools such as Stingray, Lumberyard, Unity, or Unreal. If you need a feature now for your project that Defold doesn’t have yet you should strongly consider other tools - the right tool for the job.
Don’t take things for granted. Ask questions. Understand why you are doing something, why you are using something. What does it solve? What does it help you to do? What value does it add? Is it risky? Should I be focusing elsewhere? Why does this problem need this solution? Why should this project be made with Defold?
Try to not waste time. Ask yourself if what you are doing actually matters, actually contributes to your major life goals, and is not just an ultimately time wasting distraction. There is a ton of potential and opportunity in the world, and you only have so much time in your life to go after it.