Thursday, May 26, 2011

Minor update on the character modeller

Just a small update for the character modeller I'm working on, sprites are now linkable to bones and they draw. Next will be implementing the bone start/end positions to line up the sprite properly and sprite selection per bone...then we'll be able to create a little smiley face! There are a couple other things I want to implement shortly as well:
  • Reording of draw order of bones so the sprites draw properly
  • Being able to manipulate keyframes better, deleting keyframes, adding keyframes in different places, that sort of thing.

Tuesday, May 24, 2011

Modeller progress

Today I worked on the character modeller from home, starting to implement the sprite/spritesheet stuff in. I've so far got an interface set up that allows the user to define sprite rectangles:
Here's my test spritesheet which I will be using to make a smiley face and he will have some animations like bounce and roll.

Monday, May 23, 2011

Character Modeller

Did some more work on the character modeller in the last hour or so. The number of frames in the current animation can now be changed and a number of improvements have been made to the program in general, including implementing more keyboard shortcuts, removing bugs in some tools, etc. Here's a video of me mucking around in it.

Tuesday, May 17, 2011

Design, documenting, meeting up

Ryan and Vince popped around to the project lab for about an hour or so and we worked together on a couple of things. We discussed some of the more fine-grained details about the fighting move system, such as impact types, hit area categories, etc., while they were writing up the documentation for the Move structure. I wrote some small placeholders for these bits of information in Move.cs. I explained the relationships between the bone animation system, the character models and the moves since Vince wanted a clearer understanding of what exactly will be required (code-wise and content-wise.)

Apparently Adam is meant to show up some time soon. I'll stick around to say hi and get a bit of work done then probably head off at around 4:45 for food and go home.

More work in the project lab

So I've been here for about an hour. I installed Visio onto my computer here so we could edit and create UML diagrams. I've been sort of picking at the tech doc, adding things here and there and editing a few things. I also moved all the diagrams into their own sections, to keep things organised. I created a use case diagram to show the range of interactions between the player and the game system. I will also do one of the Character Modeller. Haven't touched code today, probably won't (until I get bored :P)

Monday, May 16, 2011

More stubs

Just spend the last hour or so writing up more stub functions in AI and Fighter, as well as setting up some more specialised datatypes. Building from the ground up here, or "top-down", I guess. I created a base abstract Controller class which the three fighter controller types (Human, AI, COM) inherit from in order to store some controller-common information such as which player (one or two) the controller is controlling. This sort of information needs to be made available to the decision-making processes of AI/COM to determine who is who in the world state information.

AI programming

Right now I'm in the project lab working on implementing stubs for AI data structures, specifically KnowledgeBank, MemoryBank and PolicyMemory. Putting together the building blocks of the AI engine is both exciting and a learning experience. I've always wanted to do a machine-learning system like this, hopefully it isn't too ambitious. Realistically, I know I can produce something. Something that functions. But I'm going to strive to achieve something really impressive.

Sunday, May 15, 2011

Busyness

I've been busy lately, went down to Parramatta on Saturday for my dad's wedding, which involved going down on Friday and coming back Saturday arvo. Got a heap of assignments to mark as a tutor, 18 down, 24 to go. I am also doing an OpenGL assignment where we use shaders. So I'm squeezing in project into the gaps between real life, uni work and sleep :D Right now I'm just getting everything finalised and organised for our meetings over the next few days.

Wednesday, May 11, 2011

Artistic stuff


Frankly didn't think it would turn out this well. I'm happy. It says "Sensei" (in Kanji) and the signature is just made up (it resembles "CSCI321")

Guess it could be cool for some kind of logo or find some use in the user manual

More on tech manual

Alright so the tech manual now has a glossary (I got tired of wanting to explain things throughout the manual, so eureka!--the glossary was born.) as well as the initial writing version of the documentation for the currently known AI/COM data structures and types. Phew. It feels good getting it all down in technical terms because it affirms my knowledge in it and confirms that I know what I'm doing to some degree.

Now my focus is on updating the project plan so we have a clear path to follow next week.

Technical Manual / Project Plan

Right so it's week 10 now and we're pushing to keep on track (the timeline that we've set to push us to do enough work to theoretically have spare time towards the end (the "spare time" that will quickly be eaten up by unforeseen delays)) so we're working day and night squeezing in Project where possible. I've been pushing on the with AI / COM stuff, mucking around with some onionskin code (yes I just made that term up to mean a very thin outer layer of code with no substance to be used as a guide) and I'm going to fill out my sections of the tech manual sometime tonight as well. I added our formal project requirements (was a separate document) into the tech manual under Project Information. It's a good addition to the manual.

I'm also updating the Project Plan to designate specific tasks for the upcoming weeks and that'll be up shortly.

Coding <3

Okay, so for the sake of your sanity, it would be better to remain oblivious to this post's timestamp. Okay, thanks anyway.

For the last few hours I have been coding, thinking and stubbifying. I've been focusing on my area, the AI/COM fighter controllers, but they have required a bit of a base in other areas like the Fighter class itself so I've put some basic stuff in there too.

I've written large block comments for both the AI and COM fighter controllers to elaborate on specific requirements for the class. I find it is easier to garner real requirements while coding. So while I'm not actually implementing anything, I'm getting a good idea of how it's going to work anyway.

So, for AIData, which is a code library for information types common to AI and COM controllers, I've created the following structures: ShortTermMemory, Inferences and WorldState to add onto the existing data types and structures: ActionType, GoalType and Goal. Each serve a different purpose in the think/decide/do process on the AI/COM side of things.

I also created a GeneralData code library to hold useful constants and enumerated types such as Character (to distinguish between the playable characters) and a static function, CharacterName which gives the full name of a given Character.

In the AI's brain class, I had a good think about the implementation details of the neural network proposed. With the help of Dr. Wiki, I put down some comments about the technical nature of the decision making process:


At each point in time \scriptstyle t, the agent performs an action \scriptstyle y_t and the environment generates an observation \scriptstyle x_t and an instantaneous cost \scriptstyle c_t, according to some (usually unknown) dynamics. The aim is to discover a policy for selecting actions that minimizes some measure of a long-term cost; i.e., the expected cumulative cost.)


That's all fine and dandy, let's hope it isn't too much in the way of implementation. I also realised that the AI is going to need 4 different types of "memory banks"-- two long-term and two short-term. The two non-volatile memory banks are loaded from disk and the two volatile are created and updated on the fly.


That's all for now, signing off from your dear AlphaLogic leader --
Jordan

Monday, May 9, 2011

Updates.

It's been a while since my last update (almost 6 days) so here is a summary of the work I've been doing on the project.

Wednesday: Project organisation. After the meeting with the group and then the meeting with Luke, I organised everyone's work flows and made sure everyone knew what they were meant to be doing. I also updated the Project Plan document in accordance with slight modifications. 1 hour here.
Thursday: No project work. I was actually busy with other uni stuff and hobby stuff to do with my game release.
Friday: Luke had gone through our documentation and sent us some great feedback. On that I responded to Luke about what we plan to do from then based on those suggestions and then delegated extra sub-tasks to everyone. Also updated our website to make some necessary changes including some appearance changes. 2 hours here.
Saturday: Received the screen-related documentation from Adam. Busy with hobby work.
Sunday: Updated our project's internally hosted page to redirect to our externally hosted website. Also worked more on stub code (about 4 or 5 hours.)

I have been a bit slack on this front lately but I'm getting back into gear now.

Tuesday, May 3, 2011

Bone animation engine demonstration

Recently I completed all the implementation necessary to do a bone animation demonstration. You can watch the video on YouTube: http://www.youtube.com/watch?v=aVMTybQ9_Zg