Saturday 6 September 2014

Taking A Break

As the title says, I will be taking a break from working on Crucible for a little while. I've got a lot on my plate preparing for uni in two weeks and I'd like to enjoy my freedom! I will still be adding bits and writing code as and when I feel like it, and hopefully by the time I do return I will have done a not-too insignificant amount of work. But don't worry, I'm not giving up on the project!

Friday 29 August 2014

Crucible XXVIII 29/08/2014

This post will probably end up being shorter than usual. I spent the start of the week rewriting and fixing the code related to the hero invasion screens and how the various actions heroes can perform actually work. The middle of the week was spent re-writing and optimising both the map generation code, and the code I use to detect and change any connections that are not suitable for the map (eg. if connections between systems overlap). The end of the week was spent fixing bugs and optimising other parts of the code (a lot of this involved converting class to static classes- tedious!). The result of this is that the game can now support many more systems at one time, and the collision detection algorithm can be run in real-time with minimal performance impact. At the moment I'm getting between 70 and 100 FPS when I run the game in a standalone window with the largest map size (90 systems). I will need some serious play testing to test the performance of the improvement algorithms that calculate the resource modifiers, but I'm confident that everything is running nicely. I guess being at a stage where I am spending serious time optimising code means that the game is getting steadily closer to release.

Aside from that I also put in a picture of the milky way to get an idea of how the map should look on release. Unfortunately I don't know if it is a stock image, but would love to credit whoever created it. Also in the screenshot below you should be able to see the map generator working better than it ever has before! Map shapes are interesting and varied and there are enough connections between the right systems to prevent the maps from being too plain or too complex.

Beginning to look really nice!

On running the game in fullscreen I have discovered that the UI is faaaarrr too small. These things are all being noted and I'll fix them closer to release. Next week I will probably work on finishing up the features that are currently in the game, and then get to work on the empire research. Hopefully if I can get the research finished soon, I'll be able to get the other races in the game and work on the AI for some kind of free beta release. Until then, have a good week and thanks for reading!

Friday 22 August 2014

Crucible XXVII 22/08/2014

This week had a number of surprises in store. I updated the version of NGUI I was using, which resulted in the project being broken for 2 days whilst I fixed it (I did have other things to do so the time wasn't completely wasted), and Unity 4.6 Beta has been released which has all the new UI features in it! Although I will be sticking with NGUI to save time, I am quite excited about the new UI things in 4.6. I'm also prepping for uni in 5 weeks, so when I leave there will probably be a lack of updates for a while whilst I'm settling in and doing my coursework, but I will still be working on this!

This week I spent some time working on and fleshing out the hero skills and how they fit with the gameplay style of the hero classes. I mentioned a while ago that I have slimmed it down to 3 basic heroes, each fitting a different method of playing. These are Infiltrator (Being sneaky and Spike Damage), Soldier (Not being sneaky, territory control, being a tank), and Diplomat (being a little bit sneaky, changing the diplomatic relations between players, condition damage). All the classes have their own traits and technologies (as well as some generic technologies), and they all have 3 unique abilities to be used in game. The abilities are available to be used as soon as the hero is purchased, and can be augmented by using various technology. The abilities and their corresponding in-game symbols are listed here.

  • Infiltrators can:
    • Spy on enemy systems. The owner of the system is unaware that the enemy hero is in the system. The hero can have a look at the improvements and output of a system, and can plant bombs on planets. They can only spend a limited amount of time in the system before the owner is alerted to their presence. (Symbol 7)
    • Teleport to escape enemies. This allows the hero to teleport to the nearest friendly system if it is in trouble. This can be augmented to allow the hero to teleport anywhere! (No Symbol yet!)
    • Attack an enemy hero. The infiltrator will chase the enemy hero, do a significant amount of damage to it, and (hopefully) run away before the enemy hero can retaliate. This does affect your relations with the enemy player, and is on a cool-down timer. (Symbol 8)
  • Soldiers can:
    • Invade enemy systems. This is pretty clear- the hero can enter a system and start to attack planets. There are some nuances to it but this is the simple explanation. Soldiers are tanky so they are the only really suitable class for this task (especially against powerful systems). (Symbol 5)
    • Guard systems. They can bolster the defences of systems if they are located within them. The soldier will take a minimal amount of damage from this, but is not directly involved in the battle (passive ability). (Symbol 4)
    • Claim unowned systems. If a system is unowned the hero can claim it, preventing all other players from colonising the system before you. The hero must be present in the system for this to occur. It can have negative diplomatic effects, and the hero is very vulnerable during this time. (Symbol 1)
  • Diplomats can:
    • Enter enemy systems. This has no diplomatic effects and will not automatically trigger war with the system. Diplomats are the only heroes that can passively look at the improvements and output of systems. However diplomats are unable to enter systems that are set to auto attack intruders. (Symbol 3)
    • Promote systems. This increases the resource output of the system, and when performed on enemy systems, will improve the diplomatic relations with that player. (Symbol 6)
    • Embargo systems. This prevents the system from producing resources. It will impact poorly on diplomatic relations with that player. (Symbol 2)
 In game symbols for hero ablities

In addition to all that I improved the workings of the hero pathfinding algorithm, and some associated scripts. If you have a hero selected, and you mouse over another system, the path that the hero would take to get there is now highlighted. This is not only nice to look at, but will also help to identify systems the hero cannot pass through for whatever reason. In the gif below you can see the algorithm in action (and you can also see that my map generation algorithm isn't working again!).

Pathfinding with style

That's it for this week. Hopefully I can get some of these problems fixed by next week and have some nicer hero stuff to show. My plan is to complete the heroes, then get the empire technology finished, and finally get working making the AI nice and polished. After that I'll be free to polish it up, add some new races, add the win conditions and generally make it a bit more fun to play. See you next time!

Friday 15 August 2014

Crucible XXVI 15/08/2014

Oh yeah, I can totally keep doing roman numerals in my post titles (those of you not reading on my blog won't see this). So I am back from my THIRD holiday this year. It was great, thanks. I have indeed done some work on the game this week. After working for so long on the headache that is the voronoi generator, I decided to work on something a bit different- improvements. My goal was really just to re-write the code that is responsible for calculating the modifiers that are created by the improvements. This was in order to both make the code faster, and also to give me greater control over how the improvements work. Systems now have their own modifiers (with names such as systemPowerModifier or systemGrowthModifier), whilst the planets in the system also have a modifier (with equally imaginative names like planetPowerModifer, and planetGrowthModifer). I made a couple of little diagrams to help explain what the modifiers are and how the are calculated.

This diagram explains the difference between improvements with system wide effects and those with planet-wide effects.

This diagram explains how the modifiers are calculated for each planet.

The modifiers are nothing arcane, they are simply a value that is multiplied to the base resource production value. For example the Power modifier is multiplied with the base Power output of a planet (say 4 Power with a modifier of 2) to produce a final Power output of 8. There are modifiers for almost every kind of resource in the game- Power, Knowledge, Wealth, Maximum Population, Population Growth, Improvement Slots, Amber production etc.

I had a major issue with github which resulted in started a new repository for my code. The result of this is that the current code version number is now 1.4. For some strange reason I did return to the voronoi code, and with fresh eyes, I think I have made some improvements. It does occasionally break still, but the frequency of this appears to have decreased.

That's it for this week, see you next time! 

Saturday 19 July 2014

Crucible XXV 19/07/2014

So sorry for the lack of an update yesterday. I was very close to finishing off my current task so I thought it would be worth the wait. I've 'finished' the Voronoi diagram generation! I can't speak much of it's efficiency, and there are still a couple of bugs that need ironing out, but I'll be sure to improve it in the future. I've included a few screenshots of it in game at a number of different map sizes. The smallest shown is a 30 star map that generates in 2-3 seconds (including the time Unity takes to start up- which is a similar time). Next is a 60 star map that takes around 6 seconds to generate. Finally I have included a 90 star map (the largest map) which takes a whopping 15 seconds to generate. However I can't say that the Voronoi generation is responsible much for the longer loading time since the 90 star system has always taken a fair while to generate, and I suspect it is more to do with the map constructor code (line intersections are expensive on that scale!).

 30 Star System. Placeholder graphics just to show off the regions

60 Star System. Region shape becomes more interesting and smaller.

90 Star System, many, many regions!

This week I'll be bugfixing and doing minor changes. I'm on holiday for two weeks afterwards with the family. And then back for the final 2 months before uni! Exciting times!

Friday 11 July 2014

Crucible XXIV 11/07/2014

Back from my holiday! Feeling thoroughly relaxed and ready for work. This week I've just been working on the Voronoi diagram for the empire map and all the issues associated with it. Happily it has also resulted in some good optimisation of the map generator and geometry related methods. On the other hand it has turned out to be quite complicated. There are 3 main steps to the process- Triangulation of the map of star systems, turning the Triangulation into a Delaunay Triangulation (writing a straight up Delaunay Triangulation algorithm is HARD), and then turning the Delaunay Triangulation into a Voronoi Diagram. The last two steps are easy, but the initial triangulation is proving to be rather complicated (but I reckon I'm close to success). Anyway I've provided a quick overview of how this works;


Step 1: Create a Delaunay Triangulation of the points. In this case I have just provided the triangulation of the stars near Nephthys.


Step 2: Create Circumcircles for each triangle. These are circles that pass through all three points of a triangle.


Step 3: Create a polygon by linking up all the centres of the Circumcircles. This creates the Voronoi cell, with the system as the central points. All locations within the cell are closed to Nephthys than any other system.


Step 4: Roughly how the final cell would look. In-game this will be seen by zooming the map out. It will allow the player to see all the territory they own, and the territory controlled by each star system. All the cells in a Voronoi diagram link up like a jigsaw, so the map will have no holes in it (unless I want it to!).

As I said I am having trouble with the initial triangulation, but as soon as I crack that problem I can put up some real screenshots and move onto some other aspect of the game (probably go back to invasions and finish that up). See you next week!



Friday 27 June 2014

Quick Update

Only a little update this week. Spent a good deal of time working on the invasion mechanics and the UI, and I can say it's working pretty nicely at the moment. I'd estimate it's about 75% complete so hopefully I can get a working demo up soon. I've also been working on creating a map composed of the regions of space that each system controls. This is mostly a visual feature, but it should make the game look a bit more interesting and make it easier to see what territory is owned by you and the enemy. I'm implementing this using Voronoi diagrams, and the code for that is pretty complex so don't expect to see that any time soon! The map has been slightly jigged to fit onto a 50*50 square grid. This doesn't really affect how the game looks but helps with map generation since systems can no longer be closer than a certain distance.

Next week I am off on holiday, so the next update should be the week after. I will also have free weekends at that point so development should pick up again (and it's summer finally!). Sorry for the brief post, but I'll be back soon!

Friday 20 June 2014

Crucible XXIII 20/06/2014

So last weeks calendar got busy pretty quickly- hence why there was no update last week. This week I reckon I've done a fair bit of work, almost all on the invasion system and the horrors it entails. My old invasion system and UI was pretty crappy, so I had a lot of code to simply remove and rewrite to start getting the new one in. Much of the behaviour of the UI elements in the new invasion system actually requires a fair bit of thinking and has somewhat done my head in. I think it looks pretty good now, but I'm not 100% happy with the layout (I'm try to design it so that it will fit a 1024 * 768 screen, despite using a full HD monitor- surprisingly tough to do).

State of the Game (Build 1.20 [side note- what do these build numbers mean? I don't know]):

  • Created the system invasion UI. I have included a picture of my design, and also of how it currently looks in game. Although the in-game screen is a bit bare, it does include some features I did not previously think about when doing the design. Most notable differences are that I have included a reset button for both heroes and the entire screen. This recalls any tokens you may have distributed if you are unhappy with them. You can also distribute each token manually. The system is built so that multiple tokens can be moved at the same time to speed things up. Also included is a breakdown of the value of your tokens (explained last week and later in this blog).
 Screen design. More filled and more spacious than the in-game screen.


In-game screen. Some UI elements are a bit small, but I'll work on this.

  • The tokens themselves are used to distribute the various attributes of your hero between the planets in the system. Assault tokens distribute the offensive power (damage) of your primary weapons amongst planets. Auxiliary tokens distribute the offensive power of your secondary weapons, and Defence tokens distribute the protection offered by your armour (explained below).
    • If your heroes' primary weapons can deal 400 damage to a planet's defences, and your hero has 4 Assault tokens, each token allows you to distribute 100 (1/4) of your primary weapon's damage to planets. The tokens can be distributed however you like. Having more tokens provides you with greater versatility with how you can deal out damage to different planets. The same applies to Auxiliary and Defence tokens.
    • Defence tokens have a percentage block value for each token. This denotes what percentage of incoming damage from planets will be deflected. If you have 200 Armour, and 4 Defence tokens, each token will block 50% of damage from the planet they are placed on. If all 4 are placed on one planet, 200% of damage is absorbed- which is not an efficient use of your tokens since 100% damage absorption would prevent all damage reaching you. Any damage that is not absorbed by the defence tokens is received by your Armour- which in turn reduces the effectiveness of each token. When your Armour is completely depleted, your heroes health will begin to be depleted (not happy times).
  • I've included the designs of the individual tokens. The Auxiliary token represents an artillery shell, whilst the Defence token represents a sort of futuristic shield. It may sound contrived but the Assault token is supposed to represent the barrel of a rail gun (but only I really know that!).


And that's it for this week. Hopefully next week I will have finished the invasion mechanics and can get to work on some more interesting stuff  (If there is no blog post, that means I didn't finish!). 

Friday 6 June 2014

Crucible XXII 06/06/2014

Well after a couple of busy weeks (not game work) I have managed to produce some stuff to show, but I wouldn't go so far as to call it a normal state-of-the-game update. As far as I am aware my timetable next week is clear so expect some more significant and interesting things to happen then. I did get my star models done (this?) week, and we spent some time getting them in the game. I think it looks awesome, and I've included a screen of how they look in-game, as well as some close up images for your viewing pleasure...

 Also why is my Power counter not working!?

From left to right; Binary Star, G Type, K Type, Red Giant, White Dwarf

Spent a very long time writing lore, coming up with names for and redesigning the system improvements, implementing the missiles that I spoke about, and coming up with a much better redesign of the invasion system. 

When your hero begins a system invasion they are presented with a screen showing all the planets in the system. The hero will then be given a certain number of tokens depending on the gear/tech you have unlocked for them through research. These tokens come in 3 flavours- Primary, Secondary, and Defence. Primary tokens are used to distribute your Primary offensive power between the planets. Secondary tokens are used to distribute your secondary offensive power (i.e dropships/artillery) between the planets. Defence tokens are placed on planets to reduce the amount of damage they can deal to you. 

Say your hero has 3 Primary, 2 Secondary, and 4 Defence tokens. They place 2 Primary tokens on one planet, and 1 on another- resulting in 2/3rds of the primary offensive power of the hero being diverted to one planet, and 1/3rd to the other. The same is true of the secondary tokens. The defence tokens halve the possible incoming damage- this is half of the modified value so two tokens will reduce the incoming damage by 75% not 100%. 

Finally each hero will have a unique ability that helps them in battles. Soldiers can convert all tokens to defensive tokens for a short period of time, all whilst healing, but with the inability to attack. Infiltrators use their bomb-skills rather than use secondary tokens. Finally Diplomats will auto-retreat to the nearest friendly system instantly, and leave a status effect on the enemy system.

Of course this is all subject to minor changes, but the overall mechanics I think are pretty solid, and have received good feedback- but I'm always open to hear what you think! Until next week.

Friday 23 May 2014

Crucible XXI 23/05/2014

Still no exciting things to show- it's turning out to be quite complicated and there are various moving parts what with dealing with time zones etc. So in light of that, I will be mostly discussing things and showing off what I have done.

I made some more adjustments to the UI so that it shows less, more useful, information. Specific details on the active effects of each improvement on a system is accessible by highlighting the improvement, rather than listed in a huge text box. Along with this are some more general quality of life improvements, such as buttons remaining highlighted after selection, ensuring all buttons follow the same rules (orange when active, bright orange when selected, grey when inactive). I also made some slight changes to the way that the boxes are laid out- hopefully simplifying it.

Over the past few days I have been re-writing and re-naming all the system improvements. Originally there were 5 generic and 3 defence improvements per tier (32 total) available to all races, with only 2 race-specific improvements (8 per race)- that's 56 improvements total. Now, however, there are 3 generic and 2 defence improvements per tier for all races, with 5 race-specific improvements per tier- bringing the total up to 80 (or 140 when I include the other races)! This has meant that I have much more flexibility creating improvements that utilise each races unique resources and play style, and so hopefully the improvements are both more meaningful with regards to the gameplay, and also more interesting mechanically. Below is a picture of all the improvements available to humans (each box is one tier).


Next week I'll be primarily working on improving and expanding the military side of gameplay- so primarily invasions from heroes, and also a new missile system I have not previously mentioned in which systems can build and store missiles to be fired upon other systems. The main issue with these mechanics is not implementing them, but making sure that they are easy and logical to use, which at the moment they are not. I've included a picture of the targeting system to give you an idea of how the missiles will work. The background image is just a large Hubble deep field image I pulled off the internet (and is rather bright!).


And here is a little taster of what will be coming soon...


Monday 19 May 2014

Crucible XX 19/05/2014

Well I had hoped to have some exciting things to show off by now, but unfortunately they are not yet ready (hence why there was such a big gap since my last post). However I have spent a lot of time planning and designing my UI, and I am happy to say that I have a working version of the system screen to show off! As I said a few weeks ago, most of my time is spent on behind-the scenes stuff at the moment, but hopefully this Friday's post will be something special :)


This first screen shows off the rough placement and aesthetics of the UI. I have retained the orange theme, but have used a lighter colour to prevent the UI seeming too dull or hard to see. The font has been changed to one that is more readable, and I have chosen to use white due to feedback on using a darker colour. Labels related to resources output are colour coded for ease. All interactive buttons are orange, whilst text boxes are grey. The text boxes have grouped content based on a particular theme (eg. military power/resource output/overview etc.). I have tried to provide as much information to the player as necessary whilst keeping the UI clean and clear of 'waffle'.


A second screenshot shows the layout of the construction of improvements. A planet is selected from the list on the far left. Then an improvement slot is selected, which in turn reveals all the available improvements. Currently only the first tier of improvements is available to be built. Selecting an improvement will bring up a final window containing all relevant details. This includes a quote that adds some flavour to the particular improvement (at the moment this is just the same quote for each one), the details of what the improvement will do, the cost of constructing the improvement, and a button to build it. You may also notice that improvements have an upkeep that must be paid each turn (not currently working but seen above the improvement slot list).


Finally this screenshot shows how the central list changes size to contain information about the built improvements. Where the details on the right detail generally how the improvement will work, this list shows the actual effects on the planet from all system improvements. You may also notice that the improvements are not balanced at all- a knowledge production of more than 1000 is insane!

Well I hope that was worth the wait, and there will be more changes, additions and improvements to both the UI and gameplay in the weeks to come. Another thing I would quickly like to say is that I have scrapped plans to work on implementing multiplayer in favour of a worthy single player AI. I have made this decision since I cannot realistically implement both features within a reasonable time frame, and I need more experience in designing AI than I do  with networking. However this does not mean that multiplayer is not on the table, and it may come post release depending on the ease of implementation. Thanks for reading, and I'll be back again on Friday (hopefully).

Friday 2 May 2014

Crucible XIX 02/05/2014

A maths-intensive week this week, highly enjoyable. Still working on the theory side of the game, so there will be a lot of super good gameplay changes coming up soon (I'll talk a bit about them later). Also done a new video to make up for no blog last week. I finish work in 9 weeks, so I expect to be working much faster for the summer months. Also I'll hopefully be finishing off my Steam page soon, so I can get that live and looking good.



State of the Game (Build 1.08):
  • System rotation. This is a big deal. All systems now rotate slowly about the galactic centre. Systems rotate at slightly different speeds. This means that the map changes shape slowly throughout the game, and as a result the connections between systems can change. This is intended to add an extra layer of strategy to the game, as some systems may become cut off from the main empire over time, or new routes to enemy systems may open up. This is designed to be unnoticeable in the short term, but create large changes over the course of a match.
  • Randomised systems. The majority of systems (non-lore related systems) have randomised planet types in order to add more variation to each match. The number of planets in these systems is constant, however.
  • Improved Pathfinding. Heroes now use an A* pathfinding algorithm to move. This takes into account the distances between systems (the previous algorithm only calculated the number of connections).
Upcoming Changes
  • Empire technology tree. This will be divided into 4 tiers. Each tier contains technology that costs progressively more (eg. 10 for T1, 20 for T2, and so on). All technology within a tier costs the same amount, but every time a technology is research, all other technologies in that tier double their research cost. The idea behind this is to force the player to choose route through the tree carefully since the technology gets expensive quickly.
  • Hero upgrades. This will become more of a skill tree similar to it's original state in the game. All heroes share a common tree with upgrades like armour, movement speed etc. Hero specific upgrades are also available depending on the hero type. Certain empire techs can even open up upgrades previously available for other hero classes.
  • Expansion penalty and improvement penalty. Colonising new systems or planets creates and empire wide resource penalty for a certain amount of time. If colonisation is too fast, this penalty becomes very large. There will also be an upkeep cost on system improvement slots.
  • Finalised the system screen and main menu designs. These are likely to take a lot of time to implement because there is a lot of trial and error involved. It does look snazzy however.
That's it for this week. Remember to check out my new video, and I'll (probably) be back next week.

Friday 18 April 2014

Crucible XVIII 18/04/2014

Another week of work gone by- faster than I would have liked. Managed to be pretty productive too. I wanted to take some time to nail down at least a tiny portion of the UI... and I did! I can now consider the design of the system summary popup done, and made a lot of changes to the general behaviour of a lot of the UI so it looks more pretty. Also continued on the changes to heroes.

State of the Game (Build 1.03):

  • Broke through the 100th build barrier! Woo.
  • Finished up the system overlay design. Now the information is conveyed much more visually (rather than the ugly box before). The overlay itself is displayed based on camera distance to system (so that they don't clutter the screen when you are zoomed out). However I have just noticed that the central orange ring (which shows the number of planets colonised in the system) is a little hard to distinguish- so I may need to make a minor alteration to make it larger.
New system overlay. System borders disappeared due to zoom level.
  • Decided that my previous super-complex and non-functional method of drawing the empire borders consumed far too much time, and didn't even look that good. So I have gone for something a bit simpler (actual texture is WIP)...
Actual racial colours not working (for some reason). Notice secondary resources in Infobar.
  • Added hero improvement functionality. Each hero has different bonuses that can be improved. There is no limit to the number of resources that can be spent in any given stat (other than the number of resources you actually possess).
WIP Hero improvement screen for Soldier type.
  • Slight change to secondary resource mechanics. If a system produces Antimatter (for example) it receives a bonus to Ownership growth based on the amount of Antimatter your empire owns. This means that systems containing planets that produce Secondary Resources gain a bonus according to the resource in question, and the amount of that resource your empire possesses. The reasoning behind this is that not spending resources on heroes improves the systems that produce those resources, but has a negative impact on your hero quality. If the resources are spent on improving the hero, the systems producing the resources suffer. (It's a trade-off, see?).
  • Some mild changes to AI- nothing of note. General fixes, particularly in relation to 3 player games (for some reason it were broke). Some slight changes to balance (why am I doing that now?), and also to the way that resources etc. are calculated.
Hope you like how it's coming together! That's it for this week, see you next time.

Friday 11 April 2014

Crucible XVII 11/04/2014

First of all, there was no update last week because I had a severe case of man-flu (a real thing!). Secondly, like I said a couple of weeks ago, most of my work at the moment has been on stuff you can't actually see. Saying that I do have some juicy images for you. You may have noticed I have redesigned the Crucible logo (again). This reflects the art direction I am set on- I know, I can't believe it too, I actually managed to decide on something. I've also done some new designs for the in-game symbols, and changed a lot of the in-game information to align it with the Science-Fantasy theme I'm going with. I know I said this last time, but I really cannot see these designs changing a great deal from now on.


From left to right; Wealth (Capital), Knowledge (Science), Power (Industry), Amber.

Also introduced are new resource types. These act as secondary resources that aid your development, but are not necessary (unlike the 3 main resources). These are tentatively called; 'Antimatter', 'Blue Carbon', 'Radioisotopes', and 'Liquid Hydrogen'. Each resource is produced by a certain planet category- Giant (formerly gas), Terran, Hot, and Cold respectively. However there is only a small chance that a deposit of these resources will be found on the appropriate planet- so there is no guarantee that your empire will have access to all secondary resource types.

These new resources will be used in varying ways. Systems that have producing planets within them will gain a bonus according to which resources are being produced. For example, a system containing a planet that has an Antimatter deposit on it will gain a boost to ownership gain. Another use is to improve heroes (see next paragraph).

Heroes have significantly changed. I felt that the hero specialisations were still too limited, so I have made them even easier to use. When you hire a hero, you simply select between Infiltrator, Soldier, and Diplomat. After your choice has been made, the hero instantly has access to all the abilities of that class. This means that Diplomats (for example) now have access to the old Ambassador and Merchant abilities (trade routes, embargoes, and promoting). However, heroes are now more customisable. Heroes can be improved using the new secondary resources. In the heroes information window, it will be possible to spend resources in order to improve a certain statistic of the hero. For example, if you spend 4 antimatter on the hero, it will increase the heroes damage by 4%. This will allow for heroes to fulfil many roles- you could increase the Defence of a Diplomat to increase its survivability, or increase your Soldier's offence to make it an Ultimate-Badass war machine.

Other than this (which I hope you found interesting!), I have made some significant improvements to the enemy AI. Enemies are now able to purchase heroes, and can move them around the map (though this behaviour is currently quite basic), and are also able to purchase improvements for their Systems. This is based on an algorithm that calculates the potential value of each improvement to the system- this means that improvements will be prioritised differently according to the system (and eventually according to the needs of the entire empire). This did require an extensive rewrite of my tech tree, but it works fairly well (ignoring balance). 

That's all for this week, once again I can only apologise for lack of images (apart from the one below), but I hope you liked reading it, and I'll be back next week.


Friday 28 March 2014

General Update 28/03/14

I'm going to mix it up this week (and maybe do the same in the coming weeks) by doing some posts about the general progress of the game, what I feel about the project, what features I will be doing, etc. This is due to the fact that I will be working on less visual aspects of the game in the coming weeks (AI, fixes, other things), and also because I haven't spoken much about these things before. I'll try and break up the posts with sketches and/or other bits I've done, but generally you won't be seeing many screenshots (at least for a little while).

Overall I would say I'm pretty happy with the speed of development. My number one priority is just to get the game to a state of 'completion' and not be concerned about bugs at the moment. Writing the AI is a massive task, but when I'm happy with it I do plan on releasing a playable version of sorts for people to download (SP only). It is likely to be some months before it's at that stage though. Thankfully soundtrack is coming along really well- currently I have had 7 nearly-polished tracks sent to me (out of 10). After that's done I'll probably spend some time with my team-mate to get some sweet sounding effects. If I'm honest, the art is currently on the back burner. I am having a very hard time coming up with a style that I think is suitable- I do have bits of ideas and some finished images, but as a whole it's very incomplete. For me this is a bit of a shame since the visuals really sell the game for most people, and I don't feel prepared to put the game on Kickstarter as it is (not to mention the fact that I don't have an artist on the team).

So what's coming in the future? Well in the short term I will be writing the AI (as I have already said), but there are a myriad of other features to come. I plan on adding 2 more races to the game (for a total of 5). Since each race has their own independent mechanics it is a very big job to create, write and balance them (explaining why there are so few). I really do hope that this will lead to far more distinct gameplay styles than in other strategy games, but only time will tell. I do have to get networking up and running for multiplayer to work, but it may be that I will just find someone else to do it if the task is too great (I only have so much time!). Also coming sooner rather than later- Empire Technology, improved Heroes and Hero mechanics, better battles, inter-system war, status effects, and additional diplomatic effects.

In the long term I will be looking at getting the game up on Greenlight, and I'll be needing everyone's support to get it voted up there. Really I am looking at a mid-late 2015 release date, but who knows- it could be sooner. I will be heading off to Southampton Uni (to do Computer Science) in September, but I'm pretty sure I can devote a lot of my time to this project anyway.

As always I would love to answer any questions/comments, and I'll see you next week!


Just a few rough numbers about the game to amuse you:

  • Lines of code
    • Without XML files:   6134
    • With XML files (Includes tech data, system data etc.):   8919
  • Time in development: 650 hours or 27 straight days
  • Size of team: 2!
  • Cost of development: ~£40 (for NGUI).

Friday 14 March 2014

Crucible XVI 14/03/2014

Wow have I been drained this week. I'll be fresh and ready to work after I get back from my holiday next week. Saying that, I have done a fair amount of work. Currently I'm trying to pin down the UI art direction. The game should have a dark Fantasy/Sci-Fi feel to it, so I'm experimenting with various textured interfaces etc. The screenshots in this post may or may not be representative of the direction I will end up going in! I'd love to hear feedback on how it looks and how it fits in with the rest of the game. Oh, I did a video to demonstrate what I have done this week (music is 'Frozen Star' by Sam Windell, link at bottom of page). Anyway...

State of the Game (Build 0.88):
  • YouTube video to go with this blog:

  • So I finally implemented diplomacy properly. This is fairly complex, and not quite the same as I had originally envisioned it (explanation follows). There are 3 diplomatic states- War, Peace, and Cold War. Committing positive actions such as trading will improve your relations with the receiving player, and move you towards a more peaceful state. Negative actions such as invading have the opposite effect. Relations are on a continuous scale (rather than discrete like the diplomatic states). Your front line systems (systems adjacent to other players systems) have their resource output and defensive/offensive abilities modified by your relation with adjacent players. Resource output increases and ownership growth are greatest when relations are good, while offensive/defensive abilities are greatest when relations are poor. (I get that this is a lot to take in- hopefully I can demonstrate it in the near future).
    • Cold War is the 'Default' state, if you like, with no real pros or cons. 
    • War allows you to call for Cease Fires, will cause your systems to automatically attack orbiting heroes, and reduce benefits received by other players. 
    • Peace allows you to move freely in enemy territory, and greatly increases the benefits received by other players.
  • Made 3 status effects- Chill, Poison, and Virus. Chill slows resource production. Poison decreases ownership at an exponential rate. Virus decreases resource production at an exponential rate and can spread to other planets/systems. Currently only Poison is implemented (caused by Fission bombs).
  • Randomised ambient stars. 3D collection of stars is generated at runtime. This is purely for aesthetic purposes, but helps to prevent the game from looking as flat as it did. Once again I'll say that the graphics are not representative of the final game.
Lots of randomised stars. Stars near owned systems glow with the owners racial colour.
  • Systems and Planets will cause damage to invading heroes. Damage caused and received by heroes is based on unlocked technology and hero specialisation. Damage caused and received by Planets/Systems is based on the total ownership of the system, system improvements, orbiting allied heroes and empire improvements.
  • Fixed camera movement- camera now moves smoothly. Update the UI (yay!).
Showing off the changes made to the UI, amongst other things.

Back in two weeks time!


https://soundcloud.com/samwindell

Friday 7 March 2014

Crucible XV 07/03/2014

Bit of a weird week this week! Had Monday off to meet a friend who was back from uni, then spent Tuesday recording guitar and samples for the War music and sound effects. I think the soundtrack for War is going to surprise a few people- it's pretty heavy. I'll be doing that more regularly until it's finished, and then I will be back to dedicating all my time to coding. Saying all that, I've been pretty busy and managed to progress a lot this week. A lot of theory has been done and I've done a great deal of work making each race feel unique. This is a bit of a trap though since there are very few mechanics that are actually shared between the races, so it's all different. Needless to say it's very cool. I've also done a bit of work on the 4th race I hinted at before, but here is a bigger clue as to what direction I'm going in with them: 'Lovecraft'. I found myself struck by inspiration for ship designs this week, and I've included a couple of rough sketches for you to enjoy...

 The human capital ship 'Balmung', named after the sword used to slay Fafnir in Norse mythology. The ship's profile is designed to look like a blade, with the majority of it's functional components collapsing away (indicated by arrows) when not orbiting a planet.

Seed ship of the 4th race. Designed to look like a cross between a Parasitic worm and a Sperm. A single, terrifying, organism capable of travelling between stars with thoughts unknown.

State of the Game (Build 0.83):

  • Infiltrator bombs are now functioning. Different types of bombs (Fission/Fusion/Antimatter) become available via research. All bombs have a cool-down timer that prevents their overuse. The more powerful the bomb, the longer the cool-down. Bombs have a catastrophic affect on both planetary defence and ownership of planets. Infiltrators are able to bypass the system defences.
Currently very simple bombing interface. 2nd planet was destroyed by Antimatter bomb in single hit.
  • Changed the planetary improvement interface to be more usable. Clicking on a planet brings up the available improvements that can be built. Benefits from existing improvements are listed below. Both windows are scrollable. Tabs across the top allow you to keep an eye on which improvement tiers are available to your system, and which improvements within those tiers are available for purchase.
This layout it much closer to how the final game will look. Also see the return of the system summary!
  • Implemented Nereides and Selkies system improvements. Nereides improvements are geared towards making use of stacks of Elation and improving Science related variables. Selkies improvements are geared towards increasing the production of Amber, and lessening the penalty for Amber production (detailed next). Many improvements now have effects based on which planets they are built on, for example one technology increases the Amber production on planets by 1 unless it is built on a hot planet (Molten/Desert/Rocky), in which case it increases the Amber production by 1.5.
  • Selkies racial mechanic- "Amber"- is now working. Amber is generated by building an Amber refinery in systems. The refinery takes up an ordinary improvement slot. Amber is used to research ancient and powerful technology, but its' production has negative effects on the system in which it is produced. For each Amber produced, Ownership growth is decreased by 5%, and Science and Industry production is decreased by 5%. This can be extremely debilitating if other improvements are not built to lessen (but not remove) the penalty of Amber production.
Sadly (but not for me) I'm off on holiday to Prague in two weeks, so I won't be doing any practical work on the game in that time- meaning I also won't be doing an update for that week. However next week is work as usual, and hopefully I'll be getting some more cool stuff in the game at that time. See you then!

Friday 28 February 2014

Crucible XIV 28/02/2014

Lots of new features. Specifically I have built a basic main menu that allows easy race selection, and allows you to choose between 1 and 2 AI opponents, as well as map size. Also did a video blog that I have linked below. Actually pretty pleased at my progress this week, if I can keep this up I reckon it will be playable within a few months. After that I've got to get the multiplayer working, but I'll work a bit on AI to be able to release a playable Alpha for whoever wants it.



State of the Game (Build 0.77):

  • Very basic main menu. Allows selection of map sizes between 30 and 180 in increments of 30 systems. Made racial symbols for Nereides and Selkies (but not humans yet). This has forced me to change a great deal of code and I'm still not completely sure that all the bugs are ironed out from the change.
Selkies symbol is a feather. Nereides symbol is uplifting, the arc represents a planetrise.
  • Merchants now support Trade Routes. Trade Routes are built between neighbouring, peaceful systems of different species (i.e. not Human-Human systems). Trade Routes are automatically built by the computer, this is so that routes that are the most beneficial to you are built. Basic Merchants can support 1 trade route, but research can be done to increase the cap to 4. Routes provide 50% of the neighbouring system's resources to be added to your system's production. Eg. An enemy system producing 10 Science would cause you to have a bonus of 10/2 = 5 bonus Science production.
Showing off trade routes. Each hero(cube) is supporting 2 routes (highlighted with arrow).
  • Heroes will now take advantage of tech upgrades. These can increase offensive power, invasion power, movement speed, armour, stealth and more. Not all systems (such as bombs) are implemented, so some of these upgrades cannot be taken advantage of just yet (bombs are pretty cool so I will probably work on that next week).
Updated tech tree, showing off unlock system, and a tooltip.
  • Although it is probably of little interest to most of you, these changes have resulted in me being forced to streamline and improve my code. This has the knock-on effect of it being easier for me to implement a lot of mechanics, huzzah!
  • More music from Sam Windell- you can hear it in the background on the youtube video, but I will link his page here as well: https://soundcloud.com/samwindell.
That's it for this week. Thanks for reading!

Friday 21 February 2014

Crucible XIII 21/02/2014

Only had 4 days of programming this week, but I did get a good deal done. I decided to tackle my map randomiser issues head on, so I've pretty much fixed that- it's looking very nice I must say. I also added the pool of systems I wrote about last week, so there is a great deal of randomisation going on. I've got a fair few big changes lined up, I don't want to reveal too much, but be excited for them. I hope to have a playable beta out by April/May time too, but I'll need to do a lot of AI work before I get to that stage.

State of the Game (Build 0.73):

  • Map randomiser is now 'finished'. 6 map sizes are currently available, and I've shown off some examples in the screenshot below. Due to the nature of the game, larger systems appear less random (because of the fixed systems) but they have more complex connections. It also takes about 45 seconds to create a 180 star system so I may limit the size to 90 or 120 on release. Map size dictates the scale of game objects, maximum connection distances, resource generation, and obviously the length of the match.
Demo of all working map sizes. The gap in the top right is the galactic core- try living there!
  • The little button labelled 'Purge' will be your best friend if you play as Nereides. Instead of the boring resource generation ramp, Purge is much more active. Purge will destroy every set of 100 Science and Industry. This means if you have 201 Science and 320 Industry, Purge will reduce it to 1 Science and 120 Industry (that's using 200 Science and Industry). For each set of 100 S/I Purged, you gain a stack of Elation. Each stack increases your galaxy Industry production by 0.1%, and decreases the cost of research by 1 Science. This really is a glass cannon-y mechanic, since using it too early or too late can easily cripple an empire.
Before and after. Look at the industry production. Elation modifier is applied before other modifiers.
  • I added a tooltip to the system improvements, and have given them better (though not final) names. This is mostly so that I know what I'm actually building when I play it.
That's right, a whole screenshot just to see the tooltip.
  • General UI changes (again!). Fixed various bugs related to system improvements. Changed the icon for Science and Industry again- they are now much easier to identify, I don't think they will change much now.
  • AI needs some serious work since it's now at breaking point (I haven't updated it in about a month). Selkies won't even take their turn now. I'll also be working on a main menu soonish.

Hope you enjoyed reading this. If you have any questions related to the game/code/mechanics/life in general please feel free to comment.

Friday 14 February 2014

Crucible XII 14/02/2014

Big news! Crucible has now become a real time game. Mid way through this week I thought it might be a good idea, tried it out (very crudely), and it is! The game is now paced much better, and being real time means that decisions the player or enemy makes have far more immediate effects. You don't get the opportunity to pore over each turn, planning out every move, you must make flash decisions and make the best of every situation. This has resulted in various changes that I will detail below (along with the fun stuff I have added).

State of the Game (Build 0.69):

  • Changed from Turn Based to Real Time strategy. Resources are now earned on a per-second basis. Much easier for me to control resource generation. Ship movement is now based on speed rather than number of systems moved per turn. Reduced the difference in Capital generation between races- Humans now gain a base of 0.6 p/s, Selkies gain 0.5, and Nereides gain 0.4. Turn timers are now cooldowns (this means there is a 2 minute no-fire period at the start of the game, a timer for hero levelling etc.).
  • Hero invasions now working. A great deal of balance is required for this but at the moment the basic invasion mechanics exist. If the invading player destroys all the system defences before they destroy the inhabitants (ownership) the player gains control of the system, otherwise the system becomes unowned.

  • Heroes now inherit abilities from their ship and relevant upgrades to the ship. The actual tech tree for this is tough to understand and will require work. Bombs are not currently working as they have a completely different usage mechanic to Artillery and Dropships.
  • Once again I have done a great deal of optimisation and cleaning up (at first the change to real time caused the game to use some ridiculous % of my CPU).
I had hoped to have the pool of systems working by now, but the balance, naming and positioning of the systems has proved to be difficult. However I believe the map I have come up with has great potential, and hopefully I can show it off next week. Thanks for reading!

P.S Apologies for the lack of pictures in this update, most of the work I've been doing this week is not complete and so cannot really be shown, since I'm still converting the game to real-time.

Friday 7 February 2014

Crucible XI 07/02/2014

Woo lot's of new stuff this week! I've nearly finished converting all the Unity UI to NGUI, which is super freaking awesome (even though it was horrible). Still waiting on the finalised header for the blog, but 'tis cool, I can wait. I'd really, really love some input on what everyone thinks about the direction of the game. I'm going to make it darker as I go along, and I've already got a lot of ideas of post-launch content to put in. I'm also pretty chuffed to say it's 'mechanically' complete- meaning every mechanic that will be in the game, is implemented at the moment (but it's still a long way from playable).

State of the Game (Build 0.64):

  • UI changes, many many changes. Looks much more delicious, and is a lot more responsive than the old one. I'll put a little collage of images together to show what's changed.
  • Tech tree. I now have a fully functioning tech tree for researching upgrades for heroes. However only I know how it works at the moment! Still, lots of cool tech to look forward too (but not too much). Tech only needs to be researched for it to be immediately used.

  • More hero functions. Ambassadors can Promote and Embargo systems (see video), having trouble with Merchant trade routes- maybe I will fix that next week. Soldiers and Vanguards are pretty plain and easy to work with, system invasions still need a lot of work, but that will be an ongoing task as I don't expect to be able to fix it in one sitting. Drones and Hackers don't have functioning abilities, but they depend a lot on system invasions working so they will be developed at the same time.
  • Capital replaces Money and Galaxy Points. I couldn't find a good enough use for Money, and Galaxy Points were a bit boring, so now players have a regenerating pool of capital (like a mana pool). Performing actions such as hiring heroes, colonising systems and planets, all cost different amounts of capital. This is good as it can easily set the pace of games and can prevent players expanding too quickly.


That's it for this week, see ya!

Saturday 1 February 2014

Crucible X 31/02/2014

Whew, busy week! As you have probably noticed this blog now has some sweet graphics going on, thanks to http://massonius.deviantart.com/, a great artist and an absolute pleasure to work with. I also decided to take the plunge and bought myself NGUI. So far that has been a bit of a mixed bag- it is really flexible and I can easily see how it will be an advantage in the future, but it has a pretty steep learning curve.

Lava planet (full image) from Massonius

State of the Game (Build 0.59):

  • Hero movement- heroes can now use pathfinding to get to other systems. This actually works really well, and wasn't too hard to implement. I've included a little video showing it off. Also in the video is a clip of the first complete track by my composer (https://soundcloud.com/samwindell)- titled 'Nebula', this piece is intended to be played during peacetime with other players. There will also be corresponding pieces for War and Cold War.

  • Made a lot of progress converting my old UI into NGUI format (not immediately apparent from the video). 
  • Also worked out how the upgrades and invasions for heroes is going to work, and it's all set to be implemented next week. The following table details roughly how the different hero types will approach invasions. I will detail combat more next week as it's a fairly deep topic and I don't want to discuss it without anything to show.


Finally, I have probably said I will be getting on Kickstarter soon(ish), so I'll probably be spamming everyone during that time. If you are interested in the project I would really appreciate funding (no matter how small) but there will be some awesome incentives for those who want to spend a bit more. See you next week! :)


Friday 24 January 2014

Crucible IX 24/01/2014

As you may have noticed, I have changed the name of the game from 'Ascension' to 'Crucible'. I felt that Crucible reflected the dark mood of the game much better than Ascension, and wanted to prevent the game from being too closely associated to the somewhat legendary game 'Ascendancy'. To celebrate this I am happy to show off a particular piece of work done my artist/friend:


I have commissioned him to design me some promotional material, and also this impressive looking font. Meanwhile...

State of the game (Build 0.54)

  • Mostly moved and optimised existing code so not a great deal of new content.
  • Map randomiser working much better than before! This caused me a great headache and still isn't working completely, but produces far more interesting maps than last week.
Notice that connections no longer overlap others with the new randomiser.
  • UI improvements. When you hover over a system, the GUI will display key information about it. Still functional graphics, but much closer to how the final version will look. Also created some icons for Science,Industry and Money. Also created a small bar on the bottom of the screen to count resources, turn number etc. I felt that having the bar at the bottom of the screen helped make the rest of the game seem less cluttered (as opposed to having a bar at the top, and UI elements around every edge).
New empire info bar (shortened for the blog), also displays date rather than turn. 

System label. Also shows off fancy symbols. Not sure about symbol for money (Credits).
  • Change to heroes. Now only 2 specialisations, rather than previous 3, on second level. Merchant becomes Smuggler- can ferry resources and debuffs around. President and Peacemaker combined into Ambassador. Strike Teams now gone. Spy and Recon Drone now condensed into Hacker. Assassin has been renamed as Drone. Heroes now gain levels simply by surviving for a certain number of turns, rather than a GP cost. This prevents excessively powerful heroes being purchased early in the game.
  • New racial traits. Lots of theory work on ships, invasion mechanics, heroes and technology ideas. Will detail when implemented.
I will also be dedicating time to creating a business plan, as I hope to get onto Kickstarter in the not too distant future. Hope you enjoyed reading/looking, feel free to comment!