Sign in to follow this  
Followers 0
  • entries
    6
  • comments
    31
  • views
    4,931

Entries in this blog

xtom
blog-0568459001486305707.jpg

One More Day - Performance Updates

 

So it’s been a while since my last blog update on One More Day but recently I had a look to see if I could do anything with improving the performance of the game. As it turns out there were still some optimisations to be made that have helped boost performance.

 

V0.1.6 on the Game Launcher

 

Here are the main performance related changes I’ve made which were recently published to the Game Launcher:

  1. I changed some of the furniture models to lower poly versions. Some of these models were about 3000polys and are now replaced with lower poly versions with no real visual difference in-game. So about 10 or so models that were repeated more than once around the level were shaved in poly detail by about a third.
  2. I halved the draw distance on camera range and increased the fog a bit to compensate. I believe this helped more for when you are some distance outside the town but less so when you are in the town.
  3. I removed some rogue geometry in the map (wasn’t much), and also a few objects that weren’t really needed.
  4. I went back over every object to ensure it’s viewing range was as minimal as I could afford without creating too much pop-up. This is something I have always done but still sometimes you end up missing a few things.
  5. I spaced out some detailed areas on the map (ie. the power station got moved out further) to try to reduce the number of objects being shown at any one time.
  6. I made sure physics shapes set in model viewer were as simple as possible and removed collision from some small objects.
  7. I removed some workshop objects that had very big textures.

 

All these changes stacked on to the latest version of Leadwerks which also includes performance improvements have given a noticeable performance improvement to the game.

 

One thing I had to add in (sparingly) was some grass using the vegetation system as I felt it added nice detail to the level and was worth a small performance hit. That’s what makes optimising the game hard, trying to balance between good visuals, content and good performance. Unfortunately sometimes sacrifices have to be made. But even with the grass added the new version is running better than before. I would like to add volumetric spot lights for light coming in the windows but for now I resist that temptation as they would add up to a significant performance hit. Maybe I will add them as a high graphics option in the future.

 

Other Improvements

 

As well as performance improvements the game download size is now smaller thanks to the newly added ogg support and also removal of some unused files that were being published. One thing I noticed when publishing a game in Leadwerks is that if you have files with the same filename in two different folders both files will be packaged even if only one of them is used. So there were some unneeded texture files etc. being packaged from unused workshop content. Going forward I will have to keep an eye out for duplicate filenames.

 

More performance in the works

 

The following changes are in my current dev build which hasn’t been released yet but are showing even more performance increases:

 

  1. Converted the CSG houses and bungalows to models. Simplifying and reducing object/entity count. This should allow me to add more houses to the map with less of a performance impact.
  2. Further reduced the camera range and increased the fog to compensate. This allows me to reduce the view range on many bigger outdoor objects and buildings from Max to Far whilst minimizing popup and also reduce the vegetation view range. This will result in a much more foggy look to the game (see screenshot) which will create a slightly different atmosphere than previous versions and with less viewing distance it might make approaching zombies a bit more dangerous.
  3. I identified SSAO was making quite a performance impact so I have disabled this for now and might re-introduce it as a high graphics option when I get around to creating an options menu. For outdoor map SSAO is probably not as important or worth the hit but it is nice to have when inside the buildings.

 

After all these performance improvements and v1.7 is released I am optimistic that most people should get at least a 30fps game experience with OMD. Fingers crossed!

xtom

blog-0003440001436709585.jpgIt’s been a while since my last blog post and since then I haven’t had the chance to put in as much game dev time as I'd have liked. But in the last week or so I have made some more progress.

 

So what’s new..

 

Mostly I’ve been continuing work on the map adding more buildings, areas and objects from the workshop to make the town more visually interesting and give more areas for the player to explore. I would say I’m probably over 50% of the way now from where I would consider it to be a decent small town. I still need to add more stuff and variety in the houses but will get to that eventually. Long term I might look at adding areas around the town but for now my focus is to have one good area to play the game in.

 

Also I have been making some cosmetic improvements to the terrain, such as scattering some stone textures and road cracks here and there and trying to break up flat areas with subtle changes. Terrain adjusting is pretty much an on-going process as more objects are added and I play test the game.

 

I have added a fog shader to the game which adds a distant fog on the horizon. I think this helps with the zombie creepy atmosphere of the game. I was debating making the fog closer/thicker, different sky box, lighting etc. and there are so many different looks to try but I don’t want to move too far away from the initial day time/desert look that I started with. I have an idea of varying the looks on different days/nights so maybe sometimes more fog but this is way down the list of priorities for now and not a definite.

 

I also added an atmospheric sound track and some ominous danger music that plays when a zombie is close and after you. This makes a big difference to the game I think.

 

And finally if you die the pause menu now has a restart option so you don’t need to load the game again.

 

So what’s left to do..

 

Well other than working on the map I still need to do some work on gameplay. For example when you start a game or sleep in the game I want zombies to spawn randomly in different predetermined locations. This should make things less predictable and offer more replayabilty. Possibly this will also allow for a difficulty challenge by spawning more enemies as each day passes, up to a point I guess, I’ll have to see how it goes. I also want to have some of them roaming around and the odd horde turn up every now and then but again this is down the line.

 

Hopefully I will be publishing an updated version to the game launcher soon. My data.zip has grown from 170MB to 361MB since the last publish so I need to play test for a while before committing to an upload on my slow connection.

xtom

blog-0810899001425484176.jpgSince my last blog update I’ve spent the majority of my game dev time working on my map and in particular the buildings. When I say buildings I mostly mean one in particular which is a house that I’ve been working on for a good while now. The house initially started out as 100% csg but after memory issues in the editor and feedback and advice on the forum I decided to re-do parts of the house as models. This meant I had to use blender more than I would have liked but the good thing is I think I am getting a bit more used to it so I guess the learning experience is good.

 

So now my doors, door frames, windows and light fixtures are all models instead of csg. The advantage with this it seems is that the models are instanced automatically by the leadwerks engine and can be used over and over without increasing memory usage too much. The other advantage is it allows me to set the view range on the different models, something that csg ignores, maybe because it doesn’t need it so much compared to complex models. So for example by setting my ceiling light models to Near they aren’t rendered far away so I am hoping this will help speed up game performance too. I also removed the csg skirting boards along the walls in favour of wall textures with skirting on. The look is just as good but more importantly again it should hopefully provide better performance.

 

In general I’m wrestling a lot with performance as I go because my pc is not high end. Before I renovated the house building a street with 10 of them was giving me about 5fps but I’ve managed to bring this up to about 10fps and I still have some more improvements I can make. Although for every improvement I make I’ll want to also be adding some other stuff in so it might cancel out each other in the long run. Will just have to see how it goes.

 

 

backwindow.jpg

 

The floors and walls in my buildings I have left as csg, the advantage I see with this is I can easily apply different textures to the walls and floors in the different buildings to add variety. And I can easily adjust building layouts in the editor if I need to. If I have to convert these to models for performance then I’ll probably wait for a csg to mdl conversion because it would take me ages to re-texture it in blender.

 

Lights

 

I added workable lights/light switches - This was pretty quick and easy to do thanks to the flowgraph which I used for the first time and switching the lights on for the first time was a happy moment. smile.png I’m not sure about the lights yet I’ll have to see how they effect performance before I decide on which ones to have. Right now they are all in there for now but are hidden.

 

Doors

 

So the next thing to add was doors which turned out much trickier than the lights. I used the default swingingdoor.lua script but their are so many little things to consider that it took a while to get them working right. And then the zombies wanted to walk through them when closed, which took another while to figure out.

 

Zombies

 

During the steam sale I picked up the zombie pack and the fps pack and I’ve been testing them out. I’ve changed the default ai a bit so there are fast and slow zombies in the game and also they can re-animate (as in come back to life) a number of times after you kill them. So watch your back when you kill one smile.png You can run into buildings and close the doors to try and evade them but be careful as they can sometimes muddle doors open, so again watch your back smile.png

 

I’m having a blast at the moment now that there is some actual gameplay and managed to scare myself a few times so that’s a good sign. smile.png

 

I’ll probably do a dev log video soon but for now I will finish this blog post with some screenshots of a test zombie horde. This actually had very little impact on my frame rate which I was happy to see. smile.png

 

 

zombie-horde-1.jpg

zombie-horde-2.jpg

zombie-horde-3.jpg

xtom

blog-0735836001422041879.jpgUploaded a quick video showing some new features and functionality in my game inventory system.

 

Here is a brief outline..

 

+ New post effect for when player is sick

+ Inventory now scales and positions based on screen resolution

+ Inventory now clearer to see in dark areas

+ Inventory tooltips made neater

+ Items can now be used on other items eg. batteries -> torch, ammo -> gun

+ Integration of default weapon/ammo system with Inventory

 

xtom

Inventory Progress

blog-0493721001421107737.jpgSo I have already put in a few too many late nights since getting Leadwerks and meanwhile having a good time learning, planning and game making. At this early stage it’s fun and addictive which is always a good sign, or maybe not if my sleep suffers. smile.png Anyway I now have an inventory system in-game with no small thanks to the project saturn tutorials on youtube. A big thank you to Jorn for these informative tutorials. I’m still trying to get my head around all the cross references in lua code like app,window,context,self and how they all inter-conect from scripts and functions etc. but luckily I have pushed ahead without hitting any major brick walls. I figure stuff that I don’t fully understand now I will hopefully after a while of jumping in and out of the code.

 

Game mechanics wise in addition to the inventory system I also have the basic player life stats for health, hunger and thirst in there and working so that’s good. Even though health is already in there by default tongue.png

 

The small scene I have is already fun now that there is something to do, like finding and collecting items. I’ve uploaded a video showing how the inventory system looks and works at the moment but I still have some things to do with it and then I have a choice of a couple of different directions to move onto, not sure which way I will go yet, I’ll just see where I end up.

 

xtom

One More Day

blog-0875501001420934773.jpgSo I have decided to do a progress blog on a game that I am just starting. I have only had Leadwerks about a week so I have not done much yet other than read and watch tutorials and experiment and this will of course continue as I try to put the game together.

Here is an overview of what the game will be like:

The game will be a survival game somewhat like Dayz and the likes but it will be single player only. I know that’s not very original these days but I figure/hope it is doable for me to go with this kind of theme. I have come up with a name for the game which is “One More Day”. If I stick with this name I might subtitle different chapters to something like “One More Day in xxxxx” where x is a town/location, most likely fictional locations. Or perhaps when you load your game it shows that after load depending on town you’re in. That might be good. For now I have a way to go before worrying about this.

It will be mainly be outdoor using the terrain system so I am looking forward to the new terrain features planned for the engine. There will be towns that you can travel to and some buildings to enter and find things and of course enemies to kill. But to start out with I will focus on one small town/area and get all the important mechanics/scripts working before adding more areas, mainly the inventory will be needed and also there will be a injury,hunger and thirst to look after for the player. Anyway that is all for now. smile.png

Sign in to follow this  
Followers 0