Posts Tagged ‘Flash’

On an Uncontrollable Break

So I’m in bed, sick with the flu, trying to preoccupy myself with writing and thinking about what movies I might need to catch up on. I still haven’t seen the new star trek movies which is pretty old now but for me, it will be new.

Until last Friday things were busy as usual.

Another milestone for project DeathSpuds has been completed. This milestone saw the implementations of barriers and doors, the base code for flying enemy AI and persistant level data saving.

The barriers were designed to take into account resistance to certain types of damage. Such as being able to use a flamethrower on a barrier that melts, but is resistant to regular bullets. It’s nothing fancy, but it should pose some interesting challenges for the types of weapons that will be made available and the barriers responses to these weapons.

The Flying enemy is currently a basic implementation. Rather then using the Unity NavMesh, its using a Node Graph which is built as part of the AI System that was used with the Freeplay Demo and prior to us having pro licenses. The node graph is so we can control the navigation of an enemy through 3 dimensions of space which are basically waypoints which contain specific properties. Currently they fly around aimlessly trying to reach a particular node, and the buzz about in the space defined by those nodes. You can also shoot them down. Eventually it will support behaviours much like regular enemies such as attacking and patrolling.

The system for the persistant level data is pretty standard. It correctly writes out an XML data file which we can visually be read and checked of any issues in the writing process. The system is also designed and structured in a way to allow for multiple file formats to be supported, such as reading and writing to generic text or binary. This is something pretty important considering we don’t want people to be able to modify these files and cheat the game as it will also be apart of storing the level information for the player’s save game. And writing out to a file format such as binary is a good way to minimise that.

Since milestone completion, I’ve been mostly in bed, trying to get better and helping Elise with some T-shirt designs for a Minecraft competition. Occassionally doing some typing. And catching up on some games and movies that I’ve been meaning to watch for a long time.

I have also been working on a game and doing some re-work thanks to some recent trends which has been keeping me extremely busy. The jist is that releasing our flash framework as well as providing tutorials for it and other flash components is not what I would consider a viable thing to be doing right now.

In the last few month Adobe has been making a few changes with Flash that don’t necessarily align with the goals of some flash developers. Leaving some of them with a bitter taste in there mouth. Unity has also dropping support for there Flash Add-on which doesn’t signify good news.

The problem stems from the requirement of Stage3D originally being planned to enforce “royalty” payments of the runtime to developers who are also using another service known as Domain Memory, basically these two services together allow for improved performance of Stage3D, apparently. In terms of a business plan this is reasonable, but not when the means of enforcing such a plan is undeterminable. This plan was eventually cancelled in the end because there was a lot of speculation about how it could of possibly have been enforced, when these two services are free to use by themselves but not when together. The general sentiment from a lot of developers was that it’s not possible. The whole thing since then has Flash feeling unloved, and unsupported.

So I will be porting the code out of flash and into another language putting most of the grunt work into a perl script or even C# to handle the majority of the conversion. But sometime in the future, not right now. It’s unfortunate considering that flash has been a very useful language to use to develop a lot of our ideas and we will continue to use it, but it has become an uncertainty in what we would like to deliver in the future, or our grand plan.

But until time permits, I’ll been focusing more energy into developing Unity based games.

I was also sick a few weeks beforehand, not for very long or as exhausting as the current flu is but caused by something moderately humorous.  It came about around the time of the live XBox One announcement, which I was watching. Lets just say I was less then pleased with what they were offering, considering where I’m from is Australia and the service they talked about meant nothing to me. Although some of the features I found genuinely interesting and would love to see how it panned out for the future of the device, the whole experience left me feeling literally ill. I ended up in bed with a fever that night, freezing cold, and with burning temperature (of rage!!). Coincidence? Possibly! I was down for a day and back to normal the next! Regardless, hopefully XBox One is not as bad as some of it all sounds, and Microsoft is putting a lot of work into it. So there’s no denying that the release of the XBox One will make for an interesting year. We’ll all see how it goes.

But that’s enough from me I guess, this is gotten to be quite long and I suppose this is what happens when I don’t update regularly. So I’ll leave here.

Hope everyone is looking after themselves!

Keeping Busy – Deathspuds, Animation & Painting

So I’m hoping to make “things I’ve been up” to a more regular thing on my blog. It has been pretty hard finding time to write and revise some good useful articles which I’m hoping to post soon. But until then, rather then writing something useful. I figure I’ll just write what I’ve been up to. At least that way this thing gets used and maybe some of the stuff in it may be useful, and/or even interesting!

So what’s been happening recently.

I’ve recently completed Milestone 3 for DeathSpuds. 

This milestone saw the implementation of Enemies which can melee and/or shoot projectiles at the player while moving through a level. The behaviour was a little bit whacky at first, mainly because I tried to condense the melee and Projectile shooting into a single Attack State but it just made it as confusing as the AI was behaving.

I ended up splitting the Melee and Projectile shooting into 2 separate AI States. It made more sense considering the Enemy would either do one or the other or both. And it was easier to determine when to switch between or leave these states by checking per state, rather then all in one.

The enemies also avoid walls now to. The also find a way out when they get backed into a corner.

Enemies that also just specialize in shooting projectile will also maintain there distance, running away when you get to close. Ones that can do melee will move in if you get to close to them. At the moment it’s set to be 3/4 of the closest possible firing distance. I’ll probably end up tweaking this or even making it an available factor in the Unity inspector to get better control over this distance.

This milestone also saw the implementation of enemies spawners, such as enemies spawning from a point and out of the ground. This presented a small problem with Unity’s Mecanim, which is handling all of our animations. It just doesn’t give you much control over using a single Mecanim Animator Controllers which defines the animation behaviour of a character given certain values, at an initial starting state. Forcing you to duplicate the controller file, renaming it, and setting a different starting state.

For example, one of our enemies can spawn out of the ground and also just be standing idly in the scene. But in order to do that, your need to define 2 specific Animator Controllers for the 2 different types of starting states. The controllers are basically identical, accept one has it’s initial starting state as “Idle” and the other as “Spawning”. It would be nice if it were possible to force a particular state onto the animator for purposes such as this.

I know it doesn’t sound like much but imagine making adjustments to one and having to duplicate and set the starting state. Now imagine doing that a hundred times with just minor adjustments over a long period of time. It would get quite annoying.

In all the Enemies are pretty fleshed out and it’s going quite well. I can see some issues popping up which I’ll probably address if and when they arise, such as line of sight  of projectile shooters with enemies blocking the way. But it could just be a matter of making them simply move their position, I doubt it… but here’s to hoping it is.

There was a whole bunch of other things which went in. A lot of which was for to improve performance at run-time for the first level. Which Josh has made to look damn awesome. But I’ll leave it that for now.

Today, I also integrated some core animation components into my flash framework. It hasn’t been much of a priority before because most of what I was doing with flash was being driven by code or physics. Since I’ve been working on point and click / hidden object engine, having a means to control animations and animatable things has become pretty important.

My goal was to have an item you clicked from the scene move themselves into the foreground, and spin and fade into your inventory. I ended up implementing an Animation Manager that let you pass in Animates, basically animations that define a particular behaviour, such as spinning and fading. Basically setting values on this animates and passing it to the Animation Manager will cause the animation to occur.

I also had to make sure that it was pretty easy and straight forward to do for people who may end up using this engine the future. Mainly Elise. The way you use it was kind of inspired by how you use [UIView beginAnimation] in the iOS Core Animation Framework. Of course what I’ve implemented is nothing compared to how Core Animation actually works. But I based my design purely on it’s ease of use, minus the static call.

I’ll most likely be tweaking this over time and adding more features to it and even more animate types but overall I’m pretty happy with how it turned out.

I’ve also been doing some digital painting for the backgrounds in our game.

Point and Click Background 1

Elise did most of the line work for the painting. I’ve just been colouring it in. It’s a work in progress. We’re still working out the final look of some other areas, so some things are likely to change.

And that’s what I’ve been up to lately.