Posts

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 ...