Friday, October 19, 2012

Let's try a more industrious method to enviroment creation

Right-o, so for a long while I've been on programming duties, but yesterday after finding out I had coded duplicate functionality for something else my partner had done (lead designer also). I decided that 1: I have no idea what's going on in the design, 2: I enjoy doing art better than programming, 3: whatever man, there are still 3 environments to go (which I hope doesn't change on me later). So yep, now I'm going to work on two of the three outstanding environments (the apartment could use some more love too) which are a gym and a park. I had set a self-imposed deadline of having level blockouts done one per day so that I would have a start for both by Friday, but level design is one of the many things I under estimate.

Whatever, enough words, here's my progress so far:

To be a locker room

To be a transition area between the locker room and the main areas

To be a gymnasium, setup with basketball nets and a suspended indoor track

To be a workout room overlooking the pool

To be a pool

To be the entrance to the environment with a snack area
Coming up with floorplans are suprisingly a pain in the ass for just arranging blocks. I tried to plan for lines of sight - so that there is always something interesting to see and explore, and to have very short travel times when walking between main areas. I've tried to design the floorplan for the gym a few times before and always got sidetracked placing areas that the player would never go to ( like offices) or having unacceptably long and winding corridors between areas.

As you can see yes I have blockouts of the level, no they're not any good at describing what the final product should be, so I think I may need another day working on these images. What I'll likely do is use my poor painting skills to paint over these screenshots and see how that works out. Once these poor excuses of concept art are done and approved, I'll be doing the same for the park - maybe even the hospital if they turn out to be not terrible.

Tuesday, October 16, 2012

Experimentation with procedural levels

Well while doing the loading bar, I found out some neat commands; Application.LoadLevelAdditive namely. And in a case of "when you have a hammer, everything looks like a nail" decided to change how levels were setup. Since the game only takes place in 4 environments and has much more levels I thought it would be good to build the levels procedurally by reusing the environments by additive loading them into a blank scene that contains the relevant level data.

It works but on experimentation it leaves this slow blank awkward pausing screens that I rather not deal with. So scrapping that idea, I just dumped all the level data into the start menu scene, deactivated and ready to go on level select. It's not ideal but it works. The issues with this method is that it is harder to control scene specific objects with a script that isn't even based in the same scene. - Say like I needed to script some doors locked, I probably would have to create a level specific reference list script in the scene just to get easy access to variables needed to properly setup the environment for the current level.

Also got the generic event system going and it seems to work without problems for purpose of objective tracking, haven't extensively tested it or seen how it handles large amounts of data, but handle problems as they come along I guess.

Thursday, October 11, 2012

Generic Event System

Well continuing on from last post I got that resolution independent GUI layout helper function done. It took the whole day because I basically over thought the math necessary to scale elements down between a minimum and maximum. Figuring out an equation for linear interpolation of 2D elements, or scaling by the difference in area and then applying Mathf.Clamp on the results? I went with the latter, much easier to code and understand.

So onto the event system which is supposed to be my silver bullet for solving all my woes in tracking objectives and attachments progress. It's under 40 lines of code.  - Well uh maybe I learned from the GUI code kept it simple, stupid. All it is, is a glorified list with time stamps, so yes the size seems right. But like everything else all it's dirty hidden problems will only show themselves through testing and implementation. Now for the fun part of hooking it up and giving it real feeds and having objectives query it.

Also on the to do list is now loading bars/ screens, and run time asset loading. I've got loading screens working now thanks to a quick Google search and the ease of use that is sometimes Unity. Just need to work on making nice progress bars, but I'm sure a search will turn up something.

As for run time asset loading, well I'm not looking forward to that. Yes there are numerous benefits to the technique, like patching without having to recompile or redistribute the whole folder, but then I also need to worry about asset management and file type parsing. For a first game, it doesn't strike me as a priority over getting shit working and actually enticing to play.

It always looks like there is no end in sight, but just gotta get what I can get done.

Tuesday, October 9, 2012

Got a working prototype finally

Well it's been awhile, I honestly don't even want to keep track of how many days it has been, but last Friday I managed to scrape together a crude, but working version of the game - main menu, levels, objectives, actions, and recognizing victory. Of course since it was all done in a rush and with lots of hard coded quick fixes it is an absolute mess and I have to go back and reorganize and improve everything, but at least it's a step forward.

WIP Start menu, the bars are animated.
As for today I'm going to make a tool for converting pixel coordinates into resolution independent percentages that should make creating a GUI layout for multiple resolutions a lot easier and automated.

What it should take into account is the screen resolution the layout is currently designed for, where each element is and what point it appears to anchored to and then generating the coordinates for any resolution that it was not designed for. I don't think this will be that hard, so today I may also be able to get started on a generic event system.

The generic event system would be a log of every action recorded in one place that would allow for classes to tell each other what they are doing without explicitly hard coding in conditionals into their functions. This is useful for checking for achievements and objectives, which as of now are hard coded into the relevant behaviors. Anyways more on it as I go.

Saturday, September 22, 2012

Day 130: Actions

Well today was pretty good, got the action sequence part working and it's ok. Still a lot of issues need more work, but hey at least it works.

The code for moving the avatar to a specific spot, orienting correctly, playing an animation for a specified time and then moving back to it's original position, all while allowing for it to be skipped at any time. This is all in one script, and I think it's a right mess. I used so many boolean state flags to keep track of it all that I'm definitely sure that there is a more simple and elegant way to handle all this.

I have a vague idea for a sequencer structure, that basically takes in function delegates which would be single parts of the big script, executing them, waiting for next and going on until all queued operations are finished. Pretty much a hack job at a cutscene controller or game scripting from SDKs.

Still have to tie all the various components that could make up an action together; animation, menu, and camera stuff all need to be properly sequenced and setup for each action - which I haven't gotten around to yet.

I'm sure there is always a better way to do things, but I won't find out until after stumbling in the dark figuring out my own poor implementation to get an understanding of what ever it is that I'm doing.

Thursday, September 20, 2012

Day 129: Actions speak louder than words

Well it's been two days since the last post. I kind of got distracted what with Borderlands 2 at it just came out. No, I don't have it, neither am I playing it, but I have been watching videos of someone play through it. More and more I've just been watching people play video games rather than do it myself. Partly because I'm poor and can't afford new releases - both in time and money. Saves time playing the thing as you can skip cutscenes, sidequests and all the other fluff and see how the core game works, what kind of levels it has, and the scale of the gameplay. I've watched a playthrough of Sleeping Dogs in it's entirety, it seems nice with an impressive large representation of Hong Kong, but in terms of gameplay and variety there isn't that much to do. For a game it's size it really seems like the developers could done more with the world and given the player more to do and actual involvement in the story instead of the preset story line. But anyways all that is only somewhat relevant to game dev, being able to watch "Let's Play" videos is all the more common and can serve as a hands off demonstration of the game. Being in the backseat should make it easier to make observations and analysis.

Ah well if I can focus, I still have to do the action controller. Nevermind all the huge distractions from just about everything on the internet.

So how it'll work is that from the main HUD,(1) clicking the action button will cause the avatar to walk to the action zone and start a trigger. (2) This trigger will enable a game object loaded with whatever scripted behaviours need be - (3) something like play a specific animation, add the time past by the action and then shut down the game object and return to the main HUD.

All of this really should be super simple, I've already got 1 and 2 done, just need to do all the custom stuff for 3.

Yeah I really got to get my act together, it's not even the games it's just the internet itself is so detrimental to sustained focus. For the simplest stuff it's like: "Yeah shouldn't take long, let me just read this single page comic strip" and it just spirals out of control from there.

Despite my poor progress still have to maintain a good sleeping schedule - staying up to finish shit is acceptable once in a while but get too comfortable doing it and you'll always wake up tired, out of energy, and just unable to work efficiently and effectively.

Monday, September 17, 2012

Day 127: Pathfinding Differences

Not a lot today, I'm resolving myself to limiting my game playing to only the weekends. So when they come around I'll probably splurge all my time with that. Anyways the quickie right now is changing how path finding works and is setup in our scenes.

It sounds like a big thing, but thanks to an excellent middleware solution, the A* Pathfinding Project by Aron Granberg, it's a pretty simple and painless switch. Of course it's only for one scene, but it only takes  5-10 minutes to setup per scene.

The old path finding sampling grid

The new user placed node system
So yeah, just changed from a sampling grid to user placed nodes that auto link by distance. The nodes render in the game at the moment, but it's an easy fix to just mass select them since they're all under one parent, and then disable or remove the mesh renderer component. Probably disable, since it is useful to have a quick visualization when needed.

As for tomorrow, when I commit really to working on this I'll be working on a sequencer for the various actions that the character can do in the game.  It shouldn't take long, but programming rarely goes as expected for me.

Friday, September 14, 2012

Day 125 : Well that was doozy...

Well you've been seeing all the props I was making for the apartment, but I never posted the apartment scene here. It's actually been awhile since I've worked on this as the last time I did any major art assets for it was in July. August was eaten by another project and then a failure of motivation and effort on my part. I meant to post these screens right after making that last post, but my family dragged me out for a vacation for the week.
The kitchen, empty, uninteresting, and setting the standard for what's to come.
The kitchen, got a ton of empty space to fill in and make interesting. Also there is something wrong going on with those cabinet doors.
Dining room
The dining room, and again a common reoccurring theme is that the rooms will look sterile and empty. I have to work on some minor props to litter the scene and really make the apartment feel lived in.
Living space and floating main character
The main living area along with the main character, which was not done by me. It is probably the most flushed out room so far, but there are pathing issues to work out and some extra props wouldn't hurt. I'm also not that satisfied with the ceiling, as those indentations have some odd lighting artifacts.

The foyer, the way out of this mess.
The foyer, it could do with some actual footwear / a coat hanger / welcome mats and rugs / a side table to help make it seem less lifeless. I also could do a different style door to indicate that it is going out of the apartment.
Living space view 2
Here is the living room again, with a closeup of the potted plant. I was pretty proud of myself when I made that, but now I'm not so sure it's any good. Either way I'll get lots of practice doing plants and vegetation soon - one of the next environments is an outdoor park.
The balcony, what are the neighbors up to?
The view from the balcony. I need to get some deck chairs and figure out something for the sliding doors when the avatar walks in and out of the room. I also need to get a skybox together, as the big grey emptiness has to go. The game also has a time of day system, it's not real time, but still that means that I'll have to figure something out for controlling the skybox and the ambient and direct sunlight.
A box in the sky
Overview of the balcony. I've got other apartments duplicated to modular build the apartment facade with the insides taken out for performance. The camera should never really focus on them so thankfully I don't think I'll need any new props to help differentiate them, but they are there so any oddities with camera movement don't show awkward clipping.
The view to sea, with nothing to see.
A first person view out to sea. Yeah we really need a skybox here.
Bedroom
Yeah I'm no interior designer. The wallpaper is pretty ugly and the tiling can be noticeable. Also missing curtains or blinds or anything to drown out sunlight.  Maybe some small props like a digital clock and a storage box at the base of the bed would help. Getting a digital clock to mirror the in game time would also be great, just that my experience with 3D text in Unity hasn't been the best. (It doesn't backface clip and renders on top of geometry so you'll always see it from the wrong angles.)
Bedroom view 2
The other side of the room, looking into the main washroom.  An issue that will likely be raised in the future is when the characters go to sleep. We have the animations for it, but I'll need to either replace or deform the bed sheets to fit around the sleeping characters if we show them.
The main washroom
The mirrors are another annoyance, at first I found a script that generated real time reflections so that they functioned as actual mirrors, but it was rather buggy since I had two mirrors in the scene for the two washrooms. They also took 50% of the computing power when running the game and lagged it down significantly. Needless to say I cut those and replaced them with a simple cubemap reflective shader for now. I'd like to come up with a better solution, but there are other issues to work at first.
The secondary washroom
Broadway's paintover critique
The mirror manages to perform worse. Counter also looks terrible with the nasty seams. A helpful chap named Broadway over on polycount helped me out with a paintover critique of the room. Well the difference in current state and what it could be is obvious. Still a ton of work to do, and then still there are two more unique environments to do. Hopefully I will be able to reuse a bunch of assets.
The study
The book cabinets where meant to be much more unique and interesting with different colours and text to help build a diverse library. Each stack is meant to be rearranged and have singular books clip in to help build z-axis diversity. But I rushed it and never went back to give it the proper attention I had planned for. Again the scene looks pretty barren.
The iPear, master tool and time waster
Part of the game will have the player sitting down at the desk to answer questions and buy things. The design calls for the camera to shift into first person view while doing so. Here's the view as it is now. ... Well I tried to do low resolution and low poly props, but it's extremely obvious, blurry, and awful here in particular. Iterative design time it is then, as right now these are a must fix.
The hall to the study and washroom
A picture, a decorative table with a flower pot? Anyways this probably needs something, but I'm no interior designer.
Apartment Overview

And that is it for the tour right now. Still a ton of renovations and prop building/fixing/editing to do. Back in July I'd liked to have called it done, but as you can see it's not living up to the potential of what it could be.

Anyways this'll conclude this return to blog posting, hopefully I'll get daily updates going again. I'd like to fix up the apartment starting now, but at the moment there are programming issues to get to first.

Friday, September 7, 2012

Intermission - Took a side project

So yeah I haven't updated this in about 2 months. But I can at least account for one month. Starting late July I was contacted by some friends who were working on a sequel to the iOS shooting game and needed some people to do some gun models. Well a paying job that asked me to do what I enjoy to do on my free time? Sounds very good to me.

I was working on a contract basis, with fixed payment per asset delivered. With the time I spent on each asset I wasn't making a good return on my time, earning probably below minimum wage here in Canada when I took into consideration the hours it took to build each asset. But up until now, I had been making  game ready 3D models of guns for free giving away the models I made for anyone to use. It felt good to step it up from a hobby, and have a commitment to maintaining a high standard of quality in the assets delivered. It was a good opportunity to study my own workflow, and let me know that I still have lots of room to improve.

Anyways the game isn't out yet, but when it is I'll be sure to post back here a link to it, and pictures of all the assets that I did for it. So that took up most of my August, and I didn't get as much done on the educational game as I'd like, but I'm back on that now.

Friday, July 6, 2012

Day 55: More Props

More props done. Now to move onto textures, plus some other tweaks. Then the room textures.

Monday, July 2, 2012

Day 51: Prop Building

Making props, everything is normal mapped, baked from a high polygon model onto a low polygon mesh and is in the Unity game engine. Most are missing textures though, so I still have to make those as well as create more props.
To make:
potted plants, sliding cabinet doors, bed, wardrobe, curtains, sink, mirror, bathtub, kitchen counter and sink,
kitchen islet, windows, balcony door, guard rail, office desk, office chair, pictures, computer, dome light, chadelier, light switch, patio chair, door, shoe rack


Then to texture all the untextured stuff & room textures (floors, walls, ceilings).


Position everything & tweak room dimensions, then bake lighting and hopefully it doesn't look bad.

All this by Friday, go, go, go, go!


Tuesday, June 26, 2012

Day 45: Apartment Blockout

Blocking out the apartment scene using basic 3D geometry. No fancy lightmaps here, just a ton of stuff to do. Everything in blue needs to be modelled, unwrapped and textured, so a lot to do this week.

Tuesday, June 19, 2012

Day 38: More Props

Gotta keep the texturing up to speed with the modelling. Couch, cushion, and vase are new. Table got a unwrap and bake, but needs textures, and the fridge and stove I had from awhile back but they don't have an unwrap yet.

Doing art assets is in my opinion a much better experience than coding - less frustration and neat pictures to show everyone when your done.

Monday, June 18, 2012

Day 37: Props And other pretty stuff

Chairs are pretty much final, gotta do the UV unwrap for the table and fridge and then texture them.

Sunday, June 17, 2012

Day 36: A shiny new look

Lightmapping and Unity Pro is pretty cool. Improved graphics are nice. Still a lot more to do though. And figure out a way to get some dynamic shadows in the interior without using all the lights used for lightmapping and killing the performance.

So GUI, animation (since I'm not quite satisfied with it at the moment), art assets, adding in game logic, etc. etc, learning Unity pro features, ah so much to do.

Tuesday, June 12, 2012

Day 31: An Evaluation of Remaining Work

Well here's the end of month 1. Progress slipped pretty hard that one week ago, but I'll just have to work harder to make up for it. So anyways, now is a pretty good time to step back and figure out what needs to be done next.

What we have now:
- Moving / Pathfinding and navigation, Thank you Aron Granberg, you have made an excellent implementation of A* in Unity.
- Animation, all the animations can be played along with any effects specific to that animation (Fade in/out, rotation of origin axis)

What we still need to do:
- Levels, setting up the level layouts and the underlying flow of things.
- Level graphics, we have the 3d scenes, but they need some polish before going in game.
- GUI, Unity's stock GUI isn't the most user friendly to setup and work with.
- Menus, they are kind of extensions of the GUI.
- Sound, it's been rather neglected, and I don't really have any ideas about it.
- AI, I'm not quite sure what I would be trying to implement.
- Mini games, well these weren't my responsibility, so I suppose all I need to do is make sure they integrate smoothly with everything else.

Alright, well by this list, looks like my next things to do is getting the level layouts up, then working on the GUI and menus. After that, well I'll figure it out when I get there.

Wednesday, June 6, 2012

Day : 25 Back on this train.

So yep I didn't do shit for about a week, oh well. Project is now private on Github, had to learn that, although just ended up using the rather simple looking github for windows client.

Tried to right my own A* implementation but I wasn't able to figure out which heuristic calculation to use, said fuck it, and just brought in a free implementation instead.

Upgraded my working version of Unity to 3.5.2, and it managed to break all the animations, so had fun fixing all that crap again.

Anyways I got an objective of having a working base of the game mechanics by Friday. And almost every system is ready to go, with the exception of fancy animated GUI buttons that drop in and out depending on context which shouldn't be too hard to code, but it's not all packed together in one scene.

I just need to get around to packing this all together so it vaguely resembles a game.

Oh and the project is now supposedly turn based, I think, it's past the point where I care anymore.
Since there is only one player all that means is that instead of the game world clock updating by itself every frame, it just waits for the player to do something and gives a time cost for that action - which was already in the original design. It's not really a major change up, so yay I guess.

Back to the mental block that is what am i doing wasting time not doing this what should be simple demo gameplay scene. I just need the player object, the A* controller, some obstacles, a GUI object for the prototype menu, and a demo of the animationss. Alright alright, should be able to do this, to fight procrastination, don't think just do, it'll turn out to be shit, but whats important is keeping momentum working to make it not shit once I've started.

Thursday, May 31, 2012

Day 18: Triple Nothing

Totally unrelated to game dev, but I've been making diagrams for my mum. So it's still nothing, but with a neat picture.

Tuesday, May 29, 2012

Day 17: Nothing

Nothing to report today. I know I could just not write anything but eh, at least I'll have a day to day track of what I've been doing I guess.

Monday, May 28, 2012

Day 16: Nothing

I am pursuing other projects at the moment. No progress relative to any previous work here.

Sunday, May 27, 2012

Day 15: Git Woes

So the project I'm working on has decided to use Git for it's source control solution.

I was like, alright, it's cool I guess, I've never tried Git, but I've worked with Tortoise SVN and Dropbox, maybe it'll be as simple and friendly to use as those?

Nope, the more I read the more it seams that it wants to be a console only application where you have to explicitly type everything to get anything done. Yes, there is a GUI version, but all the main tutorials totally ignore it and focus solely on using the console version.

<begin entitled rant> Man it's 2012 already, what's with using console applications to do stuff, it's not very user friendly and just creates a barrier to entry because people have to actually dig through docs to figure out how to accomplish simple tasks instead of experimenting in a GUI environment.</end rant>

Alright, off to figure out how to get a simple text file to commit to the damn online repository.

Saturday, May 26, 2012

Day 14: Reading up on A*

Well I've worked on implementing the A* algorithm back when I was in high school, in the Turing language, but  it didn't end up working. So here I am, looking into A* again, hopefully 5 years the wiser.

Guess I can put up my implementation of it up later, if it works, and if it ain't a terrible pos. Anyways off to do more reading, figuring out both A* and now how to use Github too.

Friday, May 25, 2012

Day 13: What am I doing again?

So not much coding progress.

I should be working on something, probably the character controller that makes the avatar walk from one node to another, or any specified node. I don't know what I'm doing, but hey thanks Wikipedia and Dijkstra's algorithm - I should be able to get something that works if I can concentrate. Put it together with the animation stuff and hopefully it'll all play nice together.

I'd like to think that if I knew what I was doing, I'd be done by now.

One thing at a time, but there is just so many things to do.

Thursday, May 24, 2012

Day 12: First Patch Job

Well basically I blew all of yesterday playing Beyond Good & Evil, but I did talk with the animator about some issues that came up about the animations because of late changes in the design.

Basically because the original specifications never included facial animations, the rig maker never included any sort of facial controls in the animation rigs. So now that the design calls for some eye blinking and minor facial expressions the rig must be redone in order to properly animate it. This complicates a lot of things because if the animation rig is changed, then the models will no longer be able to share animations between versions. Basically every animation would have to be redone in order to get the same effect.

So in order to skip the large amount of misery that it would bring to everyone involved (redoing every animation, me having to reexport/import every animation, and blowing a bunch more weeks doing this) I suggested that the animator only use the new rig for animations that call for facial expressions, and then they would be used in the game as a special case that would replace the regular model with the newer model & rig. This loses compatibility and creates some duplication, and if more animations need facial expressions then it becomes less and less worth it, but for now it'll be the quickest way to get things done.

As for me, I figure I'll get back to making the animation controller which I think will probably just be an extension / wrapper for the regular animation component. After that I think I'm back to the art side of things -> exporting and importing the apartment models.

Wednesday, May 23, 2012

Day 11: Animation Controller Design

Alright, it's time to design the real animation & character controller classes now that the testing version of the animation controller is sufficiently done and out of the way. Since I don't know what exactly I am developing and any unknown functionality that will need incorporating I think it'd be a good exercise to go over the intended uses of such a controller here before starting to code. 

For an animation controller for basically a 3D point and click adventure game it should probably have:
  • The controller has to have a public method for switching animations, probably by name, or checking a list of all the animations available to that character.
  • The controller should be able to recognize what the character is doing, moving or standing still.
  • It should be able to fade the screen when it needs to for certain animations or clothing changes.
  • It should be able to add or remove props that are used for specific animations. 
  • It should be able to tell if an animation is part of a set and then transition automatically; crossfading when the animation is part of the same set, fading the screen when it is not.

Tuesday, May 22, 2012

Day 10: Animation Switcher

Got more coding done. Squashed all the bugs / missing features / incompetence issues I mentioned back in Day 8. Although the code I have written has grown into a monster of spaghetti code.

The editor interface allows a lot more control for how the animations are played and transitioned with , but it takes a lot to setup properly.

Pictured is the interface, but it doesn't have every animation setup since that would be a pain while I'm testing new features. Anyways tomorrow forecast is more tweaking, setting things up, and then recording a video of it all in action.

Monday, May 21, 2012

Day 9: Nothing new

Well today was a day where our family got together, and as a result nothing got done.

Sunday, May 20, 2012

Day 8: Back to coding


Well it took a week but now I'm back to coding, working on a throwaway testing system for animation control. Doesn't work right now, but I'm hoping to get it working with a video of it in action by tomorrow. Right now I'm having troubles getting Animation Clips to assign during runtime so I'll be doing some research on that. GUI is up, but not the meshes.


EDIT: Alright got it working, but there is some issues that'll have to be fixed.
- Wife animations aren't full set and need to be reexported, le sigh, in order to use the same skeleton so that animations are not cloths specific.
- There is a bug with the swimming animations that flip the rotation axis, to fix just switch the cloth set to reset the axis.
- Animations that use props, eating, gym exercises, etc, need to be added in during run time and synced.
- No support for screen fades if desired instead of crossfading animations, which I must admit looks better than I expected it to.

Saturday, May 19, 2012

Friday, May 18, 2012

Day 6: Almost Done Exports/ Imports

Importing the character assets is finally coming to a close. I was able to get rid of the namespace renaming that prevented different clothes versions from using the animations from another clothe set, so any clothe set can use any animation for that character. I also started tweaking the character materials, adding a skin shader for skin since regular diffuse shaders don't light skin properly. Also figured out what was going on with that war paint on the wife's face. As it turns out when exporting the UV u channel got flipped so what I was seeing was upside down eyebrows, a quick flip of the texture solved that and its looking a lot better. The wife character has more quality and work put into it from what I've experienced. 5 different materials just for the eyeball, while on the guy it's on the same texture sheet as the rest of the skin.

By tomorrow I should be able to totally wrap up the export / import process as well as mop up some bugs and figure out how to add in props that are manipulated through the animation via script.

Thursday, May 17, 2012

Day 5: Refinements to the Import process

 Well it should be able to interpolate between animations but I'm betting some will look really odd. 
Working with other people's meshes often brings a lot of "what where they thinking?" moments, see: polygon density on those boots, no texture for the white jacket dress thing, the interior of the jacket does not have any polygons and is not double sided so it doesn't render anything, the body doesn't exist under the clothes - which would be fine if there was polygons closing off the clothes as mentioned right before. And then I curse my own lack of knowledge of rigging in Maya, because if I knew how, I could modify the mesh myself and then re rig it and be happy. 
Now for some good news, bad news.

Good news! I figured out how to save only animations to file and get them to import and automatically link to the reference mesh. This cuts out huge amounts of lag in the editor and keeps the file size down as the files are now 2mb instead of 10mb per file.

The bad news is that to reap the benefits of this I have to go over all the animations and re export them, again. And Maya is a dick program - want to rename the namespace in this file so that it matches every other animation file? NOPE you don't get to do that, deletes the desired namespace automatically. How about creating a new namespace using the desired name? NOPE have fun shitting through bad documentation and not a single GUI method to create a namespace.  Developers: Oh hey lets throw in a shitty feature that arbitrarily decides which namespaces are valid or not to piss off that one guy trying to figure how match them between files. 

The only way I got through that doozy was to import the file with mismatched namespaces into a file with proper namespaces and then renaming decided it was ok to work.

Next time : Endless asset exporting!

Wednesday, May 16, 2012

Day 4: Dropped Game Dev now into Imports and Exports

More animation exporting, the process is not instantaneous as it has to bake animation down to the .fbx file. It is slow and boring. I have not even finished exporting all the animations at the time of this writing, and haven't gotten to testing them inside the Unity engine either.

I could be writing the animation control system code while the exporting runs in the background, wait why am I not doing that. Ah I'm an idiot...

Tuesday, May 15, 2012

Day 3: More Animations

Well I thought I was done importing animations, but I just got a package with more animations to put in game. Most of it is just the same animations, but with the character wearing different seasonal clothes. Didn't get anything done on the animation control system, but I should probably work out all the details before starting to code anything.

What I'm thinking of doing for testing is just a little app with two drop down menus, one for choosing a character set, and one for the animations in the set. When the animation is changed to one that uses a unique prop, or has no animated transition then the screen will fade to black, the model and animation will switch, and then the screen will fade back. Otherwise the animation will just tween between the old and the new. So what I need is a list of character sets, with the relevant animations that each have their own transition and prop flags.

Taking some advice from John Carmack and his post about Functional Programming I'm trying to follow the techniques outlined there. I think packaging the state data( character set name, animation name, uses fade flag) in a struct and passing it to a handler behavior is the best I can manage right now. The handler can then create the new components and remove the old ones instead of modifying their pointers. The handler would also call the start to fade if needed and then listen for when it would be appropriate to do the switching.

Well it'll be a busy tomorrow, since this was all just a fancy way of saying I got nothing done today.

Monday, May 14, 2012

Day 2: Finished Importing

So  I'm done importing all the character animations, now just to put together the switching and animation control system.
 Although it is tempting to be sidetracked into editing the textures:


War paint and a blank icy glare, perfect for a young newly wed couple.
Hmmm, well I'll get back to it when I get the time, or better ask the artist to tweak, although I'm not sure if the files I get back would be better or worse.

Sunday, May 13, 2012

Day 1: More animations in game

Well aside from Mother's day stuff I didn't get much done. Did manage to finish up importing all the animations for the Husband character though. Only the Wife and the Doctor left. The Doc has only one anim, but there is some duplication of meshes in it's file that I'm trying to remove before being satisfied. I'm going to get started on the Wife as of now, and finish up tomorrow.
Most of the husband animations - when it doesn't need an extra prop, like a bowl or workout machine, I can tell a model to use another model's animation and it'll work. So no need for model switching for some animations, only for ones with new clothes or props. I hope to put together a little scene with a GUI that tests the switching along with proper screen fades synced to the swap.

Saturday, May 12, 2012

Day 0: Starting Up

This is an effort to discipline myself by making the process of developing a game more accountable and transparent. I shall strive for daily updates that show progress made on the game I am currently developing. The game has been in development for a few months now, and development often slips. Although we have no formal deadlines, this cannot go on. Arbitrarily I hope to be done with this in two months time.
Today I started importing our character animation files into the Unity game engine. Each animation for each character (3 characters in total) was given to me in a separate Maya file. A problem I ran into was that the animator had changed the name of the objects in the scene for some files by adding a prefix on every single bone and mesh. When imported into Unity, the base mesh would not play these animations because the prefix caused a name mismatch. Maya provides a tool for finding and replacing strings in object names, but this failed to function as intended so I had to search for a third party script. Odd that such an expensive software lacks a function that simple notepad provides. The script I found, written by Rod Green, is excellent, along with his entire blog: Maya Renaming Objects Script. With that solved I can move onto the next inevitable headache.