Spellcaster Studios

Make it happen…

Random Missions: Cleanup

Cleaning up the random missions is proving to be a bit more challenging that I expected… Due to the way STL maps work, if you try to access something that isn’t there (an entry for which there is no key), it will create a key for it, which screws up my iteration code which isn’t expecting NULL entries… This one will be a tricky to track down…

screen275

Anyway, most of the times the cleanup works well, and I’ve added other permutations of the delivery mission (for example, dropship cutscene).

Still testing, see if everything is alright before stepping to the “Sample” mission, in which the player has to go to a specific locations in planets and take samples (which takes a bit, and the player is defenseless in the meantime). This mission needs me to be able to trigger new actions during gameplay (or add a sample kit to the equipment, which might be interesting as a mechanic).

Now listening to “The Big Thrill” by “Axxis”

Random Missions: Delivery Complete!

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

screen274

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:

Random Missions: Creating Locations

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:

screen273

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”

Random Missions: Cost and Reward

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

screen272

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:

Random missions: Better probabilities

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!

screen271

There’s still some silliness in the generator, but I think it’s fun… “holy vegetable” Open-mouthed smile

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! Smile Anyway, this is very nice and impressive:

Bad screenshot, no cookie!

This is one of those screenshots that really demotivates me:

screen270

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… Smile

Random Missions: Delivery text

Finally finished the text for the delivery mission…

screen266

Still have some issues, regarding the way phrases are constructed in English:

screen267

screen268

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”

Random Missions: Packages

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:

pricey bone
ancient lamp
experimental toy
scientific camera
contraband girdle
pretty cloth
exquisite calculator
untested drug
new document
novel gong
complex desert
contraband ink sample
expensive hat
illegal beast
illicit clock
pure diamond
untested bow
powerful oil sample
priceless map
package
genuine grain
lovely calculator
contraband game
polished equipment
sophisticated fish
banned orchid
genuine arrow
splendid gas sample

Some fun stuff there… Smile “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”

Random missions: What’s in a name?

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
Vangilder Investment
Arvizo Collective
Ogas Logistics
The Monarchy of Ertack
Lady Claudine Haynie
His Grace Nickolas Marcinka
States of Unetue
Flinn Confederacy
Miss America Schaeffler
Breakfast Consumer Products
Mrs. Pearlie Dagenais
Puothib Collective
Muscle Financial
Emess Republic
Louhu Alliance
Money Genetech
The Monarchy of Iless
Bressi Pharmaceuticals
Someone
Klebe Dominion
Ethiopia Company
Lute Healthcare
Wash Applied Sciences
Archon Monika Button
Catamaran Biological
An interested party
Lord Clifton Beaumier
Witness Media
Alliance of Trunent
Lord Lewis Barich
Miss Jayna Hollett
Coalition of Shaza
Holy Urtang
Isanoune Regency
Gray Systems
Route Holdings
Theater Financial
Archon Annamarie Chiasson
Open Telecommunications
Archon Ryan Hartwig
Her Grace Raelene Wieman
Talas Holdings
Chese Cooperative
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”

Random missions: Now with more UI!

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!

screen265

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: