Windows Adventurer's Notebook

Hello. I would like help figuring out the most efficient way to code a part of my game.

I am currently working on a top down survival game, similar to Minecraft or Don't Starve, including mining and crafting items and such. I don't want players to have to guess or look up every recipe in the game in order to play the game. Basically I want the game to be playable without having to do any research.

My conceptual solution to this is an "Adventurer's Notebook" which starts with several entries about how to craft basic tools and supplies. The player would be able to search for notebook pages that randomly added new entries to the book, eventually completing the book and showing the player how to do everything in the game. The corresponding page would also unlock if the player crafts something that hasn't been logged yet. There could also be pages that detail information about monsters, farms or other things, outside of crafting recipes. This would effectively guide new players through the game without either giving them all the information from the start, but instead making them explore.

I have two ideas for what code I could use to do this efficiently. First, here is some background information:
-Every item is stored in enum "item". So an apple is item.APPLE and stone is item.STONE, and so on.
-The sprite for items that are displayed in the inventory and picked up from the ground are contained in a single sprite where each sub-image is a different item, corresponding to the same order of the item id enum. (Thus an item can be drawn by drawing the sub-image equal to the id of the item you want to draw).

FIRST IDEA:

Use a ds grid that contains entries for every item id, and a string that is the entry for that item:
Code:
string = "Apple: Eat this to gain 10 health.
You can find them on apple trees.";

//(or)

string2 = "Stone: A hard rock. Used to make stone tools,
and walls. Break cliffs to find them. They also generate
near the base of cliffs.
However, I would also like to show a picture of the item and the crafting recipes it is involved in, which is a bit more complicated to do in ds maps.

SECOND IDEA:

Create a large sprite where each sub-image is an entry in the book. That way I can make each entry look like whatever I want. However, I am concerned about the memory required for that, as I could have up to 200 sub-images.

Please reply if you have any suggestions for how to store the entries of the book or ideas for how to show this information to the player. The game needs to be able to keep track of which entries the player has discovered already and not, and the player should be able to find the entries they need easily. Also,it should be as memory light as possible. Thank you!
 
Last edited:

obscene

Member
I don't know why you coudln't do it with a big ds_grid but I'm sure it would be a complex machine to create.

However if you prefer the idea of just making each page separately as you want but are worried about memory size, the easy answer would be to use a background image of paper, maybe a few random wrinkles and tears you can move around and then just fill the pages with text. Create a script for each page to draw the text where you want it as well as arrange the paper graphics. Would be very little memory involved in that.
 
Top