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.
This week I have not worked on the game because I had to finish the CV and I have some health problems so I rest most of the time.
More debugging to do in this last level, every day there are new discoveries, new bugs. The dialog is not done yet because this last part reveals a lot of the story.
I have spent some time doing a CV and a motivation letter, the 1st March I will start the job hunting! I am also trying to change my sleep schedule, to wake up in the morning instead of the afternoon.
I think the game still have few months of development, so I think by that time steam greenlight will be replaced by steam direct. But once the development is finished I will focus my time on the marketing of the game and maybe bugs.
I have been working on the computer terminal, there is some animations, loading bars that need a lot of tweaking to have a good delay. After that, I have fixed a bunch of bugs and I am doing the last things for the level to be completed.
The game will not be finished the 1st march, I have a lot more polishing to do, add soundtracks, beta test the game.
I have added a lot of new content so the polishing phase is really starting now. With all this content the game will still be short because there are five levels, some levels are bigger than other so I expect the player to complete the levels with this pace:
||1 h 15min
There are a lot of small puzzle interaction, but I tried my best to make them logic and pretty much obvious once you know what you have to do. I think the difficult part at the beginning is making the first discoveries to understand what to do. There is no tutorial in the game (even for the controls) so you need to make some discoveries by yourself, try things. The game becomes easier after you have discovered some of the mechanism but I tried to add new things along the way to break the pace.