Sunday, August 18, 2013

There is infinitesimal chance that I will return to work on this (unless some catastrophe happens, God forbid.) Thank you for the views, and be reassured that it was never anything especially interesting or worthwhile anyways.

Sunday, December 23, 2012

Made mouse border less restrictive - instead of physically keeping the mouse to the game borders, simply keeps the in-game mouse to the borders

Added a sleep if thread updates faster than 100 ms in game

Big internal clean-up - maps and positions are now based on 1 as the unit, instead of 8, which was an artifact of the tile size

added mouse cursor to world map and position so you can tell where you are

in the middle of a big innermap overhaul; previously each world map square represented one inner map, but this doesn't really make sense because you can't get any correlating information between the world map and the inner map intuitively; now each inner map covers a 5x5 space on the world map. Working on accurate generation of the inner maps and stitching them together accordingly.

Saturday, July 21, 2012

Embarrassing that there's still a bug in pathfinding, but I fixed it. (only applies to player commanded move, where a check was being made too early).


Annual End of Summer Development Pause

School is starting in August this year, so the development pause will begin a little earlier this year. I've already distributed a playable version to friends, but I'm hesitant to put it up on the web without knowing what I'm getting into. Development will be scattered if not nonexistant for a while again.

Friday, July 13, 2012

Added the first two gods, Arur and Obmzhgak!
Added the quest system and tested it with a single quest! (After worshipping Arur, find and kill his nemesis. Then bring back his heart as proof.)

Worked on lighting a little bit: expanded the light radius of fire and used the canSee line drawing algorithm instead of straight distance.

Thursday, July 12, 2012

Wall building is in.
Big code cleanup again.
Working on lighting map a little bit: fires now illuminate their own tile and the surrounding ones:




Wednesday, July 11, 2012

Added other sentient races: if you attack them they'll attack you back. If you give them enough items, they'll follow you and attack who you attack! Otherwise they just wander around. They also do the same actions for other NPCs.

Added a give command so that you can improve relations with sentient NPCs.

Played with river generation a little more.

Played with factions; need to globalize them rather than having them be individual to each NPC. Or maybe not? Might be interesting to just average all the faction data from each type of NPC to derive a global faction relationship list.

Maybe at entering a town of that NPC type reset factions for all NPCs to their aggregate averages.

Tuesday, July 10, 2012

Swapped to nonfixed update time. Seems to be more consistent and fixed the "slippage" issue.

Added evasion and randomness to attacks.
Tweaked some stats numbers.
Added a UI item for the current building item.
Added UI feature so that if you click on the message list it expands/shrinks.
Edited hunger so that a full bar is 10 minutes - chikkberries refill 1/3 of this.

Sunday, July 8, 2012

Played around with throwing items a little today.

There's something weird with XNA and C#; I'm suspecting that if the program doesn't reach its framerate requirements, code is just dropped. On a map with 50+ NPCs, reducing a NPC's HP to/below 0 registers a kill from the Player Object perspective, but doesn't reach the remove NPC from the total map's NPC content in the NPC setHP method. This is obviously a huge problem, so I'll be reading up on how XNA works in more detail.

Friday, July 6, 2012

Exp and leveling is in; just need to adjust some numbers and add saving of it.

Added a few new items (Deer Pelts, Beds, Gems) and recipes (sword, armour, magic ring). Need to add deer dropping pelts, and gems as a rare rock wall drop.

Beds need functionality added, but should be easy.

Edit: saving is done, pelts are done. Things are so nice and easy now with all the code revisions!

Thursday, July 5, 2012

Revised and cleaned up building code in preparation for the big push to add more items/buildables/monsters.

Added the build menu; everything is pretty much set!

Tuesday, July 3, 2012

Lot of restructuring. Almost done with everything; just need to pass the additional dictionaries into the map  object , and handle the constructors for everything to take in the map object rather than each individual list/dictionary in the map file...

Pretty boring work.

As it is right now things are good though and speed (cpu non-usage) has been increased dramatically.

Redid the fog-of-war map stuff as well.

Monday, July 2, 2012

Cleaned up the fow map update again - should be much faster that it does at most something like 196 checks rather than a possible 40,000.

Player's equipped items are now saved as well.


Sunday, July 1, 2012

Big implementation:

Item saving should know whether or not they are equipables - DONE

I learned how to use XML to do this! The items now have an xml file that's pretty easy to edit and work with and also has the bonus of converting between different item child classes easily. Now all I have to do is call an item by it's name and it's completely implemented correctly from the xml file. This also means that adding items will be extremely easy!

Saturday, June 30, 2012


Checking off the list:
  • Inner maps should be saved in their own file. - DONE
  • Having some way to move from one inner map to an adjacent one. - DONE
  • Inner maps should only be generated if they don't exist already. - DONE
  • The seenFOW map doesn't get rid of old things once they've been removed. - DONE
  • Item saving should know whether or not they are equipables - do this via switch on the name I guess
4/5 isn't bad. Feeling ridiculously unmotivated so probably going to do some work on adding features to terrain rather than anything else.

Added some more map generation stuff. Dead trees for desert, bushes for grass land. The world doesn't look so sparse anymore. The fifth bug above needs to be fixed ASAP: can't even use consumables because they're a different type!

Did some cellular automata smoothing on the side areas of the inner maps. Looks not so obviously half-ellipse now.

Also prevented continuing on the title screen if no save file exists. A little polish makes the draft feel a lot nicer.

Friday, June 29, 2012


Things I did:
  • World generation is hard. My plans were to use the world map to make tailored inner maps, but actually implementing it is a pain. I have a little of that, but not enough. The maps generated are ok - not especially interesting, but good enough. Write-up and map generation write-up forthcoming I guess.
  • Changed things so that the worldmap is basically a static image and a separate screen so that you can hit "m" and see it (and zoom/move the camera around in it) and then esc to return to the local map and the game. This makes things a lot nicer.
  • More bug fixes with saves and map generation and blah blah blah. 
  • Straightened out the code. Nothing interesting feature-wise, but makes things easier code-wise. Wanted to make the inventory/equipment menu a little nicer, but it turns out that is hard too!

Things I need to fix (tomorrow?) before finally getting back to feature adding:
  • Inner maps should be saved in their own file.
  • Item saving should know whether or not they are equipables - do this via switch on the name I guess.
  • Having some way to move from one inner map to an adjacent one.
  • Inner maps should only be generated if they don't exist already.
  • The seenFOW map doesn't get rid of old things once they've been removed.

Feature adding I need to get to in order of what order it should be done in:

  • Make it really dangerous at night regardless of terrain: wolf spawns only happen on forests, and aren't frequent enough to force the player to seek safety.
  • Buildable menu - to select what B builds. 
    •      fire for woods
    •      rock walls for rock
  • Hunger - to force the player to scavenge. Saving of hunger.
  • Equipped stuff should stay equipped.
  • Exp system and leveling up. Saving for player stats etc.
  • More features for each biome type. Right now only rock walls on rock tiles, grass on grass, trees on forest. Maybe a few trees on grass/soil, dead tress on desert, bloodmoss (as enemy) on swamp..etc.
  • Enemy spawning - will be interesting again because I'll get to do some thinking about goblin towers, wolf caves, and roaming ogres on plains on the worldmap.


  • More equipment types.
  • More items.
  • More enemies.
  • Go back to inner map generation and ensure that if rivers are adjacent to other rivers, they connect. Rivers adj. to seas connect. Lava to lava connects.
  • Make lava passable again, but...If you walk over lava you should take huge damage.
  • River flow. If you walk over rivers, you should move with the river flow. 

More kludging to iron out some bugs from yesterday.


Worked on better inner maps. Implemented a cellular automata algorithm for smoothing - looks decent.


Wednesday, June 27, 2012

Separated new game from game initialization in general.


Kludged through map generation!!!


There's now a 200x200 world map, and a 200x200 inner map for every 1x1 world map.


Rather than generating them all initially on world generation, the inner maps (and the surrounding inner maps) are created whenever the player enters then. The inner maps are based on their neighboring inner maps so it all should link together quite nicely. Inner maps are currently just floors and walls, but additional generation can proceed smoothly from here after some code cleanup.






From the picture you can see the world map, a zoom in, the inner map, and another zoom in. The difference in coloring is because I waited till day in the world map but took the screenshot at dawn in the second.


The inner map is a little laggy - something like 60% * 200 * 200 = 24000 wall objects to keep track of. Hopefully it'll be better when I turn fow back on and update doesn't need to draw all of that.
EDIT: And turning back fow does indeed remove the lag. Whew!

Tuesday, June 26, 2012

To clarify for yesterday - saving now incorporates item/wall hp, as well as inventories of Player and NPC; still need to add effect saving, equipped item saving.

Worked on world gen - rather than just using a single Perlin Noise array for worldgen, I've incorporated many of them and tried to get stuff generated procedurally from it. I'll write a proper post on this later because it's been a lot of fun.

Here's a picture of what I've gotten so far:


Working on river generation right now, which are in lava tiles for easier visibility. Black is "ice" tiles, but I haven't made a tile for them yet.




Monday, June 25, 2012

Worked on saving a little and worked on worldgen a bit