Thứ Sáu, 31 tháng 10, 2014

Through the Google lens: search trends October 23-30

Grab some candy corn and a caramel apple and settle in for a look back at another week in search trends:

Time for trick or treating
With today’s Halloween holiday, people are turning to the web to look for
last-minute costumes and pumpkin-carving tips. Top costume searches include Elsa from Frozen, Anna from Frozen, Olaf from Frozen (people can’t just let it go, can they?) and Maleficent. Whether you’re trick-or-treating or not, get the most out of the twilight hours tonight—Daylight Saving Time comes to an end on Sunday, which means it will be getting darker earlier. At least you get some extra sleep out of the deal.

Sports endings and beginnings
The World Series came to a thrilling conclusion on Wednesday night with Game 7 in Kansas City’s Kauffman Stadium, as the San Francisco Giants took home their third victory in just five (even) years. The star of the night—and the series—was undoubtedly Madison Bumgarner, the Giants’ 25-year-old ace starting pitcher who came into the game in relief in the fifth inning and more than earned both the save and his MVP trophy, capping off a postseason performance for the history books. He was the top topic in search Wednesday, with more than 1 million searches. Fellow teammates Buster Posey and “Panda” Pablo Sandoval were also on the list.
As baseball fans put their caps and gloves in storage and look longingly at the calendar for March (pitchers and catchers report in 114 days!), fans of the NBA are just getting going. Basketball season started this week and the web was full of searches for the Cleveland Cavaliers (who are welcoming hometown hero Lebron James back to the fold), Miami Heat (the team LeBron left behind) and Chicago Bulls.

Trouble in the skies
There was a spike in searches around NASA when an unmanned rocket erupted into flames seconds after liftoff on Tuesday. The spacecraft and its cargo were lost, and the launch pad suffered heavy damage. Also this week, there was a breakthrough in the mystery of Amelia Earhart’s final flight. A piece of debris located on a tiny island has been identified as a piece of her lost plane.

Movie marvels
Marvel this week revealed a lineup of nine new movies to be released over the coming years, along with some casting details. Alongside familiar faces like Captain America and Iron Man, we’ll soon see a film about the Black Panther, who will be played by Chadwick Boseman. Marvel also revealed that Sherlock star (and Internet fave) Benedict Cumberbatch will play Doctor Strange in the 2016 movie.

Tip of the week
Don’t get caught off-guard by the changing of the clocks. With the Google app, you can set a reminder to reset the clocks on your microwave, in your car and on your wall as soon as Daylight Saving Time comes to an end on Sunday. Just open the app and say “Ok Google, remind me to change the clocks on Sunday.” Now relax and enjoy that extra hour of sleep!

Zombies and Terrain Sculpting Day

A day of two halves, with the first half finishing off the Zombie template which is using the new custom character AI system. The zombie is pretty basic, but it's now powered by DarkAI and scripts and someone more worthy than me can continue the work and complete the Zombie pack.


I also sorted all characters so they now use RAGDOLL=1 so ragdolls can now be switched off for characters that do not need or want them.


Right now I am half way through the second part of the day which is to get terrain blending and terrain ramps in the editor. I first tried to do these commands inside the terrain module itself but it was pretty messy in there and would have required some nifty know-how to get it to do what I needed. My backup plan which I am coding now is to do it in DBP which is just as good, if perhaps a few milliseconds slower.  The trick is to snapshot the terrain under the blend cursor and then read height neighbors to create an average, then weight the destination height with an amount modulated by time.  Bottom line is a blend function you will have in V1.009 build, and if time I will be moving onto ramp which is a similar if more complex function for the terrain sculptor.

Been a quick week, and I cannot believe it's Friday already. Meeting next week so have a few days left to make a solid build and ensure everything that used to work still works and the new stuff works well.  For now, have a great weekend!

Thứ Năm, 30 tháng 10, 2014

Custom Characters and AI Meet

Just finished the new system which externalizes the animation frames used in the AI system, so now third party and official character packs can use different animation sets with the central AI system.  A typical example is the Zombie character which in the old version (an aborted build) would not follow paths, but the new one has all the power of the AI system but keeps the custom animations it had:

;anim
animmax       = 1
anim0         = 2552,2603
playanimineditor = 1

;AIAnims (Classic + Zombie)
csi_relaxed1 = 2552,2603
csi_relaxed2 = 2608,2659
csi_relaxedmovefore = 2500,2519
csi_cautious = 2552,2603
csi_cautiousmovefore = 2500,2519
csi_unarmed1 = 2664,2715
csi_unarmed2 = 2720,2771
csi_unarmedconversation = 3046,3094
csi_unarmedexplain = 3105,3155
csi_unarmedpointfore
csi_unarmedpointback
csi_unarmedpointleft
csi_unarmedpointright
csi_unarmedmovefore = 2500,2519
csi_unarmedmoverun = 2500,2519
csi_unarmedstairascend
csi_unarmedstairdecend
csi_unarmedladderascend1
csi_unarmedladderascend2
csi_unarmedladderascend3
csi_unarmedladderdecend1
csi_unarmedladderdecend2
csi_unarmeddeath = 3380,3439
csi_unarmedimpactfore = 3245,3300
csi_unarmedimpactback = 3159,3234
csi_unarmedimpactleft = 3310,3370
csi_unarmedimpactright = 3380,3439
csi_inchair
csi_inchairsit
csi_inchairgetup
csi_swim
csi_swimmovefore
csi_stoodnormal
csi_stoodrocket
csi_stoodfidget1
csi_stoodfidget2
csi_stoodfidget3
csi_stoodfidget4
csi_stoodstartled = 2861,2904
csi_stoodpunch = 2775,2848
csi_stoodkick = 2916,2969
csi_stoodmovefore
csi_stoodmoveback
csi_stoodmoveleft
csi_stoodmoveright
csi_stoodstepleft
csi_stoodstepright
csi_stoodstrafeleft
csi_stoodstraferight
csi_stoodturnleft
csi_stoodsubtleturnleft
csi_stoodvault
csi_stoodmoverun
csi_stoodmoverunleft
csi_stoodmoverunright
csi_stoodreload
csi_stoodreloadrocket
csi_stoodwave
csi_stoodtoss = 2981,3034
csi_stoodfirerocket
csi_stoodincoverleft
csi_stoodincoverpeekleft
csi_stoodincoverthrowleft
csi_stoodincoverright
csi_stoodincoverpeekright
csi_stoodincoverthrowright
csi_crouchidlenormal1
csi_crouchidlenormal2
csi_crouchidlerocket
csi_crouchdown
csi_crouchdownrocket
csi_crouchrolldown
csi_crouchrollup
csi_crouchmovefore
csi_crouchmoveback
csi_crouchmoveleft
csi_crouchmoveright
csi_crouchmoverun
csi_crouchreload
csi_crouchreloadrocket
csi_crouchwave
csi_crouchtoss
csi_crouchfirerocket
csi_crouchimpactfore
csi_crouchimpactback
csi_crouchimpactleft
csi_crouchimpactright
csi_crouchgetup
csi_crouchgetuprocket

As you can see, custom character models will NOT have all the animations the AI system requires, but I will be tweaking the system so it can skip an action if the corresponding animation is unavailable.  It's another way for artists and content creators to shape the behavior of the enemies from with the FPE file :)


The current character model has a little trouble holding the pistol in V1.0085 so we have improved it for V1.009. It's not PERFECT yet but it's a little better than the floaty version it replaces.


Ending on a lighter note, during my work on replacing the hacked internal animation values, my enemy decided to do a swan dive for me.  Thought it was quite amusing, and quite an unexpected attack from my enemy!

Friday sees the work begin on the terrain blending and ramping, which has been a long requested feature and so I am looking forward to seeing what I can do. Watch this space for some terrain magic :)

Thứ Tư, 29 tháng 10, 2014

What A Day

Spent half the day on what I term an 'Epic Fail' task, which was to solve the issue of an X file loading in but having an animation issue. When I see this from my own art, I often ask the artist to correct the issue, but the engine will need to handle MOST types of X file which means solving this one. Alas after four hours it remains a mystery, so I decided to continue my main list and sort out custom animations for the AI system.

This also turned out to be a pig as I had to manually extract ALL the hacked in animation frames and create a new way to store them externally, and ensure the system did not break in the process. As at 5PM I am half way through this but at least the end is in sight and viable, unlike this mornings coding pain.

Once I have the custom animation frames externalized, I can then bring out the Zombies, Elephants and Robot Waiters to test the functionality, which is basically allowing ANY custom character to follow waypoints and obey the clever systems built into the DarkAI module.  Hopefully Thursday will see it in a form that I can test and refine.  Until then...

Thứ Ba, 28 tháng 10, 2014

Material System Done

With visuals, performance and AI for the moment sorted, my task for today was to get the material system up and running. It's now just gone 3PM and it's done. We can now shoot different materials and get different decal animations and sounds, when you walk on wood, metal, stone or other material the correct footfall is heard. Now when you walk on the roof, no more grass sounds!


I gave myself a day and did it in just over half a day, so I am moving swiftly onto my next task which is getting Zombies working with the AI system. By this I mean have a new look-up table of animations that the AI system will use as part of the 'main' character system. Not only will this breath new death into the Zombies but it also means custom characters can use the path finding and LUA logic treats of the full character system, so no need to script 'everything'.

This next one could take an hour or a day, but I have budgeted a day to ensure it also works with the wider requirement of custom characters, which means digging a few of the custom characters sent to me out the folder and ensuring they work fine.  Still, happy report a good day done with a few hours to spare!

Thứ Hai, 27 tháng 10, 2014

More Aggressive, More Speed, More Damage, More Fun

Finally worked out why the AI was so 'distracted', and put it right. The latest Escape demo is now populated with mean sons of guns who like nothing better than to hound you into extinction. 


I also spent my Sunday on the project as well, with improvements in what I am calling the light balance of the scene. Now all element such as static entities, dynamic entities, terrain, characters and other bits use the same calculation for both ambience and direct sun lighting.


As you can see, with ambience only you get a general coverage which all elements in the scene agree with, plus the shadows which are factored in.


In this direct lighting shot, all ambience has been removed so you can see the surfaces that have a direct line of sight to the sun (again, shadows factored in as they work in a slightly different way).


The final composite which adds the two together is the white matt surface on which the texture colour is eventually applied.  The weapon is deliberately brighter as the textures on the guns are a little darker and has additional visual effects such as cube mapping applied and tends to lower the overall luminescence of the weapon models.

I also discovered that some SSAO coding in the bloom shader was not actually doing anything, so I removed this and gained an FPS boost from 84 fps to 90 fps which was nice. I have lost the subtle blurring I got from the NINE texture reference samples, which might introduce some anti-alias effects, but I am sure there is a new technique I can try which does not cost that much more than the standard bloom shader.  I am not ruling out a screen space ambient occlusion trick in the future, but right now I am all for performance and more honest visuals, and removing it felt like a step in the right direction.

With the great victory of new faster, more FUN enemy AI, I am now moving onto one of my pet peeves which is the ability for characters to enter and logically track a player through a building.  That is, a single entity which is subdivided into walls and other vertical obstructions. Making a building out of individual wall entities already works fine, but most single entity buildings currently act like a huge obstacle that the enemy must run around. Nice effect when you want them outside, surrounding you, but for the most part you want to be able to run inside a building and be chased inside!  It could be an hour or a day, but today is the day this task gets my undivided attention!

Thứ Sáu, 24 tháng 10, 2014

Through the Google lens: search trends October 17-23

So what’s the word on the (internet) street these days? Search trends has you covered with the latest news that had everyone talking this past week.

The hard goodbye
This week, searchers paid their respects to legendary clothing designer Oscar de La Renta, who he passed away on Monday at the age of 82. Once called “The Sultan of Suave,” De la Renta was known for evening gowns that regularly graced the red carpets of Hollywood–and the closets of the White House. From Jackie Kennedy to Michelle Obama, de la Renta dressed every First Lady since the 1960s.

Speaking of Washington bigwigs, we also said goodbye to Ben Bradlee, storied editor of The Washington Post. Bradlee is remembered for his courageous journalism; during his tenure as editor of the Post, the outlet published the “Pentagon Papers” and reported on the Watergate Scandal. Always chasing a good story, Bradlee coined the term “mego” (“my eyes glaze over”) for any reporting that bored him—unknowingly foreshadowing Internet-speak.

Is that you Betty Sue?
Back from a long career hiatus, Renee Zellweger stepped back into the spotlight in L.A. and came out with a bang—or shall we say, a new look. People were shocked to see Zellweger… looking a bit different from what they remember. The star’s reemergence caused a spike in searches for her hit movie Bridget Jones’s Diary (that was her, right? ) But Zellweger is taking the stares and comments in stride, stating she’s happy that she looks different because she’s living a happier and more fulfilling life—no shame in your game, Renee–whatever makes you feel complete.

Gone in sixty seconds
If you blinked, you already missed this trend. Toys “R” Us decided to pull a line of Breaking Bad action figures after an online petition asking the store to stop selling the toys received more than 9,000 signatures. So what was all the hoopla about? Susan Schrivjer, the Florida mom who started the petition, felt the dolls–which came with a plastic sack of cash and mock drugs—deviated from the company’s family values. Toys “R” Us agreed and put the figures on an “indefinite sabbatical”–Walter White-style.

Crime and Punishment
It was a week of crime on the trends charts as people were searching for more information about a gunman who shot and killed Cpl. Nathan Cirillo, a soldier of the Canadian army, at Ottawa's National War Memorial. This was the latest assault on a member of the Canadian armed forces in recent times and has stirred debate about extremism in the West.

...As the Black Eyed Peas would say
With the World Series underway, people were ready to scream and shout for their favorite team. Searches for the San Francisco Giants and the Kansas City Royals hit a high as the two teams began their battle for The Commissioner's Trophy. And that’s not the only party going on these days. Diwali, a Hindu holiday also known as the “Festival of Lights,” started this past Tuesday. The celebrations will continue until this Saturday—so you still have time to check out photos of the stunning light displays around the world.

Tip of the week
First there was Angry Birds, then there was Candy Crush, which was swiftly followed by Flappy Bird–it’s kind of hard to stay on top of the latest video game trends. Now when you search for video games on Google, a panel will appear with all the info you need to stay in the know.


It's Picture Friday Hurray

Rather than a protracted text blog, I thought I would make a picture blog as a Friday treat showing last night's and todays work. The first one is a nice shot of my running towards the rocket man for some AI testing.


This next one is an experiment I did last night to study the artifacts when only direct lighting is used. As you can see, there are numerous issues that go unnoticed when add ambience and textures on top of this.  The terrain is not consistently lit when compared to the buildings (or vice versa), the shadows on the building walls are 'odd', the sandbag and log in the foreground should not be black, and so forth.  Normal map on the weapon and character look great though!


Had a little fun with ragdoll earlier, and decided to snapshot this pose to remind me that we still need to look at ragdoll death sequences some more.  Looks like he died listening to some terrible music.


And finally, a shot that almost looks better than if it was textured, but also shows that the lighting could be balanced more when you compare the terrain and gun to the entities.  Just needs a few tweaks and then I can bring back the textures are spend a little time looking at the texture side of the coin (texture stretching, shrinking, artificial lighting, e.t.c).


Been a long week, with not too many hours of sleep to be found, but I am happy with the progress, and with the explosions now integrated I can move onto some new functionality next week. I also helped Ravey get his multiplayer prototype further integrated to the main engine, which means I can leave him to it now as he had everything he needs for the moment.

Until next week, enjoy your weekends and hope you all get some nice weather! No chance of that here in Wales, but there's always hope :)

Thứ Năm, 23 tháng 10, 2014

A Full Day Of Integration

Today was the big Multiplayer Integration chat day, in which I get educated how the multiplayer side is working and Ravey gets educated about how the single player resource engine works.  From this we can create an integration plan that reduces mistakes and increases productivity, resulting in a quick turnaround for seeing multiplayer in the main engine.


It took eight hours but we covered all the bases and the plan is now in place. We will be adding some new Multiplayer Start Markers to the IDE and the ability to load in 'bolt-on' entities for the Uber Character that we will need to represent the mutliplayer characters, which will need the ability to wield all weapons and be created dynamically when the game is initialized.

I was set to integrate the new explosion into the engine but the chat has thrown up three key tasks that I need to implement so that Raveys multiplayer engine can hit the ground running.  Hopefully it will not take the whole day which means there is a good chance of explosions before 4PM on Friday!

Simon continues a pace with the ConKit and integration has already begun, which should result in the buildings being consolidated on the spot, meaning a building that takes thousands of objects to represent turns into one object comprising just a few meshes and possibly a single texture set.

Also Rick did a critique of the latest Escape Demo level, and could only find two things to wine about so progress steady on that score!  Apparently the enemies are not aggressive enough so hopefully will find some time to turn up the volume on their hate-o-meter.  If the enemy AI does not present a great battle experience, we will suffer for it when the product gets released and we have the time to get it right, so we should make it a priority.

Thứ Tư, 22 tháng 10, 2014

An inbox that works for you

Today, we’re introducing something new. It’s called Inbox. Years in the making, Inbox is by the same people who brought you Gmail, but it’s not Gmail: it’s a completely different type of inbox, designed to focus on what really matters.

Email started simply as a way to send digital notes around the office. But fast-forward 30 years and with just the phone in your pocket, you can use email to contact virtually anyone in the world…from your best friend to the owner of that bagel shop you discovered last week.

With this evolution comes new challenges: we get more email now than ever, important information is buried inside messages, and our most important tasks can slip through the cracks—especially when we’re working on our phones. For many of us, dealing with email has become a daily chore that distracts from what we really need to do—rather than helping us get those things done.

If this all sounds familiar, then Inbox is for you. Or more accurately, Inbox works for you. Here are some of the ways Inbox is at your service:



Bundles: stay organized automatically
Inbox expands upon the categories we introduced in Gmail last year, making it easy to deal with similar types of mail all at once. For example, all your purchase receipts or bank statements are neatly grouped together so that you can quickly review and then swipe them out of the way. You can even teach Inbox to adapt to the way you work by choosing which emails you’d like to see grouped together.

Highlights: the important info at a glance
Inbox highlights the key information from important messages, such as flight itineraries, event information, and photos and documents emailed to you by friends and family. Inbox will even display useful information from the web that wasn’t in the original email, such as the real-time status of your flights and package deliveries. Highlights and Bundles work together to give you just the information you need at a glance.
Reminders, Assists, and Snooze: your to-do’s on your own terms
Inbox makes it easy to focus on your priorities by letting you add your own Reminders, from picking up the dry cleaning to giving your parents a call. No matter what you need to remember, your inbox becomes a centralized place to keep track of the things you need to get back to.
A sampling of Assists
And speaking of to-do’s, Inbox helps you cross those off your list by providing Assists—handy pieces of information you may need to get the job done. For example, if you write a Reminder to call the hardware store, Inbox will supply the store’s phone number and tell you if it's open. Assists work for your email, too. If you make a restaurant reservation online, Inbox adds a map to your confirmation email. Book a flight online, and Inbox gives a link to check-in.

Of course, not everything needs to be done right now. Whether you’re in an inconvenient place or simply need to focus on something else first, Inbox lets you Snooze away emails and Reminders. You can set them to come back at another time or when you get to a specific location, like your home or your office.

Get started with Inbox
Starting today, we’re sending out the first round of invitations to give Inbox a try, and each new user will be able to invite their friends. If Inbox can’t arrive soon enough for you, you can email us at inbox@google.com to get an invitation as soon as more become available.

When you start using Inbox, you’ll quickly see that it doesn’t feel the same as Gmail—and that’s the point. Gmail’s still there for you, but Inbox is something new. It’s a better way to get back to what matters, and we can’t wait to share it with you.



Cross-posted from the Official Gmail Blog

Visuals and Explosions

Spent the day on smaller tweaks to get the Escape Demo level further along to ensure the best bits remain and the worst bits improved.  It's looking much nicer now, plays faster and hopefully a few extra functions can be added before we're ready for the public beta release.


Also wanted to repeat something that was posted in the comments, and also to clarify that all the shots from the last few weeks have been on LOWEST settings only. That means no normal maps, no specular, no real-time shadows for entities and none of the extra finesse that can be spent with a high end shader. My goal was to get it playing fast and looking good at the lowest settings, and then I can re-introduce the higher end features as I move up the food chain. This way the visuals will remain consistent and use the same light balancing no matter which shader technique you choose.

Right now I am finishing off the integratable prototype for the new explosion system that is finally going in to replace the one we are currently using. The current explosion is a bit 'epic' right now, and probably needs scaling down but I can go that once it's in game and I can get a sense of scale. The new explosion is pretty cool though with two fire decals, two smoke decals and two debris effects based on physics particulates.  Looks good in the lab so should look great in game, with the only obstacle being the reduction in what we call the intersection issue (a flat camera facing plane cutting into another surface at an angle and creating a strong line contrasting the explosion decal and the scene).

I have also freed up and de-prioritized some task items to preserve the original functionality list I had a week ago, which include enemies inside buildings, material system and cleaning up the entity property fields so they are 100% relevant to the engine (a long time coming).  As much as performance and visuals was challenging and fun, it's nice to do other things now and again, as a change is as good as a rest!

Thứ Ba, 21 tháng 10, 2014

Shot Of Latest The Escape Demo

Here is the latest shot to compare with one provided a few blog posts ago, but this time with the subtle bounce light from the ground lighting (notice the slightly green colour under the plank sticking out of the building).



More generally, having this extra bounce light in all the shaders (both sky and floor colour) is like having two extra lights on everything. It's subtle, but it does not only lift the scene but blends them altogether with a common colour theme, especially with the red, golden and darker skies!



Here are the settings I am using, but as with many things during beta development, if I change the shader levels all this could change again :)  Don't worry about the 34 fps, the whole software slows down when all the slider panels are on (something to do with drawing each slider bar bit by bit).

Currently tackling a rather fiendish problem resulting from the terrain system not producing super-accurate LOD0 mesh versions of it's segments, meaning my glass terrain geometry can sometimes be cut by the real terrain. Boo!  I have a few ideas along the lines of building my own glass terrain meshes from the height data, but first I am going to tinker with the built-in one first. It only happens when two segments meet, so that's my clue and my way in.

Currently riding high on the SLANT survey for "What are the best game engines for non-coders?". Why not check out the list and vote for your favorite here: http://www.slant.co/topics/1907/~what-are-the-best-game-engines-for-non-coders

A question also came up and worth bouncing out there. We now have different weapons coming in, and they have different 'hand' models.  If you are doing a game which uses different weapon sources, do you care about the hands changing from 'gloved' to 'ungloved'?  If so, do you have any ideas how we could tackle this without making artists lives hell?  Food for thought.

Thứ Hai, 20 tháng 10, 2014

DISTRICT VOICES: Inside Panem with our finest citizens

Meet District Voices, the latest campaign in our Art, Copy & Code project—where we explore new ways for brands to connect with consumers through experiences that people love, remember and share. District Voices was created in partnership with Lionsgate to promote the upcoming release of The Hunger Games: Mockingjay Part 1. -Ed.

Greetings, Citizens of Panem!

The Capitol has joined forces with Google and YouTube to celebrate the proud achievements of our strong, lively districts. Premiering today on YouTube, a new miniseries called DISTRICT VOICES will take you behind the scenes to meet some of Panem’s most creative—and loyal—citizens.

At 4 p.m. EDT/ 1 p.m. PDT every day this week, one of your favorite Citizen creators from YouTube will give you a never-before-seen tour of their districts. First, the Threadbanger textile experts of District 8 will show how utility meets beauty in this season’s fashion—plus, you’ll get a look at a new way to wear your Capitol pride. Tomorrow, District 2's Shane Fazen will provide a riveting demonstration of how we keep our noble peacekeepers in tip-top shape. On Wednesday, Derek Muller from District 5—Panem’s center of power generation—will give you a peek at a revolutionary new way to generate electricity. Thursday The Grain District’s own Feast of Fiction will show you how to bake one of beloved victor Peeta Mellark’s most special treats. And finally, iJustine, District 6’s liaison to the Capitol, will give you an exclusive glimpse at the majestic and powerful peacekeeper vehicles in action.

Tune in at CAPITOL TV. And remember—Love your labor. Take pride in your task. Our future is in your hands.

Automagical Exposure And Spherical Super Fudge

Today and tomorrow my schedule budgeted in the time to work on some kind of tone mapping and also the addition of skybox ambience. After some researches over the weekend and a little this morning, it turns out for true tone mapping I need implement a whole HDR system and for skybox ambience I might have to add an extra cube-map texture read to all pixels!  The upshot will be to improve the visuals still further by defeating the over-bright scenario we have been seeing and also to improve the general lighting of a scene full of differently textured objects.

A typical unlit scene - the starting point for all rendering

Alas I am not prepared to delay the project further by implementing a whole HDR system as it would require a lot of texture and shader updating, and adding texture referencing in my shaders is the last thing I want to do after making such good strides in performance. The solution was to achieve everything I wanted but without using the above techniques. As at 2:30PM I have achieved these goals, and am ahead of schedule by a day :)

The solution to the tone mapper was what I am calling my auto-magical exposure feature, which is very similar to adaptive bloom and acts on the post process shader to ensure a scene compensates for being over bright. Added some code to use the time delta from the engine and it now adjusts at the same speed as the human iris which creates a nice subtle effect.  Look at the sky and your eyes adjust, look at something dark and the eyes adjust again, look back at the sky quickly and notice how the eyes adjust over 1-2 seconds.  Very cool!


The second solution was to dump reading the skybox (even a small 1x1 per side version of it), and simply pre-scan the colour of the sky and the colour of the floor, and load those directly into the shader as a constant. I then use a spherical harmonics trick to work out the contributions based on the surface normal presto, the ambience now has the visual effect of receiving bounced light.  It's not sophisticated, but it's completely free and super fast!

Notice how the ambience is taken from the sky and terrain colour

When combined with the remaining pixel shader it blends with the scene

Next on my list is to read an avalanche of links Rick has sent me on spherical harmonics (as there might be a test tomorrow). Then I fix the Rocket-man, who has been doing very silly things with his rocket and needs sorting.  If I can do all that and have a build for 4PM then I think that would be a good first day of the week!  I am eager to get past the performance and visual stuff this week as there is a big chunk of third pillar functionality such as the material system I want to get my teeth into.

Thứ Bảy, 18 tháng 10, 2014

Android & AGKV2 - A Powerful Combination For Developers

It's the weekend, and I always like to give myself some freedom away from the 'day job' whenever possible, and today I decided to play around with a product we are due to release on Steam before the end of this year called AGK2. It's origins go back a few years now but the principal is simple, which is to allow anyone to create cross-platform applications easily and quickly.  Despite the ease with which you can create applications, it remains an extremely powerful and capable language that has been instrumental in producing chart topping apps on both Android and iOS.

This blog post was prompted by the arrival of a small box that was mailed to me, and within this package, my first quad core Android device! We have come a long way from the humble (and slow) origins of this almighty operating system and it's exciting to be part of the space that enables the next generation of Android software to thrive and flourish.


In it's brief and unassuming stint in the tools market, AGK has produced some excellent apps and also a few hits too. It's successor promises even more with it's all new IDE for Windows and Mac, significantly faster compiler and a host of new commands and features.

It is no surprise that as soon as I received this device I wanted to field test it with an AGK application and test the speed of the device. I was not disappointed, and the shader example which shows off the use of 3D rendering, ran at the full 60 fps on the Android tablet.

Rather than a protracted written description of the experience, I have committed by thoughts to video to better illustrate the new AGK and the Acer Iconia Tab 8, Quad Core Intel(r) Atom(tm) Processor 1Gb RAM, 16Gb Storage, Wi-Fi, 8 inch HD Tablet.  As AGK already supports x86 binaries, the application is able to run at native device speeds and take full advantage of the silicon.


As you can see the performance is first rate and it's exciting to know that we are now able to deploy to devices that can handle a LOT of 3D rendering, which will open the gates to a whole new wave of intense 3D experiences for portable computing.

For more information on AGK, you can visit the official website at WWW.APPGAMEKIT.COM and for news on the current developments of AGKV2 you can visit the forum thread here: http://forum.thegamecreators.com/?m=forum_view&b=41&t=212209&p=0



Thứ Sáu, 17 tháng 10, 2014

Through the Google lens: search trends October 10-16

Diet secrets from Zach Galifianakis, and cord cutting from a cable company?! Here's a look at another topsy-turvy week in search.

A cast of characters
Search will always have its fair share of characters and this week was no different. First up, moviegoers learned who’s next in line for Hollywood’s superhero treatment when Ezra Miller, star of The Perks of Being a Wallflower, landed the title role in the 2018 film The Flash. And whispers are swirling in Tinseltown that Gal Gadot's already impressive resume—she’s set to play the world’s most famous Amazonian, Wonder Woman—will soon get another stellar addition, the lead female role in a remake of Ben-Hur.

But they weren’t the only celebrities to get the Internet buzzing. Comedian and fan favorite Zach Galifianakis caused a stir on the trends charts after he revealed a much thinner version of himself on the red carpet of the New York Film Festival. When a reporter asked Galifianakis if he had made any lifestyle changes to lose the weight, he responded with a straight face, “No, I'm just... I'm dying.” Clearly Galifianakis isn’t sharing his weight loss secrets.

Out with the old, in with the new
HBO has seen the light! This week the premium television network announced that they will launch a new stand-alone service for fans of its TV shows. Soon, homes without a cable subscription can sign up for HBO Go and get their fill of Game of Thrones and other HBO shows with just an Internet connection—leading people to wonder if this is the beginning of the end for cable providers.

Consumers also had a lot of new mobile devices to choose from this week, starting with our own line of Nexus gadgets like the Nexus 6 running the latest version of Android, 5.0 Lollipop. Meanwhile, Apple announced an updated version of the iPad.
The show’s just getting started
Is it awards show season already? It’s not—but that’s not stopping searchers from looking ahead. The Internet rejoiced when How I Met Your Mother and Gone Girl star Neil Patrick Harris said “Hosting the 2015 Academy Awards? Challenge accepted!” But with the Oscars red carpet still months away, searchers had their sights set on another celebrity bash: Paul Rudd's keg party… at his mom’s house… in the suburbs of Kansas City. What else are you supposed to do when mom’s out of town and the KC Royals just punched a ticket to the World Series after a nearly 30-year hiatus?

Tip of the week
‘Tis the season for pumpkin spice beers? Next time you’re in a new town and looking to grab a cold one just say “Ok Google, show me pubs near my hotel” and find your new favorite haunt.


Improved Ray Cast Command

Spent most of the day improving a central command called INTERSECT ALL which is used by both enemies and the player. The old implementation was good enough, but given it's heavy use and it's tendency to create performance spikes, I decided to implement some better ways of doing the same thing.


The new system first collects all the collision boxes that are touched by the ray, and then sorts them by distance, and only then does it go through the polygons associated with each box.  This way I get very early exits when the ray does not pass through any boxes, and a minimal traversal of polygons when it does hit something. Thanks to the internal team for their ideas on this, and it definitely solved the performance spike issues.

I was set to do some work on explosion improvements, but the decision was taken to spend two more days on visuals next week, namely TONE MAPPING and AMBIANCE FROM SKYBOX which will combine to create a better light balance in the scene. My minor concern is that both of these might require a small performance hit so it will be interesting to see what the trade-off and benefits are when these techniques have been implemented.  The good news is that FPSC Classic had a sort of tone mapper shader, so I will be looking to dig that out as a starting point.

Thứ Năm, 16 tháng 10, 2014

Occlusion Faster, Spikes Under The Crosshair

Today I improved the speed of the occluder, added the new occluder sub boxes to The Escape demo entities, and no and behold the saving in drawing less entities to the GPU was EXACTLY the cost of calculating the occlusion. At least it is no more expensive any more!  It also means some levels with enclosed levels will see a performance boost, but you will notice a subtle drop if you have a completely open level with nothing to hide behind (naturally).

Moved onto defeating the two performance spikes when in high combat. I fixed one which was caused by the enemy calculating too many paths, now they spread that work out. And the second I continue to work on this evening, caused by too many raycasts.  Not sure how to solve this, but deciding to spend my brain energy on this rather than a pretty blog.

Better blog Friday, and some nice shots :)  Going to eat now, then back to the code!!


Thứ Tư, 15 tháng 10, 2014

Famous At Last!

A full day of driving and meetings today, so I am now truly 'tired' as at 7:11PM (and started the day at 5:30AM).  Just enough energy to post a very cool discovery I made last night about the parent of the FPSC Reloaded product. Here is the shot.


This was taken from DAMAGES, Season 4, Episode 9, 45 minutes into the drama. That's right, the console game being played at that point in the story was an FPSC Classic game.  A scene in which John Goodman thwarts the machinations of the rogue CIA agent, whilst zombies with futuristic shotguns are being blasted in the background. I could not believe my eyes when I saw this last night, and put a big smile on my face!

In FPSC Reloaded news, work continues full steam on Thursday when the occluders will be added to the entities used in The Escape demo level, and once I get my performance boost I will be moving onto my 'integrated Intel graphics' desktop to analyse the engine under GPA Frame Analyser.  My guess is that if I use a small enough level, there will be sufficient system memory remaining to run a proper and complete test. Failing that, I might drop a line to Intel and see if they have any ideas to run the more system memory hungry apps using the tool.  I must also discover why my test level from Tuesday grew by 174 draw calls, and confirm it was not some rogue code adding dummy objects to the mix (or some setting that had been switched on since the tests of that morning which is probably more likely).  In any event, Thursday is the last official day for performance and visuals, and I move into 'third pillar' territories with features such as the entity properties panel and terrain editing tools.

Android: Be together. Not the same.

Good things happen when everybody’s invited. A few years ago, we had the thought that phones (and stuff that hadn’t even been invented yet like tablets and smart watches) would be way more interesting if everyone could build new things together. So we created Android as an open platform, and put it out there for everyone to imagine, invent, make, or buy whatever they wanted.

Since then, all kinds of people—from companies big and small to folks on Kickstarter, kids in schools, and crazy smart developers—have been innovating faster, together, more than we ever could alone. And the best part is that every time someone new joins in, things get more interesting, unexpected, and wonderful for all of us.

Getting everyone in on the party is the same spirit behind Android One—an effort recently launched in India (coming to other countries soon) to make great smartphones available to the billions of people around the world who aren’t yet online. It’s also why we’re excited about Lollipop, our newest software release, which is designed to meet the diverse needs of the billion-plus people who already use Android today.

Joining the party: Android 5.0 Lollipop
As previewed at Google I/O, Lollipop is our largest, most ambitious release on Android with over 5,000 new APIs for developers. Lollipop is designed to be flexible, to work on all your devices and to be customized for you the way you see fit. And just like Android has always been, it’s designed to be shared.

Lollipop is made for a world where moving throughout the day means interacting with a bunch of different screens—from phones and tablets to TVs. With more devices connecting together, your expectation is that things just work. With Lollipop, it’s easier than ever to pick up where you left off, so the songs, photos, apps, and even recent searches from one of your Android devices can be immediately enjoyed across all the other ones.

As you switch from one screen to another, the experience should feel the same. So Lollipop has a consistent design across devices—an approach we call Material Design. Now content responds to your touch, or even your voice, in more intuitive ways, and transitions between tasks are more fluid.

Lollipop also gives you more control over your device. You can now adjust your settings so that only certain people and notifications can get through, for example, when you’re out to dinner or in the middle of an important meeting. And when an important notification does come through, you can see it directly from the lockscreen.

And because we’re using our devices a lot more, there’s a new battery saver feature that extends the life of your device by up to 90 minutes—helpful if you’re far from a power outlet. We’ve enabled multiple user accounts and guest user mode for keeping your personal stuff private. And you can now secure your device with a PIN, password, pattern, or even by pairing your phone to a trusted device like your watch or car with Smart Lock. But this is just a small taste of Lollipop. Learn more on android.com.

Meet the Nexus family, now running Lollipop
Advances in computing are driven at the intersection of hardware and software. That's why we’ve always introduced Nexus devices alongside our platform releases. Rather than creating software in the abstract, we work with hardware partners to build Nexus devices to help push the boundaries of what's possible. Nexus devices also serve as a reference for the ecosystem as they develop on our newest release. And for Lollipop, we have a few new Nexus treats to share with you.
First, with Motorola, we developed the Nexus 6. This new phone has a contoured aluminum frame, a 6-inch Quad HD display and a 13 megapixel camera. The large screen is complemented by dual front-facing stereo speakers that deliver high-fidelity sound, making it as great for movies and gaming as it is for doing work. It also comes with a Turbo Charger, so you can get up to six hours of use with only 15 minutes of charge.

Next, a new tablet built in partnership with HTC. Nexus 9, with brushed metal sides and 8.9-inch screen, is small enough to easily carry around in one hand, yet big enough to work on. And since more and more people want to have the same simple experience they have on their tablets when they have to do real work, we designed a keyboard folio that magnetically attaches to the Nexus 9, folds into two different angles and rests securely on your lap like a laptop.

Finally, we’re releasing the first device running Android TV: Nexus Player, a collaboration with Asus, is a streaming media player for movies, music and videos. It's also a first-of-its-kind Android gaming device. With Nexus Player you can play Android games on your HDTV with a gamepad, then keep playing on your phone while you're on the road. Nexus Player is Google Cast Ready so you can cast your favorite entertainment from almost any Chromebook or Android or iOS phone or tablet to your TV.

Nexus 9 and Nexus Player will be available for pre-order on October 17. Nexus 9 will be in stores starting November 3. Nexus 6 will be available for pre-order in late October and in stores in November—with options for an unlocked version through Play store, or a monthly contract or installment plan through carriers, including AT&T, Sprint, T-Mobile, U.S. Cellular, and Verizon. Specific carrier rollout timing will vary. Check out google.com/nexus for more details on availability.

Android 5.0 Lollipop, which comes on Nexus 6, Nexus 9 and Nexus Player, will also be available on Nexus 4, 5, 7, 10 and Google Play edition devices in the coming weeks.

The party’s just getting started
With this latest release of Android Lollipop, we're excited to continue working with our developer community, hardware partners, and all of you. More ideas and more creators is what gets us all to better ideas faster. And since everyone's invited to the party, we hope you'll join in the fun by creating and sharing an Android character that captures a little bit of who you are—one of a kind. Enjoy!

Thứ Ba, 14 tháng 10, 2014

OMG! Mobile voice survey reveals teens love to talk

“Ok Google, do I need an umbrella today?” “How tall do you need to be to ride the Cyclone?” “How long does a goat live?” People of all ages are starting to talk to their devices more regularly—in fact, our data also show mobile voice searches more than doubled in the past year. But how, why and where do people use voice search? To find out, we commissioned a study, conducted by Northstar Research, surveying 1,400 Americans across all age groups. Here are the results:

We weren’t surprised to find that teens—always ahead of the curve when it comes to new technology—talk to their phones more than the average adult. More than half of teens (13-18) use voice search daily—to them it’s as natural as checking social media or taking selfies. Adults are also getting the hang of it, with 41 percent talking to their phones every day and 56 percent admitting it makes them “feel tech savvy.”
Both teens and adults are asking their phones for directions and using it to help skip the hassle of typing in phone numbers. And it’s pretty clear a lot of people are relying on voice search for multitasking: they talk to their phones while watching TV (38 percent) and 23 percent of adults use voice search while cooking. Apparently, it’s becoming common kitchen etiquette to ask your mobile device: “Ok Google, how many ounces are in a gallon?”—all while making sure your screen stays crumb-free.
While people of all ages ask practical questions, it’s teens who are exploring all angles, with nearly one-third talking to their phones to get help with homework. I see my kids asking my phone questions like: “Ok Google, who was the sixth president of the U.S.?” or “what’s the tallest mountain in Europe?” On the bright side, teens are ditching voice search in the classroom: 74 percent of them think using voice search at school is unacceptable. In fact, most admit to using voice search “just for fun”—I know my daughter finds it pretty amusing to tell her phone: “Ok Google, play Olivia Holt’s ‘Fearless’” to start a dance party.
And teens don’t seem to associate any stigma with using voice search while hanging out with friends, whereas only one-quarter of adults speak to their phones when in the company of others. Teens don’t mind talking to devices in private as well, with more than one in five admitting to using voice search while in the bathroom! Maybe they’re merely setting reminders like “Ok Google, remind mom to buy toilet paper next time we’re at Safeway.”
Though it’s already helping a lot of people save time and simplify their days, there’s also potential for voice search to do a lot more in the future. So we asked people what they wished voice search could one day deliver. And I have to say, I agree with the results! it would be great to rely on my voice to easily find my car keys or TV remote, both of which somehow always end up under the couch cushions.

And I’m not alone in wishing a simple voice command could save me from having to cook dinner. Forty-five percent of teens—and 36 percent of adults!—wish they could place a pizza delivery order using voice search on their mobile device. We’re not quite there yet, but next time you don’t feel like cooking, just pull out your phone, tap the Google app, and say: “Ok Google, call Round Table Pizza.” You’ll still have to place your order over the phone, but we’re getting closer!

The small print: The study was commissioned by Google and executed by Northstar Research, a global consulting firm. It examined the smartphone voice search habits of 1,400 Americans, 13 years of age and older (400 ages 13-17 and 1,000 adults ages 18+). Voice search is part of the Google app (available on iOS and Android) and is the best way to access Google for helpful assistance throughout your day. Learn more about the Google app.

Combat Speeds

My main triple A task today has been finding and solving the performance spike we see when in high combat.  After some VTuning, it was apparent that 25% of the main thread cycles was dedicated to doing a triangle intersection test, which in turn comes from the functionality which casts a ray between the enemy and the player to determine if the player can be seen or hit with a bullet.  In play, my framer rate can go from 90 fps down to 25 fps when five characters are running around shooting me, so not ideal.


The good news is that I added some code (and ate 8MB of valuable system memory) to add what I called a 'skipgrid' which remembers the position of the enemy and the destination of the ray and stores what the hit value was. The next time the intersection command is called, I can do a quick look-up to see if this ray was done before, and instantly return the result.  I also added code to limit the engine to a maximum of five intersect tests per cycle so this part of the engine does not swallow up other resources. I am sure there will be some after effects of this optimization, but the new frame rates are much improved. In a high combat scenario with five aggressors, there is little to no frame rate drop during the fighting. You do see a drop when you shoot the shotgun, but that's because it has five ray casts being sent out all at once.  Most weapons would not exhibit this 'blip' but I will see what testing feedback results first to see if anyone notices this amongst all the other things going on.

I am writing my blog early today as I have a meeting with the accountants tomorrow, part of my 'Managing Director' hat.  I need time to assemble some paperwork and get my head out of code and into facts and figures. They may appear to be in the same mental ballpark, but games coding is much more fun!

Not right now though, it's still full steam ahead and after a nice cup of tea I will be looking closer at the occluder system. If you recall, this is the CPU based system of detecting which objects are being completely hidden by closer objects and removing them from the render scene.  You may also recall that switching it on actually caused the frame rate to drop, not increase, so I will be making an assault on that code and finding out the whys and wherefores.

In other news I have my artist back from the land of the ConKit, which means I can start some work on the pistol grip animations, LOD levels for even faster scene renders and other nice graphic tweaks :)