Tuesday, 29 November 2016

Game Maker Progress 22: Dawn of Civilization Plan and Progress

Hello everyone,

I have made a fair amount of progress on the project I am currently working on! Based on the plan I have drawn out for myself to ensure I reach the deadline at mid-January - I seem to be a bit ahead of schedule.

The game itself is proceeding very well! Up to this point I have the map generator working to a degree I am pleased with - even though I know I can add better improvements to it. To keep to schedule I will need to leave this for a later date however. 

The game itself will have the player's settlement split into Districts; starting with a central district as shown in the above map. Other districts; such as a residential district, will allow the player to further grow their population - assuming they can fill the food requirements. 

Up to this point; the functionality for Food Consumption, Housing Requirements, Population Calculation and basic expansion is in place. However this is only a fraction of the systems needed to be put in place. Much of the above mentioned tasks split into a number of other smaller tasks that make up the element as a whole.

Certain components - such as Research may very well be put on the side for a date after the deadline. Regardless I look forward to bring you further update on this project!

Until next time,

Wednesday, 23 November 2016

Game Maker Progress 21: Dawn of Civilization

Hello everyone,

Today's post will be short - a small update about the current project I am working on. After receiving feedback on the concept idea of the 4X game - I've decided to take an approach towards settlement management. Having re-organised and re-planned how I would approach the project - it seems to be providing a more original and fresh idea!

The idea will focus more on the player managing resources and ensuring their people can survive winters and events. This means the approach I will be taking towards polishing and building the game is focusing on the Expansion and Exploitation elements of 4X. I have been brainstorming a lot of ideas but cutting down on them due to the 1 and a half month or so time span that it needs to be produced within. 

The schedule as is will still be very tight - the amount of tasks seems to have increased but their complexity feels decreased and of lesser scale. So I hope this means that I will be able to jump ahead of schedule fairly quickly. 

I look forward to bring updates on this project!

Until next time,

Tuesday, 15 November 2016

Approaching Designing Something You Haven't Before

Hello everyone,

During the past two weeks specifically I've had to start working towards design projects which I felt I had more limited knowledge in than others. Board-games is one such project and the other being 4X Games. Somehow I needed to gather new knowledge on these - outside of simply having played them. I'm going to be listing a few of the approaches I've used to try to gather knowledge that would serve me during design and production!

Try Games of the Type
One of the more obvious steps is to actually try out games of the type or similar to what you want to create. This could give you some basic insights on what's been done, what seems to work, what you like and don't like. However this only provides very limited information. Keep in mind you are approaching the game with your own tastes, background and knowledge - other players will most likely be experiencing it differently. 

Looking at Videos and Game-plays of other Players
By looking at other players experience the game - you might be able to get a glimpse as to what is liked and not liked about the game. You might also be able to get an idea of certain conventions and elements of the genre that may be critical to your development. Included with this - you can also look at developer videos on the game and genre. With 4X games - I decided to look up not only GDC talks but also talks with Sid Meier. A good approach is to take statements said during interviews, videos and so on - and then looking at what gets mentioned a lot and how it gets mentioned. 

E.g. you might hear 'the player's create their own story...' - ' the world is unique to the player...' these might say a lot about what your trying to create - especially if the idea of narrative and 'uniqueness' is repeated by multiple of note individuals.

Look at Other Sources
Needless to say , you can find a vast amount of information online. Outside of GDC talks, you can find a number of analysis articles on different games and genres which may be of interest. Sometimes - don't be scared to think outside the box in terms of your research. If your looking into making an exploration based game - look at why people get curious or what makes people curious to explore. See how you might encourage people to explore with small clues or systems in the game itself. These needn't be specific to a genre or type of game. 

Don't be scared to experiment and try out new ideas. Whilst it can be intimidating to try designing a different type of game than you are used to - it can give you a lot of knowledge and insight you would have likely missed out on!

Until next time,

Tuesday, 8 November 2016

Game Maker Progress 20: Hex-Based Map Generator

Hello everyone,

As I've shown on a preview on the blog Facebook page - I have been working on a Hex-Based Map Generator. This partially began with the notion to work with a pre-set terrain generator - however; I felt this was more critical and more promising to try my hand. I will be using this generator on a project I will be working on from today to January which will likely be a (most likely) small 4x game.

I've been toying with the idea to try my hand at a project of this type - I decided to go for it after being given details on a study unit in the masters programme I am participating in. Now onto the generator!

The generator itself begins with a single tile and expands outwards as you can likely tell from the above .gif. As more and more hexes are generated - the chance for the next tiles to further spawn more tiles is further reduced; creating the above 'island' or 'peninsula' effect in some of the generations. Tiles are also assigned a biome - depending on a setting - players will not only be able to determine the size of the map but also the size of biomes on the map itself. 

Biomes themselves are more likely to cause their adjacent hexes to be of the same type - if the biome size is set to a larger setting. Likewise if set to small - they are likely to be small biome sizes. I am planning on adding more 'behaviour' to the ways biomes are determined (For example, Tundras spawn to the far north and far south). I will be experimenting on that later on. 

Up to this point - I am quite happy with how the generator is working - however I do wish to add ways to switch the generating behaviour - so rather than what looks like an island sometimes is spawned - the generator will instead create continents for example and so on. 

Until next time!

Tuesday, 1 November 2016

Game Maker Progress 19: A New Approach to Random Level Generation

Hello everyone,

The last week has been fairly busy - this week in particular is going to be a lot more busy due to the Philosophy of Computer Games conference I am currently attending - which looks like it will prove to be very insightful! 

Recently - I had watched a video of a talk given at the Games Developers Conference (GDC) regarding the procedural generation used in Shattered Planet. The talk inspired me to experiment further with procedural generation systems. Those of you who have read my previously Game Maker Progress posts know about Privateer Dungeoneers - which uses a very basic random level generator to create it's maps. The challenge this time is to make the generation more systematic and meaningful in a sense. 

Privateer Dungeoneers' generator simply relied on chance and a few other parameters I set up to influence the chance to spawn a wall or a path tile. This obviously meant maps are extremely random - and could result in problems of having a room completely cut off from the path of the game. Worse yet - if an exit existed in the game - there was no way to guarantee the player will get to the exit without digging through a wall. I knew I wanted to re-work the generator for that project - however as other elements took precedence - that project had to be put on the side for the moment. 

Spelunky - similar to Shattered Planet, used a number of pre-set terrain pieces for the generator to work with. Unlike Shattered Planet - the pre-set terrain pieces had even more areas within the pre-set terrain for more pre-set terrain. The generator would therefore need to first connect 4 large pre-set terrain pieces, and then if the large pre-set terrains allowed, modify it more (I highly recommend looking at the book "Spelunky by Derek Yu" as it goes into more detail and is a very good read; I have written about it here).  Looking at the video talk for Shattered Planet - a different approach is taken - where pre-made rooms are chosen by the generator, placed in the room, and are then connected via a path. I recommend looking at the video for a better look at how the system works.

Regardless - I will be looking into creating an improved level generator that works with a few pre-set components. Having been inspired by both Spelunky and Shattered Plant's level generation systems. Coupled to this - I do hope to test the generator in a few different game contexts - to see how well it can be adjusted to cater for simple styles of different types of games [Dungeon Crawler, and 4x Style game]. I will likely write about this within the coming weeks - once I've had the chance to sit down and work on it. Whether this will be next week - is highly debatable as the conference will be occupying a fair portion of my time this week. 

That said - I am very excited to be trying out this new approach to creating random level generation! As it will both mean that the levels will appear to be more natural and meaningful - and it will open up a lot of opportunities to test out different game ideas with a single random level generator that can be adjusted depending on the type of game it is being used to generate a map for!

Until next time,