Tuesday, 6 June 2017

Project Progress

Managing a project involves

Planning
Team work
Time Management
coordination
organisation
budget


For Example, 'Agile Development' is based on the Agile Manifesto...

satisfy the customer with valuable software.

Business people and developers must work
together daily throughout the project.

Give them the environment and support they need

Working software is the primary measure of progress.

The best architectures, requirements, and designs
emerge from self-organizing teams.

The number one principle of Agile is

Another Principle is 80/20 rule, prioritize the most important part of the project, not as much effort into the smaller details.

Another Principle is

User increments

Small increments

Project stack


This is a Project stack I have created using the tasks that I am following and implemented into my spreadsheet. As you can see, this is a very valid method of how I could keep track of where I'm up to with my work and progress as it's very simple, easy to look at and the bright colours are very appealing and eye catching. The colours outline what is completed and what isn't in the project with green being completed and red being not started. I believe that the objective would be to fill in the green going downwards rather than skipping from task to task as this way is very organised and then you know that you have completed everything that you need to without panicking.


Gantt Chart


Smart Target are great because you can always keep up to track with where you are and constantly create content as you have a solid set task to complete by the end of each lesson which also goes towards your work.

Specific, Planned, Measurable, Attainable, Related, Time-Bound

These are very useful because everything is planned out in a very nice and simple format where you can view it and know exactly where you are up to.

PROJECT START




Changed name, window size, fullscreen scaling, use high dpi, sampling, downscaling, loader style.

sampling because using pixel art. if using vector shapes, then would use linear.


enabled show grid and snap to grid. using 32x32 grid width and height.


right click, insert sprite and named it "player"


resized to 32x32 to fit nicely within the grid and then gave it an orange colour.


double clicked the sprite, selected the origin option and set the origin to the top left of the sprite which allows it to fit nicely in the grid.


implemented instance variables


I added the keyboard by using the insert object feature and then I added a global variable labeled "grid_size" which I gave an initial value of 32 since that is the value of my grid size.



For my game, I am going to be using a WASD moving system rather than the arrow keys.

First, I added an event assigned to the keyboard to D on the keypad, since I am beginning to allow the sprite to move around freely up, down, left and right. I then added an action to the player and set the value to 0. This is because I started with the movement facing in the right direction as that is how construct picked up angels as 0 degrees begins from the right. After I did that, I set the step timer to what amount of the grid size which means that the player will stop moving once the player takes the finger off "D" on the keypad and once the sprite has fully completed the movement into the next grid.

After I did that, I right click on the keyboard command and added another condition, using the compare instance variable modifier. The instance variable is the step timer on the player and comparison is equal to 0.


I then copied and pasted that command 3 more times, which will allow me to program the other keys so that the sprite will move in all necessary directions. I changed the values of the direction instance variable so that my sprite would face the correct way with the correct key held.


player moves forever in the direction pressed.

Added an event, when step timer is greater than 0, the player will move at the set speed of 2 in the direction of the player or the key pressed.


I added a new action where the player.speed is subtracted from the step timer, forcing the sprite to stop at the next grid. The problem with this is that you have to continuously press the key to move which is annoying and rather inefficient for the player.


In order to fix this, I have created another event and made the main event a compare instance variable, for when the step time is equal to 0. After that. I added a sub event by right clicking on the very left of the main event and I made it a keyboard event so that when the keys are down, they will start and stop at the correct moments.


I tidied up my commands so that commands that I would use in the future would be easier to organise and find. I changed a few of the commands in order to create movement of the sprites so that there was less clutter overall.

PROTOTYPE 1




Here is a video showing what the game looks like right now with all of the current commands shown above. As you can see, the sprite move freely and fluently as it pleases and it stops within a specific grid when you lift your finger from the key. However, You can see that the sprite can move off the map when it should be stuck within the players view.

CHARACTER CREATION.

After I got the basic mechanics working, I have decided to go ahead and create some sprites for the playable character within the game. I wanted to go for a pixel-style which a classic RPG feel creating sprites in the style of games such as classic Pokemon, Mario, Legend of Zelda and many more.

At this point, I decided that I would like to downscale my game and grid so I was able to create sprites with a style that has a classic effect.


Here is the base of the character I am going to use and implement into my game. To create this, I used Paint.net which is a free program that gives me a wide variety of different tools I could use to design this. The Sprite is a 20 x 20 image and I spent quite a bit of time using different colours to shade the character to give it a nice effect. 

The character its self has many different inspirations from other videos games and TV shows, as the style itself is very Pokemon-like and the outfit that the character is wearing is based of Nedeko Sengoku from the Monogatari series.


After I had finished this first sprite, I decided that I would like to create different versions of the sprite so that I could get an effect where the accessories on her body move whilst the player is idle. So I edited the sprite and made another version where it looks like the wind is blowing gently and the animation gives off a nice effect overall in my opinion.


I tweaked a few things in the original design for the animation I plan for my sprite to present in my game. I mainly focused on making sure the coat moves nicely from side to side but I also made a very small change to the ribbons located on her hat. After I was happy with the second frame of this, I flipped the image horizontally and then saved it as the 4th piece for the animation.



This is the sprite that I have created for the Front_Idle within my RPG game. I think it looks fairly appealing but it may be possible that I may adapt the design to improve it within the future.


After I was finish with the front idle sprite, I then proceeded to begin on the idle sprite for the behind angle.


In order to created a sprite for the back, I used the original outline of the sprite used from the front which helped me create this without any additional hassle and I used a very similar pallet of colours to texture and create the sprite once again. This time, it didn't take me as long since there wasn't as much details to texture, such as the face, hands and body since most of the design from the back was block colours.


I then used the 2nd frame of the front animation to once again obtain this structure of the sprite and I think that it overall has a nice effect.


Here is the version I have created that I may edit later on within development.


The next sprites I need to create is for when the player is looked left or right. It will be difficult to create at first since the original sprites won't benefit me too easily but once I have finished one side, it will be very easy to apply the other.


Here is the sprite that I have created when the character is facing to the left. It took me quite a while to adapt a nice pixel design as I wanted it to make the character look appealing when playing the game.

In order to get the right idle pose, I simply flipped the image horizontally which was quick, easy and effective.




Here, you can see how I have slightly edited the sprites to gather a similar effect to both the front and back sprite animations and I tried to keep the process rather minimal for the meantime.


Here is the result of the left and right idle animation.

WALKING CYCLE.


For the front walking cycle, I have made it so that one leg is more visible than the other leg which easily implies that the character is moving. I have also made it so that it seems like the sprite slightly bounces in each frame and each step which leaves a nice effect and as I implemented this by simply using the remaining space within my 20x20 grid and lifted the character upwards. 



In the back walking cycle, I have simply used the original legs from the front walking cycle and applied them to the back walking cycle by copying and pasting. I did this since I think that this works well as the pixel detail doesn't allow you to present the detail to the maximum and it looks quite effective as it is.




The left and right walking cycle were once again much more tricky than the front and back in my opinion. I was thinking of different but easy ways of how I could animate the sprite to make it look like they are moving different feet in each cycle. I tried to spread the legs to make the sprite pose within a striding position showing that both of the legs are apart which shows clear movement. After I was comfortable with the current walking positions, I shaded each shoe in either more colourful or dull colour which shows if the foot it either closer to you or further away and it acts as if the other leg is casting a slight shadow behind the other shoe.


PLAYER ANIMATION


In this, I have created and edited multiple commands to allow the player animation to work both fluently and smoothly. In the process, I have told the system when the player should use the different animations in the situation of which key is pressed down and which direction the player should be facing. 


PROTOTYPE 2


Here is a video demonstrating how the animation of the walking and idle cycles look within the game. As you can see, the animations are rather fluent and work really well with the game.


PLAYER COLLISIONS


Setting up the collision boundaries was actually quite simple. There wasn't much coding involved as all I had to do was edit on of my functioning commands by adding a sub event, which I inverted for a positive effect so that the player would not travelling into or through the walls and by inverting, this would disallow the player from moving through the walls which is exactly what I wanted.




I also had to edit the collision polygonal because before this, the player would stick to the wall making the movement seem less fluent than it should be and changing this made it so that the player knew exactly when it was actually touching the wall so that it didn't advance any further.



PROTOTYPE 3


Here is a video showing how the collision boundaries work, where my character cannot pass through the walls which now lets me begin to create mapping for my game.


MAPPING


This is the mapping area that I have currently created for my starting room. As you can see, it is quite simple but I plan to add other layouts within the meantime.


TILEMAPPING


Here, you can see that I have used my own custom tilemap set that I created using paint.net. I set each tile to 20x20 due to the fact that it is the size of each grid within my project. I have created a range of different textures but at the moment have only implemented a handful since I don't want my environment to look overly complicated.


Here is my tilemap at the moment. As you can see, I have created the textures by myself as the process was to create the basic design first and then add detail. You can see that there are some designs that I did not detail or add into my environment since I was unsure if it looked appealing. I will still carry on creating various textures to add into the rest of my game.


PROTOTYPE 4



Here is another prototype showing how my game looks with a tilemap in use. As you can see, it looks quite decent but it does also look like it needs a bit of polishing considering that I am quite new to this process.


MOVING BETWEEN AREAS


In this, you can see that I have created new sprites such as Door_Entry and Door_Exit. These are what I will be using for programming my character to be able to move from one layout to another. 



Here, you can see that I have created another layout using the same setting and event sheet as my original but in this, you can see that I have used the same red sprite that will allow the player to move through layouts. 



In this, I have programmed it so that the system makes the player spawn at the location right outside of the doors since that is where the player comes from and comes out from.


PROTOTYPE 5



Here is another video showing how my game looks at the moment with the new feature of my doors being able to take the player to a different layout.


DIALOGUE BOXES


As you can see, there is a lot of events and features which are rather complex but once looked at and speculated, it's not that complicated. I used a tutorial for some help during this since I found myself getting into a lot of buggy and confused situations where the text wouldn't work. I had implemented an NPC into the system of my game which would initially react to the player once the player presses the space-bar looking towards the NPC. I programmed each feature to each 4 sides of the NPC's model which basically is telling the program when and when not to display the text. I have also told the program how fast I want the text to be displayed to the player for convenient reasoning. 


These finishing events are telling the system that when the dialogue has finished, the player should be able to move again freely.


I have added all of my player movement events into one single group to make a part of this task much easier since they were automatically bunched together with one another. This allowed me to make it so that my player would be completely stopped whilst talking to an NPC and the system would allow the player to move as soon as the dialogue box has disappeared.


Here, you can see that I have added the NPC into the game, The dialogue box into the player view area where I changed the parallax to 0,0 so that It actually stays there. I have also added text boxes to allow me to program and write the text of the dialogue and I added a collision wall so that you can't walk through the NPC and I also used to so that the system knows when to show the dialogue to the player.


PROTOTYPE 6


In this video, I demonstrate how the dialogue works in my game and I have made changes to my commands so that there are minimal bugs in the process of using the dialogue feature.


FINISHING TOUCHES

I am now confident that I have done enough mechanical work on my project for the moment so I am going to spend some time polishing my game to make sure that the textures looks nice within my custom tilemapping.


Updated Custom Tilemap


Here is the latest version of my tilemap. As you can see, I have produced even more textures for my environment and I think that I have accomplished a good job with actually creating them and using them within my FMP. I think I could have improved on some textures or even produced more but I am very pleased with the outcome.


PROTOTYPE 7




Here is the final version of my 2D RPG that I am submitting for my FMP.

No comments:

Post a Comment