Posts

Showing posts from May, 2019

Indie Journal: Critical Evaluation

Throughout Inide Development, I used many skills that I had beforehand but also learned some new ones. For example, the most useful thing I learned would be how to construct a game. Ideally, it is good to make every system you create be as adaptable as possible - different NPCs should be able to interact with it, the variables should be enough to allow for completely different feeling things from just the same system and so on. Keeping this in mind when creating games would allow me to make far more game content than I would if I made everything individually. The biggest issue, as mentioned before, is time management. While I did create a good amount of the game in time, even then I didn't manage myself enough to create what I originally wanted in time and had to compromise. That, combined with my lack of journal work, meant I was far behind when it came to the end of the project. If I were to get my time management down, I would definitely create a far better project. I wo...

Indie Journal: Week 8

I had no game. Yes, I had a prototype. I had systems that (roughly) worked and interacted with each other, I had the basis for a game, but no level, no start and end. I realised I couldn't build it in time, at least, not what I had been planning for. I had the basis for the game, and I could adapt that into anything - it wasn't made to be a Metroidvania from the start. In fact, it wasn't made to be anything specific. Therefore, I could build something. I just had a week to do it. The issue was that I couldn't build a level in time, so I got thinking - what can  I do? Systems. I have everything I need to build a game, but not enough time to build a level. So, I'll use a system to create gameplay. Wave Spawning. Instead of creating a large level with progression and unlocks throughout it, it would be much quicker to create a small level and have enemies spawn in waves against the player. I could implement that, a shop keep, the start and end screens and then, ...

Indie Journal: Week 7

Image
For this week, I worked on adding telegraphs to their attacks (through the changing of their colours), and building the rest of the Behavior Tree. Over time I added various tasks, services and decorators that I could use and reuse across different AI types. To allow the use of different types without having to recreate everything, I added the 'EnemyType' int to the BaseEnemy and used that int to determine what behavior tree to run in the AIController. I then spent the rest of the 7th week developing various other things, like the second enemy type 'Charger' and various visual effects for them. I also went about creating a new sword and then animating it with Maya for the attacks and spawning of the sword upgrade. Animation in Maya was new to me, but was not a new concept - I had done animation within Max and found the skills transferred quite easily. Since the object I was modelling was not making use of a skeleton, I used simple keyframe animations for position and...

Indie Journal: Week 6

Image
Throughout this week, I wanted to get working enemies. For the type of enemy I wanted to create, I had to develop AI. This was something I only lightly touched on before, so this was a big dive for me. AI is the most frustrating thing I've had to develop for this project. To help with the development of AI, I made use of several tutorials - I wanted to make use of the AI systems within UE4 - Blackboards, AI Controllers, Behavior trees and the like. This was something used within games - the AI created with in classes were done through pure blueprint. Making use of the Behavior tree allows complicated AI systems and the ability to create additional trees easily. Since I had multiple enemies to make, this system sounds perfect. The issue that I came across, was making the AI feel right. The first thing I did for the AI system is develop an enemy - this enemy would be the 'template' for every other enemy. Within that 'Base Enemy', I created the basics li...

Indie Journal: Week 5

Image
This week, my focus was the creation of an upgrade for a character. I wanted something that could be unlocked through a source other than the soul capture system, so I began brainstorming. I ended up with an idea that allows additional ranged attacks whenever you make a normal attack. Basically, whenever you do one of the 3 combo attacks, it spawns a projectile that after a short time, fires towards where the mouse was facing. I began work on the project - the first thing I did was create 2 scene components on either side of the player. These would be used for the location of the projectiles. When developing the projectile itself, I used a scaled down version of the sword model I used for the basic attacks. I had these projectiles do the same 'Face Mouse' system I used for the player. However, I came across a rather confusing issue. Upon creating the swords, they would correctly face the mouse only if the player was facing north. If the player turned south, the sword woul...

Indie Journal: Week 4

Image
I realised that the potential of stealing abilities, of unlocking abilities, can lead to a certain type of game: a Metroidvania. The general idea of this genre is that you progress through the game unlocking abilities, and using those abilities to access new areas.  I feel like I can create that for my project - with enough abilities and obstacles, I could create a kinda of Metroidvania prototype. So, I went to go about it so I could unlock the abilities. At least, I set it so I could lock them and unlock them as I please through the use of a bool. This was in preparation for later use, when I implement the level and upgrades. However, for the rest of the week, I focused on making more abilities. This is where I came to a stop a bit - it was hard to think of 'instant use, cooldown' abilities that would be unique enough to define an entire enemy. The first one I created was a simple AoE knockback - once used, any nearby enemies would be damaged and knocked back, and then go...

Indie Journal: Week 3

Image
For this week, I created some basic dummies to attack, the knockback system for said dummies, and the basics for a new mechanic I created for my game. Once I had a working basic attack and charge attack, I went on to create enemies to attack. I setup a simple dummy character that had a basic health system and then realised that upon attacking them, there was no feedback of any kind. The enemy just stood there and took it. This, obviously, didn't feel right. One option for this would be to create an animated character and give them an animation in response to being attacked, but due to the time scale of this project, I knew that this would take far too long. Instead, I created a simple knockback system. The idea of this system is that when the enemy is attacked, it gets the direction of the attacker and pushes itself away from said attacker - effectively making the attacker look like they were knocked back. This simple system proved to be very effective - having a response to ...

Indie Journal: Week 2

Image
So, I had my decided game idea - a top-down Hack-n-slash game. The first thing I went to develop was the basic movement of the character. I knew that I wanted the game to be controlled through WASD, and the mouse being the primary method of aiming the character.  I created a simple ball character and changed the settings of the Character Movement Component to feel quick and snappy. This was very similar to my character in my Year 0 project, which also had quick and snappy movement. However, the main difference of this game is perspective. The camera was positioned high above the player character. so high that with a normal field of view the player wouldn't be able to see their character. To compensate, I turned down the FOV of the camera to have an acceptable view for the player. This is the same technique I used for my Year 0 project, where the game 'almost' looks 2D, especially when standing still, but upon moving the player would discover it's a 3D world. I th...

Indie Journal: Week 1

The Indie Development project is the one I have been looking forward to the most throughout the year. It is the area I have wanted to specialise in since I first heard the course having specializations in the second and third year. After attending the lecture, I was surprised that our task for the project was to make an entire game - whatever we wanted. Within Year 0, we were tasked with creating a platformer of some kind. However, for this project we have been tasked with creating whatever we like. This actually left me at a loss. I spent the first week creating prototypes. I knew that I wanted to create a 3D game, as I most likely wouldn't be able to create enough 2D art for a game like that. I decided to just make things in UE4 and see what ideas they gave me. While I did not produce much practically, working in the engine helped me come up with ideas. I ended up with the following ideas I could pursue: A top down physics game where you could push and pull objects (to u...

3D Journal: Critical Evaluation

Throughout the Asset Production Project, I have come to terms with making use of Maya for 3D Asset Production and will likely continue to use this as my main software of choice for 3D Modelling. I have learnt far more than I did with 3DS Max and am able to create better models than I could with my choice of program. However, the biggest issue throughout the 3D Project was the documentation, journal and research. While I did create all the tasks in time, I did not correctly document all of them and therefore was not able to go as in-depth as I could've. I believe moving forward I should focus on improving my scheduling and time management to better accommodate time for documenting the processes I take throughout future projects. I believe that with effort and persistence, I may be able to create an effective schedule that gets the work completed on time and means that I don't have to stress and worry about completing everything last-minute. I have shown slight improvemen...

3D Journal: Week 7/8

Image
With the development of my character being finished a week early, I decided to create a second character more in line with my own expectations and fitting closer to the budget given to us at the start of the Art Test. I decided to create a Kobold. Specifically, I decided to create a character I had made for use in Dungeons and Dragons, a small Kobold Fighter with a short temper. Kobolds are short lizard humanoids with typically red skin in the Dungeons and Dragons universe, and I decided to create my own for this project. However, I set some personal goals for this character: Make full use of the triangle limit The character must be a single model, all attached and ready to animate. Much like the first character, I started with references. I specifically searched for Kobolds, as the creature was a popular fantasy monster that had a lot of art to refer to. After gathering these references, I began to draw a rough design for the kobold. I created some small poses to get an ...

3D Journal: Week 6

Image
Unfortunately for this week, I missed the lecture which introduced us to the Art Test. However, after hearing from peers and reading the lecture slides, I understood what I had to do - Model, UV Map and Texture a character from scratch. This felt like a daunting task at first - from creating small models and UVing small things, moving onto a full scale character felt like a difficult task. However, the task in question had both a strict tri limit (1500 triangles) and texture size limit (512x512). With these limits in place, the model was not going to be too complex - instead, it was about making use of the limits in the best way possible to create a good looking character. The first thing we had to do was create concept art for the character we were going to model - since we had no designs of what we were going to make, it was better to draw our own character design and follow that. The first thing I did was gather references on the type of character I wanted to make, and compiled ...

3D Journal: Week 5

Image
For this week we were to take a completed model given to us that's not fully UVd and untextured. Our task was to take this model and correctly UV and Texture the entirety of the model. This was an application of our skills learned so far and was quite challenging - it was difficult to efficiently put the pieces of the UV Map in the most space efficient positions in ways that made sense to texture it. However, after working for a while and also finishing the task later on, I ended up with the below result.   While I did UV everything, i felt like I didn't place everything in the UV map as efficiently as I could. You might notice in the above UV map that there's a lot of blank space. I could've taken some pieces and scaled them up, but that would cause bad Texel Density and I feel like having an even Texel Density would be more appropriate for the project. Most of the time for this piece was creating the Texture - as once I had gotten down the larger pieces of the m...

3D Journal: Week 4

Image
This was our first week where we officially learnt how to properly UV map and Texture a model. Our task was to create a simple dice model, create a UVMap for it and then a texture to go with said UVMap. Since the Dice was a simple smooth cube, it was relatively easy to UV Unwrap. However, we learnt about the use of Texel Density to create an accurate scale within our texture. Without the use of Texel Density, we would have some parts of the model have a 'scaled up' texture while perhaps a smaller piece of the model would be far too small in the UV Map to convey enough detail for it's size. Source:  https://vrbrownblog.wordpress.com/2017/10/04/texel-density/ Fun fact: the model above is actually a Think Tank from Ghost In The Shell. This was a process that I had failed to apply to my model previous UVMapped Bottle I made in Week 2. Learning the process of using correct Texel Density will allow me to create more effective UVMaps and textures in the future. Ho...

3D Journal: Week 3

Image
For the third week, we put the skills we learnt in the past 2 weeks to use and created an Atari Controller joystick (specifically an Atari 10 in 1 Games system). With this, we were tasked with recreating the joystick using reference images - we learnt multiple things, most importantly the use of Smooth Mesh preview, which is used in a process called Subdivision Modelling. It took me a lot longer to complete the model, but even then I was missing a few parts. I tried to be as accurate as possible with scale and proportions. With the model, we learnt about the use of Edge Loops, which helps keep the sharpness to our faces after we apply Subdivisions. We used this to help create our model, which was built to have the final version made with Smooth Mesh Preview. My model was not completely accurate - the switch on the underside, underneath the buttons for the controller was absent. This was due to some mistake in my modelling that I was not sure of, but regardless of how I made th...

3D Journal: Week 2

Image
The second week we were tasked with creating a new model from scratch, going in depth into some extra things you can do with Maya. Our task for this week was to create a pencil. We learnt how we can effectively make use of the settings for each tool and expanded on our knowledge of the basic toolset. For this task, I was slightly more comfortable with Maya, so I ended up trying to experiment and find out how I could do things I was able to do within Max. I learnt about the basics of Hypershade and making use of the Text and Boolean tool, which allowed me to create the pencil to what I have now. I was aware that this model wasn't efficient for use in Games, which makes use of UV mapping and Textures to give a better appearance to assets. While early, I decided to learn to create a basic Bottle, making use of the Spline tool to create the outline of half a bottle then use Maya's tools to turn that into a full object. I then learnt the basics of UV Mapping and created a UV...