Thursday, 20 May 2010

The Knight of Nights GAME

The Knight of Nights

version7

Contextual Reflection

Version:1.0 StartHTML:0000000167 EndHTML:0000012401 StartFragment:0000000484 EndFragment:0000012385
Final Project Description:
Looking back at the original project proposal, the original intended work has developed into an immense project in its own right.

I intended to create an experimental project that combines the narrative style of a graphic novel and using that to drive gameplay, in a sense to make a visual novel game. At the moment, due to the nature of the project I felt that I was not able to fully exploit the narrative aspects to what I had intended as the majority of time spent was on programming and game testing. I found that it was difficult to experience the narrative side when there was little gaming to do, which makes it non-enjoyable to play and that without a narrative, playing the game would also lack enjoyment. In the end, the programming for the first puzzled had to be completed as well as tested before all the narrative content, visual and audio assets could be applied to it.

After the original proposal, a large proportion of time spent on the project was on planning and pre-production which would be prototyping almost all aspects of using Flash and incorporating all the mediums that I needed within it. Getting the functionality right was the hardest element to overcome, especially the small technical hurdles (like nesting buttons within a movie clip when there was script already attached to it) and if a solution or no solution is found, a work-around solution had to be researched, implemented, tested and the whole cycle starts again depending on the success and failure.

On the other hand, creating the assets needed for the project such as the design concepts, art, design work and music composition were easy to change and implement once I had a clear idea on what I wanted to achieve. There were times when I found that I was unsure of when and where to focus on the narrative side of the project or the game design side but the majority of the project in general holds a heavy reliant on the testing, testing over time and testing with different users.

Contextual Reflection:
The final project sits in an odd world which exists on a specific cultural aspect that is not very well known particularly in North America and Western Europe. The visual novel game genre is very specific to Japan due its visual aesthetics and cultural roots of the Japanese manga comic style.

For a more detailed account on visual novels, I have written two entries about what it is technically and culturally:


In terms of the ever growing commercial computer games industry, the underground community of independent game designers and artists grows day by day. Game accessibility has also increased due to technological advances in home computers, gadgets and gaming consoles, so do interest, and so do the amount of independent games becoming available. This devised project like various other independent game maker(s), is a contribution to the growing stream and popularity of non commercially made visual novel games.

In comparison to several key artistic works:

Phoenix Wright: Ace Attorney (2001, Capcom)
The Phoenix Wright games is an example of a Japanese visual novel game that due to its popularity has been re-released on the Nintendo DS and published in America,, Europe and Australia. Compared to the devised project, there is an obvious leap in professional quality such as artwork, animation, gameplay, design, programming and production. However, I have followed in its footsteps of a similar visual design and game flow yet attempted to incorporate a more comic visual aesthetic that branches off the main game play.

Phoenix Wright is simple enough in gameplay that allows a player to be immersed with the narrative and characters which can be seen as a feature of the game itself. I had intended to extend the narrative of my project however due to time constraints and technical difficulties I was not able to achieve the ending animation to end the story I had intended.


Hotel Dusk: Room 215 (2007, Cing)
Hotel Dusk is another example of a visual novel game which has a slightly more impressive visual style to that of Phoenix Wright. The quality of the animation and visual style is a prominent feature of the game and in a way and has managed to be cinematic in a simplistic style. Compared to the devised project, I tried to imitate some of its 'minimal' animation techniques by working with static images and focus on the pacing of the text.


Compared to the examples above, both being DS games has a impact on the audio. Memory is a large issue for the DS console, audio is no exception in having a limited memory space. For that, I used that as a limit for the project by using the internet as the main medium in which it is to be hosted on. Originally, I had planned to incorporate more sound effect samples for the project yet I found that it sometimes unnecessary in the narrative as well as increasing the project's file size; a problem especially when it was designed to be primarily played online.


Project Summary:
Overall, I believe that my project has been a huge task and significant insight to a game developer/designer. The project has succeeded and is in a playable form and hosted online.

The hardest aspects of the project was the programming and the amount of time spent dedicated to testing. However, once everything works and everything start coming together, the step taken to the end product is highly rewarding. Time was mostly spent in learning the action-script 2 code as well as understanding it to achieve the effects I wanted in the project. At times, it was also a large challenge to find a specific solution to some of the problems I have encountered in the programming over the internet as well as grasping the theory enough to implement it correctly within a Flash project On a personal level, it is highly satisfying to be able to master and start writing the action-script code without the need to reference it and for it to work perfectly.

Other areas which took a considerable amount of time work on was implementing the artwork itself into Flash (and again testing it). Once a workflow was sorted, implementing the various assets needed became easier which again becomes increasingly satisfying when the whole project started to come together. Like learning and understanding how to use action-script, I took a Flash's drawing and design capabilities as a challenge to adapt to. Again, like with action-script it was demanding to understand under time constraints but once a workflow was established, most of everything slotted into place.

On the other hand, I found that once I had planned the script and applied it to a table format, it became easy and very clear to which parts of the script that I needed to focus on and to plan ahead. Due to the nature of the project which juggles many different roles and responsibilities in one go, it became a valuable planning and management asset which without it, the whole project would be less complete.

The project has succeeded in the programming yet I feel that if time was not a factor, the quality as a whole would be at a much higher standard as well as fully completed as I had intended. The process itself proved to be a valuable learning experience in learning Flash's capabilities, music composition for games and in my personal interest in art, design and animation.


Due to the time spent on prototyping and testing, I am a bit disappointed in in the amount of the narrative that has developed as I intended in expanding the game world and its characters a little bit more and had asked several people to donate their music to ease the workload and pressure off the audio side.
 

In conclusion, the project did not stray far from the original project proposal. I however believe that due to the nature of the project, a larger time frame is needed for it to be successful when compared to other games in the field. While it is available to be played online and has the ability to be downloaded and played offline, a large part of it falls under marketing the project as an end product to gain recognition.

Valve's Steam client is an excellent example of the importance of the internet and gaming culture. Steam is a game distributing program that supports games made by small and larger game companies and offers gaming content and media readily over the client/internet. Users are able to download demo content, various media and for a price full versioned games. Independently made games like Braid and Machinarium are available over Stream along with more notable titles like Left 4 Dead. I have noticed a slight increase in activity and interest by submitting several prototypes online and posting them onto specific sites frequented by the target audience in mind. In relation to Steam, I believe that the interest is there and I feel that it can only broaden over time when it is available over the internet, much like how Steam works. It is difficult to assess the success-ability of the project in general due to its reliance on time, but since it is viewed as an independent project, I do not see why it should not be successful when full developed like Jonathan Blow's Braid or Jakub Dvorksy's Machinarium and Samorost series.

Well.

The game is finished minus the ending animation.  It took way too long to figure out why the sounds went crazy during testing.

 Click here to play: The Knight Of Knights

Glitch in sound

Wow there seems to be a glitch in the sound and I can't seem to figure out why it keeps being triggered every time I enter a certain frame...guess I'll need to do some long winded stuff in the timeline ....

Wednesday, 19 May 2010

Audio voice

Managed to do some record with Hugo a few days back for the characters in The Knight of Nights.  I've tired implementing the vocals within the game but I felt that they didn't help enhance the atmosphere.  Also at the moment, the game itself is starting to take a bit to load and I feel adding anymore sound samples would make it even longer.

If I were to do it again, I would dedicate more time for the vocals and scripting to flow better.

It is incredibly hard to juggle so many different aspects of game making into one!

It's so so close....!!!

I'm loving the inventory...!!

Sunday, 16 May 2010

Toggle mute/unmute button works!

Thank you Graham for keeping the flash tutorials from last year, even if it did take a while to find where the action script was located!!!!

Tutorials for making a vertical volume slider doesn't seem to exist....

Weirdly enough.

I know I said that I have finished the programming but it is the game coding that has been finished.  This is an extra player option that I'd think would be very much considered for a game.

I've spent the last few hours trying to find a decent tutorial over the internet but I have had no success in it.  The best tutorial that I have found so far is this tutorial on kirupa. However when I try to edit the action script, it still doesn't work.

Surely by changing the line:

this.startDrag(true,line._width,0,0,0);

(startDrag(lockCenter,left,up,right,bottom)
would be easy as pie and set the dragger at 100 right?  But it still somehow manages to move right and off the line.  Hmm.  Guess I won't have any volume control for the game. 

This follow up tutorial here is most like what I've been trying to achieve apart from the setting the volume at 100%.  Both tutorials start at 0% and I can't seem to work out why it''s so hard to edit. 

Plan B would be to just do a master mute/un-mute button.  Toggle buttons would be a good idea but...let's see how long the research will take on the internet until I have a little idea on how to start this....

Tuesday, 11 May 2010

Inventory half works. [WRONG, It all WORKS]

Well the inventory half works, there are still glitches happening (double clicking resets the inventory to their original places).   But what is most frustrating is setting the global variable back to zero as I wanted another pair of objects to disappear from the stage.


I've managed to make the first set of items disappear from the stage because you've 'picked them up' and they enter your inventory. Sweet.

You can then click on the inventory to go to the inventory page and examine your times properly.  But -

After 6 hours, I have solved the final puzzle of the action script programing for my game.  The game design being changed was definitely needed.  I can now finally concentrate on putting everything together and speed through the remaining animation and music!

The solution to the original problem was all in the _root. It certainly was the 'root' of my frustration but after several hours of trial and error, it twas the root of my troubles no more (well at least in the programming department).

OH HAPPY DAYS.


Saturday, 8 May 2010

The Timer Function WORKS!!

Another quick post to save the web links I use to help me understand the timer function in Flash AS2:

Set Interval
Creating Timers in Flash pt1
Creating Timers in Flash pt2 <-- Awesome blog which explains EVERYTHING.
Countdown Timer for Flash Games AS2 <-- step by step process in how to write the actionscript

Aims Achieved:
  • Set timer to 3 seconds
  • Lose: Timer reaches 0, did not click the right button, takes you to "try again" page
  • Win: click on button before timer reaches 0, takes you to "win!" page
  • Button changed to movie clip (I want to it be moving) <-- animation has to be done in classic tween and not motion tween.  It went a bit weird here for some reason.
  • Timer testy ver. 2 = COMPLETE.

HOORAY.

Program & Prototype Update

Before I go on, I'll post up a very cool Flash website that a friend linked me:

http://www.neave.com/

The strobe is amazing (as well as being very trippy) and the use of incorporating the webcam/microphone into the other fun shinanegans.  What's more, you can download some of the source code!! I haven't looked at them yet for fear of getting sidetracked but I'd definitely love to have a proper look at them one day.

-----
FLASH ACTIONSCRIPT
So far the programming bits to the prototype is starting to come 'alive'.  Just tweaking the final last hurdles ie changing the game design to using the inventory which will need a little bit of planning and thinking before I start tweaking things in Flash.

The main problem at the moment is the current game design clashing with the drag and drop aspect.

I've aimed for players to click on the icon in the inventory box to go to a close up view, unfortunately, that clashes with the on(press) and on(release) commands.

For example, the kite item has

on(press){
startDrag(this);
}

command and a

on(release){
    if(this.hitTest(_root.inv_hair) == true){
        _root.inv_kite2._visible = true;
        stopDrag()
        _root.inv_kite._visible = false;
        _root.inv_hair._visible = false;
    }
    else{
        _root.inv_kite._x = 135.05;
        _root.inv_kite._y = 521.50;
        stopDrag();
    }
}

command.  Which has a snap back to the inventory box if it doesn't make the hit test with the other item.  Which creates a problem for my idea of clicking on the item, and taking the player to the inventory window and allowing them to have a closer inspection on it.  The problem with that is that my current actionscript also tells it to:

on(release){
gotoAndPlay(900);
}

where frame 900 is the inventory kite closeup on my timeline.  Obviously with two on(release) scripts, the game gets a bit weird here.

This generates another problem that to allow the players to drag and drop items onto the stage in order for the items to interact with the 'environment', my intended interactive parts are all invisible buttons.  In order for the drag and drop to work, it can only have a hit test with a movie clip symbol and not a button symbol, so a slightly major revision of the game design is needed eep!  But it's okay, I'm so close to getting the whole thing to work, I reckon another push would do the trick.

--------
ART:
In other news, I have finished a new sketchbook two days ago yay!  It has all the finalized artwork needed for the 'visual' parts of the game so at least all the characters needed are drawn out.   Just need to put it all into photoshop for colour and style malarky as well as resizing everything for importing into Flash.  Thanksfully I feel that I'm very proficient in dealing with Photoshop so no trouble here.
--------
AUDIO:
I am very glad that I have written the script in a way that shows what will happen with the sound effects and music. Overall I need to do at least two compositions, make a few sound fx and record some vocal snippets which shouldn't take too long. 
---------
WEBSITE:
Not quite sure where this is going, but I am attempting to make to make my own website to host the game, apart from places like deviantart and newgrounds, I'd like to make the game more accessible to more people at least which was one of my aims.  Again, this is more dependent on how the whole project goes and the fact that I've no idea how to do any programming for websites.  I at least do know two people who know their stuff who is willing to lend a hand at the technical aspects while I do all the designy stuff. Phew.

Wow, long post today.

Wednesday, 5 May 2010

Actionscript Woes [Edit]

Edit:

Hey!  Great news!  This is solved!  You have to declare a variable --> _currentframe .

So for all the places where you can access my inventory, set the variable on the frame itself

myFrame1 = _currentframe

So when you click button to go to inventory and the 'Return' button, plug in

gotoAndPlay(myFrame1)

Now I can go to the inventory menu and return to where I previously was and not warp to the beginning of the map yay!

Cheers to Graham for that.

---------

Wow, looks like I won't be able to do chapter II afterall.  I can't seem to understand actionscript still so the programing prototypes are going so, so slowly.

The currently problem I'm having is to make a button similar to that of the 'back' button on a browser.  Meaning, once you click on it, you'll go to a specific place and clicking 'back' will take you to the frame you were on previously.

This link shows the same problem I'm having and I've had a look at the sample file posted but I still can't seem to crack it.

'Previous' button.

Will have to make multiple copies for it to work, since I don't think I can figure it out in time...d'oh.

Sunday, 2 May 2010

Actionscript 2 [Boss Fight!]

Ok, I've managed to combine a global variable with the timeline but trying to combine that with the items on the stage and inventory isn't working. D'oh!

Timeline example (which works!)

normal stage --> long conversation --> back to normal stage
normal stage --> short conversation --> back to normal stage
normal stage --> short conversation --> back to normal stage
etc.

I got the scripting to work so that it'll skip the long conversation and everytime you it'll always go to the short conversation.

I've managed to script it correctly when you on the stage, it will disappear and reappear as a small version in the inventory box.  Great! But to make the game seem more natural for the players I aimed to have it like:

normal stage --> conversation --> back to normal stage and item disappears from stage and reappears in the inventory box.

However, it goes like this:

normal stage  

I can't quick figure out why it wouldn't jump to the frame of the conversation so I can't test whether the global variable has changed to make the item reappear in the inventory.

GARH!

If this was a game, a hard enemy/problem definitely equates to a boss fight.

Writing a Video Game Script

I went to a workshop last week that focused on writing a script for video games.  It was interesting, although it didn't go too in-depth into the actual writing process, but it was still pretty good for what it offered as a one time workshop session.

I learned of a useful in writing a video game script and that was writing it in a table and labeling it in a certain way.  I tried doing this process after and it was incredibly useful.  I managed to organize my script that made sense and it became a good reference to what I wanted to do with it in the game.  Examples include seeing how many lines each character said and what stage/background it had to be on which made it easier for me to work out on how much artwork I needed to do.  Pretty neat!

Here's a sneak preview of the first chapter....
 


There are ideas for the second chapter but I'm unsure in how long I could make it depending on the time.  I think I'll aim to write the script for the third chapter (preview), get that done and if I have time, do the second chapter.  See how it goes.

Saturday, 1 May 2010

Actionscripting Level Up!

I have just combined a global variable and a timeline function!

Since there is a lot of 'talking' in the game, it gets repetitive and annoying.  I'll use an example to make it easier to explain.

- Player clicks on door
- A lot of talking happens and the play finds out the name of one of the characters
- Player clicks on door again
- Less talking happens, character name has been changed because the player knows the name from the talking earlier.

I'm going to write a tutorial for this for myself to refer back to....

- In GLOBAL frame write

_global.door1 = 0;

- In last frame of door conversation write 

_global.door1 = 1;

- In INVISBLE BUTTON frame write

invisdoor_btn.onRelease = function(){
    if (_global.door1 == 1){
        gotoAndPlay(750);
    }else{
        gotoAndPlay(715);
    }
}
I'm incredibly happy that I've managed this by myself as I am terrible at understanding the grammar of actionscripting.