Friday, July 30, 2010

Fffffuuuuuu

I thought I'd share one of of those "Ffffuuuuu" moments.


You know the feeling...
I can't go down the stairs either, I know who lurks there...

The game was an excuse to test all the advisor hints and the hospital in a real game context. Plus a couple of other stuff.

Died a few turns later. Fun.

End of post.

Thursday, July 29, 2010

Player videos aar & 4.1

LET'S PLAY
PlumpHelmetPunk is making Rogue Survivor gameplay videos.
He has also tons of videos for fun little games.
PlumpHelmetPunk youtube channel

4.1
Not much to report. Still doing the advisor hints. There are 26 hints now covering the basics and there is a few more to add to cover fortification and leadership. It's hard to explain enough to get the player started without turning the hint system into a manual-bis.

The Hospital is completed. Lots of healing goodies there, but it could be a deathtrap if you're too late or unprepared.

I still have to:
  • add the first "throwable bomb" weapons : dynamite/grenades and/or molotovs.
  • add the new ally.
  • expand the plot a bit, with something happening "down there" once you have done the achievement.
  • the "build stuff" order.
  • fix the remaining bugs/glitches.
  • minor things.

End of post.

Tuesday, July 27, 2010

Alpha 4.1 : Advisor hints.

A nice new feature to help clueless new players who don't know the basic controls.
I also noticed that a significant number of players seems to ignore the existance of some features (using exits, pushing objects...)

ADVISOR HINTS
You can enable an Advisor (on by default).
The Advisor will monitor your situation and provide appropriate hints.
When the Advisor has a hint available, a little annoying popup appears and prompt the player to go read the hint. You can ignore it and keep playing, but because it's kinda intrusive you'll want to read it ;)
The hints are fired from the most basic ones (eg: how to move) to more complex ones (eg: how to fire a weapon), so it won't tell you the more advanced stuff until you have read all the simpler ones.

For example, as soon as you start a new game the Advisor wants to tell you how to move:


Later on the Advisor has a suspicious fetish for items and doors:

(missing H in Shelf)

I'll add enough hints to hopefully make the basic controls and gameplay clear.
Roguelike/RS veterans can safely disable the Advisor option.

CODING
Nothing special, but it's been quite a long time I didn't show some coding stuff so let's talk about the implementation.
Thanks to the way I've done the engine (go me!) and the wonderful world of C# lambdas, it was very easy and quick to implement.
For instance, to check if it's time to trigger the "Look! You can open a door" hint I just write a line like this:
                    return map.HasAnyAdjacentInMap(pos, (pt) =>
                        {
                            DoorWindow door = map.GetMapObjectAt(pt) as DoorWindow;
                            if (door == null)
                                return false;
                            return m_Rules.IsOpenableFor(m_Player, door);
                        });
(thanks for messing the formatting, Mr Blogger)

Then I just maintain a table of hints that were already fired, to ignore those.
The Advisor state is stored in the Session object, so it is saved with the game.

End of post.

Friday, July 23, 2010

Players Wiki & 4.1

PLAYERS WIKI
A group of Rogue Survivors has started a Wiki.
http://roguesurvivor.wikia.com/wiki/Main_Page
I'll add a link on the blog for great justice!

4.1
Reduced save and load time by 20-30% by:
- changing all byte and short types to int (!).
- changing some of Session class fields to Arrays instead of Dictionaries where appropriate (so it doesn't waste memory).
- customizing Map class serialization to save only primary fields and reconstruct auxiliary fields at deserialization.
Fixing bugs and glitches.
Started the Hospital.

End of post.

Tuesday, July 20, 2010

Alpha 4 Bugs & Poll

BUGS
EDIT: Change of policy, please use the reserved bugs page "Alpha 4.0 buglist".

POLL : Spoilers section or not?
Since the game has now secrets to discover, I'm considering adding a Spoilers page to the blog.
If you are stuck or annoyed by something you can find (such as a missing Achievements), this could prove helpfull. I'll try to layout the page so you can read only what you really want to know.
On the other hand, it could be way too tempting to just read everything and blitz through the game without enjoying the "what the hell is this? what do I do now?" moments.
So I'm undecided, and ask you dear players your opinion.
I added a poll on the right where you can vote.


End of post.

Sunday, July 18, 2010

Alpha 4 release!

THE WARNING
"Listen Alpha 4...
I swear if you are exploding on people face like your older brother 3.2 did I'll throw you out of my computer and release an Alpha 4.1. So don't mess with me ;(
...
I tested you right?
...
Thou Shall Work.
...
Please think of the children :]"

 
THE PITCH
More locations and buildings to explore : sewers, subway, basements, the police station.
Unique creature(s), item(s) and map(s) and the beginning of the plot.
If you reach the 8 achievements, you can pat yourself on the back and say "I've won".
Some of those achievements are obvious, some a bit less, and some you will have to find by yourself.

THE LOG
ALPHA 4 CHANGES
---------------
Previous version focussed on Bugs and AI, this version focus on adding new content and new gameplay.
You can consider having winning this version of the game when completing all the Achievements.

FIXED BUGS
- Melee weapon Stamina penalty was not used properly.
- AI tried to get items where an actor was standing.
- Fleeing AI standing still and getting hammered when escape blocked (they now turn to fight).

GAMEPLAY
Maps
- New map : Sewers.
- New map : Subways.
- New map : House Basements.
- New map : Shop Basements.
- New building : Sewers Maintenance.
- New building : Subway Station.
- New building : CHAR Agency.
- New unique building & maps : Police Station.
- Switch on the power in the subway stations to open the gates to the platform and turn the lights on.
- Sewers & Subways Undeads invade their maps frequently and you never know when it happens. It's always dangerous down there.
- More links between districts on surface.
- Districts more specialized.
- Tuned map generation to better fit new default map size.
- New secret unique map. Do stuff there for Achievements.
Leaving Maps
- Entering maps/districts is a free action for the player - much less instant-death when entering districts/maps.
- Followers can abandon you only when changing district - eg: they won't leave if they can't follow you in the sewers, subway etc...
Player
- Different possible start positions, not just in your bed.
Action
- New : Build small/large fortification - need Carpentry skill.
- Barricading also repair fortifications - no skill needed.
- New : Spray scent - add/erase odors, read the manual, use them sparringly.
Skills
- New Skill : Martial Arts - improves fighting when unarmed.
- Carpentry at level 3 allows you to use one less barricading material when building fortifications.
Undeads
- New undead : Zombie Rats, found in sewers.
- New 3rd tier zombie.
- New unique : A local urban legend about something that lives in the city sewers. Kill it for an Achievement.
Food
- Fresh, Expired (75% nutrition) and Spoiled (33% nutrition, vomitting chance) food.
Firing
- Rebalanced penalty when Firing respective to Stamina.
- Ranged weapons have more chances to jam under the rain.
Items
- New : 4 spraypaint colors to tag with.
- New : Unique item to find in the Subway.
- New : Police Jacket.
- New : Stench Killer, erase parts of your stinking tracks.
- Bolts Amo item increased to 30.
- Dropping empty spraypaint discard it.
- Rebalanced Huge Hammer STA cost (since it is now actually used).
Map Objects
- New : Power Generator, switch all them On to restore power to a map or activate something.
- New : Fortifications.
FoV
- Modified FoV shape.
- Increased minimal FoV.
Scents
- Faster decay in sewers.
Misc
- Eater Egg moved to one of the Sewers map...
Scoring
- There are 8 achievements possible.

INTERFACE & MANUAL
- Actors description tells since when they are undead/still alive.
- Effects in Sewers.
- When an exit is blocked, tell who/what is the blocker.
- City Information shows notable known locations.
- Trackers display icons on map if spotted target not visible (in addition to minimap dots).
- Updated manual.

GRAPHICS & MUSIC
- New gfxs for new stuff.
- New eyes : Big nerdy glasses ^^
- 4 new musics.

OPTIONS
- Resized Maps down and decreased Populations.
- Simulate when Sleeping disabled by default - prevent "sleeping lags :(" complains, re-enable it if you change districts often.

AI
- New AI for new actors.
- Improved AI inventory handling of ranged weapons (no more insane stacking).
- Some AIs will use some exits (ladders, stairs...) when appropriate (wander, track, flee).
- Undead AIs can follow scents through the exits - they can track prey/master between maps.
- Zombie AI : fixed problem with using memorized smell sensors data - this improves their scent tracking ability a lot.
- CivilianAI and SoldierAI with carpentry skill : will sometimes build small fortifications on their own.
- AI not interested in Spray items.

KNOWN BUGS AND GLITCHES
- FoV is assymetric in some situations (eg: when standing along walls).


Have fun!
And remember, die with a smile!

THE DOWNLOAD
On the right.

THE BUGS
Report them.


Enf of post.

Saturday, July 17, 2010

Alpha 4 progress - YOU STINK!

Sorry but it's true...

YOU STINK!
Survivors do stink.
So you can use a spray to clean the scent tracks. Helps cover your tracks, but don't expect the ultimate anti-chasing-zombie trick. Remember some Zombies have a visual memory as well as a smell sense, other just bash stuff randomly around, so don't cry if the Disciple STILL followed you :)

The migthy "Stench Killer" item, found at your local Pharmacy or girly men bedrooms :
 
I also did add the "zombies bashing the objects blocking the exits" thing I mentionned earlier. It makes basements much less safe, which is good :) A tip : spray some Stench Killer on the stairs/ladder...

Also as someone asked, of course you start knowing the location of the Police Station :
Later versions will get Airport, Fire station...



STOP!
The evil feature crawl.
I have to draw the line somewhere. I think there's enough new stuff to justify a major version release.
I didn't put Traps, Alarms and some follower stuff (A*, build orders) as planned, those will get in the next version, probably 4.1 or 4.2, depends on how much bugs there are to fix....

New stuff always means new bugs. I promise I'll try to not release a cheesy buggy version this time :)


TEST IT PLEASE!
That's right. I made the mistake of releasing a half-tested version last time (feature crawl...)
I did my usual "implement A-test A" routine this time.
And I will try to test everything properly for a few days.
Might catch few problems, might delay it for a few days.
And then release it.

UNOFFICIAL CHANGELOG
The changelog as it is now. Might still change a bit, but this should be pretty much final.

ALPHA 4 UNOFFICIAL CHANGES
--------------------------
Previous version focussed on Bugs and AI, this version focus on adding new content and new gameplay.
You can consider having winning this version of the game when completing all the Achievements.

FIXED BUGS
- Melee weapon Stamina penalty was not used properly.
- AI tried to get items where an actor was standing.
- Fleeing AI standing still and getting hammered when escape blocked (they now turn to fight).

GAMEPLAY
Maps
- New map : Sewers.
- New map : Subways.
- New map : House Basements.
- New map : Shop Basements.
- New building : Sewers Maintenance.
- New building : Subway Station.
- New building : CHAR Agency.
- New unique building & maps : Police Station.
- Switch on the power in the subway stations to open the gates to the platform and turn the lights on.
- Sewers & Subways Undeads invade their maps frequently and you never know when it happens. It's always dangerous down there.
- More links between districts on surface.
- Districts more specialized.
- Tuned map generation to better fit new default map size.
- New secret unique map. Do stuff there for Achievements.
Leaving Maps
- Entering maps/districts is a free action for the player - much less instant-death when entering districts/maps.
- Following can abandon you only when changing district - eg: they won't leave if they can't follow you in the sewers, subway etc...
Player
- Different possible start positions, not just in your bed.
Action
- New : Build small/large fortification - need Carpentry skill.
- Barricading also repair fortifications - no skill needed.
- New : Spray scent - add/erase odors, read the manual, use them sparringly.
Skills
- New Skill : Martial Arts - improves fighting when unarmed.
- Carpentry at level 3 allows you to use one less barricading material when building fortifications.
Undeads
- New undead : Zombie Rats, found in sewers.
- New 3rd tier zombie.
- New unique : A local urban legend about something that lives in the city sewers. Kill it for an Achievement.
Food
- Fresh, Expired (75% nutrition) and Spoiled (33% nutrition, vomitting chance) food.
Firing
- Rebalanced penalty when Firing respective to Stamina.
- Ranged weapons have more chances to jam under the rain.
Items
- New : 4 spraypaint colors to tag with.
- New : Unique item to find in the Subway.
- New : Police Jacket.
- New : Stench Killer, erase parts of your stinking tracks.
- Bolts Amo item increased to 30.
- Dropping empty spraypaint discard it.
- Rebalanced Huge Hammer STA cost (since it is now actually used).
Map Objects
- New : Power Generator, switch all them On to restore power to a map or activate something.
- New : Fortifications.
FoV
- Modified FoV shape.
- Increased minimal FoV.
Misc
- Eater Egg moved to one of the Sewers map...
Scoring
- There are 8 achievements possible.

INTERFACE & MANUAL
- Actors description tells since when they are undead/still alive.
- Effects in Sewers.
- When an exit is blocked, tell who/what is the blocker.
- City Information shows notable known locations.
- Trackers display icons on map if spotted target not visible (in addition to minimap dots).
- Updated manual.

GRAPHICS & MUSIC
- New gfxs for new stuff.
- New eyes : Big nerdy glasses ^^
- 4 new musics.

OPTIONS
- Resized Maps down and decreased Populations.
- Simulate when Sleeping disabled by default - prevent "sleeping lags :(" complains, re-enable it if you change districts often.

AI
- New AI for new actors.
- Improved AI inventory handling of ranged weapons (no more insane stacking).
- Some AIs will use some exits (ladders, stairs...) when appropriate (wander, track, flee).
- Undead AIs can follow scents through the exits - they can track prey/master between maps.
- Zombie AI : fixed problem with using memorized smell sensors data - this improves their scent tracking ability a lot.
- CivilianAI and SoldierAI with carpentry skill : will sometimes build small fortifications on their own.
- AI not interested in Spray items.

KNOWN BUGS AND GLITCHES
- FoV is assymetric in some situations (eg: when standing along walls).


Have fun!
And remember, die with a smile!

End of post.

Friday, July 16, 2010

Alpha 4 progress - Building fortifications & other stuff

Good progress with a major gameplay feature almost done.

The Police Station.
It's done. There is one Police Station in the city.
There are 3 levels : the entry hall on the surface, the offices level and the jails level.
There are cops and "guests"...
Cops are way too busy with rioting zombies in town, so you can do whatever you want down there.
Won't show screens of the building maps, its more fun to find out what can happen there the first time you will play.

Trackers display improvement.
I thought it would be nice to have the tracker display information on the map as well on the minimap. This will also be helpfull for the no-minimap people.

It looks like this, for all the 3 kinds of trackers (the cell phone, the Z-Tracker and "the other one" for "those guys"). Those trackers are already in Alpha 3.21 btw.

The Z-tracker, here used in the sewers. Some maps are always in darkness, so this could prove handy.

The Cell phone with my follower.

And finally, the "other tracker" for "those guys", here called "Pink Bunnies".


Building Fortifications.
With the Carpentry skill, you can build simple fortifications of two kinds, Small or Large.
Basically pushable speed bumps ("Small") and big walls ("Large").
It eats quite a lot of planks, so you can't really abuse it when fleeing. Its more meant as a mean of building... forts... When you reach 3-Carpentry building those will cost you one less plank.

Here's how it works and how it looks like.
I improvised a little fort to protect the Police Station. I made use of the cover provided by the very strong park fences and the cars.


Fortifications are not very resistant, I don't want the player to abuse them. After all, they are just hastily assembled pieces of wood.
You can see through both kinds of fortifications, but can only move (jump) through the small ones.

You will be able to repair fortifications (with the barricading action) , and order your followers to build ones.
I still have to work on these two features.

AI and Exits.
I did not mention that, but most actors can and will use the ladders and stairs just like you.
Expect annoying people disturbing you in your secret basement if you don't block the stairs.
And yes, Zombies too.
Zombie do yet not bash objects blocking the exits,  I stil have to implement that.


End of post.

Monday, July 12, 2010

Alpha 4 progress - Subway & other stuff

Subway
Worked on subways to make them more interesting.
You can open/close gates and lit/unlit the subway by switching the power on/off...

...Closing the gates on someone will crush them instantly. Quite dangerous those gates.
(Yes there is a typo about turning "on off")
I might add a wrecked wagon somewhere I have the time.

City Information
Improved the City Information screen.

 
Basements
Some houses have basements. There is not much down there, but it might provide a safe shelter... or not.
The stairs here lead to the basement. Notice the Sewers Maintenance and Subway Station buildings on the bottom left of the minimap.

Surface Map
By now you should have noted that the default map size is smaller (50x50 vs 75x75). I had to resize the maps down, because of the new maps for each district (sewers, subways, basements). I kept the same population per map tile ratio. Small maps have some nice side effects on the gameplay I quite like.
I also specialized districts more to counterbalance the small maps (eg about 80% of shops in a shopping district on average).

Music
Did new musics, including ambient musics for some maps (sewers, subway). One or two themes for each song, a simple structure with repeats, some arrangement between repeats and voilĂ . I could always try to improve them later, but I'm not a good musician.
That's Guitar Pro 6. It's great for guitar based music -hence the name-, but most of the other instruments are horrible or sound badly tuned. It's cheap for what it can do.


Graphics
Trying not to abuse the gradiant tool in Paint.NET, but it makes lighting much easier. Funny I hated doing graphics before and now I'm learning and I like it.


Police Station
What Police Station? You mean the one where that guy is jailed? I still have to do it...

End of post.

Sunday, July 11, 2010

Alpha 4 progress - Stuff I can't tell about

Alpha 4 features more content, and actual "things" to do if you want to. 

Stuff I can't tell about
There stuff are "secrets" to be found by the player, so I can' t tell or show much about it.

There is that one huge map you'll have to find by yourself, and do something here. Its a unique map, only one per game. Find it and do something for two achievements (later will be part of the plot and win conditions).

There is that creature that lives in the sewers. Its a unique creature, only one per game. Kill it for an achievement.


Those parts are done.

The player wil also have the possibility to meet a certain "someone", in a specific "place" and will get the choice to give help to this "someone" in exhange for "avoiding some kind of trouble", but that will put you into "some other kind of trouble". Eh.

That is not done yet.

Stuff I can
There are several new things, major or minor, to look for in this screen...

Polished sewers maps.

What you can't see is the sewers water animated and the junk thing floating up and down. Useless but fun graphics improvements.
Not much new about subways I'll try to make them a bit more interesting.


Hey, I wasn't supposed to show that one...

End of post.

Tuesday, July 6, 2010

Other (abandonned) projects II

(first part here: http://roguesurvivor.blogspot.com/2010/06/other-abandonned-projects.html)
Warning : bunch of AI mumbo-jumbo ahead, you should know a bit about searching and planning. I'm too lazy right know to properly explain the algorithms and terms.

* BadBowl - an attempt at "serious" AI
For the life of me I can't get this thing running again, so no ingame screenshots, just code.
I like screens because they show I actually did work and its not vaporware :)

Idea : Solo Blood Bowl - Human vs AI.
Environement : Java, Eclipse.
Status : Abandonned.

Designing an AI for a BloodBowl clone sounded fun, so I did it. I developped the game engine and the AI at the same pace. For instance I did not implement passing yet but there was an AI you could play already against with moving, blocking, scoring, special abilities etc...
Actually there was THREE different AIs engine. 

1. SimpleAI
Engine: Selective tree search with static pruning.

Why "Simple"? Well doing a search engine with pruning sounded simple enough as I was sure I could do it since  I already did chess engines for instance. I knew it would be probably bad and slow, but at least I knew I could do it. Just curious about the results.

I knew the search space would be insanely large so I did pruning at each level of the tree. In other words selective search with static pruning. As usual with these kind of approach, the idea being that "good" moves should get more attention than "bad" moves. It sounds much less risky than in chess for instance, because you are searching only your own moves, not the opponent, so less tactical blunders caused by ignoring some move lines.

I don't remember the details (how did I handle turnovers in the search, risk taking with probabilities etc..).
Here's the actual main search method code in Eclipse, arranged into one messy large picture:

As you can see its just a standard search with hashing and prunning.
The resulting AI was mediocre at best and the AI thinking was way too slow.
As usual with tree searches, it was hard to determine what was the weak point causing bad choices : the evaluation function? the search/pruning?...
So I did number 2...

2. BeamAI
Engine : Beam search of plans.

Instead of searching a tree, this AI maintains a list of plans and try to improve them. I read about it in some AI papers, mostly about a Diplomacy AI engine by a French guy, and it sounded great.
In this context, a Plan is a list of successive AI moves. Improving a plan means adding a move that makes the terminal position better. The plans are initially seeded with all or a selection of legal moves.
Sounded great, easy enough to do and easily debuggable since I could for instance print all the plans at all times to monitor the AI decision process.
I had the brilliant idea to write the algorithm in the comments of the code, much better than random code screens, so here it is with a bit of code :

It worked quite well, producing occasional flash of semi-brilliance and actual planning, but was very bad at handling risk taking (either too safe or too insane) and tended to gravitate around a main line (with only superficial changes like one square move difference), ignoring alternatives (poor space exploration, exploitation vs exploration dilemna as usual).
As usual, how to balance the search vs the evaluation... Annoying. Nice actual AI but annoying. Really.
I was fed up with search methods and the lack of control, so I did number 3...

3. RulesAI
Engine : Rules from a Rule Book.

Rules. They are simple, easily controllable.. but predictible and about as un-AI as you can get. But what the heck, it actually works.

1. Each pawn is an Agent. An Agent has a Rule Book. A Rule Book is a set of ordered Rules, from the most urgent/interesting one to the least important.
2. When the AI wants to play, it ask all its Agents what they want to do and the winner (the Agent firing the highest rated rule) does its action.
3. When asked to, the Agent checks its rule book, line by line, until a rule gets fired, and return the resulting action.

Very simple and you can tune a lot of things (for instance a "strategic focus" to arbitrary reward some agent or some kind of rule). If you order and design the rules correctly it produce surprisingly decent AI for a quite low CPU cost when compared to search methods.
Example  of a Rule Book with actual rules :

Individual Agent actions made sense, problem was coordinating the different agents... For instance when attacking I could easily outflank it like you would do against a novice player (move the ball to the center, fix the opponent there, then escape/pass to the wings).
So decent tactics (it did tackling and support very well) but mediocre strategy, which is kinda a classic for strategic games AIs...

* Ok but uh what about Rogue Survivor?
Rogue Survivor AI = KISS : Keep It Simple Stupid.
Its similar to RulesAI presented here, but with much more stuff "hardcoded" and no real engine behind it.
It kinda works because agents are not supposed to cooperate a lot and just do their own stuff.
I did a post about it.

Since you were brave enough to read all this crap, here's a super secret RS screenshot for you :

(that part of 4.0 is not completed yet)

End of post.

Sunday, July 4, 2010

Alpha 4 - Sewers cont.

More work done today, mostly on sewers. A new building/room and graphics changes.

Sewers, the return.
In most districts there will be a "Sewers Maintenance" building linking to a similar room in the sewers. If you want to camp in the sewers that's the place to go. I wonder what's inside...
On the surface it looks like that and is easily spotable on the minimap:

Looks similar in the sewers:
(no-minimap people, I still have to write a shader for you)


Say hello to your new friends.
At low level you can easily get overhelmed. Its not the HP damage that is annoying, its their pack speed and the STA damage. Wait a bit and bring an armor.


Next.
Underground/Metro/Subway or whatever it is called in your local city-speak.
Make sure the new maps fit together and the gameplay doesn't lag... I had to reduce the number of rats already.

End of post.

Saturday, July 3, 2010

Alpha 4 - Sewers

Started working on Alpha 4.
A couple of bug fixes and balance stuff, and one major feature done.

Sewers and the Local Undead Rodents
Sewers are linked to the surface at various points. Use the ladder to enter the district sewers map.


 It's always dark down there. A flashlight would be useful.

Meet the local undead rodents. They are even weaker than Skeletons. But they tend to stay in packs. And they see farther than you in the darkness. And they smell you. And they are fast. And they'll overhelm the sewers unless someone volunteers to keep their population numbers low. Nice fellows.

You'll need to mark blocked tunnels with paint otherwise it's easy to get trapped.

I'm out of there. See you on the surface.

End of post.