For the past few weeks, my progress towards my turn-based RPG has been slowing down quite a bit. However, it was not because I just got lazy and stopped working on anything (maybe sometimes, but I swear I try to at least work on something every day), but because the amount of preparation I had done before starting the project was just not enough. My knowledge gap in certain areas is now causing me a bit of delay on my game, which could have been avoided if I spent some more time to plan and prepare before I start. No one should be expected to have all the knowledge about everything they do, but being more prepared by having the relevant knowledge would have saved a tremendous amount of time during many parts of this project. There needs to be enough knowledge of the basics for anybody to do at least a decent job on any task, so being prepared always helps in any given situation.
Why do I say I didn't have enough preparation? Well, when I first started working on my new game, I was only thinking about the design of the gameplay and having the communication set up between the server and clients. Since this is my first multiplayer game, I put most of my focus on trying to learn how to program server and client codes that allow networking to work. I ended up thinking that would be the most difficult task and did not foresee all the other aspects that also needed to be finished to complete my game, or at least be ready to be shown or tested.
On the coding side, getting my code working across the server and clients was the first challenge that I overcame a few weeks ago, but what about saving players' data or storing the game's metadata? I cannot have a multiplayer RPG that does not have any data, which means I have to figure out how to set up a database to store all the metadata and player data. When I started looking for options for a database set up, I started hesitating on the selection. There are many tools for setting up databases, including Oracle SQL, MySQL, Microsoft SQL Server, PostgreSQL, and many others. With each having their specific advantages, I was not sure which would be the best for me to use without understanding all the uniqueness of every option. After doing lots of research, I decided to go with PostgreSQL; however, I will explain my database selection process and design at a later point in time.
On the graphical end, I decided to have my gameplay be in 3D, which has been a way bigger challenge than I thought it would be. Before I started working on getting 3D models for my game, I didn't understand how much knowledge is required to even ask other people for help in creating a decent 3D model. There are terms like "verts", "tris", "faces", "rigging", "texture", etc. Many of these terms confused the heck out of me when I first talked to any artist. Someone might ask, "How many tris do you want in your model?" and I would just tilt my head and think to myself, WHAT? To be honest, even after working with multiple 3D artists for the past 2 weeks, I still don't think I know much about these 3D concepts. Once I learn more, I will try to write another blog explaining my findings and what people need to be careful about.
Besides the technical challenges I have been facing, there are also other areas I did not prepare myself enough for. The top areas would be: understanding of the cost of development, learning how to market, and being able to motivate myself through the grind.
Understanding the cost of development is somewhat related to the technical challenges I explained before. We can only get a full picture of where the cost comes from if we have enough knowledge of what needs to be done for the project. For me, since I am working on all the programming pieces, that cost translates to how much time I need to spend on each item/functionality for the game. On the other hand, I would need to scope out all the possible costs related to the game assets, especially for the 3D models. Once we learn the art of understanding our development cost, we will get a better picture of what kind of preparation we need, such as how to find artists for a specific art style, or how to tell whether the artist's work fit our needs.
Marketing does not affect our product, but it does greatly affect how many people can see the product that we spent a whole lot of our time working on. Finding ways to promote myself, make friends with other developers and gamers, or create specific content in the game can all contribute to the visibility of my game. Right now, I have slowly learned ways to show the world what I have done and what people should expect from me in the future. Nothing comes in a single day, so I should be prepared to market throughout the entire process so the most amount of exposure can be given to the game.
Last but not least, knowing how to be motivated is probably the most important factor of all. Without motivation, no project would be completed. Many people might know this concept— to not overwork ourselves— but knowing it doesn't always make it easy to follow. Especially with all the stress that comes with the COVID-19 pandemic, overworking is even more deadly than ever to our sanity. If we don't maintain our mental health, it becomes very difficult to motivate ourselves, even for the things we love the most. Furthermore, stress and lack of motivation can also come from poor physical health. Keeping a good exercise routine and a healthy diet can positively help maintain both our physical health and mental health, which then translates to more motivation to work on any given task.
Preparation is important and we should never start anything without planning, but always remember that whatever amount of groundwork we do will never be enough. There will always be more information or technology which we don't know about, and that will always be true for anything. Therefore, we have to be mindful of not letting ourselves stay in preparation forever. Some degrees of planning is an absolute necessity, but so is the execution and flexibility. Always be prepared, but never let that get in the way and turn into hesitation. If you have any idea that excites you and that you would like to begin, remember to be prepared and to just start.
Have Fun. Be Happy. Be Inspirational!