Original written for AltDevBlogADay Do you ever open an academic text or scary PDF, scan for code snippets, pretty pictures, maybe read a bit then run for the hills?
So I was so tired of seeing a computer the last few days I switch to paper notes for a while. Still need to scan / transcribe them to digital format. Here are some highlights. Key Points.
Arrays are listed as { }. Groups are “- - -” boxes. So some graph confusion between arrays and groups. It’s very clear on the graph but the query starts looking strange. Really tired and not making progress. So going home, grabbing some food and hopefully I can clean up the mess in my head.
Okay some actions can affect multiple targets, my old model ignored this and hence broke in a few places. I’ve now fixed this. This resolves a few graph query issues I was having. Containers. Aaah yes arbitrary containers are extremely useful in a graph systems.
Okay so loads of code written, which has really found holes and helped smooth out the model. Query Graph. Okay so the most basic Query format is a Graphed Query. Pop-able Context. Any item which is pop-able can throw away it’s parents without loss of information.
Sadly no pretty pictures, but loads of progress. That’s the sad truth of programming, loads of boring text before anything cool happens. So what are you seeing. Query Response Format working. People, Locations, Objects populating with random generator. No Events Yet.
Almost missed last bus home. Really good progress has been made. Lots of clean up and refactoring making good headway. Query & Response format cermented. Basic test bed in. Hard coded a random populator to fill values. Unified time sensitive atom structure. More tomorrow (^_^)
So I wrote this long article about how I switched to an Atomic data model. How this is one possible implementation of the proposed model. Different code would be written based on language, memory and cpu restrictions. The implementation is a proof of concept . It does not define the model .
Not much progress tonight. Looking at examples and the refrence scenario, getting bogged down in detail. Will look at a code implementation of Thursday
Dissertation: Atomic Structure A sample atomic structure laid out in a document. Query and Response forms also discussed.
So there is a slight glitch with the reflection but ALMOST there.
So for those of you curious I’m throwing down some water rendering magic. Not to mention real-time environment cube mapping. Behold the result. So it’s broken and the ocean needs some motion ( pun fully intended ). I also may be slightly sleep deprived… but onwards and upwards.
Okay above you see rough and blurred. The rough pass uses a single sample against the depth buffer. Those bloody pixels are a result of the resolution of the shadow map.
Many people will tell you this but whenever you have a problem try to visualise it. This can be applied to almost everything (except cases where visualisation is a constraint, think advanced maths and quantum). So above you see the debug frustum.
Wooot! Progress, the shadow is low quality due to PC card limits. I need to add some bias to avoid flicker, and smooth off the edges to get soft shadows.
Full Screen shadows almost done. Had to run. Just caught last bus home. Some weird filming on the lot. More tomorrow.
So after a lot of thought and planning yesterday I set about implementing soft shadows using shaders tonight. Sadly this meant I needed to re-haul the entire scene manager and packer to support texture swapping, and effect management.
Well lighting & shadows are a complex bag of trickery and maths. Basic Lighting is simple. Take a book outside into the sun now rotate the bugger around and throw it.
Day & Night Cycle. Woot! Not only did I get a pretty awesome Sky-Sphere in place but I also managed to knock up a day/night cycle. I also cleaned up the shaders and have global lighting in place. Found an awesome tut, and manage to knock the shader up from that.
Ye gods captain, PROGRESS. After the dismal run around the pointlessness I have actually made some progress last night and today. Coupling Issue solved with Interface. Island has day/night cycle. Shop Blimp interior & exterior modelled. Blimp added to world.
My Kingdom for a Team. What’s the best tool to explore and solve problems? Explain it to someone else. It’s good enough for Sherlock Holmes and its good enough for me. I hate working in isolation because you don’t need to justify or explain yourself to people.
GUI Work. The big choices I’m facing at the moment and playing around is on two fronts, GUI Behaviour and Render Pipeline. Fighting through some choices… will post more shortly
So no progress yesterday as it took me forever to vote, and then I got lost in endless election cover and got no sleep, zombied through work today. Anyway got back and looking mostly at setting up the menu and gui system for buying and setting up stuff.
Island Scale. Staying late at work to do university work is REALLY awesome, and so works. My work setup is just so much better for coding. Pro vs Express. Two Screens desktop vs Laptop. Work vs Bedroom. Anyway, getting the island render stuff in.
Hitting a massive break trying to get Model-View-Controller to work with Data Driven model. I’ve found out some nice stuff about C# activator but it gets messy. Ultimately I think I’m going to have to through a few engineering scruples out the window and hack it if I want to stay on track.
AAAARGH!!!! Really slow progress, here are some of the hurdles I’ve been hitting. Baking Shadow Maps in 3D Studio Max while maintaining the UV (a bad tangent). Confusion between ActiveTransform and Transform. Renamed them to WorldTransform and RelativeTransform. Broken input needed fixing.
I really wish I had a pretty picture but I don’t. Sadly it’s a problem with grunt coding tasks is there is very little pretty to show for it. In fact most of my work today has been in the Content Pipeline which runs at build time. So its not even runtime code. XML Data.
Updated the document from my notes, and a few use cases. Clean Version Here. The main break throughs and choices are below. Prop Code. All the prop data will be created from an XML file and parsed into a dictionary which is indexed by Prop Code.
Cooking Calamity Use cases, defining more stuff. Well I suggest following the link for loads of stuff but the biggest thing is cooking. I knew some simple things were core to the game. Time Based Interactions - Farming. Activities - Fishing, Fairy, Milling. Coins & Customisation.
So after the coupling issue I’ve been looking at Object Factories and inventories. Now something I learn to love more and more is Data-Driven development. I cannot express my love for it highly enough.
Coupling and Forethought. So last night I started looking at setting up the game elements and save data. The moment I started I saw coupling issues rise up like the ugly beast. Thankfully I’ve seen this monster and I know how to deal with it. I went to bed with pen & paper.
More notes on Game-Play. So I’ve been at Uni and running around town so most of my work was in my note-book but it gave me some time to form some thoughts, and define some game-play. Also after much thought a stunning thought came to me. NO VIOLENCE!!! Player Actions. Frank Pet / Scold.
Stupid Artist!! Oh no wait… that’s me. As far back as Wednesday last week when I was working my way through this problem I joked about the artist being stupid.
Right I’ve moved over most the nice LD code into the Frank project, cleaned up a few things here and there. Made it play nice with the World Manager system. First thing I did after getting the camera controls in was apply the debug renderer to the stupid animation problem I’m having.
Brick wall. Importing really simple models with a low bone count with no issue. The hand has been glitching all day. Still no closer to solver the problem. Unfortunately I’m working with Visual Express C# and my old Visual Studio Pro 2005.