The development of the game is still going, I have redone some maps.
For example, before I had some maps with placeholder photographies :
Now I have drawn the trees to be more consistent with the overall style :
I have done more animations and added more content for some levels, the content is mostly done now maybe little things to tweak here and there and some dialogs to change.
On the programming side, the format used for the images are dxt1, dxt5 for the compressed format and tiff for the uncompressed format. It improved the loading and the memory consumption of the game by a lot!
I am working on a trailer and some marketing images for steam.
A lot of time have passed since the last update, I have done a lot of bugs fixing these past months, a lot of things at the beginning where broken, or some maps or objects where missing objects or textures.
The progress has been slower since I have less time to work on the game with a full-time job, I have maybe 3h/4h each day after work and more time on the weekend.
This month I have been working on new animations, one animation takes like one week to draw and maybe one week to scan, post-process and combine.
I would like to finish the game this year, but really the game will be released when it’s done. I need to work on the marketing, I have so many things to do, each thing I do is less time for other things.
That’s why I have been focusing solely on polishing the game these past months.
The updates are less frequents because I am moving in another city, each night with the day job and the transport I have maybe two hours of free time. So the game is progressing very slowly these months. I have fixed some bugs and redone the water animation, synchronized the music. I need to retest the whole game because adding and modifying things can break some other parts.
In my new home I will have a lot more time, but no internet yet. I don’t know how much time I will have to wait to have the internet, maybe weeks. During this time I will work on the game as much as possible.
It’s becoming harder and harder to work on the game since I have a day job and it is hot every day. I have maybe three hours each day to work on the game and I am tired but I try to fix smalls bugs in the last level.
The other news is Steam Direct, I can publish the game directly on Steam after paying the fee but without a minimum of marketing, the game will sell very little. Steam will probably become like the google play store, so many games very cheap it becomes very difficult to make a living. It’s better that way, every developer has more freedom and the customer can choose between a lot of games.
I still don’t know how much time finishing the game will take, my first priority is to find the energy to work more on the game at night and find a flat near the job.
These last two week the third level has been completed, now I am working on the big level 4. A lot of bugs have been fixed, some of the art has been completed too. I have modified some dialogs and some collisions.
Every time I make some progress there is always more to do, it looks like the game will never be finished. I think I need to add a lot more dialogs to have a game not too empty.
I need to buy the music but for the moment there are still too many bugs the game is not polished enough to be fully playable.
Steam greenlight will disappear soon and maybe I will not have money to put the game on steam, in this case, I will release the game on itch.io first.
I post update less often because for maybe an entire week I have only fixed bugs. I can now sum up all the interesting bugs.
One interesting bug I have is:
OpenGL makes a border around sprites in a sprite sheet when the sprite is rescaled.
And the things is, this artifact is not a bug but depends on which filter algorithm is used by OpenGL. There are multiple but the two without mipmapping are GL_NEAREST and GL_LINEAR. Using nearest-neighbor interpolation produce an ugly result, so I need to use a linear interpolation for the filter.
The problem with linear interpolation is it compute the value of a point with the adjacents points, and sometimes with a certain size, position and ratio a border of one pixel appear around the sprite. This is when the linear interpolation algorithm needs to take the color of a transparent point. When I generate the sprite sheet with openCV the transparent color used is black (RGBA) : (0, 0, 0, 0). So the line around the sprite will be darker than the rest of the sprite.
The solution to this problem is simple once everything is explained, make a border of one pixel around the sprites with the good colors. I can do that easily by reducing the size of the sprite by 2 pixels.
Another classic bug with vector is the invalidated iterator after addition (when a reallocation is needed) or the deletion of an item.
In my case, the objects in the vector were stored on the stack, and I was using the address of the item as a pointer. Everything is fine if the vector is not modified, but I am inserting and deleting things while using pointer => pointer are invalidated => accessing invalid space in memory => game crash. The solution is simply to allocate thing on the heap to obtain a pointer that does not point on the vector and continue to be valid after modifying the vector.
There are a lot of others small bugs but when testing now I am using this to check for heap corruption (for visual studio only):
This week again a lot of debugging but also new animations created for the second level. There is still a lot of work to do for the game to be bug-free but the fun part (design) is finished.
I like to think about the next game, nothing is decided yet and I don’t know which type of video game I will make. However, there are things that are important for me:
- Focus on art and the storytelling
- Third-person view
And I will probably do something different than a point and click game, maybe something with more animations. I need to do a lot of practice to have something good, hopefully, there are tools and references to make life easier for example posemaniacs.
This last two-week I have found and fixed a lot of bug in the first two levels. But this is far from finished there are more and more bugs coming up each time. I don’t know how much time I will spend on the debugging, but there are far more bugs than expected. This is my biggest project so far, and I don’t have a lot of experiences in programming, so nothing too surprising
This is my biggest project so far, and I don’t have a lot of experiences in programming big things, so nothing too surprising. I have tried again to load DXT textures but it seems I need to change SDL_gpu directly or use OpenGL directly which is very time-consuming. That’s ok texture compression are not absolutely needed, so I am good with using PSD or TGA files for the images.
I am regenerating every sprite sheets because before using OpenCV I have used SDL_gpu and in some cases, the rotated image is a bit blurry.
The last level is done! The fire animation is completed, now I am testing the music and sounds effects. For the moment I can’t past the first level, I have discovered nd fixed so many bugs. But I am sure there are more bugs than that, there is always more.
I have finally done a dynamic wrap word system for the dialogs game. I have tried with SDL_ttf before but there was still a bug because the text is printed character by character and the line break was done when the word was not finished to be displayed.
Now with NFont, I am inserting ‘\n’ character before the text is displayed. Here is the part where I insert ‘\n’ char.
This week and the previous week I have been job hunting, but also trying to make a realistic fire animation for the game.
I have been trying to use this video taken from shadertoy to make the animation of the fire.
But with that video, I only have a small fire with constant size. I have been trying to merge the fires to have a big one, but it does not look good.
I am playing a little bit with the shader to have something that increases in size over time. I am not comfortable with the maths used the shader: Perlin noise and Fractional Brownian motion. I am still tweaking the shader to have something good, after that, I can record the video and import the frames into the game.
Once the fire is finished I can add the smoke, the smoke is already done with the particle engine.