Still Not At Work
Another unofficial blog to close off 2013. Probably going to have a few days away from the PC next week before the slog of 2014 begins in earnest. To close off nicely, I have added a few more things.
More Non-Performance Bits
The crouch now works within the physics system properly so you can crawl under things, given the enemies a little more strength and connected weapon damage statistics to the shots so different weapons deal a specific amount of damage, solved the culling issues for static batching when things like tree veg is used where culling is not welcome, sky now updates when you enter test game depending on the previously selected choice and one or two small internal tweaks.
The most fun feature added was that I sorted the weapon firing physics, so now the weapons apply forces to the dynamic objects, can detect when solid objects block bullets, no longer shoots all characters in line of the weapon shot, added decal blood for character hurt points and dust flumes for all solid impacts that are non-organic.
Signing Off
Once I added blood decals for characters and gave them more strength, it was VERY apparent that I need the characters to react properly when I shoot them. Right now a decal spraying from them is not a convincing effect any more, and we need some kind of per-limb or general hurt animation to show they have been wounded. As I have not done ragdoll yet, when I implement this I might find a solution there to create some good reaction effects. The cheat of course is a few extra character animations for basic body parts like head shot, body, arms, legs, e.t.c.
Still, with the additions from today it's really starting to liven up with crates being shotgun blasted and blood flying everywhere as the player gets ganged up on. Found myself doing a 'lot' of testing, that is, running around shooting dynamic kettles over and over again :)
All ideas expressed in this blog are temporal and any resemblance to manifested reality are purely co-incidental. The forgoing is a casual musing from a fellow coder, not an iron clad promise of features and products - The Law
Sunday, 29 December 2013
Saturday, 28 December 2013
Saturday Christmas Holiday #2
Still On Holiday
Spending much time playing Bioshock Infinity, eating food and chilling out. Started the day at 12:15AM (midnight) and ended the day with this blog around 4:30PM. Added lovely non-performance treats to Reloaded:
Sky Scrolling Support - Artists can add scrolling sky
Water splashes and ripples - Shooting water produces a splash
Flashlight now assigned to F key - Switch on a cone of light at will
HUD Directional blood splat damage - Directional indicator and blood splats hit the screen when the player is hurt
More work around the decal engine and bullet ray cast so bullets create a decal flume of dust when the bullet hits the terrain. Next will be bullets that can detect solid surfaces such as buildings and dynamic stuff like crates. Also makes sense to add a little blood splat on the characters too when they are hit, and allow them to be hit a few times before they drop.
With the extra decal work, scrolling sky, blood splats and better up-close combat it's starting to pull together nicely now. Plenty more to come of course, but my minds-eye can see the mighty oak it will eventually become.
Signing Off
First official day back at TGC is 2ndFebruary (January-Ed) 2014 so watch that space for a more bulky blog post. I had only intended to do a full year of daily blogging for 2013, and it's had it's share of controversy during it's time. Have not decided whether to continue a daily one for 2014, or make it more of a twice weekly post with more pertinent content (and less waffle). We'll see :)
Spending much time playing Bioshock Infinity, eating food and chilling out. Started the day at 12:15AM (midnight) and ended the day with this blog around 4:30PM. Added lovely non-performance treats to Reloaded:
Sky Scrolling Support - Artists can add scrolling sky
Water splashes and ripples - Shooting water produces a splash
Flashlight now assigned to F key - Switch on a cone of light at will
HUD Directional blood splat damage - Directional indicator and blood splats hit the screen when the player is hurt
With the extra decal work, scrolling sky, blood splats and better up-close combat it's starting to pull together nicely now. Plenty more to come of course, but my minds-eye can see the mighty oak it will eventually become.
Signing Off
First official day back at TGC is 2nd
Monday, 23 December 2013
Monday Christmas Holiday #1
What Are You Doing Here?
As you may know, I have officially clocked off TGC hours until January 2nd, so I repeat, why are you reading today's blog? Are you expecting me to stop my little holiday and carry on working for you, endlessly, without rest, forever?
My Christmas Listening Recommendation
I found Jose earlier Christmas Album on YouTube, and liked it so much I bought his new one (which he and his family created 22 years later).
My hope is that some of the royalties get back to him as I do like to reward creativity when I can afford to fit it into my universe. Some of his songs (old and new), are so Christmas-sing-a-long-able, and now I have him on a loop in my office it feels like a Christmas office ;)
What I Done So Far
I have given myself permission to work on some non-Performance stuff as it's my holiday away from the day job. I have added the decal engine back in, added muzzle flash on character weapons, entities now respect the SCALE field when in test game, physics now machine independent so player jump now works normally, characters can no longer be penetrated (oh er), characters now fight melee better and player now gets knocked back when struck with some cool camera tilt action too.
Signing Off
I am quite excited to do more decal related work, so things like water splashes, bullet impacts, blood splats, this sort of thing. Not for any reason of priority, just because I have one email in my inbox that's had water splash decal textures in there for months and I want to get rid of it :) Hope your Christmas is going well so far!
Friday, 20 December 2013
Friday Ho Ho Ho
The Last Day - Officially
According to the spreadsheet I laughably call my Holiday Calender, this is the last TGC work day. Being CEO and Founder, you might think I would not bother with such a regimented system for recovery and rest, but it's all part of the magical machine.
I say officially because I don't imagine, in my wildest dreams, that I am actually going to clock off this evening and then return to work on the 2nd January 2014. I am pretty sure my time between here and there will be occupied between playing some FPS games and adding to our FPS creator :)
In testing the latest beta, due later today, I found myself in 'play mode' and came up with this shot:
I started to imagine all sorts of cool things such as shop keepers I could trade items with, civilians walking about minding their own business, ladders so I could get to the roof tops, closed and locked doors and windows I could bash or pick open, the sounds of the night and the daily buzz of a small village, some creepy zombies hiding in the shadows, dynamic lighting effects for camp fires, lanterns, shop interiors and glowing eyed vampires, dust and tumble weeds kicking about in small wind swirls, maybe some light rain causing the cobbles to slowly reflect the buildings above, cloth physics hangings draped from open doorways and windows. All this was swimming in my head as I wondered around my completely empty village, and it was exciting to know that most of the hard work is either behind me or in my immediate sights. I knew 2014 would be the year when all my imaginary features would slowly transform the reality of the engine, and found myself tempted to start all of them at once.
Of course the reality is that I am but one person, and I chose a very small team to help me get there. For this I apologize, and beg your patience as I build this edifice one brick at a time. I want this castle to stand the test of time. Other coders thought I was daft to build a castle here, but I built it anyway. It sank into the swamp. So I built another one, that sank into the swamp. I built a third one...that burned down, fell over then sank into the swamp. But the forth one stayed up, and that's what you're going to get from me, the strongest castle in these isles.
BETA TIME
I am presently putting final touches and testing to the 1.004 BETA version, set for release later tonight, which I think you will approve as a good version to play with over Christmas. As I hinted, I will be continuing the development over the festive season, focusing a little more on some critical yet fun stuff like more sounds, basic logic that's missing and any critical horrors that are found with 1.004 in December.
I have not decided whether this minor Christmas patch will be for GOLD pledgers only, as it falls outside the scheduled releases, so if you're not a GOLD pledger I strongly advise you to pledge now while the discount is in effect so you can get your hands on this 'potential' fun update ;)
Signing Off
Still plenty hours in my day so will carry on testing and tweaking. It's 6:44PM here in the UK and I aim to start uploading the final installer for 1.004 around 10PM so wherever you are in the world, do the time-zone math and get ready for a new update!
According to the spreadsheet I laughably call my Holiday Calender, this is the last TGC work day. Being CEO and Founder, you might think I would not bother with such a regimented system for recovery and rest, but it's all part of the magical machine.
I say officially because I don't imagine, in my wildest dreams, that I am actually going to clock off this evening and then return to work on the 2nd January 2014. I am pretty sure my time between here and there will be occupied between playing some FPS games and adding to our FPS creator :)
In testing the latest beta, due later today, I found myself in 'play mode' and came up with this shot:
I started to imagine all sorts of cool things such as shop keepers I could trade items with, civilians walking about minding their own business, ladders so I could get to the roof tops, closed and locked doors and windows I could bash or pick open, the sounds of the night and the daily buzz of a small village, some creepy zombies hiding in the shadows, dynamic lighting effects for camp fires, lanterns, shop interiors and glowing eyed vampires, dust and tumble weeds kicking about in small wind swirls, maybe some light rain causing the cobbles to slowly reflect the buildings above, cloth physics hangings draped from open doorways and windows. All this was swimming in my head as I wondered around my completely empty village, and it was exciting to know that most of the hard work is either behind me or in my immediate sights. I knew 2014 would be the year when all my imaginary features would slowly transform the reality of the engine, and found myself tempted to start all of them at once.
Of course the reality is that I am but one person, and I chose a very small team to help me get there. For this I apologize, and beg your patience as I build this edifice one brick at a time. I want this castle to stand the test of time. Other coders thought I was daft to build a castle here, but I built it anyway. It sank into the swamp. So I built another one, that sank into the swamp. I built a third one...that burned down, fell over then sank into the swamp. But the forth one stayed up, and that's what you're going to get from me, the strongest castle in these isles.
BETA TIME
I am presently putting final touches and testing to the 1.004 BETA version, set for release later tonight, which I think you will approve as a good version to play with over Christmas. As I hinted, I will be continuing the development over the festive season, focusing a little more on some critical yet fun stuff like more sounds, basic logic that's missing and any critical horrors that are found with 1.004 in December.
I have not decided whether this minor Christmas patch will be for GOLD pledgers only, as it falls outside the scheduled releases, so if you're not a GOLD pledger I strongly advise you to pledge now while the discount is in effect so you can get your hands on this 'potential' fun update ;)
Signing Off
Still plenty hours in my day so will carry on testing and tweaking. It's 6:44PM here in the UK and I aim to start uploading the final installer for 1.004 around 10PM so wherever you are in the world, do the time-zone math and get ready for a new update!
Wednesday, 18 December 2013
Thursday All Nighter
True Imposters Integrated
I had a deadline of having an internal testing version for Thursday morning, and due to the nature of the remaining work I had to work through. I started what I thought was a simple clean-up and integrate at 3PM on Wednesday and have just now finished at 7AM on Thursday (with about two hours break). As this is technically a lot of my Thursday energy used up, I thought I would make my blog now, just in case I sleep through the rest of the day.
It was grueling, but managed to solve the occlusion popping issue and tame the quad renderer in time to make an installer and upload. The quad stuff was a real challenge and included a LOT of stuff I had not really considered such as regenerating based on various camera factors, requiring multiple quad buffer data structures for each camera and the balance between per-cycle workload and overall performance in real terms. Fortunately, much vexing and trial and error solved the issues and I was able to come up with something passable.
Quad Visuals
I am still not entirely happy with the transition effect between the LOW LOD model geometry and the QUAD imposter, one because there seems to be some lighting differences between the two renders and also due to the clipping thresholds which will need to be model specific rather than hard coded into the shader. I am pretty sure the lighting is due to incorrect use of shadow and dynamic lighting, both of which I can either simulate in the quad render or alternatively, to fade the LOW LOD render slowly into the lighting attributes which the quad uses. The former is more desirable, but may have a cost given their distance from the player camera.
Remaining Things
The goal of a 1.004 beta for Friday night is now very reasonable to achieve given the work just done. I have a few tweaks I want to get in, such as saving the slider settings between sessions, and perhaps some way to reset them. The question of whether they should be saved with the level files, or saved globally is something I should like to think on. I suspect both, but I will need to come up with a system that is intuitive and not clumsy.
There are some other tweaks that are less important, but would transform the overall look and sound of the beta to give it a nice feel, but we will see how much actual time I have for these trinkets.
Signing Off
Hopefully I can get the larger bitmap fonts for the ammo and health numeric before the update as I think it would improve the in-game stat panels quite a lot. Eventually we will have a lot more stat panel choices, but for now I am aiming for something generic and functional, also clean and polished so it would not look out of place in any modern game. There are some other graphics in the wings too, but I will leave those as a surprise for when you get the next beta update!
Wednesday Walk
Yes, And No
It is true that I went for another walk today, but this time I came straight back and did not go to sleep :) I gave myself one hour before dinner to finish off the prototype with communal textures which will allow me to populate a single texture with many quad texture renders. It's now two hours and I've just finished the quad texture regeneration system and not even started on the communal multi-render stuff. Just goes to show how even a simple developer task can be broken down into small unpredictable extra work that had no previous time estimate assigned.
Imagine, a task that I did not even think about, and did not have a time estimate for, taking twice as long as the task I started to do. Now multiply that few hours with those in week, and then an entire project and you will get a sense of how an estimate and reality can differ. I set myself an hour as I was famished, and as I write this I am doubly famished. Will stop now and eat, then return to do the task I set myself at 5PM :)
Signing Off
In the two hours of quad regeneration work however I tracked down some bugs in the engine which caused HIGH and MEDIUM LOD objects to render over each other which was rather redundant, and introduced the system which only renders the quad texture when it absolutely needed to be done. I also found that I needed to update the quad vertices each cycle in order to keep the quad polygons rendering to the screen smoothly. Whether this will effect overall performance when we start locking hundreds of buffers, we will see, but I wanted to achieve super-smooth AND speed. When we have some real world levels to throw at it, we can then decide to keep speed and have the quads stepping along, or keep smooth, and sacrifice some speed. One of the many thousands upon thousands of tiny decisions that do into making a games engine.
Also got an email with a prototype showing some rather nifty player hurt, directional damage and blood splatting effects. I am now resisting the urge to play with that integration (five minutes work which is actually five hours work) and remain focused on two objectives. Finish the prototype for engine integration and solve the object popping caused by occlusion. I can then prepare an installer for some internal testing before a planned release for the weekend. I think you will like this update, we have lots of tweaks in there!
It is true that I went for another walk today, but this time I came straight back and did not go to sleep :) I gave myself one hour before dinner to finish off the prototype with communal textures which will allow me to populate a single texture with many quad texture renders. It's now two hours and I've just finished the quad texture regeneration system and not even started on the communal multi-render stuff. Just goes to show how even a simple developer task can be broken down into small unpredictable extra work that had no previous time estimate assigned.
Imagine, a task that I did not even think about, and did not have a time estimate for, taking twice as long as the task I started to do. Now multiply that few hours with those in week, and then an entire project and you will get a sense of how an estimate and reality can differ. I set myself an hour as I was famished, and as I write this I am doubly famished. Will stop now and eat, then return to do the task I set myself at 5PM :)
Signing Off
In the two hours of quad regeneration work however I tracked down some bugs in the engine which caused HIGH and MEDIUM LOD objects to render over each other which was rather redundant, and introduced the system which only renders the quad texture when it absolutely needed to be done. I also found that I needed to update the quad vertices each cycle in order to keep the quad polygons rendering to the screen smoothly. Whether this will effect overall performance when we start locking hundreds of buffers, we will see, but I wanted to achieve super-smooth AND speed. When we have some real world levels to throw at it, we can then decide to keep speed and have the quads stepping along, or keep smooth, and sacrifice some speed. One of the many thousands upon thousands of tiny decisions that do into making a games engine.
Also got an email with a prototype showing some rather nifty player hurt, directional damage and blood splatting effects. I am now resisting the urge to play with that integration (five minutes work which is actually five hours work) and remain focused on two objectives. Finish the prototype for engine integration and solve the object popping caused by occlusion. I can then prepare an installer for some internal testing before a planned release for the weekend. I think you will like this update, we have lots of tweaks in there!
Tuesday, 17 December 2013
Tuesday Got IMPOSTERS!!
And Phew!
At long last, today I saw my first peek at the working technology of true imposters within my static batching and occlusion system.
Impressive I know! So what are you looking at? Well the blue square is the background color of the camera and nothing to get excited about. The red square is our quad imposter which has been calculated automatically based on the position of the camera and the target object. The building in the center is the target object and it is being rendered via the imposter pixel for pixel exactly where the real model would have been rendered. Instead of hundreds of polygons, there are now just two.
Shadows About To Get Fast
The reason I show you a view from above is that this is the perspective the shadow light sees objects from. By using imposters when rendering the shadow objects, we will vastly accelerate the entire shadow drawing cycle too. Not forgetting the reflection views and light ray cameras!
Signing Off
I still have to do some finishing off and house-keeping, and of course add multiple target objects per communal texture, and then get it integrated into the main engine, but the crazy math part has been done, which is a big relief for me. The immediate goal for Wednesday is to stop the popping effect currently vexing the Reloaded community, but the side effect of solving that should be some additional performance improvements. That, together with the shader panel, might be enough performance to allow us to shift the percentage over to some non PPP work, such as player damage, enemy strengths and some improving tweaks.
At long last, today I saw my first peek at the working technology of true imposters within my static batching and occlusion system.
Impressive I know! So what are you looking at? Well the blue square is the background color of the camera and nothing to get excited about. The red square is our quad imposter which has been calculated automatically based on the position of the camera and the target object. The building in the center is the target object and it is being rendered via the imposter pixel for pixel exactly where the real model would have been rendered. Instead of hundreds of polygons, there are now just two.
Shadows About To Get Fast
The reason I show you a view from above is that this is the perspective the shadow light sees objects from. By using imposters when rendering the shadow objects, we will vastly accelerate the entire shadow drawing cycle too. Not forgetting the reflection views and light ray cameras!
Signing Off
I still have to do some finishing off and house-keeping, and of course add multiple target objects per communal texture, and then get it integrated into the main engine, but the crazy math part has been done, which is a big relief for me. The immediate goal for Wednesday is to stop the popping effect currently vexing the Reloaded community, but the side effect of solving that should be some additional performance improvements. That, together with the shader panel, might be enough performance to allow us to shift the percentage over to some non PPP work, such as player damage, enemy strengths and some improving tweaks.
Subscribe to:
Posts (Atom)



