Tuesday, 19 August 2014

More Widget Work

I did not anticipate the widget taking so much time, but with the addition of scaling per entity instance and having to store this, and handle it, and various UI changes brought about from a conf call yesterday, it grew slightly. The good news is that the current incarnation is done, and Wednesday I look at adding a free flight system to the editor so you can fly about but get back to top down whenever you want. Hopefully it will all make sense by the time the alpha testers get a hold of it.

I also found an hour to solve the black texture issue on standalone exports, which involved going through the model files one byte at a time, but it's in there now.

A short blog today as I need to eat, and skipped lunch to play a little catch-up.  Had planned to do a little ambient occlusion work but just ran out of minutes for Tuesday :(

Monday, 18 August 2014

Another Widget Day

The introduction of the widget has the potential to upset quite a few users as we fundamentally change the interface used to select, place, modify and delete entities. This transformation could be even greater when we consider adding the ability to 'mouse roam' over the terrain in edit mode, which will remove the top down restriction currently present. You could almost call the top-down way of editing a signature feature of FPSC and the potential could be that we make the editor 'more difficult' as we create more of a 'modeller' flavor.  To this end we are being very careful how to re-design the editor controls and taking extra time to do this.

A year ago I would have shown you a current screenshot, but as some users might take offence at programmer art and early design, you will simply have to imagine the state of play from the nuggets written here.  At present the system calls up the widget which allows the entity to be positioned, rotated and scaled, and to call up the properties panel. The right mouse button was being used to extract the entity from the map, and duplicate the entity, and also to delete the entity once finished.  The new suggestion is that we re-purpose the right mouse button for a mouse-look to control the navigation of the camera through the editor, and move the controls over to the widget buttons. Time and testing will tell if this is the right course to take.

Managed to get a few other tweaks sorted today so it was not 'all' widget stuff, including fixing the vertex corruption of the shotgun soldier, and also reducing the size of his weapon a little. As you can see in the shot, the gun is a little too big for him!

Ravey and Simon have performed Stirling work today with the conquest of the Steam SDK and the introduction of layers to the Construction Kit.  Again, too early for screenshots but exciting advances in functionality happening.

My next task over in my last hour of the day is to get the ragdoll system to include hierarchically correct bones for non-standard custom character models, such as those converted from ANIMER so you can bring in more characters without waiting for the core Reloaded team to produce a new set of characters. Expect these improvements to be part of the V1.009 build due later this month (if things go as well as today).

Friday, 15 August 2014

Widget Day

I spent the day integrating and repairing the new Editor Widget system which will add additional controls for entity manipulation.  Getting the rotation widget to behave itself in a real-world setting was pretty tough, but it is settled now and working fine.  No previews at this stage, due to severe programmer art.  Showed the internal team and the feedback was to add four new buttons on the widget to quickly switch between Position, Rotation, Scale and Entity Properties. 

The last one is a hint that we are changing around how the left and right mouse buttons work, so I will be curious how many users I can upset with this one! That is, I will be curious of the feedback when we release this enhancement to the editing capabilities.

At the end of the day it was integrated, but for some baffling and foggy reason the mouse pointer is not lining up with the widget, making gadget selection very horrible. At it's the end of a 9 hour stint with only a salad for company, I will leave this one for a new day when my fresh brain can solve it in five minutes.

I did manage some quick light mapping work somehow, and got textures and shadows to cooperate so here is a very early sneak peek of ambient occlusion with a low quality texture and no special shading effects.  You will notice however the creases are properly shaded to create nice inter-object lighting.

The next step on this module would be to add normals, specular, illumination and perhaps even metallic cube map reflection, depending on time and final shader performance.  Not sure whether the occlusion map texture needs to be carried into the pre-bake process but I have a spare texture slot so it's no big deal if the answer is yes.

In other news we have started our researches into Steam multiplayer and general SDK, and have made some great construction kit progress too. Both too early to show shots, but getting closer! Until Monday, have a great weekend and happy creatin!

Thursday, 14 August 2014

A Barrel Of Tweaks

I have managed to get to Thursday and drag with me a number of inbox emails that had not been actioned, so I decided to target them with action and responses so my plate looks cleaner for next week, and to that end I have been tackling little questions and small fixes before returning to the challenge of AO lightmapping.

The characters no longer cannot do a 'hip flick' issue as I have added code to set a maximum amount of hip turning that can be done per cycle, and the results are subtle but good with enemies swinging weapons around before bringing them to bear, and no sign of any hip flicking. Time and V1.009 test will tell if this solve this issue.

Also fixed the muzzle flash of UZI weapons so they no longer penetrate the barrel of the gun being fired which made the whole effect lose it's visual quality.

I am also downloading a 4.5GB project from a Reloaded user who wants me to see what can be done to speed up the engine and stop it occasionally crashing. When I asked for a snapshot of the files I did not expect nearly 5 GB but it's the only way to reproduce this one, so download we go.

Last night I spent a good deal of time, hours in fact, answering forum questions and suchlike, so I hope my contributions helped. Early feedback on V1.0085 are good so let's hope that continues as we plug away at V1.009 which will promise to be a very good build for all.

In other news, the importer has been getting even more TLC, as a direct result of new feedback from the alpha testers who are putting the importer through some tough times. All good, and will make the final result stronger!

I also want to blog in no uncertain terms that the Jet Pack took me three hours of coding, with the remainder contributed by a third party artist and did NOT distract the core development of Reloaded in any, shape or form. Indeed it added a new LUA command allowing the player to achieve flight, created a new HUD Layer system which can be re-used in future for more cool things like helmets, exo-skeletons and even first person vehicles (with more art and code). It also allowed us to trial a new incentive scheme which might increase pledge levels and allow even more core engine development.  It also, perish the thought, allows people who want a Jet Pack in their game to have one. For more information on how you can help us make this early beta of Reloaded more popular, visit our new incentive scheme page:


I may also have omitted to say what improvements where added to the Hot Fix, so I will list them here if you are interested in the murky details:

Custom character control via scripts, ragdoll model repair, physics weights and friction, entity LOD shadow fixes, support for multi-texture entities, brass ejection from Colt 1911, adding Shotgun character, new LUA Jet Pack command, proximity mine and remote explosions, improved muzzle flash positioning, better behavior for Rocket Man, one stage undo, transparency issue for for glass entities, new zoom mode for RPG, accelerated IDE speed and better time slicing with external apps, improved Escape level beginning for easier demo play, BSP weapons pack fix

I extracted this direct from my 'jobs done' list so I apologize it's not pretty, but should give you some guidance on what your friendly neighborhood Reloaded coder is getting up to.

Wednesday, 13 August 2014

Occlusions, Hot Fix and Free Flight!

As some of you may know, the V1.0085 version has been officially released and available to all pledgers right now.  You can find it in your TGC Product Page and will include some small fixes and also a Single Stage Undo feature which you can try out (intended for V1.009 but you get it early).

The remainder of the day I have been working on the Ambient Occlusion mapping system for the engine, and after the oohs and aahs from the conference call I had at 4PM, I figured I would show you what my current prototype looks like:

You need a programmers eye to see the potential and the problems.  I am happy with the technique in general, but you will notice the facets of the curved surfaces have seams between light map texture info, so I am thinking of some kind of diffuse component in the vertex structure to over-rule situations where small lightmaps are not appropriate (and might save video memory too as it's per vertex rather than per pixel and the phong smoothing will make it look nicer).

I can also announce the start of a new incentive scheme which you can use right now to get some free goodies for your game making fun (and to help us gather more resources for continued high-octane development in the Reloaded lab).  Rather than repeat information, here is a link to learn more:


If you log into your TGC account and visit this page (and you a pledger), you will see a simple forum you can fill to recommend a friend to FPSC Reloaded. If they pledge, you and they get 8 new cool Jet Pack models, granting your in-game character the ability to FLY!

Tuesday, 12 August 2014

How To Create A Gimble Proof Rotation Widget

I finished off late last night squeezing more speed out of the Grass shader and can now show a decent 72 fps in my GTTR level demo.  I have sent out a version for testers, but I think the next update V1.009 will delivery on the performance improvement hinted at in previous blogs.

Today was meant to be a wonderful day of creating the Ambient Occlusion Mapping prototype, and the day started off with some nice sketches on how the shadow mapping textures might be stored for the terrain and various geometry batching techniques, then I got a challenge to create a rotation system for our new editor widget that had been proving difficult to master.  it took SIX hours, but managed to get a fully working rotation widget with the help of a LOT of 3D math:

This little ugly duckling allows the user top grab the edge of any of the three axis discs and rotate the target object around naturally. No gimble lock in sight and always rotates the right way. It has been alleged that this widget is now better at rotating objects than Unity, though sources are unwilling to come forward with any proof :)  The above graphics are of course placeholder art from yours truly but the mechanism underneath is a thing of beauty!

I can also reveal another sneak peek at some objects for V1.009 and the new improved demo:

It would have been nice to share some early AO mapping shots, but this work has now been pushed to Wednesday and I hope to bring good news then. Wednesday is also a busy day for releases as I plan to launch the V1.0085 hot fix and green light the re-release of the new TGC store weapons as well. Good vibes from the alpha testers suggest you will not regret updating to V1.0085 but as always, make plenty back-ups and protect yourself from catastrophe!

Going to eat and walk and rest a little now, but will likely return to have some AO mapping fun as I still have it in my head that I need to do 'something' in that direction before the sun goes down.

Monday, 11 August 2014

The Universe On Hold

Just as the question of Zombie quality has been raised at the end of last week causing a freeze on those assets, a new question has been raised on the quality and completeness of the Jet Pack collection due for release as part of a special incentive scheme.  To answer this, I have created a quick Jet Pack demo and distributed it to my alpha testers to get some opinion and feedback on whether it represents a suitably juicy incentive, and whether it's something the community wants in it's present state.  While I wait for the results of this, I have frozen the release of the Hot Fix which would enable the Jet Pack to 'fly' as it where, mainly due to any additional code that might be required if the verdict is a resounding 'no'.  Early feedback suggests 'yes with conditions' but we need to give them some time (one Earth revolution).

In the meantime, work proceeds on our competition announcement which will include videos of the winners and links, and looks set for a release Tuesday. 

I can also share some images on new assets being produced to extend the modern day asset library, and also to help me flesh out The Escape demo with more interesting scene items.  More to come next week as our artist is on a well earned break in the highlands!

Had some time at the weekend to play with the new V1.009 Importer, which allows you to import existing entities, mess with them a little, and export them as brand new entities for immediate use in your level. Here is my silly soldier statue, and had I a stone texture to hand it would have completed the look but I only granted myself ten minutes to be silly that day.

I have also vowed to really focus on performance for a few days this week so that V1.009 can include a sizable speed boost for fans of FPS. In addition to improving the speed of the terrain and grass shader on the LOWEST settings, I also added a rather nifty optimization which uses the hardware occluder of the GPU to poll how many water pixels are on the screen, and if there are not very many, or any, I reduce the water reflection detail and content right down to bare minimum. I do this dynamically so the closer you get to water being rendered, the higher the detail you will see reflected in the water. To give you an idea of speed improvement, the old GTTR level on my machine originally ran at 51 fps (V1.008), and after some shader tweaks ran at 59 fps, teasing me to find an extra 1 fps gain in the code somewhere. After my dynamic-water-detail trick, I was getting 66 fps!  Not bad for day one ;)