The code for the delivery mission is done!
The system correctly triggers cutscenes when you receive the item and when you drop it off correctly, just missing the mission cleanup code (the mission location can only disappear after the player leaves the place where the mission takes place).
The cutscene has some procedural elements as well (the text, for example).
It needs some massive testing yet, and the aforementioned cleanup code.
I did the code modularly, so I hope I can reuse a lot of it for other missions…
Now listening to “The Hinderers” by “Daath”
Link of the Day: I’ve been following this game for some time, it looks pretty sweet, and it’s got its first trailer:
To avoid problems with missions conflicting with storyline, when a mission is accepted the game will create a new area for it…
This was the theory, but in practice I found one million bugs in the process (that affected other parts of the game… For example, if you opened a new place in the storyline, it would only show after a reload… never noticed that).
Also decided to use the planet graphics instead of stars on the starmap:
This is all placeholder for now, but it looks better, and it shows better the new planets, etc (you can see in the lower right corner a moon, where the mission I just accepted takes place).
Still need to make better code for the generation of new planets, because sometimes they position themselves on top of the existing lanes, which looks terrible.
Found some more bugs related to the random generator, especially one that took me about 30 mins to figure out… I generate the universe when I load a savegame, using the same seed… But if the algorithm changes, even slightly between a save and the load, it will cause everything to screw up, since they won’t match! I forgot about it, and removed a generated number from the universe generation, which means a shift in all random numbers, which in turn meant my universe was no longer properly generated! This one was tricky to find out, since the offending code looked so non-offending!
Now listening to “Ki” by “Devin Townsend”
Finished the cost/reward system of the random missions… To accept a mission, you’ll have to do a down-payment, which you get back if you complete the mission… Besides that, you get the reward.
The reward is computed based on the difficulty of the involved planets, distance between planets and who’s giving the mission. For other types of missions, I’ll follow the same kind of reasoning, and maybe even penalties (for example, an infiltration mission’s reward goes down the more people you kill… a good occasion to use stun grenades… and maybe an occasion to add other non-lethal weapons to the game!)
The text is a bit too bland, misses a “motivation” part, but not sure if it’s worth the massive development time require for it… I’ll probably revisit this decision on the polish phase…
Next step is adding the logic for the actual mission (about time!)…
Now listening to “Torn” by “Evergrey”
Link of the Day: I’m very nostalgic about my formative years, especially in terms of the old-school TV shows like the Thundercats and He-Man… This is a proper homage:
Today I’ve mainly worked on fixing the small issues of the mission generator… For example, it would generate the text “get xxx from at coordinates (-1,1) on Puhtib”… that’s now fixed.
It would also ask fro delivery (or pickup) of items in orbit of planets, from a dropship (which makes little sense)… It would also ask for pickup and delivery on orbit of planets (which means a too easy mission, so not that good)…
But most of the time was playing around with the probability system… As it was, there was an equal chance of selecting “Lord X” as a name as “Mr. X”… And “Mr.” is a much more common title, so I thought it should be biased towards that, so I had to add extra data with probability and create a “chooser” system, which will come in handy afterwards!
There’s still some silliness in the generator, but I think it’s fun… “holy vegetable”
Now listening to “When Lust Evokes the Curse” by “Autumn”
Link of the Day: I’ve been trying to contain my enthusiasm over “Star Citizen”… While it looks greats and sounds awesome, I’ve been hurt too many times before! Anyway, this is very nice and impressive:
This is one of those screenshots that really demotivates me:
I was putting in the new spawner model for the robots, and after a big fight because I forgot a stupid flag, I got it in the game and took this screenshot…
The amount of things that are terrible in this is amazing:
The spawner has no textures (probably an exporting issue)
The lightning looks terrible (needs to be upgraded to the new lightning code I’ve done for the electro-cannon)
The lightning cloud is almost unperceivable when playing, except when it hits (and then it’s too late)… If I darken it’s shadow, it looks ghastly – solution, I need to add projective texturing for this (and some other places, I think)
The acid clouds don’t look very well, especially their shadow… You can’t see exactly when they’re going to hit you and kill you (so, needs a lot of work)
This is all “polish” phase work, but it really highlights I still have a long way to go, which annoys me…
Other than that, I just tinkered around with some writing and fixing other small bugs, including a crash when very specific circumstances arose…
Now listening to “Ashes” by “Two Steps From Hell”
Link of the Day: I’ve been skipping these because I’ve not been looking around the web that much… That said, how about a nice video that shows and teaches the melodic styles of 40 power-metal bands? If you’re not into guitar playing, just check out the first 4 mins or so…
Finally finished the text for the delivery mission…
Still have some issues, regarding the way phrases are constructed in English:
Not sure how to build a simple system to select the right pronoun, need to think about it…
Anyway, next step is to actually add the code to do the missions (spawn/modify the areas when mission is accepted, mini-cutscenes that might be required, all generated procedurally, cleanup), and also need to think how the reward system will work (should be a function of where to get it, where to drop it off, if it’s a government, a corporation or an individual asking for it).
Finally, still need to select planets that are near the player, instead of randomly from the universe…
So, a lot of work still ahead, but I think I’ll be able to reuse a lot of this code with the other mission types!
Now listening to “System of a Down” by “System of a Down”
Today I worked on the generation of packages (so that we have something to deliver). Since the game has a less-than-serious attitude, this was quite easy from a technical perspective: just associate an adjective with an object.
The hard and time-consuming part was creating a dictionary of words to use.
So, the result are pearls such as these:
contraband ink sample
powerful oil sample
splendid gas sample
Some fun stuff there… “Splendid Gas Sample” or “Contraband Ink Sample”, for example… Think I need more adjectives, they repeat a lot, since the list only has 60 elements.
Now listening to “Emotive” by “A Perfect Circle”
Today I worked on generating names… That’s way more work than it seems…
I want the mission text to have some flavour to it, so I need to generate customer names, names for the objects to carry, in some cases, the reason to do something… This is generating natural text, which is not easy (and I’m kind of improvising as I go, instead of really thinking it through, but that’s my usual development process anyway!).
Anyway, thanks to people on the internet that compile lists of names, nouns, etc, I can generate names of governments, corporations and people such as:
Mrs. Monika Reth
The Monarchy of Ertack
Lady Claudine Haynie
His Grace Nickolas Marcinka
States of Unetue
Miss America Schaeffler
Breakfast Consumer Products
Mrs. Pearlie Dagenais
The Monarchy of Iless
Wash Applied Sciences
Archon Monika Button
An interested party
Lord Clifton Beaumier
Alliance of Trunent
Lord Lewis Barich
Miss Jayna Hollett
Coalition of Shaza
Archon Annamarie Chiasson
Archon Ryan Hartwig
Her Grace Raelene Wieman
Lady Micha Lovorn
This is just a sample, of course…
Next step is generating “package” names, for delivery missions… I wanted to have “reasons” behind the missions, but that seems really hard to achieve, I’ll see how it looks with the approach I’m currently following and see if it works out…
Now listening to “Isohyet” by “Oblique Rain”
Spend most of today working on the UI for the random missions… Of course, everything is temporary art, and everything is bound to change, but I need somewhere where I could see the descriptions, accept missions and play around with them in general… The UI isn’t even consistent with the other UIs in the game!
Anyway, tomorrow I’ll probably start adding the first mission type, which will be “Delivery”, I think, which might include a “Retrieval”. This can also generate enemies or not, so you see how this might become a fairly complex system…
Now listening to “Wish You Were Here” by “Pink Floyd”
Link of the Day: This is a very well made demo… A few cool effects, really good soundtrack and some good art direction:
Today I started the random side missions system… This will be a very large component, from a technical perspective, especially the generation itself…
The idea is that the player can go to a mission console aboard the Skydancer and get side missions, which will yield alloy when completed.
All the missions will be generated on the fly and take place in the vicinity of the ship’s position and will be of different types, like assassinations, deliveries, recovering documents, etc.
Yep, expect such awesome screenshots for the next days while I work on this!
Now listening to “Beyond the Veil” by “Tristania”
Link of the Day: This needs to be an actual televised sport!