Friday, 31 January 2014

Beta Imminent - Start Your Stopwatches

Work

Another good day of Core tweaks:

Jump doesn't always work
When running on a bumpy terrain you can trigger a hurt sound. This should not happen (it's not that painful!)
Water splash plays when you are clearly not near the water
Sometimes when fall from great height, it does not hurt at all

Also lots of testing, which fortunately did not bring up any new issues, which is always nice. My aim is to start the final beta upload(s) before midnight so you all you UK users will be expecting a download around 3AM if you are still up by then :) US users have a more civilized download time of 9PM (ish).

Play

From Saturday I am away for a week to recharge the old batteries. My idea of a recharge is to throw myself off mountains at some speed (whilst conducting research into physics and terrains).



During that time I encourage you to bash the ballast from the beta and have some juicy feedback for me on my return, when I will continue working on Core features. That is, if I make it back ;)

Thursday, 30 January 2014

Into The Core

Work

Core tweaks today - took over 12 hours:

Dialogue box now says "Saving your game as standalone..."
Grass now follow terrain changes
Added message when exiting edit mode  "Saving Level Changes..."
Removed the SHIFT Cascade shadow Map View
Freeze enemy animations when in Edit mode
If no changes made, make exit from edit quicker
Add a resource meter to Reloaded so users can see the affect of adding too many entities.
Warn users when memory is low and fragmented. Graceful restart with saving.
Enemy health is taken into account when you try to kill them
Weapons no longer point through walls
Gun reload no longer shows a left arm on pistol weapon
Cross hair has a 2nd image when pointed at water no longer
Entity loader reverts to legacy mode of culling entities (CULLMODE for FPE)
Added punch1 thru punch3 sounds when characters punch and kick player

Improved water edge detection so player triggers correct sound when in shallow water

Wednesday, 29 January 2014

Less Blog More Work

Work

I am getting the message loud and clear from the community that I should be doing more core engine stuff. As I was already doing core stuff, there is not much else I can do to satisfy the masses except (a) work longer or (b) blog less. As I rather like eating and sleeping, I choose to sacrifice a blog post or two.

Beta work is going well, check back on Friday for more news (around UK midnight) for the release.

Tuesday, 28 January 2014

Meeting Day and Rift Video

Work

Half day meeting, half day recompiling my source code for VS2012 only (no mixing in VS2010 distributables) as I am moving to a new PC. Probably not the best time to do this, two days before a BETA launch, which is why I tagged it onto Tuesday to see what the implications are.

I got snagged by a video camera before the meeting was over, so you can see my wondering within an Oculus Rift world.


As previously blogged, I have more plans for Rift features but these can be delegated outward which frees me to core coding (which is where you will want me right now).

Turns out that in moving to the latest redistributables (which means much more solid and predictable behavior from the product), introduced a few 'interesting' differences. Enough to convince me to postpone the VS2012 switch until after I come back from my little holiday later in Feb.

The good news is that I structured the upgrade so that the main source code is still fully shared between old and new PC's so I can bounce back to the old one starting Wednesday AM. This is a great bit of redundancy too and acts as a natural back-up, not only of the off-site files but the whole dev hardware on which the code is worked and compiled :)

Play

Walked over 3 miles today, and it also looks like I can grab an early night, ready for an early start Wednesday.  The plan will be to address the seemingly random drop out crashes caused by too much memory being used. The solution in my mind is to attempt to reserve a large chunk of memory, and if it fails, detect this and gracefully restart the main executable and restore to the previous point. It's a bit hacky, but it solves the issue of losing your work with random crashes and will allow you to stay in a single editing/testing session for hours at a time which should be a welcome bonus for this next BETA.

Monday, 27 January 2014

It is BETA Week

Work

After a much enjoyed weekend of walking and dragging large trees off the beach (for later burning) I have returned to the cupboard I laughingly call an office to continue my daily developer slog.

So what has taken almost every minute from 9AM to 6:30PM (with no dinner)? Well it was a single item on my task list, entitled "- Stop enemies entering water". Sounds pretty simple right, add a line of code statement to the tune of "STOP THEM GOING IN WATER" and presto, done, right?



Well....not exactly.  I had to write a prototype to scan the height field, produce a series of black and white squares which denotes those areas under water, then run an image scan which detects the boundaries of these shapes, then wipe them out and replace them with a polygon representation of those shapes, then create a DarkAI obstacle based on that data, and finally integrate it through the main engine so the characters understand which areas on the terrain are 'no go' areas.

As you can see in the shot above, the system can accurately create a contour around a feature of the terrain. I can eventually extend this feature to exclude high hills which characters should be allowed to ascent (i.e. near vertical cliff walls).  For all my efforts however, when I ran the engine the character just ran straight through my obstacle, and I could not help notice the contour was every so slightly IN the water which means my characters might be taking a dip after all.  

In coding it, I have also identified that the system needs to deal with islands inside the water pools, which are like exclusion zones within a DarkAI obstacle polygon, so that's either more polygon math for me or a small task for someone else ;)

Such is development, we build our structures, and soon realize that it's sinking into the swamp. I think a little structural support is required to make sure this feature makes it into the BETA as I rather like the idea that the enemies go AROUND the river, instead of through it!

Play

Managed to cram in 2 miles of walking in place of dinner.  I confess to eating a piece of toast if that counts as dinner. Meeting day tommorow which attempts to review our current position, and identify any critical urgent items that absolutely must make the BETA. The good news is that most of the items we announced will be in, which gives me a nice warm feeling inside.

Friday, 24 January 2014

Player Start Marker Settings & Sounds

Work

Found some issues with the Standalone Saving when different levels where submitted so had to spend half a day sorting that out. Works much better now and here is another Rift shot for you Rifters, created by saving out a simple level then adding RIFTMODE=1 to the SETUP.INI file.


I spent most of the day however on the Player Start Marker properties, so now you can set the speed of the player and the fall hurt distance which both work fine. I still need to improve the sound effects for leap, land, hurt and die, and I need to add some suitable player HUD damage reaction when you fall too far to back-up the hurt sound and impact.

I also have an inbox with about ten TODO items in there, but none of them are on my Reloaded Priority A task list so they will just have to wait ;)

Not sure if I will do some work at the weekend as it's been a packed one I think. Rift, Standalone, LOD fixes and two key prototypes out the door is not bad for five days. I have some PC's to augment/repair, an attic to carpet and a nice LONG walk planned either SAT or SUN, so we will see how much Play and how much Work prevails.  Hopefully I can get to 'research' Assassin's Creed III which dropped on the doormat a few days ago.

Play

Only did 1.4 miles today as I was picking my car up from the nearby garage and of course I was on wheels coming back which halved my journey. I would have gone out again, but it was seriously raining and I did not want to drown the doggy.

Thursday, 23 January 2014

Rift Added To Reloaded - Took One Day

Work

Spent the day getting very dizzy and nauseous while fiddling to find the best stereoscopic settings, but I finally found some values that worked for me. The gun and cross hair presented my most time consuming challenges, but finally managed to wrestle them into submission and you can now run around a scene blessed with Rifty goodness.


I have decoupled the weapon from the 'look around and smell the roses' camera, which means you can look down and see yourself reloading, and have moved the gun to the place it should be if your head was some way above your arms :) I am not 100% happy with each of the many components that go into creating the illusion, and I think a LOT of fine tuning is required to recreate that larger than life world of VR.

There is a VERY fine line that needs to be trod so that your final VR render creates a player that is the right scale, the right height, carries things correctly, moves properly, tilts the head from the right joint and a massive bag of very small and subtle things that break the illusion.  As you can imagine this is not a day's work to do, but I am pleased the main blocks of functionality are in place and allow you guys and gals to start playing with the Rift and Reloaded (if you are lucky enough to own both).

Friday I don't plan to let the grass grow around my feet, and I move onto the character AI work. I need to stop them walking into deep waters, firing through terrain and generally behaving like lemons.

Play

Another 4 miles on my personal walking clock, which allowed me to reward myself with a glass of J.D & Coke.  Have ten more minutes writing this blog post and then I am off to watch Time Team and eat. Might return later for 2 more hours of bits and bobs. I have a spare PC with a duff power supply that needs repairing, and a new SSD which needs to go in my newest PC as I plan (once again) to migrate to the new one and leave the old one as a backup. The reason being that my current (old) PC has the nastiest and badly messed up registry you can imagine, and it's starting to prevent me installing stuff.