Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Crucible - 4X Space Strategy

Discussion in 'Works In Progress - Archive' started by Shemamforash, Dec 18, 2013.

  1. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    $Final Banner Design FINAL.jpg

    Set in a beautiful yet dangerous future, Crucible is a 4X strategy game that is currently in development. Crucible features an RPG-like levelling systems for heroes, and board-game like gameplay. Crucible will feature an introductory campaign, single and multiplayer skirmishes, randomised maps, and a rich and varied tree of technologies and upgrades. Crucible is intended to be a less time consuming 4X game, with matches lasting between 20 minutes and 1 hour. This will intended to produce a fast paced game, with many opportunities for players to make game changing decisions (good or bad). Crucible will have a distinct art style- futuristic yet dark, with a comprehensive UI to match.


    View of the system/planet improvement screen (see blog for more details)


    View of the map screen. Humans in green, Selkies in red and Nereides in blue

    Crucible is currently far away from release, but I have managed to get many of the basic mechanics working, and progress is strong. I also have a writer helping me work on lore, a musician who is (slowly) writing the score, and an artist to help me design the UI elements and planet/star concepts. I have a job on weekends, though most of my waking hours are spent working on various aspects of the project. Since this is my first 'true' game, progress is slower than it might otherwise be (I am learning as well as developing), but I hope to produce a high quality product in the end.

    I hope that you enjoy reading about Crucible, and really hope that you will follow my progress!

    http://cruciblethegame.blogspot.co.uk/


    A side-note: if anyone is really interested in the project feel free to add me on Skype for a chat (PM me for username).
     
    Last edited: Jun 20, 2014
  2. primus88

    primus88

    Joined:
    May 14, 2013
    Posts:
    611
    This would not be the wrong section to post in, but your post would need some details first.
    1. specific game features << optional
    2. pictures / videos << obligatory, especially if you also offer a link to click on.
     
  3. Theyrr

    Theyrr

    Joined:
    Sep 21, 2013
    Posts:
    24
    Is this inspired by Endless Space? This seems to share many ideas. I'll bookmark this and follow, looks interesting.
     
  4. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Endless Space is indeed one of my inspirations, but I wouldn't say I'm inspired by its mechanics- more it's general feel and style (I love far-future sci-fi). Thanks for the interest :)
     
  5. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Funny I would say this game looks mostly inspired by Ascendancy, an old dos title. But then I guess I know where Endless Space have it's inspiration. :)
    Even though it's an old forgotten dos title you might wanna check it out, I know it runs under dosbox. I really loved the tech tree and the ship building it had.

    Looking good, keep it up.
     
  6. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Cool, I will definitely check it out! Same title too (woops!). I've found I'm spending a huuuuge amount of time working out how to make ships and the tech tree interesting. Thanks for the interest :)
     
  7. dixitalgorismi

    dixitalgorismi

    Joined:
    Aug 6, 2013
    Posts:
    30
    That game was so cool! I have fond memories of Ascension :D
     
  8. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Tasty video log! Explains mechanics and various other odds and ends.

     
    Last edited: Jan 22, 2014
  9. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    New Blog post! Pictures on my blogger page, text follows...

    - Ownership mechanic implemented. Ownership increases over time. All planets have Ownership quoted as a percentage. The current percentage of your ownership directly affects the SIM output of the planet. Rate of Ownership gain can be altered. Having 0% Ownership will cause you to lose the planet. Ownership does not degrade over time.

    - New human-specific mechanic: "Ambition". Ambition increases when the player colonises new systems or planets. Having high ambition will lead to increased Ownership of all planets. Low ambition reduces Ownership of all planets. Ambition will only increase via methods of expansion, but there are also a number of human-specific system improvements that can reduce, stop, and/or change the effects caused by Ambition. Ambition decreases slowly if no expansion occurs.

    - Re-do of existing system improvements. There are now fewer improvements, but they scale better with cost and are easily more interesting (24 down to 12 generic improvements, with 9 race-specific improvements each).

    - Map randomiser. This is not completely working, as I do not like the current set-up in which it chooses planets. It does, however, generate a random map based on predetermined star system locations (as described in the video). I currently only have 60 systems available in a pool, but I will be making 180, so it will be possible to have maps of varying sizes.

    - Diplomacy implemented. Players can exist in one of 3 states with each other player: Peace, Cold War, and War. Although the bonuses are continuous, rather than discrete, War provides a bonus to Offensive and Defensive stats, and prevents trade routes from being set up, it is also harder to detect Infiltrator heroes. Cold War boosts both Offensive and Defensive stats as well as SIM output of systems. Trade routes can still be set up, Infiltrators are much easier to detect, and invasions can still take place. Peace boosts SIM output of systems, trade routes can be created, Infiltrators are hard to detect once more, and invasions cannot occur.

    - More hero abilities. Merchants are now linked with systems rather than other Merchants. Infiltrators now have stealth ability. Soldiers can invade and take over systems. Ships coming soon...

    - UI change. Even though these graphics are not permanent, they better represent the dark mood I am trying to set with the game. They are also far, far more interesting for me to stare at!

    - General changes. Rewrote majority of AI to improve expansion.
     
  10. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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:

    $Crucible+Blog+Image.jpg

    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.

    $Blog+Random+Map.png

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

    $Empire+Info+Bar+UI+Blog.png

    New empire info bar (shortened for the blog), also displays date rather than turn.

    $System+Info+UI+Blog.png

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

    Lostlogic

    Joined:
    Sep 6, 2009
    Posts:
    693
    Nice map generation! Mine is giving me a headache.. ;)
     
  12. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Thanks :) It really is a pain to implement, and I'm still not done!
     
  13. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    could you please elaborate a bit on this how you have achieved this? your connections look a bit "boring" as it seems they only connect the closest stars together. if there also would be a few longer ones i think it would increase the value of a system adjacent to it as it allows for quick force mevement. if you have a straight frontline its easier to identify and defend it but when there are long range connections this may add some spice to the strategy.
     
  14. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Hey, thanks for the interest. The new randomiser has a disabled section of code that is responsible for making longer distance connections. I disabled it as it currently creates connections that overlap with existing connections. The algorithm essentially works like this:

    -For all systems assign a weighted number of connections.
    -Build a minimum spanning tree to ensure all systems are reachable.
    -While there are still free connections, find the nearest systems within a certain distance, and connect them to this one.
    -When this is done, for each system with incomplete connections, assign long distance connections provided they don't overlap with existing connections.

    Also there are currently no randomised stars- explaining why the map looks similar in each incarnation. This will be changed in the future. :)
     
    Last edited: Jan 30, 2014
  15. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    hey shemamforash,
    thanks for your response.

    i think you should create the longest connections first and thus separate "regions" of space by them (cant be crossed by other connections). afterwards create the short connections and ensure they don't overlap other connections. i am thinking on how to check wether a connection would overlap another one or not. a line-line intersection test may be too imprecise (albeit on a plane). maybe a line line distance beyond a certain threshold. or struggling with the angles.

    weighted by what? or do you mean the frequency of each number? (english is not my main language).

    do you (want to) distribute them randomly with a minimum distance check or do you have a more fancy algorithm in mind? i have considered randomly distributing "regions" over them map and then shift the stars a bit towards their closest region creating some sort of cluster / constellation. but i must test it and see how it looks.

    in some weeks i also want to focus on my map generation thats why i ask.
    thanks for your efforts and for sharing the details. i find this topic very interesting.
     
  16. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    That's cool, it's quite a fun topic to discuss. I originally did consider cutting up the map into regions, however I found this to be quite tricky since it can be hard to ensure all systems connect- I can't think of a good way to initialise the map without a minimum spanning tree. Since all my systems lie on the same z plane, I did a simple 2D test for intersection. I will outline how I did that because it was the most frustrating part of the map generator (bear in mind I haven't had time to go over the code and optimise it):

    -Every time a connection is made, the line equation between those points and the position of the points is stored.
    -To test if a connection is feasible I say:
    -Generate a line equation for the stars in questions (current star and target star).
    -Then for every existing connection, test to see if the lines intersect.
    -If they do intersect, draw a bounding box around the two stars in question and see if the intersection lies within this box.
    -If it does, it must mean that there is an intersection between the two lines, and so a new connection cannot be made.

    By weighted I mean, when I assign a maximum number of connections, the number is weighted. So for example there is a 10% chance a system will have only 2 connections, a 30% it will have 3 connections, etc. This is to ensure there aren't too many systems with too few or too many connections, but to maintain a bit of variety in the number of connections a system can have.

    For the star distribution I am going a different route to most. Because I want to create a coherent universe (set in the milky way), the position of specific stars does not change (the sun is always in the same place on the map, for example). Instead I have a collection of 180 stars. These stars are split up into sub-groups of 6 stars distributed evenly amongst the galaxy. When the game loads, it selects 2 stars at random out of each groups of six, to make a total of 60 stars. This means that the map generated is random, but it also makes sense (not sure if that was explained properly!). Map generation is quite intensive and I have a lot of pages filled up with theory :p If you have any problems feel free to contact me :)
     
  17. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    why that? the region is just a meta information and the underlying algorithm doesn't need to take it into account. if your parameters are set correctly the distance between regions is so large that there are no short routes between them. and in a first step you ensure that all regions are connected together where you consider the region information only for the long connections.
    also in my case its a bit different as i intentionally need unconnected systems as there are other ways of travelling (jumpdrive) and thus keep something to explore for the player until he as has gained this advanced technology.

    i also use a 2d map. here you can find the methods LineLineIntersection and ClosestPointsOnTwoLines which i intend to use. maybe this helps you to optimize your intersection method.

    yeah, thats what i meant with "frequency" of the connection number. btw i also would add some 1 connection "dead end" systems.

    you mean with real star names and positions? i think this will generate very similar maps and thus lower the replay value. most strategy games offer different kind of maps fe ring like, evenly distributed and spiral arms.

    thanks for the offer. i have not read in detail about it just collected a random idea here and there. i think this has to be seen more in the context of desired gameflow than realism so the progress of the player is not too slow and not too fast. its all fiction anyway ;). but i agree that it can take some time to tweak the parameters to ones liking.

    thanks for the interesting discussion.
     
  18. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Hehe, maybe we are talking across purposes. I have considered using regions, but because of the way that the map is laid out and how I ultimately want it to look, they are not particularly useful to me- for my particular requirements it's actually easier just to make connections on a system by system basis.

    Thanks for the functions link, I'll have a look over them on Sunday when I go back over my code. I do have some dead end connections- I quite enjoy/detest getting to the end of a route to have it be a dead end, but then they are more easy to defend!

    In terms of replayability, I have done some tests and you may be surprised at just how random the maps can be generated with fixed stars- there are so many stars in fact, that it can be difficult to tell that their position isn't randomly generated (you can make guesses at how miniscule the chances of generating the same system is).

    I will be having different maps to choose from, but I have not yet made them as they don't have much priority against just getting the game working at the moment. I also can't stress enough that what works for me may not be useful for you, which may explain some of the confusion :) Have fun!
     
  19. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    $Blog Hero Details.png

    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! :)
     
  20. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    $Blog+UI+Update.png

    - 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!
     
  21. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    $System+invasion+blog.png

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

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    $Map+Randomiser+Sizes.png
    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.

    $Purge+Demo+Blog.png
    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.

    $Tooltip+Blog.png
    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.
     
  23. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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+and+Nereides+Symbol+Blog.jpg

    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.

    $Trade+Routes+Blog.png

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

    $Tech+Tree+Blog.png

    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!
     
  24. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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 recording 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...

    $Balmung Blog.jpg

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

    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.

    $Infiltrator+Invasion+Bombs+Cooldown+Blog.png

    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.

    $New+Improvement+Screen+Blog.png

    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!
     
  25. BrUnO-XaVIeR

    BrUnO-XaVIeR

    Joined:
    Dec 6, 2010
    Posts:
    1,687
    Never played this kind of game. Looks interesting!
     
  26. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    Thanks for the interest! :)
     
  27. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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: https://www.youtube.com/watch?v=Jswl41PTjds

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

    $Ambient Star Randomiser Blog.png
    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!).

    $New UI Hero Screen Modifers Blog.png
    Showing off the changes made to the UI, amongst other things.

    Back in two weeks time!


    https://soundcloud.com/samwindell
     

    Attached Files:

    Last edited: Mar 14, 2014
  28. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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:

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

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    $Blog Pics.png

    From left to right; Knowledge (Science), Wealth (Capital), 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.

    $Final+Banner+Design+FINAL.jpg
     
  30. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    $Blog+Overlay.png

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

    $Boundary+Blog.png

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

    $Hero+Improve+Blog.png

    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). Also 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.
     
  31. TVE

    TVE

    Joined:
    Oct 15, 2012
    Posts:
    379
    The game is beautiful. I just found this while looking through forums, and I had a similar idea for a game a while ago. I would love to play this game, great job, and keep up with the great work :]
     
  32. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    That means a great deal to me, thank you :)
     
  33. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.

    EDIT: If there are any 2D artists reading this that are interested in working on the project, please feel free to PM me :)
     
    Last edited: May 5, 2014
  34. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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 :)

    $New+UI+Basic.png

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

    $New+UI+More+Detail.png

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

    $New+UI+Even+More+Detail.png

    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).
     
  35. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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).

    $Improvements.png

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

    $Pew Pew Missiles Blog.jpg

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

    $Stars Preview Blog.jpg

    See you next week!
     
    Last edited: May 23, 2014
  36. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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.
     
  37. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!).
     
  38. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!
     
  39. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!
     
  40. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!
     
  41. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!
     
  42. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!
     
  43. Shemamforash

    Shemamforash

    Joined:
    Sep 9, 2013
    Posts:
    69
    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!