The Cranky Harem  

As most of the readers of this blog might know, I've been promoting the Community Contests initiative whenever I can. Currently, we have a mini-game/puzzle scripting contest running - basically to create a short, reusable mini-game or puzzle. The focus, as the title of the contest suggests, is on scripting and related features like plots and vfx.

A couple of weeks back, we had only three potential contestants (including me!). Potential, I say, because no one had confirmed their participation at that time. These past two weeks though, there have been a number of confirmed entries - a nug chase by BloodySongVengeance, Weighted Rock-Paper-Scissors by Mengtzu, a scavenger hunt by shadow5973, an 'assembly' mini-game by mikemike37, a capture-the-flag by Noob766 (who works on DT:CoM) and a chess-rules-based game by yours truly. Things are looking up, I say!

Now, many people won't like it if I tell them this is a chess game! So, I had to present it in a way that is more appealing. So, here's the backstory for that -

Once upon a time, Lord Oneisall of Chessdom, a city-state in the Free Marches was host to a dignitary, Har'emaal, from lands across the eastern sea. In spite of the grand ceremony put forth to welcome him and the lavish quarters prepared for his stay, Har'emaal was extremely contemptous of Lord Oneisall and refused to even sit at the same table with him for supper. Initially, Lord Oneisall ignored this obvious rude behaviour but as the populace started talking about the supposed disregard for their Lord by a foreigner, he decided to put an end to it and went to meet Har'emaal.

Har'emaal refused to meet the Lord and instead sent a note through a steward stating 'I will not treat a lesser man as an equal, even if he is the king of these entire lands you call Thedas'. Incensed by this summary dismissal, Lord Oneisall confronted Har'emaal with the point of his sword at the latter's throat - 'I have given you a royal welcome and treated you as I would an equal; what do you find lacking in me that you would call me a lesser man?'

Oblivious of the sword at his throat, Har'emaal proclaimed - 'A man who can satisfy only one woman is no man at all! Where I come from, a man's stature is determined by the women he can call his own and even the lowliest of nobles have at least twenty women!'

Stunned by this revelation but obviously excited (for he was a man!), Lord Oneisall published an edict allowing all men to have more than one woman and to set an example, he himself picked the most beautiful in his lands and built a separate palace to house them. To honour the memory of the person who gave him the idea, the palace was called a Harem.

In the present day, Chessdom is ruled by Lord Allaremine and he is facing a unique problem. While it was customary for the men to play favourites amongst his harem to elicit extra 'favors', matters have spun out of control in the Royal Harem. The mistresses are killing each other and only a few survivors remain. The few guards allowed inside the palace cannot keep watch over all of them.

You are an adventurer from another land and are on an important mission to save the world from an ancient evil. You have come to Chessdom to get something done - the details are irrelevant. However, you have to help Lord Allaremine before you can proceed.

I wanted some custom models to simulate the harem - it has to look like a bedroom (it's a harem!) but be small enough to see the whole mock-up. So, I bugged Mike and used up my points from the previous contest to get some models done.

A mock-up of the harem rooms
It took a lot of time to place those things down and align them and tag them. Now, the actual work - scripting - is underway. I am trying to present it in such a way that the player won't feel like it is a chess game - board size variations, game mode variations, game difficulty variations - all are being coded in. Further, the whole game should *hopefully* be very visual if I can find the right VFX for the rooms.
A close-up of one room

Going back to coding now...more later!
Oh, and if you can spare an hour or so, check out the two entries I've linked at the beginning of this post - there's still time to play them and give feedback to the authors.

Read More...

Level Completion Process  

As part of the Community Contests initiative, I had submitted a level for the Settlement Contest. One of the comments reported by the judges was that terrain collision was not properly built (in all those sloping areas). That was something I had definitely planned to do - I could walk all over the place! - but I forgot. Yesterday, I was testing one of the night versions of my levels and forgot to build the collision for the water planes in that level. Sigh!

So, I decided to put together a list of things to do before calling each level complete. I've gone through the level editor and through my level building process and compiled this list. If I've missed anything, let me know - this is going up behind my monitor as a sticky and will be my level processing mantra from now on :)

If an exterior level,

  • Build Terrain Collision where needed
If exterior level and has water,
  • Auto-tessellate water planes
  • Generate water collision geometry for all water nodes
If an interior level,
  • Make sure Room Properties are set for each room
Make sure Single Player module is active
  • Render Lightmaps
  • Render Light Probe
  • Place Start Point after naming the exportable area - if name is changed, delete and place Start Point again 
  • Clear out the SpeedTreePackage Temp folder [for some reason, I've had the billboard tree issue only when there are files here - deleting these files and posting trees again always gives me good trees]
  • Do All Local Posts
Have I missed any other steps?

Read More...

Baldur's Gate Release and the Scripting Contest  

First, the news...
What is the most important happening in the Dragon Age modding community this week? The release of Baldur's Gate 2 Redux! The BGR team has put together one awesome module - check out the details here if you haven't had a chance. It's expected to be released later today and can be downloaded from their DANexus page.
 
If I were to pick one area of Dragon Age modding that I am really comfortable with, it would be scripting. It might be due to the fact that I do a fair amount of LUA and Perl scripting at work but DAScript itself is a fairly complex system with hidden nuggets waiting to be unearthed. So, when the Mini-Game Scripting Contest was announced, I was excited - finally, a contest catering to my strengths! I didn't have a chance earlier to spend time on it but this past week, I've been doing some prototypes at work.

The 8-queens problem

The game I am designing is loosely based on chess - no, not the chess game but logic games within the chess rules framework. If you are familiar with chess, you might have heard of or even played the game where you have to place 8 queens on the board such that they do not attack each other.

Now, there are a lot of variations to the above 'standard' game. In fact, a quick search will show you hundreds of math papers written on this subject dealing with unique solutions, solutions for generic NxN boards, 3-dimensional boards, n-dimensional boards (n dimensions! brings back memories of my Differential Geometry course...where nothing can be visualized as in the real world).

What's this? A triangle immersed in a saddle-shaped plane (which is a hyperbolic paraboloid) as well as two diverging ultra-parallel lines. Math! You gotta love it.

For this contest, I've put my own spin on it and attached a simple story to it so that the game can be played in that context. The number of variations that can be played are currently at 25. The real problem was putting down solutions on paper so that I can provide hints if the player is stuck. Now that that part is complete, on to coding. One of the most useful script add-ons released is, in my opinion, is Craig Graff's Variable Storage System. Terribly useful when you have to keep track of a lot of stuff and plots either won't work or are too cumbersome to implement. I will be making extensive use of this in my contest entry.

I am also resizing some models and changing them a bit to provide a good layout where the game plays out. I plan to release this as a stand-alone game too so it has to look polished enough. Will it win? I don't know but I certainly hope so. Will it be well-received? I honestly don't know. Some players might approach it as a chess game in which case it will lose some of it's charm. If taken purely as an interactive game, it might work out better. The model-work that I am doing is in part to distance the setting from the chess board as much as possible. Let's see if it succeeds.

Read More...

Backup system in place  

It's one of those things that every self-respecting software engineer knows must be done but never is - versioned backup. I've been guilty of that myself - I've been putting off doing a full backup for a long time now. Many a time, when I know I am going to try something that might break what's been written/directed till now (because I don't know what exactly that is going to do), I check in the script/conversation/cutscene into the database but that's only for designer resources. For art resources, I've been sticking to having multiple copies and rotating through them on each save.

Now, I've run into issues with my levels in the past which made me up the number of copies from 5 to 10. Still, it's always been in the back of my mind to get a good backup system in place. I finally bit the bullet and did that yesterday.

Since I am just one developer, I wanted something that was simple to set up and use and that I'll never have to worry about. After some research, I decided to use AutoVer. It's free, folder-based backup with customizations that can be applied to each folder and most important, comes with a basic versioning system. I downloaded it and added the folders used for Dragon Age modding to it first

  • Levels folder
  • Level layouts - it takes way too long to export everything again
  • BaL root folder that contains all other work (2DAs, images, icons, etc)
  • BaL module override folder - containing all the other mods that I plan to use
  • Tools folder - different DA:O and other games' tools that I currently use (I don't even know where I got some of these)
I also checked in all my designer resources and exported the database and backed that up too.

Now, the funky thing about AutoVer is that it constantly watches those folders and backs up any change you make! While that's a good thing for certain resources like 2DAs or scripts and you can customize how often you want the backups to be done, I still didn't want to go that route. So, I set up a scheduled task to export the database every Sunday evening and start AutoVer to do an incremental backup at that point. So, I'm all set now - the only thing remaining is to do an automated backup to Skydrive (25 GB free space!) every month or even every week. There is a nifty way to create a mapped drive of your Skydrive folders but haven't tried it yet.

In between, I also managed to submit a head morph for the Mini Character Contest. It's for a character who will be making an appearance fairly early in BaL and who has an interesting back-story too - not a companion though.

Vaelina - my entry to the mini character contest

Other than this, I've been tying up a lot of loose ends and placeholders I had in place for testing. While I was doing that, inspiration struck and what was originally a mundane battle in one of the starting areas is now more tightly integrated with the lore and the combat setup is also a little more complex. It should now provide a satisfying finale to an area where almost every dialogue and action is heavily lore-oriented.

Read More...

A productive weekend  

So, it turned out to be not so bad after all.

I managed to finish the scripting required for Craggy Island on Sunday morning. There is still a niggling issue where a particular item is not getting added to the player's inventory - there is no fancy code in the back end, just a simple call to UT_AddItemToInventory. It is working in other places so I am not sure why it is not working here. The only difference is that this is an equippable item and the initial testing was with an uninitialized character (Jaden). However, even after generating the correct player character, it is not working. Not a really big deal but I am curious to find out why it is not working in this case.

Out of the 2 cutscenes I had planned to finish, I managed to finish only one. I don't know whether to call it fairly short or lengthy since it is only 20 seconds but it is lengthiest one I've created so far and also the most complex. It has around 9 characters and 2 creatures and a bunch of VFXs. The hardest part was finding the animations for the bears and in the end, I couldn't find anything suitable. I had to resort to taking a small portion of an existing animation and repeating it a few times.

The doors can only be opened by the bears!
In the end, it didn't turn out all that bad. I figure I still have some tweaking left to do with the weights and transitions but I am happy for now! I also have to start investigating the facial expressions for the characters as, right now, they are a little bland and static.

I tried to use Sunjammer's new tool - the Cutscene Companion - but I wasn't able to capture anything. Then, I tried to use Fraps but in-game, the cutscene was playing at location (0,0,0) in spite of having a stage assigned to it. I was hoping to generate a movie and club it with some other shots and create a sort of trailer but I guess it will have to wait for another day.

The target for this week is to complete the remaining cutscenes while I still have that directing bug and create/modify some VFXs for my custom classes and integrate all that into the module. A big task, I admit, but it has to be done at some point and the sooner the better.

Till later....

Read More...

Back to writing dialogue  

I've been really focused the past couple of days - writing lots and lots of dialogue. Some introductory ones to the different areas were finalized but I've taken care to make each one of these expositions distinct. No walking up to the know-it-all inn-keeper and getting all the information from him. Since most of these will involve some animations at least while transitioning in and out of dialogue, the next step is cutscene work, which I'm not too thrilled about since that is one area I'm not really good at.

I've also been adding 'bark' nodes to the existing dialogues so that the NPCs have something to say when none of the other conditions are met - like between the nodes where a quest is given and the one where the quest is complete. Or even as simple as having different nodes during different stages of the main plot and having something to say when that particular conversation option for that stage is exhausted.

Next step is to work on the cutscenes and finish that monumental task. To realize the goal of releasing an alpha of the first few areas by the end of October, I will have to create about 5 cutscenes and at least 3 of those are fairly intricate ones (for me!). I hope to finish up at least a couple of them this weekend but that is after I complete the work required from my side for Craggy Island. That involves just a few minor scripts but that's holding up the development of the next stage for CI so best to get it out so Daeltaja can continue working on it. We'll see how the weekend goes...

Read More...

Bioware talks Community Contests!  

If you had been visiting this blog regularly, you would have noticed the new Community Contests banner on the right. This was part of a...campaign of sorts to promote the Community Contest effort further so as to pull in new faces. We pinged a lot of our forum friends who had blogs or websites asking them to put a similar banner up on their sites; mikemike37 talked to greywardens.com and I was still thinking we could do more!

Then, Challseus came up with the idea of talking to Fernando Melo, who is sort of like a community representative over on BSN, about posting in the Bioware Blog. So, I messaged him and he forwarded the request to 'Evil' Chris and Victor Wachter. The result - a post on the Bioware Blog about the Community Contest and an announcement by Victor in the Dragon Age forums.

The significant part though is this sentence from that blog - Starting this week, I’ll be taking a look at the toolset community and the mods they create, and featuring them on the BioWare Blog. It will be a big boost to the mods that have been released if they are featured in the blog. As it is, with the Featured Projects section broken and the popularity system not so popular among modders, they need some other avenue to promote their content and this might just be the shot in the arm some of them need. Here's to Bioware! *cheers*

One other thing we've done over at the Community Contest group is to create an Info thread which summarizes the salient points about the contests and how people can help out. If you are interested in helping out or just want to know more about the group without having to go through all the threads out there, this should help you out.

Till later...

Read More...