Friday, December 30, 2011

Notoriously Databased

Over the holidays I've been building a google spreadsheet along with some forms to play a light version of Notorious. A play-by-email if you will. The game is intentionally stripped down as far as I can go while still retaining the higher design elements to test whether there is still any 'fun' or 'game' there. If there is, remove more. If there isn't, add some back in.                      
Notoriously Databased

Dungeon stats
At the start of each round, your dungeon is essentially a couple of stats:
Notoriety: How much the town fears you. Expect an attack each turn at a level based on this number.
Treasure: The amount of gold / equipment / tradeable stuff you have in your dungeon
Dungeon size: The amount of space dug out so far.
 - Minion living space: Amount of space dedicated to housing minions
 - Prisoner Space: Amount of space dedicated to housing townsfolk to help dig.  Prisons can hold 10 prisoners per space.
 - Fortification space: Amount of space for traps / secret doors / dungeon layout.          
Total defense: Total defense = Dungeon security + Minion security
 - Dungeon Security: Provides additional defense, as well as maintaining this amount of gold if a wipe occurs.
 - Minion Security: Total amount of security offered by elites and normal minions.
Minion Defenders: Amount of minions allocated to defence.                      
Minion Elites: Elites are 2x more effective at fighting (Defending / raiding)
Minion Diggers / Builders: Amount of minions allocated to expanding your dungeon size.
Prisoners: Amount of captured townsfolk currently expanding your dungeon size.        
Each turn a player assigns these actions to their dungeon:
Order digging: Amount of minions ordered to dig instead of defend              
Raid town for treasure / prisoners: Choose the amount of minions to send on the raid and the amount of treasure / prisoners to go after. Monsters on a raid will not be in your dungeon next turn. If successful, returns the amount of treasure / prisoners requested. Can choose to disguise as another player to give them the notoriety instead. Raid success is calculated by the amount of town security compared to the amount of monsters sent. The town's prosperity will indicate how deep into the town they will need to go to get the required resources.

Raid another dungeon for treasure / prisoners: Choose the amount of monsters to send on the raid. They will not be in your dungeon next turn. Note that dungeon raids happen AFTER heroes have softened them up.
Ransom prisoners: You will receive 1 treasure per prisoner ransomed and reduce notoriety.              
Increase fortifications: Requires 1 space and 5 treasure              
Equip Minion: Requires 1 treasure per minion converted to an elite. Elites fight 2 times better and are last to be killed.              
Hide Hide this many elites. Implemented as raiding 'no-one'. They just spend time away from the dungeon when you expect a wipe.
End of Turn resolution order                      
Hidden minions / treasure are set aside                      
Raiding parties are set aside                      
Ransom prisoners - Remove prisoner.                      
Convert minion to elite                      
Assign minion diggers                      
Increase fortifications - Remove money                      
Raid town - Add ALL player town raids together to calc total desired resources                      
Raid town - Calc defense per treasure and per villiager                      
Raid town - Assign defense to each player's raid and kill off raiders per defense. If they have minions remaining, raid is successful                      
Raid town - Successful raids either set (disguised) player notoriety to amount stolen, or increases notoriety by 1 if already higher                      
Hero Attack - Heroes (elite) of fighting skill equal to player's notoriety attacks. Player with highest notoriety has 1.5x notoriety heroes attack.                       
Hero Attack - Hero kills off an amount of minions equal to their fighting skill. If any heroes remain, wipe.                       
Hero Attack - If no heroes remain, add treasure to dungeon per hero (= 1/2 fighting power = 1/2 notoriety)                       
Raid dungeon - Add ALL player dungeon raids against that player together. If greater than the dungeon defense, wipe.                      
Raid dungeon - If multiple players attacking, highest army kills others and takes all spoils.                      
Raid dungeon - Successful raids remove all gold & prisoners                      
Amount of space is increased by remaining (diggers + prisoners) / 10                      
Increase fortifications - Assign fortification space if not wiped                      
Ransom prisoners - Add gold, reduce notoriety                      
Successful raids return                      
Hidden minions / treasure return                      
Fill remaining space with minions (or remove minions if space smaller)                      
Allocate 1 notoriety to each player that an adventurer didn't return from.                      
If all actions gain no notoriety for the player, and they have been wiped by the town, reset notoriety to 0.                      
Town report - Build a notoriety list                      
Town report - Add all actions against the town                      
Player report - Collate all actions that the player knows about                      

Wednesday, December 28, 2011

GameLog 228-231

Ahh holidays!

Grepolis (100h) - Holidays started out with a big revisit to Grepolis with many operations and defensive maneuvers to dive back into.

AI War: Fleet Command (50h) - The first of many games to be wheeled out again for the steam christmas achievement list. I'd given this one a go a while back, but I couldn't get into it. 2 things changed, both from replaying the tutorials:
1) The game is more of a puzzle / grand strategy rather than RTS. The unique starting positions with the AI owning everything and you with nothing makes a very interesting tak on the Genre.
2) Turn on the option for ships to be automatically placed into defensive mode, and engineers to be on auto fix / help too. Makes the game actually playable rather than incredibly frustrating that you'd missed one single ship attacking and he'd wiped out half your main base while 100's of ships watch on.

Gratuitous space battles (14h) - Another one that I'd tried the demo of earlier, but couldn't get into. Was the sweetner on a very good Humble Bundle. Once again it was understanding what the game was about; you don't just beat a fleet and move on, the whole game is about beating the fleet again and again with smaller and smaller fleets. This one is definitely for the optimisers, and that's me.

Demigod (12h) - Early 4-pack pickup from Ben for LANs. Older than LoL and it feels like it's from a different time. Plays Ok. No real bugs that I'd heard about on launch.

EYE Divine Cybermancy (10h) - Steamy sales. Had kept a bit of an eye on this one, but for less than 5 bucks it's definitely worth a go. Hacking started of being pretty cool (in all the things you can hack), but turns out to be rather boring. Game itself is interesting enough to continue regardless.

Dungeons of Dredmor (10h) - Interested in this one after listening to a dev chat on Roguelike Radio, and a steam sale + steam chrissy achievement was certainly enough to get me into it. Pushed enough to get the achievement, but will probably leave this one for later.

Orcs Must Die (7h) - Another cheapy with christmas coal at the end. Good atmosphere, but moved on to other coal-givers.

Civ 4 (6h) - LAN game with Levi. Bit of a blast going back after Civ 5.

League of Legends (5h) - Always the LAN staple.

Grand Prix Story (4hrs) - More of less completed it. Once I found out about accessing better cars and parts purely through upgrading the current parts (rather than seeing the investment as pointless) it was pretty easy.

Guardians of Graxia (2h) -  More Coal.

Jametown (2h) - Humble Bundle for coal!

Frozen Synapse (2h) - Indie coal!

Terraria (1h) - New patch with hardcore mode. Lasted an hour by the looks.

Saturday, December 10, 2011

Notorious: Rumour System

In an attempt to kickstart my programming of Notorious, I had a look again at the rumour system for the game:

Rumour System

  As the player interacts publicly with the villiage or other players, the rumour system will transfer information between NPC’s to build their own world view. Ultimately this world view will generate the notoriety that each player needs to advance in the game. Players can also subvert, create or enhance events that others know about in an effort to manipulate the notoriety of themselves or others. 

World Views:
Each individual NPC will have their own world view  of the events that occur in the world. These events can either be picked up as primary sources (the character participated in the event or was an eyewitness to the event) or secondary sources if someone else told them about the event. Characters may have conflicting reports from different sources, but will attempt to resolve these into a consistent world view that they are satisfied with. Players will also have a world view of everything that has been revealed to them in the game, and can use this to compare against others for detecting or interrogating inconsistencies.

A world view consists of a list (or tree structure) of events. Each event will require:
Description: Written text describing the event / rumour.
Source: Person establishing the event / rumour. Primary sources would have their own name here, otherwise it will be the name of the person who passed it on.
Characters: List of characters involved in the event. May also include items if they are unattached.
Evidence: Direct evidence that was used to confirm this event / rumour.
Links:  Other rumours that are related. May possibly be the same event witnessed by others.

There will also be a way for multiple events to be collated into meta-concepts, with links and evidence used to support the concept. As an example, a farmer notices an ogre approaching, the ogre attacking his cattle, then leaving with the corpses. Instead of running to the village and reporting each individual event, they can combine it into an “attack” rumour to talk about and link to each individual event. Multiple attacks with similar characteristics can be combined to generate a “pattern of attacks”. Ultimately these can be used to guide the creation of quests for heroes, and the general notoriety of the player.

When a character interacts with another, they have a list of events that they wish to tell others (depending on their personality; gossipy types will have a long list) ranked by their assumed importance, as well as a list of questions to ask to attempt to resolve internal world view conflicts. If a character hears a new rumour, that rumour is stored with a confidence level of how well they agree with it.Confidence can range from 100% (fully confident, adamantly so) to 50% (happy to accept as true) to 0% (not sure) to -50% (Rejected) to -100% (absolute rejection). Events left between -50% to 50% are contested and are issues that the character will attempt to resolve through conversation with others.  [May need a sigmoid function for confidence]

Player interaction with the Rumour System
Any character holding a linked gem will give the player complete knowledge of their world view. The player can automatically merge this information into their own world view, bring in any consistent events / rumours and manually handle conflicts, or manually process each event. Even if the information is merged automatically, it should be up to the player to agree or dispute certain events to create a consistent world view. This would entail viewing all the known details of a conflict, highlighting what the general consensus is so far (eg: 3 in favour, 4 not sure, 2 against), and allowing the player to shift their opinion either one way or another.

Creating Rumours
To create a rumour, the player can inject a new event into the memory of a linked creature, then give the creature an action of gossip in town (if needed). If the new event is consistent with other NPC’s world view, it is likely to be adopted and spread.

If there is an internal conflict within the linked creature there will either need to be more changes to make space for the rumour, or more power to add additional certainty to an idea. Complex changes may have even more difficulty in conveying to others.
There should be a way of predicting whether the changes will “take” before accepting the use of power. Rejected rumours stay within their memory as an “idea” that was eventually thought to be inconsistent, which will make successive attempts even harder (and possibly even make the creature doubt themselves as a primary source)

This is also the technique for removing events or modifying events, although care will need to be taken to make sure that these events are not re-exposed to the creature through talking to others.   

To make use of the rumour system, the player may wish to use a reliable villager to start rumours. They may be able to capture a local farmer, give him a gem (in a ring), link to it, then modify the event of him receiving the gem so that he thought it was given to him from his mother. Once you release the farmer, they can then be used to keep track of what is happening inside the city, as well as injecting and denying rumours. The credibility of the character is damaged if injected rumours are found to be false, or they are disagreeing with the general consensus on a rumour. Reduced credibility makes it harder to get others to support their primary sourced events / rumours. This could be used for “boy who cried wolf” scenarios too. 

*NOTE*: Unsure whether power use should be continuous to support a rumour, or a once off that is either accepted and assimilated, or rejected.

Saturday, December 03, 2011

GTX560 & PSU

Friday was also a good day. The new parts I'd ordered to help with my failing computer had arrived and was waiting for me when I got home. I only had a couple of hours between packing up at school and the staff Christmas party, but it was enough to install my new GTX 560 and NeoECO PSU. Not as big of a step up from the GTX260 as I'd have liked, but it definitely looks like it's solved the lockups 10mins after starting. Not sure if it was the PSU or the graphics card, but with the salt air down here, parts don't seem to last that long and both were the only things left from the last upgrade

Fans ... Lots of fans.

Last day

Open space ...
Last day at St Luke's came to a somewhat sad close as I packed up my desk. Everything I needed to keep all fit into my backpack, and a lot of paper went in the bin. I guess I'm lucky that most of my work is already digital and constantly with me anyway.

Thanks for the year must go to:
Chris: An excellent mentor and unfortunate neighbour to cope with all my questions.
Cassie: A great HoD who gave me a lot of support with my wild ideas for teaching. Thanks for all the help in verification, moderation and reporting.
Martin: Helped guide me into teaching when it was really only a wistful idea. His support and that of the school has given me the absolute best transition into teaching that I could have hoped for.

I know I'll be back next year in a limited capacity, but it really felt like leaving for good. St Luke's has been a wonderful place to work at for the past 6 years, and I'll have many fond memories & friends from the experience.

So why leave?

I'd been constantly asked that by all sorts of people at St Luke's. I had a standard response, and longer response and a how-long-have-you-got response, but really it came down to a feeling of entrapment. I've been heavily involved with computers and IT for the majority of my life, and even while teaching I would have put IT as about 2/3rds of my focus. Without the ability to teach IPT in the senior curriculum there's a big chance that I'd have to lose more and more of that IT experience as I become more heavily teacher focused. If I kept going, there would be a good chance that I would be teaching for 3 years or more, and that would pretty much rule me out of returning to the IT industry. I still like teaching, but resigning was a way to force me to look for other opportunities that may have both an IT and teaching focus.

There are many companies that are getting close to my vision of future learning and maybe I should be working heavily in that area. I know I don't have the entrepreneurial drive to go out by myself, but if I could guide some other companies a little closer to the end goal, then that would be a worthwhile contribution.

I'm still keen on giving University lecturing or some form of adult education a go. I have strong reservations about the way Universities are when MOOCs and open learning are becoming viable alternatives, but I'm not sure how to monetise the new breed of courses. What I definitely want to do is to put more work into my own model. Flesh out all the parts into a full design. Hopefully this will both force me to look beyond my own ideas and see what else is out there for referencing, and also help isolate specific opportunities to aim toward.

There is also some local opportunities to get back into tech support and business analysis. I must say that the best part about contract programming was getting right into the heart of a business and looking for ways to improve existing processes (whether that was through a program or not). If that opportunity comes up like I imagine, it will be a good change.

On the programming front, I'm also keen on getting back into working with Notorious. I'd made a bit of progress last time Andrew came down, but when I'm teaching it really felt like any time devoted to anything else was guilt-ridden. I think that'll be another post...

Like David, I'm also keen on getting back into more regular blogging. This one is a pretty good sign that being out of teaching mode will help.   

Monday, November 28, 2011

GameLog 226-227

I never thought I'd see the day when steam stats went blank. Admittedly I've been playing a couple of game outside steam, but the real killer has been the pressure to mark and report for the end of year. 65 hours. That'll be another story.

Grand Prix Story (6hrs) - Picked up this iPhone/iPad game after hearing a brief mention on 3 moves ahead. Plays pretty well, and lightweight enough that it feels like I'm not really playing while on a mini-break from marking.

Grepolis (3h) - Finally placed into vacation mode as it wasn't going to be an option with the workload I had.

Bookworm (1h) - been playing on and off for a bit, especially at the in-laws where sudoku and word games feel more appropriate.

Couple of other slight dabbles, but nothing to really report. Under 10 hours :/.

Monday, November 14, 2011

GameLog 224-225

Grepolis (20) - More war and development.

Space Pirates and Zombies (12) - Steam special. Been looking at it for a bit to see if it's like Space Rangers. More actiony and a different beast, but probably not a big attention getter with other titles on the horizon.

Heroes of Might & Magic 6 (10) - 2nd Campaign.

Skyrim (2h) - Veeyar Lv.2 - Picked it up for Sandy as a gift, but looks like it'll need to be run on mine. Doubt I'll be able to sit down seriously with it until school finishes.

Minecraft (1h) - New server for the LAN

Wednesday, November 02, 2011

GameLog 222-223

Grepolis (20) - Almost walked away, but now that there's a war on, it's getting interesting again.

Heroes of Might & Magic 6 (20) - Clean and slick, but somehow not as fun as what I remember the series to be.

King of Dragon Pass (14h) - Finally picked this up for iPhone as I'd baulked a couple of times at $10 for an indie title on that platform. Plays well, and has a good atmosphere to sink into. Very kind on the batteries, which is a good thing for long-haul trips.

Dungeon defenders (6h) - Looks like an interesting LAN game, but solo isn't too much fun

Terraria (2h) - Still can't beat the dungeon skelly

Monday, October 17, 2011

GameLog 218-221

Sengoku (70h) - 2 campaigns and a couple of AARs 

Fable III (35h) - Another steam sale weekend deals. Played somewhat poorly compared to the original Fable. There seems to be LESS open world than before, less control over what you can do, and even less valid decision making. I know they have also tried to go for a minimal interface, but there are some things that you want to know at a glance. How much gold do I have right now? (not in 3 minutes when I get more), how healthy am I? This leads to convoluted methods to just see stats that are usually readily available. Maybe I'm just a traditionalist, but google searches on the more irritating aspects leads me believe I'm not alone.

Grepolis (16h) - Still ticking along

Heroes of Might and Magic 6 (12h) - very slick, but feels a little devoid of emotion. Playing through the game on hard seemed, well, hard. Harder than it usually is, which just left me repeating the battles to get the most out of it. Might tone it down and treat it more like a walkthrough. Multiplayer and online stuff looks interesting, but haven't ventured that way yet.

Mount & Blade: Fire & Sword (6h) - LAN multiplayer fun. Wish it didn't randomly dump people out of the game though :/.

Civ5 (4h) - LAN game with Andrew. Played pretty well as a tag-team, but probably needed a step up in the AI even with Andrew just starting out. probably 2 vs 4?

Dwarf Fortress (4h) - More expansion while waiting for Fable III to net me some money. Outer wall complete. Now for level 2.

Terraria (2h) - Found another meteor crater, and nearly enough gold to start making fire armour.

Gran Turismo 5 (3h) - Andrew's visit in the holidays led to some racing with the wheel. Unlocked the TopGear test track after much frustration.

DiRT 2 (2h) - Tried a couple of laps with the driving wheel to see if it was different to GT5

Thursday, October 06, 2011

First the worst, Second the best, Third gets the Golden Chest

Cam has been saying a little playground chant at home sometimes:
First the worst
Second the Best
Third gets the Golden Chest
It hadn't dawned on until recently that it describes Notoriously Carded quite appropriately. First does finish the worst, Second is the best for that round, but aiming for third will more likely produce consistent results, giving the final win at the end of the match.

Friday, September 23, 2011

GameLog 214 - 217

Crunch time of the year for teaching, so the games dried up. 4 weeks and the total game time is nowhere near my average weekely total :(.

Sengoku (15h) - Picked up Friday night on sale. Looks like a Japanese Crusader Kings, which is perfect to lose myself into for de-stressing. Played a couple of games and it seems a little easier than even Crusader Kings.

Terraria (10h) - Mainly in the weekend after finishing up. Cam's go-to game still.

CivWorld (5h) - Last part of the CivWorld game before shutting up shop. Ended up winning the game and making the 1000 point mark to get the top unlockable achievement.

Grepolis (2h) - Put myself into vacation mode to survive crunch month.

First the worst ... (Card Game)

[ A game of getting big, but not too big ]

This is a card game developed to test a high level game mechanic for the upcoming Notorious computer game. First play-through seemed to generate the desired reaction from players with many strategies in play, so it was good enough to be released in its own right.

A game is divided into 5 rounds, after which all but the top player’s points are counted toward your final score. Each round you may play a card either in front of you to increase your game score, or in front of another player to increase their score. Cards may be either face up or face down, however any card played face up generates a bonus point for the player that it is in front of for each round that the face up card is in play . These bonus points are counted no matter who has the top score for the game.

Players: 3-7+ players.
Cards: 1 card deck is sufficient for up to 7 players, 2 card decks can be combined if more players wish to play.
Space: Typical arrangement would be players sitting around a table. A dinner setting space per player is sufficient. A playmat is available to help organise card placement, but isn't mandatory.

1. A match is divided into 5 games, where each game consists of 5 rounds of play.
3. Nominate a starting lead-off player (or randomly choose using a card draw).
2. The lead-off player shuffles and deals 7 cards to each player.
4. The the lead-off player may play one card either in front of them or in front of any other player. The card may also be played either face up or face down.
5. Play continues clockwise for each player to play their single card per round (either in front of them or in front of another, either face up or face down).
6. Once all 5 rounds are complete, count up bonus points and game score (see scoring).
7. Highest game score is reduced to 0 and they are the lead-off player for the next game.
8. Winner is the person with the highest aggregate final score after 5 rounds.

1. After the 5th round has finished, count up any bonus points first by tallying how many rounds each face up card has been in front of you and add them to your match total.
Eg: A card playing face up in the 1st round will have been in 5 rounds, so scores 5 bonus points, whereas a card played in the 4th round will have only been in 2 rounds, scoring 2 points. As a total, having a face up card played in front of you on rounds 1,2 and 4 would gain 5,4 and 2 points respectively, tallying to a total of 11 bonus points for the round.
2. Flip over any face down cards and tally up the total face value of cards in front of you. Picture cards count as 10 and aces count as 1.
3. If you have the highest points for the round, you are disqualified and score 0 points. Everyone else adds their points to their match total.
4. If there is a tie for the highest points in the round, both players involved in the tie can place an additional card onto their opponent’s score as a tie breaker. If it still remains a tie, play your final card onto your opponent. If there still remains a tie, continue to draw cards from the undealt pack and place on your opponent’s score until there is an eventual winner. This additional score is also counted in the match total for the eventual 2nd place getter.
5. Calculate and announce your new match point totals while the new game is being dealt.
4. The winner is the aggregate match point leader after 5 rounds.

Play Mat: To aid tracking of bonus points, you may wish to create a play mat by drawing 5 boxes in order on a piece of paper and labelling them from 1 to 5 for each round. Play your cards into the box for that round, even if it is on someone else’s mat. Make sure that each face-up card’s value remains visible, and that the number of face down cards is known.

Friday, August 26, 2011


Negotiation is convincing others to accept a sub-optimal personal solution for an optimal group solution.

Tuesday, August 23, 2011

GameLog 212 & 213

Space Rangers 2 (25h) - Couple of impossible difficulty games. Looks like reboot has the dominators really cranked on impossible as I had 3 games reduced to a single solar system rather quickly. Though I'd play one out, but I think it might be unrecoerrable once yo lose a merchant facility to repopulate fortresses once you expand out again. Trying a 4th.

Grepolis (15h) - 80th. More scheduling in the night.

CivWorld (10h) - Far too addictive to play during school time.

Terraria (15h) - Cam's multiplayer time.

Bastion (1h) - Started out to see if it was a game Cam liked. "So you want a go?" Cam replied, "Naah, I want to play starcraft"

Wednesday, August 10, 2011

GameLog 210 & 211

CivWorld (25h) - Beta version of Sid's facebook game. Finally a decent facebook game with no energy bar in sight! There are some mundane bubble popping features creeping in, but there's plenty of variety and a definite feeling of pulling together as a civ. Seems to have about a week-long game cycle, and it's quite intense at times. Better than grepo at the moment, but it might also be the shiny ...

Grepolis (18h) - 90th. Couple of organised battles, but losing ground to CivWorld in terms of maintenence time.

Elemental: War of Magic (10h) - Tried once again to see if the game is playable. Last patch made some odd design changes, but th lack of heroes in 2 games made me even madder. Booted it up on a whim ove rthe weekend and found that it had sorted it out somewhat. Heroes are back and I could get into the mid-game.

Allowing armies right off the bat has changed the game significantly (for the better) and even though heroes are still powerful, a 4 or 8 stack of peasants is now the main part of early armies rather than cannon fodder. It also leads to interesting choices of concentrating power into a single 8 stack unit for better tactical play, or diversifying a little more through 1-stack and 4-stack armies. 1-stack armies are a little useless now, and the interface is stuffed trying to produce them too. I'd dearly like to have single unit for scouting, so I hope the interface cludge is an oversight. The game feels more meater now with more item drops and WAY less health for all units making battles somewhat trickier.

VRKnight build still romps away with a couple of early city sweeps. I'm not keen on shelving a build that's still available on startup yet as there's been many other builds nerfed into oblivion by the changing face of this game.

I still have my cities being randomly called other city names in the game (indexing issue?), and some battles automatically resolving causing king deaths, but Greig doesn't seem to have either of these problems and no real mention of them on the forums means I might have something left over from the beta. Wiped the image and re-downloaded, but I still have these bugs. The city name thing really destroys confidence that ANY of the data being displayed is actually correct, but the autobattle thing is a deal-breaker. Only recourse is to save before every battle, and reload to try another battle first to try and get out of the autoresolve.

Terraria (8h) - Cam's multiplayer time.

Civ4: Colonization (8h) - Tried a single city challenge. Got a little stale, but seemed achievable.

Thursday, July 28, 2011

GameLog 208 & 209

Back to School, along with the inevitable drain on my energy to produce these lists:
Grepolis (20h)
Battlefield: Bad Company 2 (10h)
Terraria (5h)
Magicka (4h)
Sanctum (2h)
Hoard (2h)
Team Fortress 2 (1h)

Wednesday, July 20, 2011

Exerting Control

One of the key facets of Notorious will be the ability to exert control over the various NPCs in the game. This could be mercenaries hired to guard your dungeon, or to dig it out, or even heroes attempting to raid someone else's dungeon. Here's the new section on how I plan to have the player influence their actions.

Exert control
- Mercenaries and heroes wearing focus amulets can be controlled, or grant vision, communication, etc. by applying your power through the linked focus gem.

- Gem size allows a maximum amount of power to be channeled through to it. Overloading the power level of a gem increases the chance of destroying the gem.

- Spell power modified by the distance to the home stone. Travelling through rock increases power cost, so that there is a risk / reward for exposing your home stone for greater power, or hiding it for greater security (especially from unlinking). Power investment set at time of change, so there is a benefit to bringing the mercenary close to your home stone before setting up their new default behaviour.

- Linked gem spells

Vision: grants vision from the gem’s location. Flat fee, relatively inexpensive so that it can work on heroes a long way away exploring other dungeons.

Communication: Talk directly to the mind of the person/monster holding it. Flat fee, relatively inexpensive so that primary minion and informants can use it to carry out most menu interactions (checking prices, buying selling, rumours, etc). Raises suspicion if used on heroes.

Control: Attempt to influence the bearer to take a certain action. Power required is variable and competes with the bearer’s own priorities. Needs linking into the AI system to give options of (go to location, attack, capture, flee, search, rest, dig, build, give, take, etc). Control is either sustained until the player removes the power investment (default), or placed as a once-off so that the power is immediately returned once the specified action is completed.

Cloaking: Attempt to hide the presence of a gem from attuned people / players. Variable power required and competes with the opponent’s detection power.
Mimic: Attempt to make it appear that someone else is linked to the gem.

- General spells

Link to gem: Create a link to a gem to allow powers to operate through it. Maintaining a link to a gem increases exponentially depending on how many other gems you have linked to. Should be possible for beginning players to have 2-4, medium players to have 6-8 and end game players to have up to 10.

Detection: Attempt to detect gems in your vicinity. Competes with cloaking (ground may also cloak gems). May choose a level to be used constantly which will add detection of other players attempting to scout / raid your dungeon.

Trace link: Attempt to find out who has a link to to a gem. Competes with Mimic power level to reveal all players / mimics currently linked.

Artificial Intelligence

Exerting control will be dependent on modifying the behaviour of the Mercenaries under your control, so it will be fairly important to design an AI system that is robust enough to allow independent emergent behaviour, but make sense enough that players can interact with the system in a meaningful way.

Actions and Needs
Each NPC will have a list of needs that change over time (the need for happiness, riches, sleep, food, chaos, etc). These needs will lead to actions fulfilling that need such as sleeping, fighting, etc. Each action that the AI can make is given a weighting depending on the expected need reduction that the action will take, then organised into a priority list of highest to lowest need reduction. The highest action is the one that is executed until the need is satisfied enough that the action is no longer the highest (plus an additional ‘resistance to change’ amount to keep them from always swapping from one task to the next and losing time on travelling).

Exerting Control
The player can interact with the Actions by placing more or less emphasis on that action by spending power points. This can be used to raise non-desirable actions (such as digging) into top priority, or to remove NPC actions that are not contributing to the player’s expectations (such as relaxing). Since the actions are given inputs from the need system there will be no way to completely stop a mandatory action (such as sleeping or eating) but they can be suppressed so that other action can take precedence for longer periods.

This is a list of needs and a brief description of how they will be expected to change over time.
Sleep - ramps up on an exponential scale
Eat - Ramps up on an exponential scale
Chaos - Slowly increases over time depending on their desire for chaos.
Safety - Usually 0. Increases when enemy is in sight, and ramps up depending on their assessment of a battle. Should be maxxed if they think the next round will kill them.
  • Owning space gives a set amount of happiness per hour depending on the mercenary’s desire for space.
  • Owning items gives a set amount of happiness per hour depending on the mercenary’s desire for that type of item. May be too complex an interface for little reward. Might simply make a ‘desirable item’ shortlist akin to dwarf fortress preferences and mainly include useable weapons.
  • Increasing Riches gives a one-time boost to happiness depending on the desire for riches. This may be triggered by getting %loot from kills, or by regular negotiated payments. Happiness gain indirectly proportional to their current wealth.
  • Doing Work drops happiness depending on their desire for the task done (Guarding, Digging, Building, Set traps, etc)
  • Faction likes/dislikes can influence happiness when they see mercenaries or heroes of an opposing faction. Can be used to introduce incompatible mercenary mixes such as dark dwarves and dark elves, Ors and goblins, etc, or encourage hiring similar types of mercenaries (or keep them VERY separated)

This is a list of actions and the needs that they fulfil
Eat - Attempts to go to home or designated dining hall and eats. Should drop hunger to 0 in a couple of turns.

Sleep - Returns home or to a designated barracks and sleeps. Should drop need for sleep AFTER waking (~5 turns?), so if they are sleeping they will still be unsatisfied if another action takes priority (an attack occurs threatening safety)

Guard location - Attempt to go to a location and remain alert. Generates unhappiness depending on desire for guarding. Player needs to exert control for this action to be considered. Elevates attack options once location is reached. Can also be used to suppress prisoners if guarding an prison area.

Patrol between locations - Attempt to walk between multiple locations and remain alert. Generates unhappiness depending on desire for guarding. Player needs to exert control for this action to be considered. Can also be used to suppress prisoners if guarding an prison area.

Defend Home - Return home and guard. Increases priority if enemy in home. Increases priority if personal safety is at risk. Increases priority depending on mercenary wealth. Decreases happiness depending on desire for guarding, but not as much as guarding location (1/4?)

Attack Character - Attacks the designated character. Can be elevated into priority by sighting someone when guarding, or to a lesser extent sighting an enemy when doing another task. Use aggression attribute? Decreases Chaos need. Increases safety need (indirectly proportionally to aggression?)
This action will be replaced by modes of attack such as:
  • Attack character with melee weapons
  • Attack character with ranged weapons
  • Attack character with ability X
Attack toward location - Move to location with very highly elevated attack character action pending. If any enemy is in sight, attack nearest. Player needs to exert control for this action to be considered.

Hide for Ambush at location - Move to location and wait for adjacent enemy before initiating an attack. Generates unhappiness depending on desire for guarding/ambush.

Flee - Generic flee action that will attempt to run away from the source of the damage. May lead to mercenary getting caught or corralled into a corner. Increases priority with Safety need and escalates so that it should be top priority if they perceive that they will die next turn. Reduces with reduction in safety concerns (no-one hitting them last turn, no-one in sight, health above 50%, etc.)

Flee to location - Uses flee mechanic, but has a specific location that they will attempt to get to rather than simply going away from the battle. Will usually be lower than Flee itself, but offers the player a way to exert control over where the mercenary should retreat to. A* to location needed as a weight against this action, especially if it takes them through the battle. I’d anticipate that building small hides and a fairly large sustained investment into this action will keep most mercenaries alive, even through wipes.

Go to location - Basic movement. Most actions will incorporate this action into their own, so this one is specifically designed for players to dictate a location change (say, going to the throne room for further instructions). Most likely used as a once-off power placement. Little to no interaction from needs. Possibly generate unhappiness at same rate as transporting goods.

Dig Nearest - Assign character to continually dig out designated areas. Decreases happiness depending on desire for mining. Player needs to exert control for this action to be considered. Digging skill increases digging speed.

Dig Location - Assign character to dig out a specific location rather than digging any designated area. Decreases happiness depending on desire for mining. Player needs to exert control for this action to be considered. Digging skill increases digging speed.

Mine nearest Gold - Phase 2 of digging that separates extracting gold from deposits rather than simply digging anything. Designated area produces a large quantity of gold before disappearing rather than being mined out quickly like any other rock. Digging skill increases quantity of gold mined.

Mine Gold at location - As above, but with a specific location designated.

Extract nearest Gems - Phase 2 of digging that separates extracting gems, rather than simply digging anything. Designated area will eventually produce a large gem capable of channeling power, along with potential minor gems for throwaway use (on heroes). Digging skill increases chance that gems retain their maximum size.

Extract Gems at location - As above, but with a specific location designated.

Build Wall - Construct a wall following the designated tiles. Need to also remove ownership of tile, or reduce their potential to provide happiness. Decreases happiness depending on desire for building. Player needs to exert control for this action to be considered.

Build Trap - Construct a trap at specified location. Need to reduce the potential of the tile to provide happiness to owner. Decreases happiness depending on desire for building. Player needs to exert control for this action to be considered. Trap skill increases the level of the trap set (to compare against hero detection / disarming skill)

Manufacture item X - Phase 2. Construct an item using materials. Priority increases with availability of resources and desire to construct. Decreases happiness depending on desire for manufacture. Some mercenary types (or captured blacksmiths) may spontaneously attempt this, but will be predominantly player driven.

Transport item to location - Move an item from its current position to another. Most likely triggered by heroes dropping loot. Can be used by player to reorganise gems and equipment use. Decreases happiness depending on desire for transporting.

Relax - Returns to home and slowly generates happiness. More or less a default action for unhappy mercenaries. More than likely this one will be reduced, or other actions that gain happiness increased for more efficient happiness management.

Raid village - Should have a number of options under this one for each type of raid (raid for items / money, Capture prisoners, Cause chaos). Priority changed by chaos, security, unhappiness. Successful raids reduce chaos and increase happiness.

Capture character - Make into prisoner. Can be used against raiding heroes, or against town.

Raid dungeon - Send them out against another player.

Pick a fight - Increases with Chaos and presence of opposing factions.

Revolt - Severe unhappiness for an extended duration. Usually means that space / money / items are not sufficient to keep the character under control. Will attempt to leave the dungeon. May also be used for prisoners who feel that potentially dying on their way to the front door is better than continuing on.

Get Payment - Go to vault and attempt to extract any outstanding payment. Priority increases with unhappiness. Successful payment increases happiness by an amount dependent on the character’s current wealth. Failure to retrieve payment decreases happiness further, but also dampens this type of happiness gathering for a moderate period so that they may try other avenues of gaining happiness (like relaxing)

Take ownership of location - Increases the space owned by the character. This may be available under severe unhappiness, but will be mainly used by the player to increase the happiness regeneration flowing from the character’s increased levels, or increased wealth.

Take ownership of item - Marks the item as now belonging to the character. Triggered by loot drops when %loot contracts are used. Can also be used to forcibly transfer someone else’s item to this creature, with appropriate anger from victim. Can be used by the player to give new weapons or gems from the vault.

Give ownership of location to character - Remove ownership of space and transfer it to another character. Creature competing the transfer will be angry on the loss of space, but not as angry as if it’s been taken from him. Very unlikely to be triggered naturally, but gives a way for the player to adjust their mercenary structure.

Give ownership of item to character - As above, but utilising item in the creature’s posession.

Sign new contract - Demand a new contract be signed. Priority increased through consistent unhappiness or multiple gains of levels. One step before revolting, and possibly linked to an email out to the player. Can also be triggered by the player to negotiate different payment methods (most likely with a once-off power payment)

(Mainly) Hero Specific:
  • Escort Prisoner - Attempt to move with the prisoner to the entrance. If they make it they are credited with rescuing that prisoner.
  • Disarm Trap - Apply disarming skill to any detected trap. Priority increases significantly when a trap is near and known. Ramps up with expectation of successful disarming.
  • Search for secret doors / traps - Apply searching skill rather than moving on quickly. Priority increased with searching skill and hero aggressiveness.

Monday, July 11, 2011

A Notorious Holiday (Pt 2)

After fleshing out the design document with all the new ideas, it was time to start looking into coding. My first port of call was the ToME engine as it had a promising glimpse of a realtime roguelike example module. Unfortunately the module didn't work out of the box, but finally a forum post cleared up the issue.

Spent a couple of hours setting up the dev environment and compiling the ToME source code, only to find out that the vast majority (if not all) of the module can be handled exclusively by the LUA module documents. First impressions of the system are great as it was pretty easy plugging in a bit of code from the ToME module and getting it working. I did have some issues trying to debug certain errors, but once I realised all output was going to the log file and not to the console, it made it a lot more straightforward to see what needed to be imported to get a certain piece of code working.

The development path is pretty much set for either the full game or along way into the prototyping phase with the wealth of extras that T-engine4 gives me.

Projected development:
- Recompile T-engine - Done, although not needed
- Set up a new module based off the realtime example - Done. 30 mins
- Bring in new entities that are on the player's side - Done. 4h. Pinched the summoning code. Bit messy as it used the party system that was non-existent in the example module. Lots of new code brought in that may or may not help.
- Bring in the party system - Done. 2h. After revisiting the ToME module it seems like the party system might work well for flipping control between the mercs on your side. I'm not sure whether I'll need the party display though.
- Have vision from all minions. 3h. 80%. Worked in the first 1/2 hr, but now it seems inconsistent. Hopefully it's only an incorrect assumption about the caching, but I've seen enough to know that it's definitely possible.

- Spawn in a hero and move it toward the player. Hopefully the minions are able to react and fend off the hero. Will need to open up state-based AI transitions.
- AI code to move hero toward arbitrary location.
- AI code to make hero explore.
- Build governor AI to swap between AI states depending on priorities.
- AI code to make hero retreat.
- Allow minions to retreat to arbitrary point
- Create a digging AI task for minions.
- Allow player to influence minion priorities.
- Build power system for player
- Tidy up minion influence interface to make it viable for realtime play. Goto X, stop, Fight, Flee, dig, transport.

- Create standard dungeon layout with initial home stone placement and initial Gemkeeper minion.
- Limit movement and appearance of player to home stone.

- Build Gem Detection spell
- Build Gem Linking spell
- Build Vision spell
- Build Communication spell
- Build Exert control spell (interface onto merc AI priorities?)
- Create 10-20 mercs and test.
- Build Merc selection interface
- Integrate merc happiness system into AI priorities
- Designation of ownership
- Designation of rooms (vault / prison / throneroom / retreats)
- Collect hourly payments from vault

- Design village raids
- Design rumour system
- Design village (?). allow swapping of interfaces to see village raids
- Design notoriety boards
- Design merchant
- Design Black market

- Link notoriety to power gain.
- Create more heroes / Mercs and play-balance notoriety.
- Release version 0.1

GameLog 206 & 207

Steam summer sales to the rescue. Lots of bargain bin play and additional achievements to chase.

Civ V (22h) - Rome Rising scenario. Almost a total conversion, and the changes have made the game feel very much like you're playing Rome in its infancy. Map, Tech and AI gives rise to a typical Roman expansion path. Reminds me somewhat of Philip of Macedon in that it makes me want to know more about the actual history of the Roman rise to power.

Grepolis (15h) - 12 cities. 105th. Back into a groove of morning, midday and night time farming runs, plus a little bit of occupation with the freedom that the holidays allows me.

Terraria (12h) - Digging with Cam.

Solar 2 (9h) - Exceptional little Indie title I picked up just before the steam sales. Feel a long time ago now though.

Magicka (8h) - Fun little game. Controls take a bit to get used to, but should be great at LAN.

Mount & Blade: Warband (7h) - New female campaign to chase a ticket.

Shogun: Total war 2 (6h) - New Date' and Tokugawa campaigns to chase tickets.

Guardians of Graxia (6h) - Was meaning to pick this up and give it a go earlier, but never got around to it. Plays somewhat like a tabletop game mixed with Magic: the gathering. Seems a little limited to keep me entertained with all the other stuff I've just picked up.

ToME (5h) - New work starting on Notorious using the ToME engine. Started another play through to see how the new party system works.

League of Legends (5h) - A couple of games a night up in Mackay with brothers.

Hoard (2h) - More fun chasing tickets.

TF2 (2h) - Even more fun. With TF2 going free 2 play, it's going to get a bit more of an airing.

AI war (1h) - Bit too complex to get into during alll the mayhem of the sales and the Mackay trip. Might need to revisit it once things settle down.

Dawn of War 2 (1h) - Last Stand fun at LAN.

Moonbase Alpha (1h) - Limited LAN airing. Pretty fun pinching the dune buggy, but the interface is pretty bad for serious play.

Thursday, July 07, 2011

A Notorious Holiday

The semester break has been great, especially after finding out I had 3 weeks off instead of 2. I know I'll need about a week to get things organised for next semester, and we'd already organised a week up in Mackay, so the additional week has meant extra time for Notorious design and possibly programming. I've already spent about 3 days going over the design with anyone that will listen, and have discovered a couple of critical pieces to smooth out the concept into a logical, cohesive environment. I've also moved the majority of the documentation into a google document for easier layout control, but will attempt to log the design progress here too.

Focus gems
I'd been flitting around with the idea of using some sort of amulets or the like to utilize the powers of the player, or possibly direct spells, but it was all a bit up in the air. Making the decision to move to exclusively gem-based spells have tidied up a lot of loose ends. Now the players are effectively ethereal beings (more work on that yet) that use gems to focus their power. They have a 'home stone' (a large gem located somewhere in the dungeon) that they primarily link to, and then can manipulate other gems in their immediate vicinity. Base spells are available to discover gems and link to them, then linked gems can have vision, communication or control over the bearer. Limiting the amount of focus gems allows players to make interesting choices in terms of utilising them for scouting, more minions, infiltration, etc.

Having the home stone instead of the actual player allows a logical way of keeping the player safe through dungeon wipes, but also allows high level play to include unlinking the player from their dungeon effectively starting them again (depending on their latent power).

The Gemkeepers are a Hidden Society that knows somewhat of the player's ability to link to gems. They believe that by helping these beings, they too may be able to claim power over the world. Gemkeepers actively seek out gems large enough to be linked to and attempt to prepare the gem to be linked. Contrary to the Gemkeeper’s beliefs, the gems do not need any special preparation for linking, but the existence of the Gemkeepers does make it easier to get started in your notorious career.

Acolyte Gemkeepers have no master, and scour the countryside looking for a suitable gem. Once located (using Gem Detection spell at power level similar to their level), they dig out a corridor to the gem and, while they are waiting for a presence to appear, they keep digging out more and more of a throne room around the gem as well as a place for themselves to live. They also make themselves known to the local town or village using a secret identity to hide their real aim of being here. Acolytes spend as much of their time as possible in the throne room, hoping to be the first one that the presence links to. For this to occur, Acolytes carry a quite precious gem (or possibly several) with them to make the linking process easier.

The number of Acolytes are significantly higher than the number of Linked Ones (full members of the Gemkeeper Society who have successfully been linked to an Ethereal Being) and it may take a lifetime for an Acolyte to become linked, if ever. Acolytes learn from the Linked Ones about what generally goes on once linked in somewhat vague terms. It is common knowledge within the society that a gem of a certain size and quality is needed to host a presence, that they will then use the main gem (home stone) to link with other gems, and that the presence can then communicate to and influence creatures holding those gems.

If an Ethereal Being links to an uncovered gem (new players automatically find uncovered gems), they will often see the Acolyte Gemkeeper in the throne room, calling out ‘Link to me master!’, ‘Speak to me!’, ‘Let me be your right hand man!’.

Monday, June 27, 2011

GameLog 202-205

Work got crazy. 120 hours of marking & reporting done outside of the usual teaching & planning.

Grepolis (10h) - VRBones, rank 148, 9 cities. Placed Grepo into vacation mode until reports had been finished, but it's feeling a little too grindy now. Might be on its last legs.

League of Legends (10h) - Comp Stomps are still entertaining, if only to see other players bring in the new chars.

Frozen Synapse (10h) - Picked this one up after reporting as it sounded interesting from the GWJ podcast. Plays pretty well, but not sure if it's going to be around in a while.

Civ 5 (5h) - Rise of Rome scenario. Seemed to be running really slowly. Not sure if it was the huge map size or the mod, or the windowed mode. Ended up being pincered by the Illyrians. Makes me want to play Hegemony: Phillip of Macedon again.

Learn 2 Fly (3h) - Kongregate winner.

Hacker Evolution (1h) - Demo. Thought I'd played it, and after one level I remembered why I stopped. Everything is scenario based rather than being an open world like Uplink.

Monday Night Combat (1h) - Plays Ok as a potential LAN game, but now that TF2 is free it's dead in the water.

Sunday, June 26, 2011

5yo StarcraftII Tutor

Cam had one of his friends over for his birthday and tried to teach him Starcraft II. It was quite interesting seeing all the things he knew about the game, more than I thought he had digested. He generally plays vs Easy AI's in 1v1, 2v2 and 4v4, but spends a lot of time watching others fight (or being distracted by the TV or other PC) rather than concentrating on his own build. He's also completed some of the challenges, but it doesn't look like the strategy of counter-building has transferred into his gameplay.

What's interesting is the battle over the mouse. When I taught Cam Starcraft at the start of the year I went through the same pains of just wanting to show him with the mouse rather than letting him maintain control. It was almost unbearable watching him struggle with communicating what steps were needed to be done next, and attempting to keep his hands off. I managed to only butt in twice, both times simply to correct pronunciation of words.

Audio was pretty low and I missed an entire section when setting up the bath for them, but still happy I got that recorded.

Monday, May 30, 2011

GameLog 200 & 201

Was going to do a reflection piece fo rthe 200th GameLog, but it'll have to wait for the holidays, totally snowed under at the moment.

Grepolis (40h) - VRBones, rank 159, 5 cities. Guesstimate at the time as it keeps sneaking a 1/2 hr or hour off me a couple of times a day. Farming is still painful, but the alliance certainly makes it play out longer.

Terraria (15h) - Steam says 35h, but I've left a server up and I think it must have tracked that (or Cam has been sneaking in more than I thought)

League of Legends (5h) - little filler time between the 40 minute grepo farming runs. Record for comp stomp now 15:57

Nothing else to report. Not even a facebook game. Feeling very edgy to code something, so I think oveer these hols in a couple of weeks I might start on Notorious or finish up Factor Friends

Sunday, May 15, 2011

GameLog 198 & 199

Grepolis 2 (30h) - Maturing into mid-game. Alliance banter and teammanship is keeping me in it.

Mount & Blade: Fire & Sword (24h) - Present from Greig for my birthday. Plays a little more randomly as one stray bullet can kill you instantly. More like a lottery whether you get through a battle unscathed. Bit more work on the quests and storyline, but it still has a number of times when you know what you want to do, but don't know how to tell the game how to do it. Played a number of characters, but I don't seem to be able to get in on one of the sides. They want me to be more noted, although it feels like I've been playing more than native mode.

League of Legends (8h) - vs AI games go less than 30 mins now; just neatly under a 40 mins grepo farming pass.

Universe Sandbox (2h) - Another steam game for my birthday. Pretty impressive real time gravity manipulation. Might be a good one for Cam, or school science.

Monday, May 02, 2011

GameLog 196 & 197

2 weeks of holidays. Far too many games to catch up on.

Grepolis 2 (65h) - OCD heaven. click, click ... click. New farming system is worse than farmville, but the alliance is worth the hassle.

Portal 2 (12h) - Pretty good single player, but puzzles and a single path means either the story or the puzzles suffer. It's the puzzles.
Multiplaye looks pretty good so far, and hints at a long term release of puzzles (hopefully with a level builder)

League of Legends (10h) - vs AI games go less than 30 mins now; just neatly under a 40 mins grepo farming pass.

Starcraft 2 (4h) - Cam has been playing lots of starcraft, and has recently found 2v2 and 4v4 maps. Played a couple myself and can handle 4v4 mediums vs hards. nice way to ease into a balanced competitive environment. Cam spends most of his time looking at what the other AI's are building though.

Hoard (2h) - LANs a bit.

Warhammer 40K Dawn of War (2h) - Some last stand shenanigans

Dragon Age Legends (1h) - Facebook game from Soren Johnson.

Monday, April 18, 2011

GameLog 189 - 195

Wow, 6 weeks since a GameLog.

Shogun: total war 2 (95h) - Played througha couple of campaigns to get the feel of it, and have just about finished a legendary campaign for the Shimazu. I'm afraid that the Tokugawa are only a couple of turns away from winning though. Plays really well, and feels like a well polished version of the original.

Grepolis 2 (15h) - High Notes alerted me to a new version of Grepolis, but I missed the start due to teaching. I'm 4 days behind, but keeping pce with the leaders. Currently 400th on server. Virus seems fresh and active, so I think that'll make the game stay in rotation for a while.

League of Legends (10h) - Off and on again relationship with LoL. Pretty much only play with brothers or at LANs now. Versus AI has been a nice change and I'm surprised they are offering IP for it.

Hoard (9h) - Been following this for the 360, and it's finally made a debut on steam. A little bit buggy, but an excellent LAN game.

Dragon Age Legends (3h) - Facebook game from Soren Johnson. Plays Ok, but still is a little light on for me to take it seriously.

Minecraft (3h) - Little bit of LAN filler. New versions are coming out a lot more regularly now, so it's good that it's getting more assets and ideas. Feels more and more like Dwarf Fortress ...

Feels like I'm missing a few, but that'll do for now ...

Tuesday, April 12, 2011

Factor Friends v0.2

Ok, main look and feel all done. If you select any of the cards in your hand it is highlighted in gold, and all possible places where you can put the card on the board are also highlighted. The check to see if one is a factor or not (one of the key parts of the card-based game for year8 maths) is probably going to be the shortest function in the whole program.

Next up, moving the selection to the board if it's a valid choice, then swap the players. All the back end is done for player hand rotation, all I need to do is flip a turn counter and refresh the hand area.

Might even be able to get a quick end-game check in there and have a fully functioning game for next revision (albeit with pre-determined cards).

Factor Friends v0.1

After a couple of days of solid game playing, I feel back to normal. The last couple of weeks have been so crazy marking and preparing for classes that I've hardly played a thing (I guess I should get back into GameLogs too).

I woke up this morning with a hankering to code. Might have been some of the TopCoder vids I found on youTube, or just something in my mind wanting to relax in a different way. Anyways, I've found myself happily coding away for the past 3 hours (with a splash of Grepolis).

One of the students at school is working on developing Factor Friends for the iPhone (or Mac at least), but I thought I'd give it a go too using some stock VB stuff. The aim would be how much of the game I can get done in a day.

Well, so far so good. I have the basic game board laid out using buttons and another set of buttons for the player's hand. The pic to the left shows some test data overlaid onto the buttons (showing the coordinate system used for the underlying array) as well as a sample starting hand.

There are 6 arrays so far that store the data for the game: BoardValue, BoardValueOwner, HandValue and HandStatus for each player. With these in place and the refresh subroutines built, I can now simply call RefreshBoard or RefreshHand to display whatever the game logic dictates.

Biggest hurdle so far has been attempting to use pointers. I wanted to store a similar sized array of pointers to the buttons so that I could refactor the refresh code into a simple loop rather than having many repeated lines of code for each array position matching up to the correct button. Wasn't a big deal at the start, but once there started to be 7 or so lines per button, the code looked pretty unmaintainable. Searched around for a bit, but nothing seemed to allow me to reference the buttons using a stored pointer or the like. I eventually came up with a new subroutine that accepts a button, and the current staus and value to set it to. Worked a treat and much neater.

With the board in place, the next thing to do is to get the player interaction working.

Looks like I can bind multiple buttons actions to the dame subroutine, and I can also reference the sender to the event handler as the button clicked. That will make the hand and board UI pretty easy.

I'm also hoping to have the clicked card eventually track to the clicked board position (if legitimate, need to get a validation routine working too), then disappear from the player's "hand". Should be pretty easy using a timer and some slide-in, slide-out animations. Not sure what happens to the button when it's in transition though, can I lock the whole UI down until the animation is finished?

Monday, March 07, 2011

GameLog 187 & 188

Champions online (10h) - Just gone F2P in time for the Saturday LAN. Plays a lot like City of Heroes, and seems to have enough to play without bouncing off the paywall.

Football Manager 2011 (7h) - Currently ~10th in Conference Premier with a fairly good run under our belt. Team is confident, but a mid-table or slight chance at playoffs could be all that's achievable this season.

Shogun: total war 2 (2h) - Played through the 5Gb(!) demo

League of Legends (1h) - LAN starter

Monday, February 21, 2011

GameLog 185 & 186

Football Manager 2011 (30h) - Steam reckon's 70 hours this fortnight, but I know there was times I left FM11 going while I did other things. I'd even had it going in the background as Cam played Civ, so I'm thumbing about 30 hours of actual play time.

Finished Conference South in 2nd and managed to claim the promotion spot. Now with 18 new signings we're settling into a mid-table position. Hopefully there's some extra spark to take the team further, but even a year in conference won't be too bad as div2 looks a big step up indeed.

Dungeon Demo (2h) - Played the demo to see how it compared to notorious. Couple of interesting takeaways:
- They have an avatar in the game constantly
- area is controlled instead of assuming it is yours
- Heroes are encouraged to take treasure to mak them happy, then you bleed them of happiness to power spells. A somewhat convoluted way of converting money into mana.
- Instead of blocking off dungeons ala TD, dungeon structure is more about enticing the heroes further in.

Rift (2h) - New MMO I'm betatesting.

Sunday, February 13, 2011

Vintage display ensures Woking victory

Woking 2 - 1 Dover Athletic (Blue Square Bet South Playoff Final)

Woking taught Dover Athletic a lesson at Kingfield Stadium this afternoon.

Striker Leighton McGivern gave Woking the lead with a real poacher's effort in the 21st minute. An error from Dover's Tom Wynter allowed centre-back Adam Doyle to score a good header from just inside the six-yard box. Striker Adam Birchall had a chance to score from the penalty spot for The Whites on the 38 minute mark but missed his spot-kick.

He was able to make amends for his miss however by scoring an accurate finish after 77 minutes.

Talented manager Veeyar Bones has been at Woking for 7 months, having joined them in October 2010.

Attendance: 3,705

Bones praised by Woking faithful

Fans of Woking were justly proud after the team gained promotion from the Blue Square Bet South.

Fans and pundits alike were unanimous that the person responsible for the team's success was Veeyar Bones.

One fan commented that with Bones at the helm he felt that anything was possible.

Starting unemployed, I joined Woking at about October with the promotion candidates languishing down in 15th. Cleaned up the Back-room staff and brought in one or 2 players to turn the season around, with a comfortable 2nd in the league and an easy 5-2, 2-1 finals campaign to get the promotion. Now to clean house with the players to get the finances back on track.

Friday, February 11, 2011

Teaching week 2 & 3

It seems like Friday of week A has enough spares that I can set time aside for reflection, so a bi-weekly summary might be enough until I can get everything else under control. Hopefully this will be a couple of updates a week once I settle on a format I'm comfortable with.

With week 3 done, most classes are now firmly into the topic for the first term. I've had to take a reality check with most of the subjects, as I'm simply unable to implement all the changes I wanted this year. For some classes I might have another opportunity to get stuff ready by 2nd semester, but for now I'm a little disappointed that I have to 'lean' on textbooks to get through.

The reason for the cutback is pretty simple. Time. My initial intent was to stay back after school and prepare everything for the next day before heading home. I seem to work well in a work environment, even if it means working until a problem is complete rather than working up to a certain time. When I used to work from home as a contract programmer I found it hard to get going (too many games?), but once I'm in the zone late at night, I'd work into the wee hours of the morning. With a rigorous timetable, the late nights will need to go...

Time. The first couple of weeks were pretty crazy with a lot of extra time devoted to getting changes to the work program in place, but I was expecting it would settle down by, say, about now. It doesn't look like it's happening though. Most nights I'm still here after 6pm just covering the basics for the next day or responding to issues or emails arising from the day. I need to bail by then so that I still get to have Dinner with the kids, but even that's been missed more often than not. I'm left with an option I wanted to avoid, take work home. Recently it's also been exacerbated by meetings for school council and youth ministry cutting short the preparation time at the school. There's more meetings on the horizon too, so it's only going to get worse.

All the new teachers to the school gathered on Monday to discuss any issues, and although there were a dozen new teachers to the school, only 2 of us were first year teachers. The prognosis about the workload seemed to be confirmed: Yep, that's natural when you're starting off. You will get better at it, but it might take a couple of years. Probably 5. Holidays also came under the firing line and it was revealed from long-time teachers that only the Christmas holidays allowed you to actually relax. The other times you're still in 'teacher mode'.

Getting used to this 'teacher mode'. Always a teacher. Always...

Monday, February 07, 2011

GameLog 183 & 184

Teaching-constrained gaming looks like it's going to be the norm for the forseeable future.

Football Manager 2011 (25h) - Finally got the full version. Started off unemployed and landed a spot at Woking in Conference South. I think they were supposed to be conference or maybe even div2, so it's been a pretty easy road to bring them out of the doldrums and almost into promotion contention. Some VERY nice deals landed a div1-worthy goalkeeper and a couple of loaners to prop up the wings and forwards. A bit over budget, but I'm confident we'll do enough to get the promotion.

Rift (15h) - New MMO I'm betatesting. Plays like WAR, but with dynamic public quests. Would be very interesting to explore more fully if I had the time.

Saturday, February 05, 2011

Sentimentality: an interesting choice?

Recently Ben published his list of attributes and features for the Game That He Would Like To Play. This is a ramble on one facet; Sentimentality as an item statistic. I don't know where it's going to end up, but it feels like a topic worth exploring.
The trigger text:
Rather than having players continually searching for new better items like in Borderlands I’d like them to all be like the Angband ego artifacts that level up as they are used, slowly getting more magical and more powerful. The longer the avatar uses a weapon type the sharper and sturdier it becomes because the avatar looks after it. This maintenance is a part of the weapons skill.
Also the avatar becomes used to the weight and feel of the weapon and so grows sentimentally attached to it, after certain time periods they notice new places that magical gems can be placed to give the weapon special abilities, like firebrand.

I, too, enjoyed ego items in angband. They were never the most powerful items you could get, but the agency they gave you in helping shape the weapon you require made them very desirable in the mid game, and certainly helped you connect and appreciate the item more. Sentimentality is certainly a neat way of attaching an in-game mechanic to an external feeling. They also happened to be a great money sink as each new ability cost more and more.

One of the problems with ego items from a gameplay standpoint is that if they are too powerful, there is no need to keep looking for other items as you have the best in the game. Each new weapon found from then on in would simply be an inconvenience, or a resource to convert to money at best. If it's inconvenient, then why have it in the game at all?

A while ago I read another article by the developer of 100 rogues on the decision to cut out the store because it didn't actually add any interesting choices. This is kind of the same topic, but from the other side. Keith saw that a game should be stripped down to a series of interesting choices, and attempted to remove any such items or game devices that seemed to get in the way. My comment on 100 rogues was that the removel of the shop didn't increase the set of interesting choices, but simply moved the same choice to the point of pickup, rather than at the point of sale once you know there is no shop.

Once you know. That's another part of analysing gameplay. It may take a number of playthroughs of a game to realise that there are elements that are simply not required. I played many, MANY games of 100 rogues with a full inventory out of sheer habit. True, I didn't come across a shop, nor did I ever actually use anything that I was carrying, but in my mind they were somehow intrinsically useful. I had to make an interesting choice as to whether the item on the ground is better than any item in my backpack (and shuffle around accordingly), with a glimmer of hope that upon completing the whole dungeon there would be a shop or possibly just a highscore modified by the loot picked up. Realising that this wasn't to be the case meant that there was no point carrying items that you had no intention of using, and therefore the item found on the floor lost their interestingness unless it competed successfullly with the items I was currently wearing.

Once you know.
I've been playing ToME4 recently and have been noticing that the game is intentionally set up to be replayed. Not only does the game slowly expose other races and classes to play, but knowledge gained in previous plays can change the way you play it on subsequent visits. Once I'd cleared the starter dungeons, Bree is inundated with lightning elementals, which in turn leads the story through to a large boss battle with predominantly lightning damage. My mage had been cruising up until that point, but with no resistance to lightning damage the game got incredibly hard. My next play through as a fighter, I kept an eye out for lightning resistance items to help get past this stage. Items that may have been deemed useless in the first play through are now worthwhile, but do they warrant space in the backpack (and the weight limit) to carry through until they are needed? An interesting choice. I know most roguelikes have this type of player knowledge vs character knowledge mechanic (and some could say that it's the hallmark of a roguelike embodied in permadeath), but ToME4 seems to make it more front and centre with a more scripted experience.

On the point of ToME4, I have also stopped playing recently as a new patch removed the ability to sell items at the store. My lament was exactly the same as with 100 rogues; all it does is remove another avenue for making an item interesting (to gain money for that once-in-a-lifetime deal in a shop), and leaves the decision squarely at the point of pickup. I used to prize a girdle of carrying to give my characters more lugging power, but now you may as well just go for a resistance girdle as the only things worth retaining are gams with 0 weight and artifacts.

So back to sentimentality. As long as we're prepared to give up a reduction of choice from items, maybe there are other benifits to be gained from having sentimental items? Maybe (in a Daikatana-like fashion) the item leveling is a mechanic itself that allows for lots of variability, and that the player more or less stays with 1 item for the duration of the game? Is making an item more personal and meaningful worth it?

Recently I picked up Football Manager 11. I'd played the demo when it came out and didn't seem to be too much different from FM10, so I thought it'd be Ok to skip this year's incarnation (or at least wait for a steam sale). A number of personality oriented games had me pining for FM again, so I fired up the demo and saw how far the game had come in making the people in the game more alive. In the demo I'd received some recommendations from my back-room staff that a player wasn't performing and needed a rest. With the new interaction system I invited the player into my office for a conversation. I started off by stating what my back-room staff picked up, that he needed to have a rest due to poor performance. He responded negatively and said that he thought his performance was Ok. My options in the conversation tree were somewhat limited in how to respond, one giving an ultimatum, one conceding, and one somewhat concilliatory. Still relying on the advice of my staff, I thought that the lad just needed some discipline so I gave the ultimatum. His tone turned sour. "I don't like the way I've been treated, I'm not sure I made the right choice coming here". Hmm, wait a minute. This was someone I just put on? Upon looking at his record for the month he'd been with us his performance had been Ok. I can see why he's upset and now here I am, stuck in a room with a person that has legitimately claimed to be mistreated. The options in the dropbox weren't pretty either, so I'd effectively scuttled my relationship, and thus the performance of this player for the team by not paying attention and investing time to know the players.

On the other side of the coin were a number of players that, through multiple seasons of winning against all odds and massaging them through games with half-time and full-time talks, had me down as their favourite person. It's hard letting go of someone that has you as their favourite, even if that's the most economically sound thing to do. Both of these scenarios indicate that there is intrinsic value to develop a relationship or increase sentiment with in-game objects without the need for bonuses. Or is the game giving bonuses by allowing players a little extra oomph if I'm their favourite coach? You can certainly help prolong a winning streak by keeping everyone's morale high. I don't get the feeling that a player, through sheer sentimentality, will stay with the team all the way from Conference South up to the Premiership. The emotional attachment still is evident in the game, and the game encourages and rewards sentimentality, but not at the expense of the core mechanic of continually needing to search for the next big star.

Friday, January 28, 2011

Teaching week 1

At the end of Week 1 into the journey of high school teaching I'm a little stressed, a little excited at the opportunities, and tired, very tired. I knew toward the end of last year that I'd be revamping the 11/12 work program, but arriving at the school for the first time as a teacher it seems that the 7-10 work program is also inline for an upgrade.

I knew last year that I'd be wanting to use Moodle for most of my courses. The content is largely self-paced already, so having the course work in Moodle allows easier submission / marking than before. Homework wasn't a strong point in the old work program, so moving to moodle will also allow students to continue their work from home, or catch up lessons if missed. The main reason though, is the hope that moodle community hubs have a very big opportunity to bring the diverse leaning environments I would want in a VLE of the future, and I want to be there either as a course creator, a community hub manager, or simply as a teacher with many more options.

Maths has been a dream compared to ICT/IPT. So structured, so precise. The content is still a little steep to get through, but at least you know exactly where you're going and that there's no real wiggle room. I like wiggle room, but I have that in spades through the ICT/IPT shakeup, so having a couple of courses that are largely taken care of has been an unexpected blessing.

Of the 4 classes that have participated in the "Introduction to Moodle" course that I put together, most have had difficulties with technology at some point through the process. New accounts and password resetting eats up a more time than it should, emails are finally being set up properly, but there are still teething issues with that process, and the login process onto moodle itself is not straight forward and needs direct instruction at critical points along the way. One class was completely derailed by student not having access to their documents directory. I know it's teething issues, and I know from being over on the other side of the phoneline that there are legitimate reasons for the hiccup, but it still wiped out all the progress the students could have made during that lesson to establish their moodle access. When technology fails, it tends to fail specacularly, and that 1-2 minute window you have for attempting to fix the issue before the kids lose patience is too narrow to do anything substantial about it while standing up the front.

Thinkin' on your feet? Yep, need that.

Monday, January 24, 2011

GameLog 181 & 182

Teaching starting to take its toll on games played.

ToME 4 (35h) - Lots of different characters, but more importantly more inspiration for Notorious.

Football Manager 2011 Demo (12h) - Revisited the 2011 demo and it's a more complete game than what I recalled. More dynamic and alive players, with more personal feel to it. Steam still has it at $90 which is completely unacceptable for a 4 month old game in post-steam-sale times. Found it for $30 in a

Dwarf Fortress (4h) - Few more dwarves. Almost time to dig down.

World of Warcraft: Cataclysm (3h)

Sunday, January 23, 2011

Green Artery

View Larger Map

My new desktop ...

Tuesday, January 18, 2011

Notorious Scenarios

Here's 2 different scenarios of the way people might play Notorious :
A casual gamer starts off and designates a large cavern to be dug initially. 1/2 way through digging it all out they decide to pick up some gobbos to protect the front door and choose a regenerative contract/agreement. They leave the game for a day, and come back to a completely dug out cavern, in which the gobbos are currently wiping out a level 2 warrior. They tinker with 'Gobfast', the elite leader to help gain a win in the battle. They then review the summary reports and find out that they have managed to kill a level 3 mage at some point (named Dorf the Magnificent) so they are now rated at level 3, and they have had 5 'wipes' by seeing 5 other elite gobbo names in the death register. They go about designating another 3 caves to be dug out, and also upgrades the contract to get more out of the open space that's available.

Next day they have gone through another 7 wipes, but the improved contract means they managed to squeeze the life out of a level 4 druid named Fenris. 1 of the 3 caverns have been dug out, so they go about setting up another regenrative contract in the new area. After viewing a couple of their friend's dungeons, they decide to change the layout a little to set up a trap room first up, as well as a space for tresure toward the back. They also manage to pinch some villiagers to get the digging going. Logging back in the next day they see another 2 rooms have been opened up, but it looks like there's just been a wipe. Instead of waiting for the place to repopulate through the contract, they cancel it and set up a few new ones to try out skeletons instead. The trap room needs a bit of investment, so they raid the villiage for money, then spend it on buying traps. They tinker with exploring a couple of other dungeons before logging off.

An active gamer starts the game and designates a large room. After a couple of minutes poking around they realise that they can get in villiagers to help dig. With virtually no cash, they sign up an ogre with 80% salvage rights in the new space dug out. The ogre is sent off to the villiage to grab some farmers. The ogre arrives back with 5 farmers and they are immediately pressganged into digging. While they dig, the player looks into the rumours and sees that the ogre has attracted attention. He successfully plants a rumour that the ogre headed east instead of south. Most other rumours from the east seem to be also talking about an ogre, so he elects to pay 5 gold to share sight with Rofl, a human invoker heading east. Rofl successfully navigates a trap field (through a map from previous heroes that have wiped the dungeon), but gets nailed by a boss ogre that rushes out of a hidden door. With new information about a neighbour and dungeon layouts, the player then looks into picking up some hidden doors and decides to immediately start building a vault room with secret door instead of finishing the main room.

More rumours surface that the ransom for the missing farmers is now 10 gold each, and Flippit the thief managed to find the dungeon and excape before being pasted by the ogre. Fearing a big attack, the player ransoms the farmers to drop his notoriety and gain some cash. He puts in some low level bandits into the 1/2 built vault, and puts them to work digging. The bandits impression of the player drops pretty quickly and before long they are revolting. they go out into the main hall to protest, but fall victim to an ogre club through the brain. Oh well, at least the ogre is a little more experienced. The player sends out the ogre again to pinch some peasants, while installing a skeleton into the 1/2 built vault. The ogre dies in the attempt, so the player sets up another contract for a goblin elite to stay in the 1/2 dug main hall with up to 5 goblin minions, then logs off. They log on in a couple of hours and the report shows that the goblins managed to kill 5 heroes (Highest lvl 3) before they fell, but the skeletons haven't been touched. The player then goes about recruiting more goblins for the space freed and replacing the skeletons with a paid outright ogre (since the vault has survived and is now large enough to house an ogre).

After the first day, the active player has a little more space due to the farmers in use early, and has been able to react to new information more quickly to advance his dungeon layout. He has also had more fun interacting with the world and other players. The causal player sees greater increases in play between sessions because things set in motion (digging out rooms, etc) have come to pass by the time they log in. If played well (eg; a restarting player), the casual player could be very close to the level of an active player as ultimately dungeon design and size is what opens up higher and higher levels.