NPCs, whether they be ally or enemy, are a very important component for many games and a large portion of a game's game play is highly dependant on the things that NPCs do, they way they behave and, if they are enemies, the way that they try to kill you. Therefore, it is vital that your NPCs, their associated behaviours and AI are done well so as to compliment game play rather than detract from it. If these factors are not 'fit for purpose' then the player will see right through the NPCs and the
::::BE WARNED THIS IS A LONG ONE::::
Path finding is a technique used in many games that allows an object to find its way around obstructions to get from one point to another. There are a lot of miss understandings regarding this technique and many treat it as a mystery that is best left for the more experienced programmers. However, the big scary word 'AI' is not nearly as scary or complex as some may think. My entire path finding system only contains 4 classes, 1 struct and about 450 lines
Up until this point everything has been one big question mark. Will I finish my game? Will I run into project breaking road blocks? Will I have the resources? Am I crazy to think that I can actually do this? ...
All of these question weigh heavily on my mind at all times and I'm sure a lot on other individual (Yes screw the word indie) developers minds as well. The road is so long and the light at the end of the tunnel is just so far away. It can be very dis-heartening sometimes especially w
Instancing is great! It improves performance drastically and it's almost like getting 100 pizza's for the same price as 1. However, there is one instance (excuse the pun) in which instancing is not ideal and that is when you want to have the same mesh to have different materials applied. Basically the problem occurs when you apply a material to one mesh in a set of instanced meshes all of those instanced meshes change material.
In my Level construction set I have multiple pre-fabricated piec
I've been working on this level editor for my game to go with the level construction set idea I chose to adopt for my level management. The below video is a Vlog showing my progress with the editor.
The idea behind the editor is to reduce the rather impossible grunt work known as filling in a database line by line with data to create a data. I make the level in the editor and all that information gets saved and it writes those lines for me.
Current Major Features Include:
- Loading Leve
Currently I am working on making my level building in my game much more diverse and easy. Formerly I was having to create custom models for each room in the game. This worked but was hardly efficient, very time consuming and did not leave much hope for the end user to create and share levels either.
So I set off to kill two birds with one stone:
Make a level building system & editor to streamline level creation in my game
Make the editor easy to use to open up the possib
AI is something that I haven't really touched, hence the 'new frontier' title. However, overtime time learning how to program games and learning about useful techniques such as finite state machines, it did not worry me very much and I had a good idea of how I wanted it to work.
There are three major things that I wanted when conceptually designing my AI system and they were:
Diversity of AI
Data Driven AI
Observe the below diagram. Simple enough. It depicts a turret
Setting up how a level works can sometimes be a tricky task, especially when the a games level appearance is more abstract than say a first person shooter where everything is as you would see it in real life.
My game is one example of these abstract level appearances. It Predominantly takes on a semi-top down dungeon style view where the roof of the level is missing so that the player can see inside the level.
The below video blog shows how I resolved a few issues that are inherent from
So You're Not Good At It...... Then Get Off Your Butt and Get Good at It!
As I started my last blog off with a lessons learned I thought I would continue the trend in all of my blogs and share a bit of what I have recently learned.
More often than not, as game devs we have our weaknesses in certain areas of game dev that just makes things that much more difficult. Some of us are great programmers but bad at art, some of us are good artists that are bad at programming and of course.... t
The Mistakes of the Past
I just wanted to start this blog with a bit of a lessons learned. I've attempted to make some games with LE that in hind-sight were way too complex.... 50x too complex for the amount of time / resources that I have available. This is a common mistake and it is so easy to make it. So I decided to deal with the problem once and for all.
After failing a few times I decided to have a long hard think. I decided, you know what, KISS dammit. Keep It Simple Stupid. Simple d
The last week I have been working hard to add all the missing UI elements and widgets that were previously missing in H.A.A.R.P. Before I was testing everything with just buttons and check boxes but I couldn't really go on without testing on more types of elements to ensure everything was working in the right way. Therefore, over the past few days, in my time after work, I've been madly re-coding the UI elements that I have previously made to be compatible with Data Driven Design and more specif
There are two things I've been working on since my last blog:
HAARP Sound Manager (For UI Sound only atm) &
The HAARP Sound Manager is not very much different to what you would expect from most games sound manager layers except for the fact that once again it is completely data driven. All data on sounds are stored in the database. Each UI element holds an ID of a sound to play at certain times for example:
1. Hover Sound
2. Click Sound
In my short 1 year of programming I have gone to great extents to learn not only how to code but also the techniques and methods behind game architecture that make things work and keep the integrity, re usability and productivity of my code to a maximum.
Out of all the techniques I have come across there are two that really have taken the cake. These two techniques are (excluding OOP, thats a given):
Finite State Machines
Data Driven Design
Data Driven Design
For those of you