I have approximately no people interested in the game, and this means no feedback and no profit. With all the piracy on PC, I expect to make a small profit from it, but between a small and no profit there is a difference. For that, I have put more efforts in social media (creating articles) and created a web page for the game: hope-game.com but create content with bad SEO do not help much.
So I have focused on making a prototype of the game and I will release it on Game Jolt this week, there are small bugs and I need to make a trailer. Again if I do not invest time into the presentation, people will not invest time in testing the game, they will probably not even consider to download it because his file size is around 80MB compressed and 90MB uncompressed (png images are not compressed much with the format zip).
Another problem I have been when I compile the game on Ubuntu everything works fine, I have a static linking of the libraries but when I tried to execute the game on Fedora. The game crash with a segmentation fault (core dumped). So I have tried many things, and I when I compiled on Fedora everything is working but when I try to execute this version on Ubuntu I also have a segmentation fault. Conclusion: Linking statically do not solve everything.
The last week I have focused on the background and the objects, and a bit of animation for the level 3. I guess most of the art of this level will be done this week. This is a good thing because this level is one of the longest.
I have fixed lots of small bugs this week and set up an old computer with windows XP who support only OpenGL 2.0. At first the app was not recognized by the OS:
not a valid win32 application
Thanks to this article I was able to fix this error quickly, but the second problem introduced with this workaround (using the define _ATL_XP_TARGETING ) is that I have to include the file msvcr100.dll, so to limit the number of DLL file I have chosen to static link the runtime library with the flag \MT, but I would have to recompile each library I am using with this flag (SFML, Crypto++).
After that, I tried to find a way to implement sprite batching with VBO instead of vertex array but it seem tedious to do that with SFML and not worth the time. VBO are useful to save transfer time between the CPU (client) and the GPU (server) because with vertex array we need to transfer the data each frame. But that’s okay if the program is not highly optimized, it’s probably an overkill for a point and click game. In most cases, vertex arrays are enough but the problem will be in the future: they are deprecated in OpengGL 3.0, and removed in OpenGl 3.1 and above.
This week I have made progress on the level 3 mostly on the maps and design. The level will be quite large with a lot of things going on so it will take more time to make but as planned level 3 and 4 will be the core of the game gameplay wise, but the beginning and the end are very important for the story.
That why I try to progress as much as possible before releasing a demo because I want to have a good vision of the game. The demo needs to be polished enough so that when the game is released the demo reflect the quality (or not) of the game.
I have pretty much no followers on twitter, glusoft.com have almost no content and this is my first “big” game. So everything will be decided when the game will be added on greenlight and added to IGF, PAX or other contests for indie games.
So I will probably try to make a trailer and a demo at the same time when I have decided the content and quality is enough to have a chance on greenlight.
 Obviously you could tell about my twitter: “You have 14 tweets about some game in development with no other things to show how can you expect to have people following you ?” I agree with that fact because people who have a good community have like 14k tweets or makes 3-4 “big” games and won some prizes for one or two, or maybe published many small free games. Or maybe it’s the first game but they add a successful Kickstarter campaign, or done some work with others developers as a musician. In my opinion, almost every roads are feasible with efforts and patience.
I have tried to port the game to SDL2, but it is more difficult than expected. At first I have replaced all SFML’s functions with SDL’s functions but it does not work because sometimes the object to draw is deleted after calling the draw method, in SDL you need to render the texture to the renderer with SDL_RenderCopy or SDL_RenderCopyEx if you want to rotate the sprite, but the object cannot be deleted before SDL_RenderPresent because SDL_RenderCopy take addresses in parameter. So I have allocated theses objects on the heap with raw pointers. But this time the problem was after using delete to clear some pointers, the memories of other objects got corrupted. So I have replaced raw pointers with shared pointers it is better now, but there is still some weird bugs so I will continue to use the SFML version this week and come back to SDL later.
This week I have fixed a lot of bugs and added optimisation some of the map were almost the same so I have decided to merge them. I have also tested SDL 2.03 and done a benchmark SDL2 / SFML2.
I have chosen SFML because when the project begins SDL2 was not yet stable and SDL1.2 was very old with his software rendering. So I have kept working with SFML but now it’s different, SDL2 is stable and all major bugs are fixed, and SDL is supported by most platforms including IOS / Android. So in the long run SDL will be more optimised than SFML there is no doubt. I prefer C++ but a C library is not really a problem, to do the same thing with SDL you need more lines of code, but that’s pretty much all the drawbacks.
Maybe one more things annoying is adding all the extensions SDL_Image, SDL_ttf, SDL_mixer, SDL_gfx to have something similar to SFML (without the network part).
So I have started to port the game to SDL because I think it will make the game more stable, I don’t want to have a bug when it’s is the library’s fault and not mine.
This week I have compiled the game for Linux and MacOS X configuring and compiling libraries can take time. For example rapidxml do not compile on Xcode, I compile on GCC and visual studio. I have fixed a lot of bugs and I am working on releasing a demo. So I have also implemented a function to cipher the data (images and XML files). I have added a new option where the user can see the hitboxes of the objects.
I have done some work on the graphics, I tried to use pictures for the trees but it takes a lot of time to make the background transparent, so I am searching for a software to remove the background, but the problem is the background is not one color but many shades of blue.
Photoshop have some tolerance parameter for the selection but it also select some of the leaves so I have to pick a low value for tolerance and after that I need to clean the image by hand.
This week I have finished the second level which is shorter than the first level. Now I have started to find bugs in the game. Now I am trying to setting up a virtual machine running linux. I have tried debian Jessie 8.2 32bits but codeblocks is not available, and KDevelop crash after creating a project. I have tried to eclipse CDT which is too heavy for my taste. So I have decided to create another VM this time with Ubuntu 15.2 Vivid Vervet 64bits. I have also moved all of my projects into google drive because git is not very useful for one developer.
Good news everyone! The first level is finished and I am already working on the next level, this level is short in term of maps so I hope to finish it next week. Here is an unfinished drawing of a forest for the next level.
The last week I was polishing the level: create icons for each item, add more texture for the maps. But during the week I became ill so during two days I was not able to make any progress the game. At the end of the month I hope the first level will be completed so I can advance to the next one. Every level will not have the same number of maps:
||?? (22 maps for the moment but maybe more).
||?? (16 maps for the moment but this level is the biggest
in the game so probably around 40-50 maps).
|Level 5 / Ending
||8 (smallest level).
But even if a level have a small number of maps the task that take the most of my time is when I animate, so just one map with lot of animated things happening could take more time than 10 maps for example.
I try not to post too many screenshots of the game in order to avoid spoiling the story.