By Fobwashed 27 Comments
I've been up to a load since the last update but it's such a scatter shot of areas that I think it'll be hard to cover everything. I've started making notes in a separate document as I'm making changes and adding things which helps me keep track of what's going on to a certain extent. I'll try to hit the big notes.
The biggest of notes is that I've finally got saving and loading working correctly and in a hot manner. I'm working on both the PC version and the 360 version concurrently so this means I've got the save features working on both. Right now, it's still bare bones but I've got it all down to a point that I feel very comfortable with the system I've got set up and can choose to save whatever I want pretty much whenever I want. Saving is obviously a very important aspect of any game but I feel it'll be doubly so in my game as the mechanic will actually work with the gameplay. I don't mean this in just a basic, you can use tents to restore mana on a save point, or along the lines of say ink ribbons in old Resident Evil games. I've sort of decided that I'll hold off on revealing some core elements till I'm far along enough that I can show them properly so as not to spoil what I'm going for just yet. Anyway, In the short video I'm posting, you can see that the game can be saved at any point. It also runs in the background once the saving occurs so that on the 360, it won't slow anything down gameplay wise and can be used in a checkpoint fashion. Speaking of 360.
I've implemented XBL into both the 360 and PC versions of the game. As far as I know, XBL has only been implemented into a scarce few PC games, and I'm not even sure if it's of any use so I may or may not remove it from the PC version in the future, but as of right now, you can hit the home key and bring up the PC version of the XBL menu with friends lists and whatnot. The 360 version has a bunch of back end stuff going on for saving as well. The press start screen is only there so that on the 360 build, you can choose what save device to use. Funny enough, you can save my non-game to the cloud =P It's got basic functionality such as asking to change save devices if the currently selected one has been removed (though who would do this in a real world situation I have no idea).
Continuing work on the dialog system
I've been putting more effort into the dialog system and it's turning out pretty nice. I'm still going to need to make refinements (and an actual interface) but the system I have for implementing the lines of dialog is coming along nicely. To understand the actual unique things I'm trying to do with dialog, as with the save system, I'll have to show it once they're all in place together. I'm beginning to see why developers rarely show really early anything having to do with their games as it's embarrassing to show off pieces of an incomplete puzzle. While I'm also keeping this blog as a means to track progress personally, I also feel very self conscious of my work and really don't like how downright shambly it is at the moment. Especially the combat. . . That's sorta fallen by the wayside as I've gotten more and more into other aspects of the game, but seeing as how they're all equally important to me and to the experience I'm trying to create, I don't think that's really a bad thing.
Improvements to Loading
Previously, the loading would just be a fade to black then a fade back in. It's not easy to tell from these videos, and especially on PC since load times are non-existent on PC but some of the changes I've made make a pretty big difference on the 360 build. The biggest difference is that previously, I had the game fade to black, and THEN begin to load the next stage. The way I've got it set up now is a separate thread will start to load the game as soon as the fading begins. This actually makes the load seem a lot shorter since all that fading time is now loading time. Also, I've restructured my loading class so that I can run whatever I please on a separate thread as the loading is taking place. I expect for loads to take much longer as I add more content (textures, sounds, music, etc) so now I'll have an area to play around and give the player something interesting to do as the game is loading. Depending on how long the loads end up being, this can be just a variety of text (Call of Duty, Bastion) or something the player can actually interact with (Assassin's creed, Bayonetta). The player class is never released, so I don't think it'd be difficult to allow something like that to take place. The boxy fade in and out is just something I threw in as an example to someone else making a game that wanted to know how to do it.
More Back End Boring Stuff
As I'm doing all this, I'm constantly reading up on and trying to learn more about game design and programming. I've come across some really great stuff having to do with pathfinding and AI. This lead me to breaking off any objects in my game that have AI into a separate subclass. I've also learned that it's more efficient to run AI/Pathfinding on waves of enemies instead of all of them at once. What I mean is, if I have 50 objects that need to check paths, ai, etc, it's better to run say 10 of them per update (which happens 60 times a second) rather than all 50 objects every update. I've set up that whole shebang and it was an ordeal at first but now that it's implemented, I feel much more comfortable having the AI do some more complex stuff without worrying about it really slowing down the game. The pathfinding stuff I've been boning up on is also really damn interesting. If you're interested, look up A* (A-star) and you'll realize it's used for almost every game you play from civilization to starcraft to uncharted. Really great stuff. I can't wait till I can start designing some real enemies rather than mindless potatoes that just move towards the player and try to attack.
If anyone has some free time and wants to do something stupid for fun, I'd be much obliged if any of ya'll could record a couple lines of VO. Pretty much, I'm going to be using just greeting clips for NPCs to give the player a feel for the voice without voicing the entire thing. What I'm specifically looking for is maybe a neutral greeting, a happy greeting and an annoyed greeting. While it most likely won't make it into the final game, I need them for testing purposes since I need to start building it into the dialog system soon and I feel sort of silly recording a bunch of lines myself =P Anyway, if you're interested, just send em my way and I'll be sure to plug your name in any vids they appear in and in the credits if they actually get used in the game right proper -_-;;