A fine evening to you, readers!
The Fourth Conversion Phase is now complete, and the resulting prototype is more or less done for the time being.
It's a great deal simpler than I originally hoped, in terms of code, visuals, and gameplay, and is a significant downgrade from the previous prototypes made in Unity. This can partly be explained with the fact that I'm still new to the Visual Studio interface, and it took a great deal longer to accomplish certain simple tasks than if I had more experience. Hopefully, this means that future prototypes will be more advanced, and will take less time, allowing me to develop and polish them even further.
In its current state, the prototype plays Rock-Paper-Scissors with the player in a very basic capacity; the player gives their input first, and the "opponent" responds immediately, using a random number generator to decide what its move is. The random numbers are weighted to reduce the occurrence of draws between the player and opponent, encouraging positive or negative outcomes.
In this manner, it's more or less entirely random whether the player wins or loses, and their moves are technically pointless, in terms of which move they make. So long as they make a move, the chances of winning or losing are equal to any other move they could make; for example, a player who chooses their moves with careful deliberation and bluffing would have the same chances of victory as a player who chose Scissors every turn.
With more time, I might design same kind of system to allow the computer to recognise this kind of behaviour, increasing the chances of it countering repeating moves. This would likely work by adding value to an integer variable, and then using that variable in the random number generator when the opponent chooses its move. However, this is a back-end feature which doesn't greatly affect the user's experience at this stage.
A timer, displayed at the top of the game screen, counts how long the player has to make their move; failing to choose a move before the timer completes will grant the enemy a free win, and a subsequent point to their score pool.
On top of this Rock-Paper-Scissors mechanic is a second, also very simple gameplay element; there is a button on the right side of the game window, separated from the Rock-Paper-Scissors game. Clicking this button fills up a bar (which is also constantly depleting at a gradual rate); filling the bar increases the value of the player's wins, granting them an advantage over the opponent by letting them gain the required number of points with fewer wins in the Rock-Paper-Scissors game.
Once the bar is filled and the player's win value increases, it also becomes harder to fill, increasing the required input by 50% with each fill. So, if the first fill takes six clicks, the next should take nine, if the player is clicking at the same rate. Once the player's win value reaches five, it become exceedingly difficult to fill the bar any further, and likely impractical as the game timer progresses, giving the opponent more points. However, by this point, adding more value to the player's wins is largely unnecessary; five points per win is enough to beat the game with two successful moves, while the opponent will always need ten, meaning that the odds are heavily in the player's favour by such a point.
It's up to the player to strike a balance between making moves and improving their win value. Currently, it's largely more practical to focus more time onto increasing their win value, as different moves have little effect on the outcome.
Finally, I'd like to quickly mention some problems I currently have with the prototype, as this is far from the best thing I've made, and hopefully I can put together something better for the next Conversion Phase; as I've mentioned, the way the opponent chooses moves is pretty poor, allowing the player to simply choose any move of their own and still have the same chances for each possible outcome. I would like to have had the time to put together a slightly smarter AI which tried to anticipate the player's moves, and which can be bluffed against.
Also, the game itself, as it stands, is far from entertaining; it's an almost painful clickfest of trying to pick out moves and increase win value for a few seconds, before simply picking any random moves and hoping to win sooner rather than later. The game fundamentally needs some more design work to improve on this issue.
And lastly, the game doesn't even look nice, using basic Webdings symbols, labels, and the simplest of UI elements. Compared to the prototypes made in Unity, or even the Tutorial games from the Fourth Tutorial Phase, this prototype is just ugly, which doesn't really help with the poor gameplay.
That's about it for now, readers. The Fifth Tutorial Phase will begin as of tomorrow, with a YouTube tutorial creating a mixture of XNA and MonoGame framework games, and will conclude on the 1st of March.
Until then, have a fine evening, readers.
Sunday, 22 February 2015
Saturday, 14 February 2015
Fourth Conversion Phase Update
Greetings, readers!
So, it seems I forgot to update the blog regarding the start of the Fourth Conversion Phase at the beginning of this week. I seem to be apologising a lot in regards to late updates, which is certainly worrying; I'm going to have to look into a way of enforcing deadlines on the blog posts for myself at some point.
For now, however, I'll just say that the Fourth Conversion Phase HAS begun, and the game I will hopefully have ready for Sunday of next week (the 22nd of February) is going to be a little simpler than some of my previous conversion projects, but I'd like to focus a little more on applying some polish and user-friendliness to it. Menus, for example, and maybe some simple sound effects.
The basic idea is a Rock-Paper-Scissors style game in which the player fights an AI opponent, likely using a very basic RNG (or Random Number Generator) system to choose moves. Wins against the opponent will be building towards a pool of points; whoever gets their pool to the target goal, wins. So, for example, the goal could be ten points, and each player could receive three points per win against their opponent's move, meaning they would need four total wins to beat the game.
The point of this is to continue to make myself more familiar with Microsoft Visual Studio, in particular regard to connecting the code with the base program. The tutorials taught me how to reference objects in the central class file, but I still need to learn how to connect objects to their own pieces of code.
For the game itself, I need to think of a way to determine how much each win is worth, and tie that into the gameplay. A possibility could be to have a second game (still very simple, Noughts and Crosses maybe) which the player also works on to determine their win value in the central game. I'll put some thought to it perhaps next week, and focus on the core Rock-Paper-Scissors mechanics this week.
I'll have an update tomorrow to show what progress I've made in the first week, and how I plan to go about next week. Until then, have a fine day, readers.
So, it seems I forgot to update the blog regarding the start of the Fourth Conversion Phase at the beginning of this week. I seem to be apologising a lot in regards to late updates, which is certainly worrying; I'm going to have to look into a way of enforcing deadlines on the blog posts for myself at some point.
For now, however, I'll just say that the Fourth Conversion Phase HAS begun, and the game I will hopefully have ready for Sunday of next week (the 22nd of February) is going to be a little simpler than some of my previous conversion projects, but I'd like to focus a little more on applying some polish and user-friendliness to it. Menus, for example, and maybe some simple sound effects.
The basic idea is a Rock-Paper-Scissors style game in which the player fights an AI opponent, likely using a very basic RNG (or Random Number Generator) system to choose moves. Wins against the opponent will be building towards a pool of points; whoever gets their pool to the target goal, wins. So, for example, the goal could be ten points, and each player could receive three points per win against their opponent's move, meaning they would need four total wins to beat the game.
The point of this is to continue to make myself more familiar with Microsoft Visual Studio, in particular regard to connecting the code with the base program. The tutorials taught me how to reference objects in the central class file, but I still need to learn how to connect objects to their own pieces of code.
For the game itself, I need to think of a way to determine how much each win is worth, and tie that into the gameplay. A possibility could be to have a second game (still very simple, Noughts and Crosses maybe) which the player also works on to determine their win value in the central game. I'll put some thought to it perhaps next week, and focus on the core Rock-Paper-Scissors mechanics this week.
I'll have an update tomorrow to show what progress I've made in the first week, and how I plan to go about next week. Until then, have a fine day, readers.
Sunday, 8 February 2015
Fourth Prototype Phase COMPLETE!
Greetings, readers!
I think I should perhaps write "Complete" in all-caps for all of my Completion update titles from now on; make it easier to find them among the list of dull, dull post titles.
But yes, I have just finished the final touches of the Fourth Prototype Phase. As you may recall, the tutorials in question were three very basic demonstrations of Microsoft Visual Studio 2013 from their Developer Network site, which can be found here:
https://msdn.microsoft.com/en-us/library/dd492135.aspx
https://msdn.microsoft.com/en-us/library/dd492162.aspx
https://msdn.microsoft.com/en-us/library/dd553235.aspx
The main purpose of these tutorials was less to see C# in use, but more to get at least a basic understanding of Visual Studio and how to use it in a simple capacity. This includes things like creating tables and labels in the Form, and manipulating them in terms of size, context (such as text fields and colours).
On top of just working with these in a basic capacity through the program itself, I needed to learn how to access and work with the visual elements of the program through the built-in code functionality. Visual Studio has an interesting method of accessing elements through code; instead of linking the objects up to class files as I might with Flash or Unity, they're all considered children of the central class file, and so far I have only seen them being manipulated through that central file.
Visual Studio also has a tool for adding functions to the code rather elegantly; each object you place on the form (such as a field, button, or label) has certain Events which can be added to the code simply by double-clicking on them, or tied to an existing function in the class file. For example, you could build in a button, go to its Events list, and tie in an existing method in the code to call when the player clicks the button; or mouses over it, or any other number of pre-set possible Events tied into each object in the Toolbox.
This isn't that different from the way Flash and other programs use Event Listeners; the main differences are that each type of object is restricted in what Events can be tied into it, though the Events that can be used with it can be very easily scrolled through to find the right one that the creator is looking for. I imagine that Events that can't be found in the list of the object could be generated in the code if need be.
Overall, this it a fairly easy program to use, though I could see the pre-set objects in the Toolbox very quickly becoming stale, particularly in their appearance, which contains very few cosmetic options beyond colour.
Going forward, I still need to put some more thought into the game that I could create from the techniques demonstrated in the tutorials, as well as my existing knowledge. I'll create a blog post announcing the beginning of the Fourth Conversion Phase, and should describe what I plan to create there. Expect that tomorrow, or by Wednesday at the very latest.
Until then, readers, have a wonderful day.
I think I should perhaps write "Complete" in all-caps for all of my Completion update titles from now on; make it easier to find them among the list of dull, dull post titles.
But yes, I have just finished the final touches of the Fourth Prototype Phase. As you may recall, the tutorials in question were three very basic demonstrations of Microsoft Visual Studio 2013 from their Developer Network site, which can be found here:
https://msdn.microsoft.com/en-us/library/dd492135.aspx
https://msdn.microsoft.com/en-us/library/dd492162.aspx
https://msdn.microsoft.com/en-us/library/dd553235.aspx
The main purpose of these tutorials was less to see C# in use, but more to get at least a basic understanding of Visual Studio and how to use it in a simple capacity. This includes things like creating tables and labels in the Form, and manipulating them in terms of size, context (such as text fields and colours).
On top of just working with these in a basic capacity through the program itself, I needed to learn how to access and work with the visual elements of the program through the built-in code functionality. Visual Studio has an interesting method of accessing elements through code; instead of linking the objects up to class files as I might with Flash or Unity, they're all considered children of the central class file, and so far I have only seen them being manipulated through that central file.
Visual Studio also has a tool for adding functions to the code rather elegantly; each object you place on the form (such as a field, button, or label) has certain Events which can be added to the code simply by double-clicking on them, or tied to an existing function in the class file. For example, you could build in a button, go to its Events list, and tie in an existing method in the code to call when the player clicks the button; or mouses over it, or any other number of pre-set possible Events tied into each object in the Toolbox.
This isn't that different from the way Flash and other programs use Event Listeners; the main differences are that each type of object is restricted in what Events can be tied into it, though the Events that can be used with it can be very easily scrolled through to find the right one that the creator is looking for. I imagine that Events that can't be found in the list of the object could be generated in the code if need be.
Overall, this it a fairly easy program to use, though I could see the pre-set objects in the Toolbox very quickly becoming stale, particularly in their appearance, which contains very few cosmetic options beyond colour.
Going forward, I still need to put some more thought into the game that I could create from the techniques demonstrated in the tutorials, as well as my existing knowledge. I'll create a blog post announcing the beginning of the Fourth Conversion Phase, and should describe what I plan to create there. Expect that tomorrow, or by Wednesday at the very latest.
Until then, readers, have a wonderful day.
Monday, 2 February 2015
Second Semester Update: The Coming Projects
Hello, readers, once again!
We're now in the second semester of the academic year, and I have had enough time to put some thought into my dissertation project, and where to take it from here.
As you may or may not know, the original plan was to follow a similar setup to the previous semester of using online tutorials to learn new coding techniques with C# and build small game prototypes with that knowledge every two weeks. However, this will be changing slightly, as I will detail here:
Firstly, the previous two-week development cycle for the projects will be changed for a three-week cycle, allowing another week of work on the Conversion Phase so that I can hopefully put together something more polished and ready for submission. Please expect an update to this blog after the completion of each Tutorial Phase, an update one week into each Conversion Phase, and a final update at the end of each Conversion Phase.
Second, I will no longer be using Unity, as it wasn't offering me experience with C# as much as UnityScript; while useful, that wasn't the purpose of this dissertation, and has therefore been changed. From here, I intend to use Microsoft's Visual Studio Express 2013.
Third and finally, I have reduced the number of tutorials from three to two, allowing myself enough time to complete both with the new three-week development cycle, and still having plenty of time to work on the final project for the semester.
At this stage, I believe I have enough understanding of coding to be fairly competent with C#, provided that I learn the basic syntax and Visual Studio software, so the focus of the tutorials will be on those two goals.
So, then, with no further preamble, here are the two tutorials I will be completing and reworking over the next six weeks:
1: I will be following the following three tutorials available on the Microsoft Developer Network that cover the basics of Visual Studio 2013.
https://msdn.microsoft.com/en-us/library/dd492135.aspx
https://msdn.microsoft.com/en-us/library/dd492162.aspx
https://msdn.microsoft.com/en-us/library/dd553235.aspx
These should give me enough knowledge and confidence to use Visual Studio itself, whilst allowing me some freedom to use C# in a basic capacity. Once the tutorials are complete, I will estimate what my capabilities are to experiment with the software and coding techniques, and spend two weeks trying to fulfil that estimation, possibly pushing the prototype a little further if I feel I'm able.
The Tutorial Phase should be completed on Sunday the 8th of February, and the Conversion Phase should be completed on Sunday the 22nd of February.
2: I will follow a YouTube tutorial creating some small games using XNA and MonoGame frameworks in Visual Studio.
https://www.youtube.com/playlist?list=PL8YsBsQXUFy-tilPKhtxtrdanVmIQvzzX
Parts 4 and 5 currently appear to be missing from the playlist, but can be found on the uploader's channel. I will link these if necessary in my summary post after the Tutorial Phase is complete. Again, I will estimate my capabilities after completing the tutorials and work towards what I think is a realistic goal before beginning my Final Project.
The Tutorial Phase should be completed on Sunday the 1st March, and the Conversion Phase should be completed on Sunday the 15th of March.
Following this, the Final Project for the Semester will begin on Monday the 16th of March, and should be concluded for Friday the 1st of May, following Easter.
I believe that's all I have for you for now, readers. The only thing left to do is to declare that the Fourth Tutorial Phase has officially begun.
Please do have a fine evening, readers, and wish me luck in the coming months.
We're now in the second semester of the academic year, and I have had enough time to put some thought into my dissertation project, and where to take it from here.
As you may or may not know, the original plan was to follow a similar setup to the previous semester of using online tutorials to learn new coding techniques with C# and build small game prototypes with that knowledge every two weeks. However, this will be changing slightly, as I will detail here:
Firstly, the previous two-week development cycle for the projects will be changed for a three-week cycle, allowing another week of work on the Conversion Phase so that I can hopefully put together something more polished and ready for submission. Please expect an update to this blog after the completion of each Tutorial Phase, an update one week into each Conversion Phase, and a final update at the end of each Conversion Phase.
Second, I will no longer be using Unity, as it wasn't offering me experience with C# as much as UnityScript; while useful, that wasn't the purpose of this dissertation, and has therefore been changed. From here, I intend to use Microsoft's Visual Studio Express 2013.
Third and finally, I have reduced the number of tutorials from three to two, allowing myself enough time to complete both with the new three-week development cycle, and still having plenty of time to work on the final project for the semester.
At this stage, I believe I have enough understanding of coding to be fairly competent with C#, provided that I learn the basic syntax and Visual Studio software, so the focus of the tutorials will be on those two goals.
So, then, with no further preamble, here are the two tutorials I will be completing and reworking over the next six weeks:
1: I will be following the following three tutorials available on the Microsoft Developer Network that cover the basics of Visual Studio 2013.
https://msdn.microsoft.com/en-us/library/dd492135.aspx
https://msdn.microsoft.com/en-us/library/dd492162.aspx
https://msdn.microsoft.com/en-us/library/dd553235.aspx
These should give me enough knowledge and confidence to use Visual Studio itself, whilst allowing me some freedom to use C# in a basic capacity. Once the tutorials are complete, I will estimate what my capabilities are to experiment with the software and coding techniques, and spend two weeks trying to fulfil that estimation, possibly pushing the prototype a little further if I feel I'm able.
The Tutorial Phase should be completed on Sunday the 8th of February, and the Conversion Phase should be completed on Sunday the 22nd of February.
2: I will follow a YouTube tutorial creating some small games using XNA and MonoGame frameworks in Visual Studio.
https://www.youtube.com/playlist?list=PL8YsBsQXUFy-tilPKhtxtrdanVmIQvzzX
Parts 4 and 5 currently appear to be missing from the playlist, but can be found on the uploader's channel. I will link these if necessary in my summary post after the Tutorial Phase is complete. Again, I will estimate my capabilities after completing the tutorials and work towards what I think is a realistic goal before beginning my Final Project.
The Tutorial Phase should be completed on Sunday the 1st March, and the Conversion Phase should be completed on Sunday the 15th of March.
Following this, the Final Project for the Semester will begin on Monday the 16th of March, and should be concluded for Friday the 1st of May, following Easter.
I believe that's all I have for you for now, readers. The only thing left to do is to declare that the Fourth Tutorial Phase has officially begun.
Please do have a fine evening, readers, and wish me luck in the coming months.
Subscribe to:
Posts (Atom)