Saturday, October 29, 2011

Trade Show & It's all over!

Project has finally come to an end, and after an awesome Trade Show in which we jointly won the Best Project at the Trade Show 2011, it's all over! We're very happy with what we produced, which met all our initial expectations and all went to plan. We've all learned a lot in the process, in the fields of coding, game design, teamwork, organisational skills and computer science project development cycles.

Tuesday, October 25, 2011

That's Just... Low!

COM/AI reaches an all-time high (correctly using moves corresponding to your hitbox including knocked down) and an all-time low (kicking you while you're down) in the same revision.


Move ranges, effects, polish

More stuff tonight... a slow-down effect when you KO the other player, some small bugfixes, some small improvements to the game and to the animation, another small piece of music, and "Move Hit Ranges". Now instead of a move having only a set instant where it "hits" and if it isn't it range then the move is discarded, moves have a time window where the move can potentially hit. This was made for, especially, Takeshi's flying kick where any time he is flying in the air is a potential hit, not just one particular moment in the air.

Moves such as Takeshi's flying kick didn't have a specific
instant of time that the move connected.
Polish-wise, I've just implemented various all-around improvements like removing the "Round 1" announcement from training mode, not allowing you to choose AI for story mode, and that sort of thing.

I've also tinkered with the AI/COM and am glad to say it plays a lot better now. It's more fun to watch and makes for more exciting demos. I did discover one bug which made it impossible for AI/COMs to do crouching moves (even though there are only two.) The subsequent fixing of this bug and a few other bugs which affected blocking, introduced by the new HitBox type "Lowest" (which can also hit downed fighters, unlike "Low",) and a bit of tweaking, was vital to this improvement.

Monday, October 24, 2011

Final touches.

I'm glad to say that this week, in the coming days before the trade show, we have only the final touches to put on Project Sensei-now I'm doing nice things like making the demo mode loop, making additional sound effects and polishing up some of the graphics, making small changes to how the game looks--just details here and there. Probably some time tonight I'll start working a bit more on polishing the AI/COM behaviour, as it just needs a little tweaking to give a more exciting and natural performance for demonstration purposes.

Friday, October 21, 2011

Interfaces, menus, physics fixes, polish

Last night for about 4 hours I worked on completing the menus, in particular the in-game pause menu which needed a new submenu "COM Customisation". I also added varies elements to the existing UI to polish it. For example, the credits screen now says (B) Back in the corner, and blank black backgrounds in two of the screens have been replaced with a dark grey scrolling plasma pattern.

This morning I did a few major fixes to a couple of small bugs in the event manager related to physics. One such bug was that move-related inertia was being inverted entirely where only the X component of the 2D vector should have been inverted. Another bug was using the inertia value before clamping it, resulting in the full inertia for one frame then the clamped inertia from then on (imagine teleportation.) This bug was only noticeable with move inertia significantly greater than the clamping threshold (10).

Now we can do proper flying punches and kicks in our combos without teleporting.

Thursday, October 20, 2011

OneClick Installation

After about an hours worth of debugging and getting this OneClick installation to gather all the right dependencies and figure out why it wanted to load things that didn't exist (but once did) and forget to create some folders (guess since there was nothing in there...) I finally have a working Windows Binary installer setup binary for Sensei. This is a good milestone.

Wednesday, October 19, 2011

More polish work

Tonight in the last hour I've put together the new in-game paused menu with a brand new volume slider bar. I've also touched up some of the intro screens and I plan to polish up a few of the other UI screens now.

Shiny. Das ist gut.

Helpful instructions and a clean interface.
And now, inexplicably, it's grey and ripply. Yay

Project Polishing

All yesterday and all morning today I've been busy working on polishing up Sensei. Knocking off things on the TODO list is our group's hobby right now, and last night I did a few more UI elements, shaded Takeshi and Catalina and gave them their final look, did some bugfixing with the guys and today I'm finalising the Technical Manual.

Monday, October 17, 2011

Knockdown


Here's what the effect looks like when you use a Knockdown move.

Tons of AI/COM/DecisionSystem work

All this afternoon I've been working on AI/COM/DecisionSystem stuff (except for a few bugfixes here and there, some small changes I required to do certain things, improving a little bit here and there, and debugging) -- I improved the degree to which the DecisionSystem responded to the personality traits--and refined blocking and countering tactics to ensure I had full control over when and where it was happening (counter attacks were happing by chance before, more than they should have.)

AI now has "rage" training which is an informal term for the ability to learn and morph its states based on its experience as a fighter. At learning speed l = 0.1, which is quite fast, after 3-5 minutes the trainee has the mindset of a champion-- it's ready to lunge at the opponent and attempt counter attacks where appropriate. The personality traits that make up this mindset are static for different COM difficulties. So, a beginner level COM will jump around and wander aimlessly sometimes, unsure or perhaps a little afraid to approach the opponent. A normal-level COM will get into it but give an average performance.

Training now saves and loads AI brain modules in their full capacity and in that regard is functionally complete. I can now train real AI save files through the game.

Another big hurdle I got through tonight was combos. I implemented, for both COM and AI, a combo limiting function which applies a threshold on the variety of moves in the moveset they will use, and how often. In this regard, an AI or COM with very high competence in combo moves will almost always use combination moves (like a human that has memorised the combinations AXY, ABB, AAX, etc.) Conversely, those with low competence will never use combination moves, and thus cannot practically learn them until they are more adept. This brings a slightly cool side-effect that you can't teach the best moves to a newbie trainee since they will not understand it.

Sunday, October 16, 2011

AI stuff

During the Skype work session tonight I got a lot done on the AI and it has blocking and countering fully implemented, learning and improving. At the moment our default learning speed is pretty high as in a few rounds it can master blocking (100%.) But it's good for testing.



We now have an AI visual interface to measure the training and observe the AI. I may make a second interface to show the inner workings of the AI's thoughts since this is basically just to aid training the AI.

Saturday, October 15, 2011

More stuff!


More work on the computer-controlled characters. Their behaviour should be highly tweakable now and they can put up a good fight when they want to. Also, I've made the counter-move special effect so it's highly noticeable.

DecisionSystem/COM

Now I'm working on the DecisionSystem and COM code. I've implemented counters so that can be done. Right now I'm going through and filling in small gaps in the decision tree but the main thing I'm doing is getting everything to use the Personality variables. So, blocking will be less successful if the personality has mercy and they are winning by a fair bit. It's almost all "fuzzy logic" so the end result is a more natural behaviour. The main thing I have to implement personality for is so that the different difficulties of COM actually differ in behaviour. In that regard I believe I'm successful so far. Expert COM is just about impossible to beat, even though it doesn't use the debug move that kills you instantly any more. For now the COMs don't do combos because of the way the move sets are being played with at the moment (by the fighting engine guys) so they only do basic attacks. But when that's sorted out they'll being doing combos and all that.

Dojo Battle Music

Music I composed this morning for the Dojo.


Friday, October 14, 2011

Putting new sounds in


Hehe. These bugs are funny :)

Voice Acting

Today we did the official voice acting session for Sensei. This included Takeshi (played by me), Ivanov (played by Vince) and Catalina (played by a friend) grunts and groans, good times and laughs were had by all. I also did the announcer's voice.


Outtakes :P

We had the whole group there so in total there were 5 people... 1 person voice acting with 4 people trying to stifle bursts of laughter (at least in the beginning) ... Haha.

Thursday, October 13, 2011

Character Selection Screen improvements


The new and improved Character Selection Screen has fewer controls down the bottom to confuse people with. Start is no longer required to begin the game in Quick Fight, it starts when both characters are chosen. I also put in coloured dots and a colour overlay with the selectors to make it more obvious which one you were choosing.

AI/COM linkage

This morning I've been working on linking up the AI and COM stuff to actually be useful in the game. There is a "stock" default AI in there called Punchbag which has a learning speed of 0 and knows nothing. We can use this AI to beat up like a punching bag and it will never retaliate.

New AIs can now be created from inside the game and used. They will learn in Training mode but not in Quick Fight (that's just a fight, not a learning session.) COM difficulty goes from Beginner to Expert and actually sets the COM's personality. That isn't extensively used in the code yet so the appearance is minimal for now, but the values are there as actual personality structured information instead of quickly hacked debug ones.

I am going to do more AI/COM work when I get a big block of time to work on it. I don't want to sort of start to get into it then have to rush off since I want to focus on it so that I can get things working properly and effectively. It's not a quick 10 minute job to add new features to the AI like it is for UI, so for the rest of this morning, the next few hours, I'll be doing odds and ends to get the game's polish up.

Wednesday, October 12, 2011

AI management


This morning I've been working on getting AI saving and loading, and integrating AI creation, selection and deletion from the Character Select screen.


The AI Brain creation screen. Only one player may create an AI at a time. Very simple for now, I might just put some psychedelic background and we're all done really.


Two players may select or delete AIs simultaneously.

Tuesday, October 11, 2011

More stuffs

I made a proper credits screen which looks really good now, fixed up a few things in UI, made some improvements to the effects in game, and tweaked a few things here and there.

High priority items on TODO list remaining:

AI Saving/Loading functionality
All UI graphics complete
AI readout display
Final Colour/Shade character sprites

And a lot of medium priority things.

Then if I finish that I can just polish (week 13 probably.)

Moscow!

We now have Ivanov's stage in: Moscow:

And some health bar bug fixes.

Monday, October 10, 2011

Blooper Reel #2

Trying to get animations to play backwards, I just dived into the code and thought I could hack it in a few minutes. Hilarity ensues, possibly more awesome than the desired result. 10 minutes later I got it working properly though :p

Sunday, October 9, 2011

COM packs a punch

Okay so I just linked up the COM with the default DecisionSystem processor since we only had a stub COM fighter. It picks random moves for now, which is pretty dangerous since there's like a 1/8 chance it'll instant-KO you. :P

Backgrounds, music, UI

Some various changes to Sensei regarding the UI, mainly just changing the debug font to the Sensei font. In this update, the Beach stage is in there (Catalina's stage) and the theme music plays on startup. Leaves fall in the background of the Dojo stage.

Various updates

I did some small modifications to the Character Select Screen just to make it work better. I also fixed a small bug in the process. Modeller (the fighter creator/animation program) now has support for defining an action point per motion. I wrote a basic effects engine for the fighting engine, which for now creates an impact sprite whenever a hit is landed.

First Sensei music

I really had no idea what kind of themed music Sensei would have so I went for an official orchestral sound, at least for the main theme; taking inspiration from the Soul Calibur soundtrack.


It is a slow piece, meant for the splash screens and menus. The battle music will be more upbeat.

Hopefully the piece will be received well. This one took about 3 hours to compose.

Friday, October 7, 2011

Character Select Screen


Has some more proper graphics in it and some of the logic was rewritten so it should handle all cases of all combinations and permutations of players now. :I

Thursday, October 6, 2011

Minor website modification

The welcome page has some updated screenshots and the project's poster on there now:
http://jordan.trudgett.com/sensei/

Alternate spritesheets and new health bars

The title says it all. I've coded in/implemented alternate sprite sheet colours for the second player and the new health bars.


Final Poster Design

Click for a bigger size

Here is the design for our Project poster. The art is done by a good friend of mine as a commission.

Background class

I've now abstracted the background (area) into its own class so each arena can handle it's specialised drawing routine, whether it be animating water, falling leaves, rain, all that cool stuff. Later on once I've drawn and done all the backgrounds then I will go and paint them properly and animate them to make them come to life.

First things first though, I am going to be implementing the proper Health bar and then work on COM/AI stuff, which is about half done (the difficult half ;)) including the AI insight/readout panel.

Outlines, spritesheets, more work after 48

Just came back from Queensland on Monday night from the 48 Hour Game Making Challenge. We won the award "Best Graphics." I've been very busy these last couple of days just catching up on everything which is enough work as it is without taking out a massive weekend chunk out of it :P But despite that I've managed to get the other two characters' spritesheets in and wrote a function to generate outlines for the characters to draw in-game. I'll be doing more Sensei work today as well, starting with the Background class to handle the active backgrounds of each stage.