Monday, October 31, 2011

Simple CA Grid

I cleaned up my CA grid experiments for Unity and stuck a video of the resulting general tool kit on YouTube.  At this point, the code will need to be hand tailored for use in specific games for special functions.  Really, the video just sort of highlights a few things that can be done with a grid system. 

The nice part about the grid generator is that grids are automatically built in the editor and saved as prefabs.  This means all the long calculations are made ahead of time, and the scene itself loads and runs very quickly. 

In addition, I included a grid editor tool that lets the level designer save any changes to a grid that they have made manually into an xml file.  This is handy because a visual grid with designer defined walls, soil types, etc. can have it's values saved into one file and a second invisible grid with special CA, path finding or other mechanics can then load that xml in editor to set itself up to make use of the custom form.  Again, this all happen in editor ensuring the scene loads and runs super fast in game. 

I've packed up the optimized collection as a starter kit to use whenever a grid generator or CA system seems like a good approach in my future AI work.  I'm debating releasing it to other developers, but it may fall into that gray area of "If you understand it, you don't need it.  If you need it, you won't understand it enough to use it."  Perhaps once I develop a specific form I'll release that along with what will likely be a larger collection of interlocking components.  Still, if anyone would like this kit, let me know and I'll send you a copy.


In other news, it has been decided that the next game Paul, Kyle and I work on will be an action adventure game staring one of my more unusual characters.  While we were thinking of doing Cow Catchers earlier, this as yet unnamed title is more in line with what we have all been wanting to work on and its art style is more accessible to our low budget and lack of full time artists.  A lot of the art will also be driven with code and physics, which will also play well to what we like to do.

Currently, Paul is working on a single stick character controller (similar to those found in classic 3D Nintendo games such as Mario, Zelda and Pikmin).  Kyle is tackling a camera system to ensure the view does not kill the game.  I am prototyping various ways of handling the rather plastic form of the main character.

Specifically, I am looking into code driven mesh structure, mesh topology, advanced skeletal structures, code driven deformations/movement and character animation.  It sounds a bit complex, and it is, but I'm sure I'll be able to break it down into something workable.   This week I'll be at Youmacon in Detroit MI, so I won't have much time to dig into the code, but I'm sure I'll have some potential topologies drawn up by the time I get back.

Monday, October 24, 2011

Maximum Chaos Is Done!


Sorry for the lack of updates, but since I have had no indication that anyone even reads this thing, and with crunch time in full swing, I just put it aside while finishing the game (wow that's a long run-on sentence).  If anyone does actually care about that time period, I did pseudo twitter my work flow on facebook and could transcribe the highlights here.  Let me know you want to see them, otherwise I'll be putting my time elsewhere.  The reason for the rush was to get Maximum Chaos into the Independent Games Festival for 2012, and we have done it. 

You can download and play the game 100% free from maximumchaosgame.com.  It runs on both Windows and Mac OS, 32 or 64 bit.  You can play with up to 3 friends (4 people total) by connecting USB port game controllers, but a special controller is NOT needed for single player.  Maximum Chaos isn't a huge power hog, so it should run without trouble for most people.  Just for reading my blog, I'll give you a cheat.  Click the little sun on the splash page to instantly unlock all levels and story chapters.  I'll be spilling the beans on some Easter Eggs at later dates as well.

The website for the game is pretty bare bones right now.  Only enough to let you download the game really.  I'd like to find a student to make the webpage so they can use it for their portfolio.  I know one who was interested, but he has yet to show me anything, so I'm not sure if that will go anywhere.  For now, the simple and ugly will have to do.

Monday, August 29, 2011

October Deadline

We have set an October deadline for Maximum Chaos so that it can be entered in the Indies.  The game is at an exciting state with most of the core functions complete and focus turning full swing to the assembly stage.  My job right now is to make a few code tweaks, build a pile of enemy prefabs, and pull together some loose ends art wise.

A demo of Pharmaceum has been sent for review and with luck it will get the funding to be completed as a full game.

Tuesday, August 9, 2011

General Update

I got a huge chunk of new code built for Maximum Chaos that makes enemy and event handling both easy to work with\build and very flexible for use with all sorts of scripted special events and such.  It covers some of the more standard things like spawning, clean up, triggers, conditionals and the like, but also includes a special piece that controls the game's portal for some more... interesting mechanics.  If you've plaid the pyrite version prototype on my website, then you have seen the portal, but it didn't really do much in that game beyond waiting to be killed at the end and sending players to the next level.  The new one will engage players a bit more, though I'm not wanting to give away too many details just yet on that. 

I have a few final adjustments left on the core enemy and event system, and then they will be complete.  As they stand, the level builders (Kyle and Paul) can start building with them without having to rebuild them later once the new features are in place.

I'm waiting on some art assets from a few people.  Joe was working on an upgraded cubicorn model and rig, but I have not heard back from him in a few weeks.  I'll have to poke at him a bit on the matter and re-assign it if he is not able to find time to complete it. 

The original pyrite version's story book artist, Ian, wanted to finish the art panels for the new extended game story, but I have not heard from him either.  It's only 15 slides, so if for some reason he is no longer able to work on them I'll have to use my skills in ripping off other peoples art styles to create the rest.  The new story also makes use of a level selection map, and that needs to be created as well.

Once I get the event system finished, I'll be building the enemies themselves and bringing in some more of Stephens 3D assets.  All in all good progress, and with the summer semester coming to an end, the other team members will be getting some more free time to work on wrapping this project up.

---

Pharmaceum is coming along.  The back end is working, the app for editing the back end is done and I am just putting together the high score table system before sending it back to the client for review before continuing work on the game play itself.

Tuesday, July 19, 2011

Overdo Update

Yes, it's been a while, but a lot has been going on that is... well boring.  Rather than droll on about the "blah is in progress" I figured I'd wait until I had enough worth talking about.  It's not like anyone actually reads this thing anyway, right?

Anyhow, Pharmaceum's up-loader is basically done, but although I built in some simple help systems it is not proving to be sufficiently user friendly.  The person who I first worked with when making sure it was functional was able to use it, but for whatever the reason, the person using it at the moment can't get the question's to upload.  It may have something to do with the fact that they are using a Mac, though I would not expect that to be an issue.  Perhaps a hidden firewall is to blame.  Regardless, it looks like I'll be sinking more time into the up-loader and adding additional error feedback.  Eventually I'd like to make the up-loader super easy to use with external saves, a tutorial video, etc., but I'm trying to fit as much content into my free work time as possible before I have to start charging and these are sort of bonus features... though I might throw that in for free later if I get paid for some work in the mean time on the actual game.

Before I found out about the up-loader trouble I switched to working on the actual game again.  It now is fully converted over to the new database system and works great.  I was even able to add some nice new features like dynamic category addition and the option for players to build a quiz from up to 3 different categories at once.  Why 3?  It seemed like a reasonable number that wouldn't bog the system down too much.  I want to add a maximum question choice box, and a matching set of high score tables, then it's all candy coating and polish.  I did take a little while to get a feel for how fast I can draw/animate for it (while making some new assets) and pretty much concluded I'm still kind of slow at this.  I'd like to get an artist on board again(the original artist only staid for the duration of the Jr. Project Class), but then there is the money thing again, I have to have something to offer them.  I really do need to get over this feeling weird about charging people for my work. 

Overall though, the hard/boring parts of the Pharmaceum game are basically done.  I'm about to start charging for additional progress and that means I can crank up the production schedule and actually get this thing finished up...  I really want to see it with 3 fully rigged characters.

In other news, Maximum Chaos is starting to get exciting.  The horror of cleaning the art assets is basically done (minus small things we fix as we find while level building).  I built a new control system that uses the keyboard and mouse, which was much needed.  Another team member is building a new Medieval level that is a bit less linear than the original, and I am working on the rebuild of the Old West (with some slight spacing changes to allow for more diverse battles).  Once these first 2 levels are set, I'll likely switch my time back into coding some of the new play mechanics.  I also have a set of new art assets and animations to integrate.

All in all, not a bad chunk of progress.

Saturday, June 18, 2011

Good Progress

Some good progress was made this week on many fronts.  I've been able to find a few resources on the syntax I need for connecting Pharmaceum up to the Amazon SD, and although it requires a few odd workarounds, the data systems are coming along well for both the new question publisher application that needed to be written and the game itself.

I was sent back some power up artwork for Maximum Chaos, and have been cleaning the new set up for bringing into the game.  I also got back some adjusted characters.  Currently, I'm waiting on the last asset set to be sent to me by the person who is cleaning them, a set of characters in .max format with animations because .fbx is freaking out on import for the person who was going to add some new animations, and a newly rigged and upgraded Cubeicorn ready for animations by another artist.  I especially look forward to seeing what is done with the Cubeicorn as Joe, the very talented artist who is working on it, has the tricky job of turning a very cartoony 2D form from the game's comic pages into the actual game plays more realistic 3D style.  The early form of the Cubicorn was done by another artist, but it just doesn't fit well with the rest of the game yet.  It's not too surprising, the other 3D artist made the basic Cubicorn during the party celebrating the completion of the prototype pyrite version of the game (and it was placed at the end of the game last minute as a cadaver).

Steve Grand finally responded to my e-mail about Grandroids and polity cited that he works alone, always has and always will.  It's a darn shame I don't have the money to get access to the development forms since he will be releasing the games dev tools there for 3rd party support even before the game comes out.  I suspect this is his answer to making sure he has enough game content when he finishes his project.  Not a bad idea given his background in building similar tools for the Creatures games and his own personal use.  Still, I wonder, as one of the most prolific 3rd party producers for Creatures, several others swearing off AI and even others lost to tragic early deaths (I'll always remember you Mr. Pike), will there be enough new devs with the money to join the community and give the game a jump start?  I'm hoping so... now that I think about it... I never did release my really big mod for Creatures Docking Station (school got in the way)...  it was pretty cool too, involved some new forms of AI and phenotypicly plastic plant life... although I used mushroom sprites for it.

I also have an interesting dilemma.  I have a system built for unity that would allow AI to identify objects by a list of traits rather than by class ID's, a big step up from the limits on Norns.  I also have a written explanation of a new type of neural network that could result in activity much more similar to a brain, and then there is my base class for double stranded digital dna crossing for reproduction.  Should I give this to Steve Grand?  Would he even want it?  Should I continue to let it sit in my pile of "If I ever get someone to fund the rest of it." projects?  Should I try to get a Kick Starter thing for my own project even knowing it would take me more than the year Steve Grand was willing to promise for Grandroids?  Perhaps I should start with a smaller game with simpler AI  that I could produce in a year or less and then move on to a big one?  I just am not sure.  For now, I'll just keep putting in job apps and working on my other projects, but what happens in the next few months may set my course for a few years to come.  It's a lot to think about.

Friday, June 10, 2011

One of those times...

This last week as been one of THOSE weeks, you know, where everything seems to go wrong?  I switched over to Amazon's simple database for Pharmaceum only to find that the documentation on connecting with Flash was a pile of broken links.  Then I asked the person who recommended it to me for a sample of their code, so I would have some idea of the syntax.  As it would turn out, this person did not actually have a copy of the code, and they had to ask another person they work with from a different city for the code.  This person was not responding, so they could not send me the code and well...  it was one of those kind of weeks.  Thankfully, the original reference material is back up on-line and I can move forward again.


On the bright side, I did get to spend a day with my very good friend who now lives out of state.  I also got Okami from Game Fly, it's a very nicely made game.  Maximum Chaos' asset cleaning continues to be progressing and an artist from the project contacted me yesterday with the desire to work on things again, which is great!  My strawberry plants are producing very well this year and I have been sharing shortcake with friends and family.  My Grandmother continues to have pretty major health problems and is doing pretty well despite her broken back, but my Aunt who lives out of state is here for a visit which helps takes some of the strain off the rest of us (mostly my mother).

Monday, June 6, 2011

The Reality Sinks In

Well,  now that I have time to recover from an overly excited state at finding Steve Grands kickstarter listing, I can think a little bit more clearly.  I also read up a little bit more on the project.


First up, the funding is over, I missed it and now I can't even see the projects progress... not that I really had the money to spend on it anyway.

Secondly, the man wants to work alone.  While I understand his reasons for doing so, I also see some pretty big gaping holes in the plan, which makes me sad because I don't want to see another game in the genera die.  Specifically, I see no plans for the world or game the creatures are to inhabit.  Really, Steve should be putting his time into the AI systems and have a team member to flesh out the ecosystem and game elements.  The two systems could rather easily be built separately and then fused at the end so long as the person making the ecosystem and game elements understands academic AI well (one set of code for what the player sees, a second for what the creature sees).  (I say academic to distinguish from traditional game AI).  Sure, finding such a person may be tricky, heck I might be the only one, though I suspect if I exists there must be others.

Anyhow, the reality of the situation is, I'm probably not going to be able to work on this project.  The fact that this project exists probably reduces the likelihood I'll ever get funding for my own (which is how I found it).  And while I really hope it doesn't push the genera further into obscurity in the eyes of the game industry, I'm rather fearful that without someone taking care of the game aspects it will become an excuse example of "why real A-Life games are bad". It's not that I think it's going to be a bad game, it's that I feel like it needs to be more than just a good game, it has to be an incredible game to overcome the stigma that somehow has become attached to the concept.

Wow, that sounds so very pessimistic... I can't very well have that.  Let's face it, this situation is out of my control and I'll just have to keep on moving forward on my own path.  I've got hopes; I've got fears, but it's time I get back to chasing my dreams.

This weekend I got another chunk of Maximum Chaos' assets finalised.

Today I'm getting some sample code on connecting to Amazon's simple database; that should be enough to get the Pharmaceum project up and moving again.

Sunday, June 5, 2011

An Amazing Find: Return of the AL

For anyone who really knows me, they know that deep down inside my greatest dream is to work in the true artificial life game genera and bring it back from the dead (it died around 2003) and into a new golden era.  Yet I have always known it would be a long time coming and I would need to work my way up in the ranks before I ever got the okay to start such a project...Why you ask?  Read on...

Why did "true" (Good Dog) AI die?  
Well, it's the black box syndrome.  Whenever you have AI that partiality creates itself, the designers lose control.  Game companies consider the concept a QA nightmare and avoid it like the plague... so much so in fact that they have stopped using many of the academic AI tools in places where, really, they should still be using them and wouldn't really be at risk for a QA explosion.  Case in point, digital DNA that controls a color tint in ambient organisms or monsters.  A few locks to prevent over saturation, a background breeding master based on genetic drift or even a little selection if it's monsters, and you instantly have something that makes every play through of the game a little bit special.

What replaced Good Dog AI?
Good Dad AI replaced Good Dog AI.  I'm borrowing this analogy from Brian Schwab, a very talented AI programmer I met at GDC this year.  Good Dad AI is like a dad wrestling with his 5 year old.  Sure, he could easily crush the kid, but he doesn't.  He also can't just let the kid win because the kid will call him on it.  A good dad must lose with style, in an interesting way that makes the kid feel like they have accomplished something.  That is what the goal of Good Dad AI is, and it does this primarily through heuristics (rule sets).  It's a completely valid form of AI, is a better choice in most game scenarios than something such as a neural network and is no less "real" a form of AI.  However, it can't really grow and develop or feel or think.  It is what it is, a rule set, a behavior tree, a flow of logic and nothing more.

Why did Good Dad AI Replace Good Dog AI?
In order to be sure the game offers the experience the designers intended, by default the AI must be a good dad.  If the AI builds itself there is no guarantee it will be a good dad, it could be the worst dad ever!  That is why heuristic approaches have taken over, even if they become dry, and predictable with enough encounters.

Why are heuristics still real AI?
Because they are, in fact, very real in actual biology.  Take the orb weaver spider and it's classic web form.  That web is built and maintained using a logic set, and each species has it's own mathematical formula for producing it.  What controls this rule set is the spider's DNA, and mutations coupled with selective forces can change that formula by changing the DNA.  This is the piece that has been removed in Good Dad AI, and for good reason.  Why?  Because the player could train the spiders to be idiots and leave gaping holes in their webs by selectively killing them off... the control of the developers is lost and we are back to that black box issue, but I digress.  The truth is, both heuristics and adaptive AI forms are part of a greater whole.  It's not that one is better than the other, but rather, to favor one is to forget half the picture.


So what is with this Good Dad vs Good Dog thing?
They are not so much different forms of AI as they are different goals for the AI.  Good Dad is consistent, Good Dog is only as good as it's owner.  Naturally, they take different tools to produce, but the sad part comes in when fear prevents the best tools from being made available... plus having real live creatures in a digital environment is cool. =)

What exactly is the "true artificial life" genera?
It's a sub-category of simulation games with a different sort of goal from the more common pet simulation games.  Rather than present the player with the illusion of life, these games actually attempt to reproduce it using scientific discoveries in the ways actual life functions.  The creatures within these games have very little hard coding and essentially build themselves within a virtual world.  These sorts of games are very complex and use digital DNA, neural networks, simulated biochemistry, heuristics and many other forms of AI, all at once.  Over the top of this complicated structure is the user interface, which will look very much like a pet sim game, but it won't take long to feel the difference between the two.

In pet games, pets are not born with lethal mutation, but they are in true artificial life games.  In pet games, pets do not develop bizarre behavior patterns that make no sense for their dog or cat exterior, but in true AL, that can happen.  In pet games, pets do not mutate into a more intelligent form capable of more complex behaviors than previously seen, but in true AL that can happen too.  Some people see these differences as flaws in the true AI genera, but they are not flaws, they are what make the genera so amazing.  Sure, you can have really bad, weird, buggy looking things happen, but that is part of the fun!  This is especially true if the player can access information on the "malfunctioning" creature and find out why it's doing such strange things, or at least try to.


What was the original point of this post again?
The point is, the man who first started the genera back in the 90's, Steve Grand, is bringing it back with a fully 3D AL game built in my engine of choice, Unity!  The timing is amazing, and this may be the opportunity I have been working to prepare for for so long.  To have the chance to help build that game would be... indescribably awesome.

It's even more amazing that he chose the same engine I have been eying for rebuilding the genera in.  I even have the beginnings of code for handling the complex environments that are needed to grow true AL in started.

Granted, I have to first somehow convince him to hire me, but then again... I was made for the job.  Even if he doesn't hire me, at least the the dream is moving forward, and perhaps, in time I will get my chance at contributing to the 2020 vision after all.

For people who have money and want to help, he is raising fund here:
http://www.kickstarter.com/projects/1508284443/grandroids-real-artificial-life-on-your-pc/comments

Friday, June 3, 2011

Drupal is dead

Well, Drupal quickly has become more trouble than it's worth.  Lucky for me, a lot of services for data systems have become available.  Today I started putting together the "paper work" for an account with Amazon.com.  Hopefully this system will work out better.  At the very least it does have the bonus of actual tech support :)

Tuesday, May 31, 2011

Droopy... er I mean Drupal

Today was a day for work on Pharmacium, and still is.  For those that don't know what Pharmacium is, well, it's basically a quiz game for Pharmacology students that connects to a database maintained by professors.  I built it in Flash for my junior project, but it needs more content to keep it interesting as a study tool.

The artist from the project has moved on, which could be a problem... it's not that I'm a bad artist so much as I am a slow one.  Essentially, there comes a point when one must except they can not be "the best there is at what they do" if they try to do too many things at the same time.  As one of my professors puts it, to make great games you really need to be a "Jack of all trades, and a master of one".  I had to choose something to drop to "jack class" to make room for improvement, and art took the hit(I kept my design and programming and get better every day).  Still, I'm a passable artist given enough time, and I know people who are very proficient in 2D art which I may be able to outsource to.

The most unfortunate part of Pharmacium's development story is when we(myself and the client) started to stock the database; we found a bug inside of Drupal (an open source data management system I was recommended).  Yes the bug is actually IN Drupal, but open source is known to have such pitfalls ;)  The bug prevents the database search from working if more than 9 entries match a category, probably caused by a counting variable being set to a form that locks it to a single integer or something along those lines.

Anyhow, I had to leave the project hanging while I was leading the Maximum Chaos programming team, but now that the major coding is over I can go back to fixing Pharmacium.

So here is the hard part, as amazing as my programming skills have become (I'm not bragging, seriously, it actually amazes me because 3 years ago I never dreamed of reaching such a high level... if you are starting out and feel this way, keep pushing, in 3 years you could be amazing too)... okay enough inspirational tangents... so as good as I am at front end stuff, the back end... well I just haven't ever really done much with it before.  It might have been better if I had written my own data system, but I cut corners to "save time" (ha ha, backfired).  To get to the point, I didn't write Drupal, I don't know a heck of a lot about how these systems are made, and now I have to some how fix it... yeah...

There is some good new though, since I had to let the problem sit for 4 months, a lot of patches have come out for Drupal and I am crossing my fingers one of them fixes the problem we encountered, but I'm not going to hold my breath. 

Today I have been uploading all the new patches into the server and now I must reconfigure the permissions again to allow my flash front end to talk to it.  Then it's on to either reading the database code and trying to find that bad variable, or finding one of the brilliant back end programmers who spends their free time playing with Drupal to do it for me :)

Wow, I droned on a lot more on this post than I expected, but it's a good activity while waiting for uploads... beats random facebook games anyhow.  Cheers!

Monday, May 30, 2011

Going Medieval

Well, I had planned on working on some database problems with Pharmacium today, but my internet connection dropped dead right after I created this blog(it came back at around 7pm).  No net = change of plans, and I instead worked on finishing up the cleaning process on the medieval level assets for Maximum Chaos.

Why cleaning assets you ask? Well, for as much fun as it is working with another 35 or so students on a big project it does come with some hazards, mostly stemming from... inexperience.  While I was heading up the programming team and trying to learn how to be a leader that didn't completely suck, my fellow team leaders over in the art department were silently suffering with massive technical integration and organization problems.  Had they been more forthcoming with their struggles, or had I been more on top of the whole communication thing, a lot of head aches could have been avoided.  Alas, it was late in the game when I discovered the horror of all horrors in the asset department, and we were forced to do a pretty hack job of making things function in time for the semester deadline.

That said, the teams did pull together in the end and we all grew a heck of a lot, but my inner technical artist pleaded that the asset issue be addressed.

As such, the handful of students that have dedicated themselves to bringing Maximum Chaos to the next level began the summer by sorting out the most up to date versions of the assets from the older ones, scaling them to proper proportions, centering the meshes, fixing uv problems, optimizing smoothing groups and generally trying to straiten out the assets as much as possible without completely redoing them from scratch.  Many assets require little to no attention, but many others require rather a lot.  A few even have n-gons that would frighten just about anyone, but they are passable and I will have to ignore my inner technical artist complaints on such depths and move forward.

It is rather exciting to announce the completion of the medieval asset cleanings as it is the first collection to be ready for use in building new levels for the game.  The other asset collections are not far behind and all in all things are going pretty darn well on the Maximum Chaos Project.

If you happen to own an x-box controller that you can plug into your computer, you can play the version of Maximum Chaos that was put together for the end of the semester on my web page: http://gemwhite.com/MaximumChaos/index.html
Just make sure you have that controller in before you load the game.

Enter the blog

It's a bit over do, but I've decided to create a public blog about my developmental adventures.  My thinking is since I've been logging them on facebook for friends, why not put them up for everyone?  If you want some back story, check out my webpage at gemwhite.com  I might put snippets of back story in at the end of posts for a while as well.