Friday, April 24, 2009

Thursday, April 23, 2009

Progress Report pt.2

Not much to report for today.
I figured out how to get images from PhysFS to SFML, and programmed a function to randomize the colours of character. Other than that, my time was mostly spend with optimizing various functions.
But tomorrow today should be more fun and interesting.
First I need to make a few more tiles, than I plan to write a few functions to create random maps. Probably for urban maps first. I think it is easier to first lay down a grid of streets, and from that work out how to fill the places between them.

And here are some colourfull people.
Photobucket

Wednesday, April 22, 2009

Progress Report

Yesterday I implemented PhysicsFS, a "...library [to] provide abstract access to various archives".
Basically it allows me to move all the various files (like tile graphics and sounds) into one zip archive. Not only does it look much tidier, but file access is also faster. It also makes modding support easier, because it allows the program to look for a file (for example a mission definition file) first in a mod directory (or/and zip file), and if it is not found there, then in the default place. This allows modders to replace files in a easy way. Added security is also a plus. PhysicsFS doesn't allows any access to files outside the game directory, which means that scripts can't wreak havoc on a users system.

Compiling and implementing it was actually easier than I thought... after I had read the Install.txt.
RTFM saved the day again. Now I just need to write or steal find a C++ wrapper.

Monday, April 20, 2009

Feature List

Disclaimer: This list is a work in progress. Items are unsorted for the time being. Changes may occur at any time.

  • Isometric 2d sprite based graphics.
  • Turn based combat.
  • Complex statistics for character.
  • Random maps.
  • To some degree random items.
  • Near future, dystopian setting.
  • Sandbox game play.
  • Varied missions.
  • And other, super exiting things.

You may have noticed the absence of any story related features. Well, I'm not a good author (read: I suck at writing) so anything related to the story has to wait until I can convince a friend, who actually is a author who wrote over a dozen books, to write all the stuff that is needed for a good game. But I'm not in a hurry. I got enough to do for now with coding.


Also, I wish I had the talent of the people from Eboy.

Image Archive

Photobucket Photobucket Photobucket Photobucket

Photobucket

To Do List

(0 = not started, 1 = planning phase, 2 = implementation started, 3 = testing, 4 = finished)

3 : Implement PhysicsFS.
0 : Create utility.cpp and move misc (log() etc) functions to it.
2 : Create a real map editor
0 : Move ConfigClass from entity.cpp to the new utility class
2 : Clean up the main function. Right now it is a horrible mess of horrible messiness.
0 : Create resources.cpp and move all resource handling functions to it. Search for a way to use zlib.
1 : Add sanity checks to LoadIni().
0 : Try to sleep more.
2 : Addapt render function for tiles with sizes other than 48x64.
0 : Clean up the DrawIso function.
1 : Add support for more than one map layer. Layers should be extensible.
1 : Add entity, item and light layer.
0 : Find a way to "blackout" rooms where the player hasn't been looked into yet.
2 : Create classes for the various types of entities:
  • structures. Generally only objects with limited interactivity. (doors) or none at all (walls, floors). Not sure if this is really needed.
  • container. Can hold other entities (not all types).
  • actors. Stuff which does things on their own. People, critter, robots etc. But also the player character(s).
  • items. Foodstuff, utilities, weapons etc. Implement last.
1 : Implement EntityStructures class.
1 : Implement EntityContainer class.
1 : Implement EntityActors class.
1 : Implement EntityItems class.
1 : Expect the spanish inquisition.
3 : Implement map load/save function. Expand as needed.
3 : Find a way to translate the mouse cursor position to map coordinates.
3 : Modify DrawIsoMap() to allow for arbitary (reasonable) window sizes.
3 : Implement ini load/save.
3 : Create isometric 2d render function.


Background