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 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!
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
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.
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
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.
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.
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.
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.
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.
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 If you have any problems feel free to contact me
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.
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!
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 (Stream FrozenPlain music | Listen to songs, albums, playlists for free on SoundCloud)- 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!
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.