Week 3 Activities
Practical Exercise A
Video at: https://youtu.be/_mFOsBUvMgo
Apologies for this week being late, it was hectic on my side, so im doing all my catch up now 😊
As can be seen in the video, I had some interesting problems with framerate that I am still going after. However, at 300 units moving simultaneously, and recalculating path every ~3 seconds, the framerate is fairly steady from 50-70 fps.
I have attempted various techniques for both node and path smoothing. I can confidently say that my attempts on node smoothing did not work, at all. My initial logic was that if a node was surrounded by other similar nodes, that its edges and connections could be transferred to the outside nodes, and the node itself deleted. However, considering that all my nodes are similar, I ended up with a set of nodes bordering my obstructions, and none to path. E.g.
Thus, the player could not navigate to… anywhere, as there was no node present.
I did manage to scavenge some level of success from this approach, when I increased the nodes compared from the nearest neighbours, to the next level of neighbours inclusive (neighbours, as well as neighbours of neighbours). This created a sort of shell around the obstacles, removing nodes on the far edges of the maps. Useful for some situations, perhaps not others. E.g.
Now, for path smoothing;
More success! With just a single function, my paths are shrinking from ~17 nodes to ~3.
The function in question follows as such:
public List<Node> SmoothPath (List<Node> original)
List<Node> smoothPath = new List<Node>(original);
print("Smooth begun: " + smoothPath.Count);
Node checkPoint = smoothPath;
Node currentPoint = smoothPath;
while (currentPoint != null)
Ray ray = new Ray(checkPoint.position, (currentPoint.position - checkPoint.position).normalized);
if (Physics.SphereCast(ray, 1, Vector3.Distance(checkPoint.position, currentPoint.position), obstructionMask))
checkPoint = currentPoint;
if ((smoothPath.IndexOf(currentPoint) + 1) < smoothPath.Count)
currentPoint = smoothPath[smoothPath.IndexOf(currentPoint) + 1];
currentPoint = null;
Node temp = currentPoint;
if ((smoothPath.IndexOf(currentPoint) + 1) < smoothPath.Count)
currentPoint = smoothPath[smoothPath.IndexOf(currentPoint) + 1];
currentPoint = null;
print("Smooth Finished: " + smoothPath.Count);
checkPoint = starting point of path
currentPoint = next point in path
while (currentPoint->next != NULL)
if Walkable(checkPoint, currentPoint->next)
// Make a straight path between those points:
temp = currentPoint
currentPoint = currentPoint->next
delete temp from the path
checkPoint = currentPoint
currentPoint = currentPoint->next
Now, from this (unfortunately separate) video (https://youtu.be/myosIgGyLME) we can see that sometimes the AI will clip through nearby obstacles. I have a few different methods to solve this, which result in slightly different behaviours for the pathing, but for the exposition I went with my default settings, as I prefer their result for now.
As the smoothing adds a further step onto path generation, it does increase lag during gameplay, but the function is quite fast so its not a major concern at this stage, at least not as much as the pathing itself.
Practical Exercise B
My chosen algorithm is A*.
A* is not only well optimised, for both swift prebaking and live gameplay, but it has an abundance of documentation and literature about it, allowing for many variations to be studied and integrated into my gameplay.
A drawback to this approach is the cost of operations; ie, repeated calls for path generation. A* will not perform as well as D*, as D* stores path data and changes when needed.
As a resolution to this problem, I am finding “probable” paths between important nodes and storing them. Then, when a character needs to move between important points they can simply draw on the pre-generated paths.
E.g., For this week I created a mock village simulator, with villages going from building to building. In this instance, we may assume that we can create paths from every building to every other building and store them. When the character needs to go from fields to storage, it queries the field for its storage path and uses that rather than generating its own. While workable, this approach will need some refinement to be properly usable. Perhaps not all buildings need to reference each other?
Hi again everybody!
As promised, a follow up to Week 3: Language Inquiry.
To further investigate how to integrate and design languages for games, I created a little simulation. The sim consists of 2 parts;
The first part: The player must make their way along a series of platforms. These platforms lead to 5 different signs. The first 4 bear runes with different words. Each word is a translation of a rune on the final sign. Once all runes are collected, and the player interacts with the final sign, the phrase is uncovered (“All Dragons Fly South”, previously “Maar Dracus Vin Laos” and a path to proceed is revealed. This is extremely simply language construction, just replacing English words with fantasy ones.
This example of language integration has potential for a lock-key mechanic, a foundation of game design. Single word use has also been seen in Skyrim, as a spell system (known ingame as “Thu’um). This approach to language design and integration looks to be the easiest, but is thus limited. It is fairly crude, and can be seen as such. Were the language to be used extensively throughout the game, it would need to be advanced, or detract from the overall quality of the game.
The second part: Continuing down the revealed path, the player reaches an NPC. The NPC says “Ji Na Venn Dross Va Mohl”. As the player finds signs that correspond to runes, and talk to the NPC, words are uncovered. When all nearby signs are used, the NPC says, “Ji Na Reached End Va Level”. While not entirely translated, the player is given enough contextual information to understand what is being said.
This system still uses single words, but hides the lack of grammar and syntax behind a wall of unknown words. By not introducing the player to all the intricacies of a language, you can pretend you have a full blown language while having simple word replacement . This system was used very well in Final Fantasy VII. FF7 also experimented with changing word order however, something that has come up in my research. The English Language uses a Subject-Verb-Object (SVO) ordering, while Japan uses a Subject-Object-Verb (SOV). 
The potential of this slightly more advanced system is high. Games where you cant interact with other civilisations until you can understand them. A return to a “no quest marker” quest system, where you have to figure out where to go based off your conversation with an NPC. This would make language very important. An NPC who says “Szi Dracus Vin Go Laos Mahasi” is incomprehensible, but an NPC that says “The Dragons Vin Go South Mahasi” is more challenging than impossible.
As to creating a more indepth and structurally sound language, there is a cost-benefit scale to analyse here, as it seems that language creation requires almost exponentially more time and resources to create, as its complexity increases. For every word, you now require syntax, and grammar. You then need to find standard order of operations and pluralisation. I may wish to experiment with my own characters if I develop my own syllables. All of these items seem to feed off of each other, each increasing the difficulty of the other. This is not to say that a complex language is an insurmountable task, only that should I wish to explore this, I will definitely need to set aside time and resources to do so.
I will definitely be experimenting more with this as I progress with the Eternal Series, so keep an eye out!
This is Week 2… again!
*EDITED* Just added a video at the end so you guys can see my inquiry piece! Not complex or pretty, but a way for me to dig into exactly how difficult it would be to integrate and create game ready language mechanics.
My lecturer requested that I come at this assignment from a different angle, so here is my new Self Reflection. You can find the latest piece at https://drive.google.com/open?id=18TJBNLiQcDkEz3r4zP371DY-yzIvQ_8I
This piece is less of a game, more a stark portrayal of who I am.
In the centre, the closest I could get to portraying myself in 3D. Couldn’t get a beard going with Morph3D (Morph 3D, 2018) so bare faced, which annoys me more than it should. Heavier than your average joe, short-ish brown hair. I like to dress plain, generally in blacks. Glasses on my face, because my eyes have everything under the sun wrong with them. Long sighted, lazy eye, a stigmatism. Worn slightly too low because if I need to focus on things I look over the top.
At my feet and surrounding me are all the main foci of my life. To my right, my computer (or a close enough reproduction). I spend enough time in front of this thing that it has become integral to my identity. Do a thousand small improvements to something, and you come to feel like it’s a part of you. From performance, to useability, to security. I have made my computer an extension of my creativity, with every facet tailored to my own creative process. My computer is where I first develop my ideas, where I begin to mould them and where I finally transform them into my art.
On my left, a guitar. My family are all introduced to musical instruments early in our life. For me, around Year 5 (10 years old). My sisters played flute and clarinet. My ears probably have permanent damage from the clarinet. Music has always been a large part of my identity. I have never been particularly skilled at guitar playing, or music composition, but there is music for every emotion. If I wanted to savour a feeling, you find the music for it. If you want to induce a different feeling, you find that music. I have a set of epic orchestral dubstep pieces that always make me feel energized and self-improve-y (the feeling you get at 1:00am where you want to go learn or exercise or reform your ways). I recently began teaching my girlfriend the guitar, and that too has been an experience!
In front of me, books. When I was young, I devoured books. By the time I had reached 12 years old, I had finished my school library, and half of the town library. I love epic high-concept fantasy. David Eddings, Raymond E Fiest, David Gemmell, Robert Jordan. And lately, Brandon Sanderson. Stormlight Archives everyone. They are literally the best ever. Reading was a large part of my identity construction when I was younger, and to this day. I learned morals from Druss and self confidence from The Magician. I learnt how morality can be twisted from Way of Kings, and Kaladin’s battle with honour vs necessity.
In front, a cat. I’m a cat person. Dogs give unconditional love, and I can see the attraction. But if a cat loves you, you earned it. Also, cats are self-sufficient, and just need feeding and pooper scooping. They are amazing companions, etc. Enough about how awesome cats are. Animals as a whole are a large part of my life. I have always had at least 2-3 in my house. It broke my heart when I came to Perth and stayed in a series of no-pets apartment complexes. I am moving to a new house (tomorrow!) which allows all pets! Guess who’s getting a kitten ?
Im sure you noticed a kind of outlier behind me. That is, in fact, a dragon. As I mentioned above, I love the classics, but Christopher Paolini’s Inheritance series (known for its first book “Eragon”) captured me. I quite simply love dragons. Not sexually (no matter how much my friends joke about my dragon fetish). I love the vast array of concepts that are contained within dragons. The science, the magic, the power, the wisdom, the recklessness. Thus, I love to integrate them into my stories, and my games. If you were expecting a dragon-less Eternal Ember, you will be disappointed!
This is a quick reflection of my life, and there are some events that profoundly impacted my development that I do not wish to air publicly. However, I do wish to speak quickly about how the above have impacted my creativity.
As you may have guessed, I was an introverted child. Head in a book consistently, or in my room playing guitar. When I got my first game console, this just compounded! I learnt the skills every introvert learns. To self-amuse, to enjoy my solitude. And while I was reading, I came to want to tell stories. While I was gaming, I wanted to know why I felt this sense of flow. While playing guitar, I wanted to make my own music. This led to me seeking a career in writing, which I did not really click with, and then finally, a career in Game Development. As I have aged, I have grown, and I am no longer a true introvert. My psych friend calls me a mezovert, or an ambivert (Definition of Ambivert by Merriam Webster, 2018). I have traits of both an introvert and an extrovert, but I will always be influenced by the drive to create that bloomed in my youth. When I create, I focus on telling a story; of progression, of choice and of trials. My games contain elements from all areas of my life, and thus become a product of them. During his Ted X Talk, Taika Waititi talks about his childhood and how his actions then have affected his creativity now. “I find that creativity is best when seen through the lens of a child’s eye” (Waititi, 2018). I believe that this is true, and while I accept that I have grown, it does help to see things from multiple perspectives.
I hope you enjoyed this look into my life, and how it affects me creatively!
ReferencesDefinition of Ambivert by Merriam Webster. (2018). Retrieved from Merriam Webset: https://www.merriam-webster.com/dictionary/ambivert
Morph 3D. (2018). Morph Character System. Retrieved from https://www.morph3d.com/morph-character-system
Waititi, T. (2018). The Art of Creativity. Retrieved from Youtube: https://www.youtube.com/watch?v=pL71KhNmnls
For this weeks endeavour, and for the rest of the unit, I have been tasked with formulating a creative inquiry. A question to stretch myself and my abilities in a new direction.
Creative inquiry as a subject is a large part of what it is to be a creative practitioner, so my initial thoughts were; “What makes this assignment different than another day at work?”. Thus, I have tried to delve even further than the standard “That looks cool, how do I do that?”
The question I will be asking is:
What are the basic steps to create a new language, with regards to incorporation into my game design and development?
After a cursive search my findings so far are actually somewhat extensive.
The first? That this project is very possible. This is due to the various extents to which this concept can be applied. As a starting point, getting a simple universal sound down is important, as then you can just make up words for what you want. Gravi. Holstis. Mierka. They could mean anything, but for the language I have been working on for this week, they mean “gravy”, “reduction/less of” and “swamp”
By using individual words separately I can do a concept like can be seen in Skyrim, and the Thu’um. Simple concepts can be combined to form rudimentary phrases. E.g. Fus Ro Da. Force, Balance, Precision.
This can be extended by creating particular syntax rules. From what I can tell, the more syntax, the better the language and the more you can use the language for.
As the language expands, I could begin to use it in a way similar to Final Fantasy VII. In FF7, as the player unlocked words from journals and people, foreigners would become more understandable.
“vien ma guru sta vo gavi”
“vien ma guru sta vo beach”.
And after a while you would have a sentence like;
“Where ma guru go to beach”.
As a tool for game creation, this can really highlight previously arbitrary faction boundaries.
I will be releasing another post soon with the results of my findings, in game form of course.
This weeks blog is set in two parts, with this being the first. My task this week was to create a piece of art in the style I chose (for me, obviously a game), that reflects on myself as a creative practitioner. Please note that a link to the art piece in question is located at the bottom of the page.
Island of Embers is a High Fantasy RPG set on the shores of an island in Dracon Interactive’s “Eternal Ember” series. This project was created as a reflection of myself as a creative practitioner, and to explore and examine my current abilities and how they have grown.
Speaking practically, Island of Embers was a chance to visit many areas that I have worked on for years. Terrain Creation, Animation Controllers, AI Programming and Camera Control. I have grown significantly in these areas, learning to mesh my code and design as cleanly as possible. A large part of this is due to a change of view over the last year. Early on in my game design career, I believed that I could single-handedly create masterpieces on the scale of Kingdoms of Amalur, or Skyrim. Harsh experience has shown me that compromise is not only an option, but absolutely necessary until I can secure a position creating games with a team. Thus, Island of Embers was created in a miniscule amount of time (10 hours), with the help of premade assets.
A factor that I have begun examining more closely after my exploration of it in my Creative Practitioner unit is the iterative element of my design and production. Due to the limited time frame, there was very little time for planning in this project. Thus, it was more of a single push to find and implement ideas, rather than my usual recursive process. Production contained elements of iteration, mostly in the mechanic implementation process. Using my usual technique of applying basic mechanics at the beginning of a game (walking, interaction). This proved to detract from this particular project, as I eventually completely replaced the movement system with an Animation based Root Motion technique I have been attempting (and failing) for a while. Once this was implemented, I then solidified my interaction, and combat and looked to the Quest system. I have long had trouble with the concept of a quest system, but a chat-bot I made a couple of weeks ago actually cracked this for me and this project seemed the best time to see if I could implement this. While I initially had a bit of trouble, I kept revising until the system worked, and I am quite happy with the result, as I will almost definitely include this technique in the production of Eternal Ember, my major project.
On a more creative note, a number of things contributed to my decisions about setting and genre for this project. My work on my major project Eternal Ember was a large part of this. Started around 4 years ago, Eternal Ember is a Fantasy RPG of somewhat unrealistic scope (wildly, wildly unrealistic scope if I’m being honest). My work on this has been the crux of my development, and personally embodies the concept of creative research for me. Focusing so much of my research on a single project has influenced my preferences and biases when it comes to projects. I feel the most comfortable when working on Fantasy RPG’s, and this can alter my projects and ideation process to reflect this.
There were two main areas where my aesthetic choices came into play in Island of Embers. The first was the texturing and models used to create the island, from the trees, to the grass colour. For this project, I chose a pseudo-realistic texture style, applied to low poly models. This created an okay type of ambience. However, had I had more time on this project, I probably would have opted for higher poly models, with a custom shader for the basic environment. The colours of the environment were your basic yellow, green, browns and whites. I did make these a bit lighter, as I wanted to create a “harsh colours after being stranded on an island” effect. This was tempered by letting the player be actually able to see, and not feel too uncomfortable. I finally applied a series of Post Processing techniques, from Anti-Aliasing to Ambient Occlusion.
The second aesthetic area was within my choices for the games User Interface (UI). Initially, I had a very prototype-y, programmer art type of UI. Basic boxes, Arial font for everything. Colours either white or black. However, as a developer, I like to work on projects that have a bit of effort put into appearance, so when I got a chance, I imported an asset from EvilSystems User Interface Systems, and integrated it into my existing systems. This manifested mostly in the Quest Log UI. Should I work more on this project, I would then extend this to the Screen UI (health bar, action bar, unit frames, etc).
The setting of this project is representative of both my practical and creative areas of development. On a practical side, forming the island took work learning to understand the algorithms used to form landmasses. I then took these, modified them and configured until I was happy with the result. However, the end goal for this was created through my creative processes, considering what kind of atmosphere I wanted for the player, and the area.
With more consideration to why I chose to create Island of Embers, it is because this project allowed me to explore more technical points relating to my main project, Eternal Ember. Work on this has continued for a significant portion of my career, and almost all of my projects allow me to learn something that will be useful in the construction of the project. Island of Embers feeds into my main goal, and resembles my main goal, portraying a large part of what helps me identify myself as a game developer.
Lastly, Island of Embers is a marker of how much I have grown in my game development journey. Creating a full scene and limited mechanic RPG in 10 hours is a feat I would have considered impossible 4 years ago. Growth is a large part of game development, and my own journey, as I am consistently learning new tools and techniques.
Download Island of Embers HERE.
To start; a question I can not google.
This was a quick thought for me, as for years I have had a ridiculously frustrating thought stuck in the back of my head; "How did Time start?". It makes no sense. We use time to measure things, and to define where things start. So, without time, how did time start. Its not like there could have been time passing before time began... So we then move onto whether time has been around forever, and thus, has the universe been around forever, etc, etc, my head hurts. One thing is for certain, while google may give me many opinions on the matter, there is no answers.
The TED Talk by Chris Wire talks about curiosity, and its link to creativity. On the whole, I am in total agreeance with the concepts proposed by Chris. Curiosity today is less than it has previously been. This is affecting our cultural identities and our individual identities. There were a few points that I disagreed with however.
The first, that technology is responsible for this decreased curious activity. I am in direct opposition to this in fact. I believe that having such easily available fact finding facilities at our disposal, will increase our curiosity. When I was younger, and I was curious about a fact, I would have to ask my parents, my teachers, or find it in a book. This led to many facts remaining unanswered. And after a while, I would forget the question and go about my life. But by the time I was reaching year 4/5 at ~ 11 years old, I was beginning to ask less questions. Not because I was being told "be quiet", or berated for my questions (I was, but that didnt stop me), but because I wasn't getting any answers. With the advent of smart phones, google and all that came with them, my curiosity resurged. Because now all of my questions could have answers. And I believe that this was not just the case for me, but a global phenomenon. Thus, I reject the proposal that we were all so curious before technology, as Chris hasn't given me any evidence or reason to believe that this statement is true.
The other point is that children are naturally more curious than adults. As a STEM (Digital tech) education provider, my day job is to go to schools and teach kids to program, to make a circuit, all the fun tech stuff. However, on the whole, my kids aren't bursting full of questions and curiosity. I show them a new piece of technology, and often I will not get any questions. At most, a "cool, how does it work". Kids arent interested in the broad applications of software, or the different things they can do with it. Kids like to find a single use for an object and slam all their attention into it. Give a child the internet, and they will not spend time on google asking questions, they wont even go looking for new activities. They will go to the same activity they did yesterday, and every day before.
Which, if my experience serves me well, will be some sort of gaming. Or pictures of cats (kids seem unaware of the irony of just using the internet for kitten pics).
In regards to the creative quiz at https://hbr.org/2015/12/assessment-whats-your-curiosity-profile, my results came back in 3 categories.
I like to think in my own way, and my own way is often different from those around me. However, I believe this is true for many people, and I don't believe it really makes me unconventional. I am not one of those people who makes wild leaps of thought to strange areas (I think). In my life, it has been the direction of my thought, not the variability of it that has been different.
I can agree with this. Learning and progression are large parts of my personality makeup, and are aspects that are often forwarded into my work. They are possibly what makes me enjoy my work so much, as progression of character and player is one of the greatest aspects of game design.