Jimmy Chattin - I make better games.
Showing posts with label project. Show all posts
Showing posts with label project. Show all posts

Friday, May 11, 2012

Into My Frying Pan - Personal Post Mortem

I’ve mentioned in my previous post that Mami is a good game, with a strong team, that did a superb job in the game projects course.  However, it could have been so much more, and I share that burden despite my work, or because of it.  For a summary of what I think I did well (or not), see the end of the article.

On Team Squaybies, I was titled as the QA Lead, allowing me plenty of room to delve and assist in every aspect of the game.  Through development, nothing lacked a bit of my touch.

In the beginning, early god-bosses and enemies were needed.  Team Squaybies brainstormed a breadth of designs and characters, and I directly assisted in making a few.  Using an industrial production process, the pieces were turned-out very quickly with decent variety.

To help secure the direction of the game, we had to illustrate what was wanted in Mami.  To do this, all of Team Squaybies contributed to the game design document, with me as chief editor (spelling, grammar, inconsistencies, etc.).  Taking it from there, my QA instincts took hold, and I had a number of outside individuals read through the premise of the game, and took changes they suggested or loved to the group, implementing them appropriately.  In anti-climactic fashion, the document was never touched again, but I bear it on myself for not iterating the five letter word of every project: S-C-O-P-E.

For most of the year, I ended-up doing little programming features and research to assist the work of the chief programmer.  Being as unfamiliar as I was with the ActionScript language, catching-up to the employed skills of my friend made the impact of my work fairly small.  Slow work and low impact features are my downside (though I know AS3 so much better now!).

However, other than the chief programmer, I was the only other team member to actively program within the game.  Making the necessary changes to effectively fix minor issues that arose sped production processes along.  With the research I conducted, enemy examples and coding parameters were found, and a shadow system was discovered that is in current use within Mami. So, with all that, those contributions can be a plus on my part.

Now, let’s cover some items of a more superficial nature.  In teamwork, many times I became short with other group mates, and that is inexcusable.  On attendance, the chief programmer and I have the best showing of the entire class!  Concerning work ethic, I would rate myself above the average, in that I did not waste work time Facebooking, perusing Imgur, or reading Reddit.  That, I would state, is possibly my best trait given to Team Squaybies.

Well, there’s my frying pan.  I make no claim to be unbiased, and really do welcome your input in the comments section.  For my failings, they were wrong, and I can only hope to never make the same mistakes again.  Concerning my achievements, I don’t think that aiming to do better is out of my scope.  Again, please comment what you think down below, and take care for my next post of Half Life.  See you then!

  • + Being there to benefit every section of the game.
  • + Designing and carrying-out a number of visual concepts of possible characters.
  • + Spear-heading needed quality assurance with industry-grade detail and procedure.
  • + Actively programming features in ActionScript and finding asset examples for implementation.
  • - Repeated failure to raise the “scope” flag enough.
    • A fix: Scope!  Set conservative deadlines, believe attainable goals, and work on details after the main design is satisfied.
  • - Slow, plodding programming work.
    • A fix: Know what engine will be used prior to entering the project to catch-up on code writing.
  • - At times, short with other team members.
    • A fix: Patience is a virtue.

Friday, May 4, 2012

Mami's Post Mortem - Mami Update


Wow.  What a year.  Mami has been through a lot these past few months.  It has seen people come and go, lore written and dismissed, art created and discarded, mechanics programmed and removed, and countless other iterations come across the project life-time.  There are some things Mami still needs, but there are so many more things that the game has accomplished.

Starting the academic year, there were a lot of decisions to be made.  What mechanics could be applied to the game?  How detailed is the story?  Levels?  Engine?  Art-sound-etc etc etc?  Some of the most important insights into what would later evolve the title came about in September, October, and November.

However, scope is the five letter word of the industry as far as I’ve experienced.  Thus, the time not spent on the programming and implementation backbone of Mami was too great when compared to what the industry uses now as a production process.  Those assets, though, do bolster an impressive library of material that clearly defines the world Team Squaybies created, and the assets are always there for future reference or use.

Referring back to implementation, that brings me to my next topic: skills that are needed in a game development team, and the life-span of those skills.  Throughout the year, we at Team Squaybies - an assemblage of technically nine individuals to six by year’s end - had a various assortment of skills to bring to the project.

What was desperately needed was more programmers.  The chief coder was a beast at AS3, but he’d been working with the language for a year previously in a professional setting; Team Squaybies’s project manager knew a little bit, but otherwise was regulated to very front-end manipulation; I myself know plenty of code, and picked-up the language of Adobe Flash quickly, but I was still not on-par with the primary programmer, mainly slowing down his progress if I tackled a problem alone.  Coding was important from start to very finish, and having more coders with a previous familiarity of the tool of choice is not a make-or-break situation for game development, but it sure darn well makes things more efficient!

Now, what about the art direction?  To start, we lost our audio skill at the turn of the calendar year, though he did do excellent work prior to his leaving.  Would more work have been required of him the second semester?  I can’t say.  I also can’t say if it was overly detrimental to the outcome of Mami, but it just shows that the pool of audio talent that the game projects groups have access to is quite slim.

Moving the art focus forward to what is more traditionally considered art, the visual concepting phase of the project was by far too long.  Some persons were doing over an hour to turn out one half-finished piece of concept – when put into the context of working being done in only two-hour working blocks three to four times a week, that is ridiculous.  I have good faith that anyone in a design studio would happen to agree.

Now, try combining the visual arts, level design, narrative brainstorming, and other miscellaneous fields outside of the implementation track (e.g. programming).  These fields far outweigh the number of people capable of bringing about a game, and within the game projects course here, last on the employ of a team for the entire year.  I may be horribly biased, but a great number of non-implementation individuals are needed at the start of game development; halfway through the development cycle, I could only see maybe one, two, or at most three persons of strong artistic intent.  Everyone else should have multiple skills, transferable between development teams!

Well, I’ve ranted enough.  Team Squaybies really pulled a good project together this year in the form of Mami.  The team was fairly solid.  It was a great time, I learned a lot, and will be taking the best of my new knowledge to help create a game I designed for next year.  But now, here’s to creating great gaming experiences, and taking care while doing it!  

Stay tuned for a possible update to my Mami adventures, where I go into the details of what I learned, what I did horribly, and what I believe to be good work on my part.  See you then.

P.S.  Please comment on my thoughts of the past year, the issues raised, your own experiences in teamwork and project development, or ask any questions you may have.  If I missed anything, let me know!

Friday, April 20, 2012

Program All the Things - Mami Update


I’ve recently promised to provide some code samples from our work on Mami, and have been talking about it even longer than that.  So, without further ado, le program:



Let’s start with some puzzles.  Above is the triggering code for the puzzles, and below that is the platforming code that handles various collisions with specific blocks within a level that open doors/grant recognition for this, that, and the other thing.  To reset the platforms, a simple timer will be used.  Easy!


As you can see, the implementation of special “shards” is a bit sparse; their collection throughout a level would activate various bonuses, but creating and managing another array within the game is currently being put on the back-burner.  The question is really how we would like to do it, and again, the time to implement and debug.


The last of the puzzle sections we are using, the map is very straight-forward; if the player is in reach of a special node, allow them to activate it.  Once activated, move to a new frame to show a picture, remove player control (aside for a deactivation button), and revert back to the playing frame once they are done looking at the map.  Only bringing in the picture into the library is the thing left to do.



AI seems to be the most fickle thing currently in our design.  To translate changing XY coordinates between the tiles, the enemies, and the player is just making a mess of things.  The chief programmer and I managed to make good progress on it, but the buggy nature of the beast has caused us to comment-out everything past our “patrol” mode and the self-deletion function.  For a demonstration of what we have, that code should be satisfactory (for the most part).

What’s here is but a very small part of the code structure, but the work I put in to creating these chunks of code helps the game flow in a way such that Team Squaybies may just make our deadline in 2 weeks!  Speaking of deadlines, I’ll let you go until next time.  Take care in commenting and reading future posts; I’m currently grinding through Majesty 2 and the original Half-Life.  Those are … interesting games.

Friday, April 13, 2012

Code in Abundance - Mami Update


With only 2 weeks left before Mami hits the deadline for presentation, the code is coming together, the visual products are being put into place, and the entirety of the project is coming to a head.  Despite setbacks, possibly losing some teammates, and some side project work, Mami is looking forward to its release date!

When code runs smoothly, it is a beautiful thing; when it’s code you’ve made, it’s personally satisfying.  This week saw the chief coder and I implementing the final programs for the three puzzle types we’ve designed: a displayable map, a special-item collection system, and a specific platform combination puzzle dealing with jumping onto certain locations at certain times.  Don’t worry; I’ll be sure to start posting some code snippets.

I hate to leave you so soon, but code not associated with Team Squaybies must be written!  Please comment  if you have any thoughts or questions; I’d love to answer!  Take care until next time.

Wednesday, April 4, 2012

A Short Week and a Short Week to Come - Mami Update


Easter Break: a terrible holiday.  No, it’s not the ham, or the eggs, or the religious aspects about it; it has to be the block of time it takes from the two weeks the holiday falls between.

Thus, 4 days will be lost between this week and next as colored orbs are sought for and pigs are slaughtered.  I pause here as I look upon a wall of stories yet to be completed for Mami… Though a break is much appreciated from the grind of collegiate life, I shudder at how far back Team Squaybies’s development is likely to be.

Despite the woes to come, I must mention the success of Sunday night’s Fools Day game faire.  Both Team Squaybies and Perpetuam Memoriam had a great showing, with playable demos and a large contingent of group members able to attend.  After playing some other games at the faire, Mami received some usable quality assurance testing from an attendee, which our illustrious lead coder found and amended.

Speaking of programming fixes, remember the issue of not loading into the next level at the correct frame?  That was fixed at the faire, too.  Thus, after also garnering video recordings of the commendations put forth for the games I’m working on, our team handled some nagging issues in the various program features.

So, progress was made in this short week.  There likely will fail to be much coming up at least through the start of next week, but I know Team Squaybies can pioneer like the best of them.  Take care, and have a restful weekend!

P.S. Long title FTW.

Friday, March 30, 2012

Games for Fools - Mami Update


Wow – what a week!  Enemy distance handling, tile loading quality assurance, and a big fair to boot.  It is safe to say that some Mami work has been done!

What do I mean about “distance handling”?  The enemy spirit object that rests on the stage patrols a static location just fine, even with the screen scrolling, but when it comes to registering where the player is and the relation the character has to the object is a bit funky.  Over the last week, the other programmer and I learned a lot about Actionscript 3’s location functionality; our player’s position locally – player.x – and globally – player.truelocation.x – stays the same at a range of the screen.  The change is also skewed as that anything that is represented globally is double what happens locally.  To say the least, the enemy is having glitches on telling what the player’s location is.

The main programmer is gone for the weekend, so our project manager and I practiced good QA skills; we broke things.  After exiting the introductory level, it appears that a few of the objects of the intro remain in the next level.  After removing a few of the offending collisions, it became noticed that we start not at the start of the next level, but exactly at tile ‘n+1’, where n is the number of tiles prior to the level change the player encountered.  The solution: send the setup of the level an integer to compensate the offset position, placing the player in the correct tile.  Ta da!

Now, Sunday is April 1st, All Fools Day.  This year is having the 2nd annual All Fools Day Game Fair, where the Game Design professors nominate and sponsor various games being made or conceptualized here at the university.  With both Mami and Perpetuam Memoriam being nominated, I am well on my way to loving the heck out of this event – mass free game testing!  Mami will feel quite clean after this, and Perpetuam will get its first public appearance since Global GameJam 2012.

Other going-ons with Team Squaybies concerns moving finalized vector assets into the game and removing the lack-luster filler blocks.  My level layout is being placed into the primary level of play to give a dynamic sense of progression through the world.  Further, I do believe that certain animations and attacks are finishing themselves quite fine.  All in all, the work can be called progress.

I’m unsure of what will come in the next 2 weeks; Easter is going to most definitely be a jam in the flow of things getting done.  But, if this week and the pace we’ve been setting in both Team Squaybies and the Perpetuam Memoriam game is any indicator, the end of the spring semester is going to see 2 finished projects.  Woot!

Well, I had best get back to programming.  Enemies, platforms, and code-cleaning… Take care until the next update.