top of page
Search
Writer's pictureTrial Byfire

GDD710 - Week 7: VERSION CONTROL

Updated: Apr 29, 2021


As with the previous rapid ideation session, while the theme is not yet known, there are still a few prep activities that can be carried out before the session begins. The best approach to this is to think about what you would like to achieve during the session. It might be particularly beneficial to reflect on your previous RI session:

  • Did everything go according to plan? If anything, what went wrong?

- For the most part I feel the first RI session went rather well. Everything I thought about was successfully implemented. However I do feel that maybe my idea was too ambitious for a simple RI game. I do like that it made me step out of my comfort zone though and I am happy about that. I think I should have spent more time on simplifying the story and the mechanics so that it didn't take the full amount of time during development. There are other areas I would have liked to improve.

  • Is there a way you could build on your work from the first session? (Although we ask you to work on a new artefact, you might still consider using similar technologies or reflecting on similar themes).

- This is actually something I have been thinking about. I let a friend play the game and he pointed out some very interesting things in the build that he personally thought worked really well. There is a psychological element to it all that he would like to see expanded upon. So this is something I will do eventually. For the second rapid Ideation though I would rather focus on a new concept and learn from the previous session and build on those lessons learned and experiences.


Flex.falmouth.ac.uk. 2021. Log in to canvas. [online] Available at: <https://flex.falmouth.ac.uk/courses/911/discussion_topics/19893?module_item_id=49183> [Accessed 17 March 2021].


Activity 2 Flex.falmouth.ac.uk. 2021. Log in to canvas. [online] Available at: <https://flex.falmouth.ac.uk/courses/911/pages/week-7-set-up-a-github-repository?module_item_id=49188> [Accessed 17 March 2021].


In the second activity for this week we were asked to do the following.

  1. Start by creating an account on GitHub: https://github.com/ (Links to an external site.)

  2. Create a new public repository for your rapid ideation project, either by following the tutorial provided by GitHub or by researching the most appropriate way to do it for your project.

  3. Use GitHub Desktop or your Git client of choice to manage your project throughout this RI session.

  4. Finally, consider sharing your repository so tutors and peers can more easily access and help with your project. Please post the link in your blog and in the forum on the next page.

Below I have outlines what version control is and I have also submitted my link for anyone to look at the files for the current rapid ideation activity.

What is rapid ideation?

Rapid ideation means a period of intense and productive work aimed at producing an artefact within a specific time, following a loose theme. You might be familiar with similar formulae, like game jams and hackathons, but here we keep the definition intentionally vague to not limit you in the scope of your artefact. Nevertheless, you should aim to channel your interests and aspiration for your studies into the development work, while practising with the tools and techniques outlined in previous weeks


Theme: The theme for this rapid ideation session is a number of options and routes to go down. There is an unquantifiable number of challenges we face today, including those related to:

 Social issues

 Economic issues

 Healthcare

 Education

 Environmental issues


For this RI activity, create an artefact that addresses any (or a combination) of the above.

For this session I have decided to with Mental Health under Healthcare and work in an RPG genre for the game. I have also decided to step out of my comfort zone this time and create the game in Unity.

As a form of inspiration, we were asked to watch a video from Dr Michael Cook on creating and using tools, employing AI and computational creativity to facilitate the development process of games. It was very insightful in regards to what he is currently working on especially with Angelina.


Angelina is an AI powered game developer who creates videogames based on themes, keywords and phrases. The latest iteration of Angelina can also link phrases together. For example, if the theme was treasure, Angelina could then link pirates or archaeologists to the theme. Angelina can also implement game mechanics of your choice. It is years of code and dedication to creating something near perfect. Angelina is also on itchio where it's games can be played for free.


As part of my research for this week I also found this video by Michael Cook on YouTube. It is very interesting as it dives into the processes he uses when coming up with new ideas and how he then implements them.

Games by Angelina, 2021. Redesigning Computationally Creative Systems For Continuous Creativity - ICCC 2018 Talk. [video] Available at: <https://www.youtube.com/watch?v=UKzucHAZe3s&t=1174s> [Accessed 17 March 2021].


On top of this subject I also did quite a bit of reading into Angelina and it's creator Dr Michael Cook on the website http://www.gamesbyangelina.org/ . Making Machines That Make Meaning is one of Dr Michael Cook's books that is co authored with Tony Veale and is about Twitterbots and Computational Creativity. I have had a look online and ordered the book for further reading. Finally on this subject I decided to try out some of the games that Angelina has published to see what level the AI is currently at and what sort of gameplay mechanics it has implemented. The games can be found here. https://gamesbyangelina.itch.io/


Why version control?

Flex.falmouth.ac.uk. 2021. Log in to canvas. [online] Available at: <https://flex.falmouth.ac.uk/courses/911/pages/week-7-introducing-version-control?module_item_id=49186> [Accessed 17 March 2021].


Experimentation is pivotal in any form of software development. This makes it necessary to have the ability to revert back from any change that risks being destructive or might not necessarily go as planned. The necessity is exacerbated by the inherent complexities of software development work, which makes typos and other mistakes quite common. For this purpose, a linear history or a simple ‘undo’ function as you would find in most software, might not necessarily cut it, since whenever a change is made after having ‘undone’ something, all the ‘undone’ edits are overwritten.


As per the activity request this week I went ahead and created a GitHub account and have download the desktop client to easily upload and overwrite files and changes to my Rapid Ideation project. Since I am also using Unity for this rapid ideation session I have been able to set up the repository quickly and efficiently since Unity has this function built in under Window>Version Control. The link to my repository on GitHub is below.


For the planning stage of this weeks sprint I have gone with the tried and tested method of mind mapping. Looking at the theme and then the sub themes within this I decided to base my idea around Healthcare. Specifically Mental Health.


Mental health includes our emotional, psychological, and social well-being. It affects how we think, feel, and act. It also helps determine how we handle stress, relate to others, and make choices. Mental health is important at every stage of life, from childhood and adolescence through adulthood. Now more than ever during these times of Covid-19 we are all taking this much more seriously.


Now that I had my underlying healthcare issue I started working on the idea itself. From the last rapid ideation session we were encouraged to step out of our comfort zones and so for this project I knew I wanted to work in Unity. I have a little experience in this area but I am not a programmer by nature which is why I usually use Unreal Engine and doing visual scripting in Blueprints. My goals for this rapid ideation session is to become more confident in a multiformat of engines and ways of working. I also wanted to strengthen my understanding of coding as I also feel this will help me within the version control repository on GitHub.

Mind Map of Hackathon Theme


A RPG for Mental Health

After careful thinking I decided to try my hand at an RPG game in Unity. I have always wanted to create an RPG game and I have always wanted to go back to Unity at some point as that is where I started my journey with game development. I am not the best coder in the world but it does make me come out of my comfort zone so that is a plus, and the student advisors have suggested that coming out of ones comfort zone would be a good idea and a worthwhile challenege.

Player represented by Black Cube - Black for Depression state

Scenery Shot. Artistic clouds and most notably I have two light sources creating a feel of sadness

Player can equip a sword and talk to NPC's and attack enemies. Enemies represented by the things show above in mind map. Love, Money, Stress and Work.

Throughout the development of this game I used Unity Learn section on their website if I had any questions of queries. The website contains a lot of guides and how to do, to successfully implement the mechanics you want to build. This was still challenging however as they never give the exact answer. I had to read a lot into calling functions and methods to achieve what I needed to achieve. https://unity.com/learn Below are some of the scripts I worked on to help implement the systems I am using. I will outline each one and what it does.

This is the base stat code for the player. The base stat system allows the player to gain additional vitality and strength based on items you interact with in the world and weapons that you equip.

The player weapon controller was written to store all of the weapons and projectiles I added into the game. This took quite a bit of time to get right. Looking back at this script though I would say that I should have called the different weapons by different names. I used "EquppedWeapon" and "equippedWeapon" for the two different variables and sometimes I confused myself a lot which meant I had to sort through a lot of Unity compiler errors.

The dialogue system I really pleased with as I managed to get everything working through the inspector. Unity had suggested I write the dialogue in JSON and add branching dialogues in that file. I have no experience with writing that and this was supposed to be a quick rapid ideation game and functional. So I decided to take this route and make it a little easier on myself. I think what I am most proud of with this particular code is that Unity and many other suggestions said to go the other route but I persevered and got a functional dialogue system working within the inspector.

The world interaction script contains all of the movement for the player since this is a point and click RPG. Once collided with an Item or an NPC, the appropriate box will appear on screen telling you the conversation or the item pickup name. For enemies, I have a different script which calls the tag "Enemy" with a collision attached to the weapons. Once struck, the enemy will disappear depending on their vitality.

This first week of the Rapid Ideation session has been fun. I have learnt a lot during my time in Unity and I feel more confident now more than ever to go back in future if I ever want to. Once I got used to something in Unity, I then felt even more confident to carry on using it, sometimes not even needing to look up answers.


If I had to say what my biggest issues were this week, it would be that I had many instances where I would confuse upper case and lower case letters in the scripts resulting in needless errors in Unity for me to fix. Since then, I have taken it upon myself to carry on reading some of the Unity help articles to better understand this and what I need to be aware of for next time.

Ultimately, I am very pleased with how this week has gone and I wouldn't change anything at this point. the design and lighting match my idea for the RPG I am creating.


4 views0 comments

Comments


bottom of page