GameDev 2019 Week 15: Off Topic
performance, web dev14.04.2019 - 12:45
Because the game didn't run as smoothly as I thought on my friends PC I started to look into it a little bit. First I added an options to toggle the fps limiting and also set different fps limits. I used to have an AMD graphics card and the default AMD behavior is VSync off, therefore unlimited fps, but when I switched to an Nvidia card, which defaults to VSync on, I removed the default fps limit in my engine. So now it is possible to set these options in the main options of the game. I also added another option to toggle VSync directly in the game (unless the graphics driver settings override it) and the ability to play the game in full screen. However, because of implementation details both VSync and full screen changes require a game restart. With these new options I could investigate the performance a lot better, because when the fps is always at 60 it's not really possible to see any slowdowns unless it would fall below 60, which would be very catastrophic. First I realized that I was measuring frame times incorrectly. For whatever reason I had the timer stop before the swap buffers call instead of after it and OpenGL performs a lot of its tasks when the frame finishes and before swapping the buffers. After changing the measurement the game now took about 4-5ms per frame instead of the 0.1ms it took before, which is still way below 16.6ms so it's actually still quite ok on my system. However, my friend has a QHD monitor, which has almost double the pixels than my normal full HD screen, and he has an AMD card, which are known to have lower fill rates than Nvidia cards. I am fairly certain that it is a fill rate issue because even playing the game for a while and having a lot of elements and particle effects, etc on the screen doesn't slow it down, but changing the window size has a significant effect. So I lowered the shadow map resolution, lowered the multisample value and toggled off the depth of field effect and send him the new exe and with that he was able to stay consistently above 60 fps. I kinda thought I had more performance room to play with, but I guess I have to pay a little bit more attention to it and maybe think about some improvements.
When playing the game a little bit more in the past days to test things I found it quite annoying to keep looking to the upper left corner to see which game state is currently active in order to not miss the next building phase. So I added a notification when ever the next building phase starts or the next wave starts running. Because I didn't look at my menu animation system in literally years there were some inconsistencies I had to fix to get the notification flying in the way I wanted and there are still some limits to what the animations can do and I may need to update it at some point.
This is very the off topic work started. I wanted to update this website for a while now and one of the things it needed was a page system for the blog posts, because the list was getting longer and longer. So I added pages to the blog section, which was fairly straight forward and only required a few additions. Then I finally filled the about me section with content and added the freelance section, because I want/need to do more freelance work. I also had to update the portfolio section, because it wasn't quite finished.
I tried to add some portfolio projects, but it was going very slow. The texts there should be fairly short and precise and I always feel they sound weird, don't explain things well enough or I'm just not sure about what to include and what to leave out, so it takes very long to write them. Only 2 are public at the moment, there are a few more I started to write and didn't finish, which are still private.
Because writing the portfolio texts was going so slow, I kinda got distracted and looked into the paypal API. I had looked into it some time ago and for some reason I thought you only could develop with it if you had a business account (maybe it was like that back then or I was just stupid). Anyway now it is very easy to get started, you can get a sandbox seller and buyer account with virtual money and start to try things. The only problem is that I really want to program my own online shop now, even though I have nothing to sell.
There will not be a blog post next week, because I don't want to write one on the easter weekend and there are also some more random things I need/want to do.
by Christian - 14.04.2019 - 12:45