Save and Load

Ever spend hours fixing something that turned out to be simple oversight? I just spent two hours on a portion of the “load” script that was loading chunks with additional info from all the other chunks. Hard to explain, but the answer was so simple (resetting a variable) that it’s just crazy! Anyway, info on bricks is now saved in XML format, and it shouldn’t take long to expand this to static or physics-enabled objects.

I have the option of saving the game in binary files as opposed to XML, but I would like to encourage modding of saved games and the world by the community. XML is human-readable and less of an impediment than binary. As time goes on I’ll try to expose more variables in these files for people to mess around with.

The end of LD voting is a week away, I’ll be sure to put up my post-competition game before then!

Chunkin’

In the last few days, I implemented head-bobbing and “chunk overrides”, which basically preempts the procedural generation of certain chunks to insert author or player created bricks and other items. Took a big chunk of time to do so, but it serves as a basis for level design and a save system.

My goal for today is to create the save/load scripts. In addition, I need a new function that pushes players after a moving brick hits them. If I have time, I’ll begin working on the ability to vault up to and over ledges.

Brief Update

My grad school finals period ended last Monday and now I have some time to work on the project. Problem is that without time constraints, production has actually been slower. I can probably say that I’ve accomplished more in the 48 hours of the competition than in the last two weeks! School may have been a factor.

Anyway, I’ve finished the world generator and added an algorithm that gives a varied but set seed. This world should start out the same for everyone who plays it. This was done to facilitate story. The cities, towns, farms, etc.  of the world need to be fixed and within a short distance of each other (excluding mass transportation) for the game to be cohesive and lack needless trekking through the world.

I’ve also scrapped both the rigidbody and scripted character motors which I created in favor of heavily modified C# version of the motor that comes with Unity. It’s actually enjoyable to jump around now!  For added challenge, the player is now much smaller vs the bricks, meaning the two larger block sizes are insurmountable when jumping at them from the base. I eventually plan to add “vaulting”, that is, the ability to climb up and over the smaller bricks by walking or jumping into them.

Sounds have been added to the bricks as they move, and dust particles fall off of them as they move. The actual sound that I am using is pretty grating. My experience with sound design is limited, so this will be fairly tricky to pull off.

Here is a plot of features that I plan on implementing in the next week:

  • Chunk Overrides
  • City Generator
  • Death
  • Player Cache and Saving
  • City Assets
  • Parachuting

Also, I hope to have a new player up before the end of the month.

    The Infinite Wall

    Just a few updates since last week that will lead to my Alpha 1.0 release of the game. First, I implemented an inventory system in which the player can store and use items that they pick up. This is akin to an adventure game inventory, and is specifically modeled after the one found in Amnesia: The Dark Descent. This will eventually include a feature where you can combine two objects together. Nothing groundbreaking, just a functional place to keep your stuff. I am considering the removal of any inventory limit. However, this kind of exploration-focused game may benefit from restrictions on how much a player can carry, since players will be induced to craft homes for themselves to keep their things safe, ala Minecraft. A full menu system has also been written, but the other features, such as the “Options” page do not work at all yet.

    Second, speaking of Minecraft, I have completely rewritten the procedural generation scripts so now not only is it hundreds of times faster, but the world can stretch out infinitely! (Within the limits of floating point numbers, that is). I just have to work out a system for caching the world as it is produced, and saving changes to the world made by the player.

    Third, The first-person controller has been rewritten so that it handles a bit better. No more super-sensitivity or slow jumping! I need to work on the ledge interaction with the player a bit though, making sure that the player is pushed smoothly when hit by an extending brick. A skybox is also in the works… it isn’t nice enough looking though, I will have to rework it.

    These changes will be reflected in an update in the near future. Stay tuned! Check out the Play page to try the buggy Ludum Dare #20 prototype version.