|Bullets are now physical objects;|
They don't look like erasers like
this picture suggests, though.
One thing that I've done is go back to Valchion and altered the combat - shooting used to be instant, but I've changed it to be slow, actually visible, dodge-able bullets. The instant ray-cast bullet method worked well, but the combat kind of suffered for it, since you could easily run into a problem with your aiming and easily take a lot of damage for it.
Now you can actually dodge the bullets (as long as they don't
move too fast), which might actually make the combat more fun overall. I feel like the guards might be too stupid, as they just follow you around shooting at you, but I'm not sure - maybe that's fine for 'beginner' guards.
I think I'm going to rework a small bit of the saving system. Before, I was saving basically everything in your inventory, including your weapons, which were Python objects. This meant that any time I loaded a save game, it would actually load the weapons you had at the time of the save into the inventory, regardless of what was in there previously. This means that even if I updated the weapons to have more ammo, or have a higher attack rating, loading the game would override these values. I'll just save the acquisition of the items in the game rather than their actual stats. I remember that I wanted to save the entire item in case I did something with it (i.e. you upgrade your weapons somehow), but I don't think I'll actually end up implementing that idea (for now, at least).
I've also worked on the dialog system a bit to allow for questions, as you can see to the right. I wanted to have more dialog in the game - to have more of a feeling like you're not alone, and of less isolation. Hopefully I'll end up using it well.
Here's a little technical write-up on how the dialog system has been improved:
At first, your average piece of dialogue looked like:
['Hello!', 'I am the second message!']
where it would step through the list index by index. It got more complex with dialogue options, and it was kinda awkward overall. Now I use a dictionary that allows me to do things like jump between conversation points by name, as well as do questions more easily. Here's an example.
':start': ['Hello!', 'I am the second message!', 'QYou understand?', ':Ido', ':Idont'],
':Ido': ['Good! I am glad you understand!'],
':Idont': ['Oh, that is too bad.'],
The ':start' key is where the dialog begins. It steps through the list and displays the text associated with that key until the end, a string that has "Q" at the beginning, or a string that has a ':' at the beginning.
A string with a "Q" at the beginning indicates a question. The NPC crops out the first "Q" when sending the text to be displayed, of course. The next strings are the labels to jump to if you respond with YES (the first option, one index further), or NO (the second option, two indices further).
Labels have a ":" at the beginning. You can jump to a label by using a string with the name of the label in the text. So, I can do things like repeat loops. For example, something like:
':start':["QWill you save our village?", ":SURE", ":NOPE"],
':SURE':['Hurray! Here's a sword!"],
':NOPE':['Oh, no, bro! Are you sure?', ':start'],
Should give a continuous loop if you reply with no. I can also change the script depending on the number of times you talk or interact with an NPC, which is nice, too. I might make a video about it soon, though I just outlined it pretty well, I think.
Also, I fixed the text to work better in a window, so that full-screen mode and window resizing should be nicer.
Anyway, I'm also working on another game project - one reminiscent of the neon arena blaster, Geometry Wars. It's called Sustain (for now), and already feels pretty fun. It'll be an arena shooter like the aforementioned game, but with more twists on the original formula, like unique ships, weapons, and enemies.
I think I'd like to encourage team-play with it, which is something that never really happened with Geometry Wars. Anyway, I'll write about it when I have something a bit more concrete to show (like a video).
Finally, I made a little video cartoon with the Blender Game Engine. I chose the BGE over Blender itself because I couldn't figure out a way to easily and simply do UV animation in Blender. I do this kind of animation (which can be seen on the character's face and eyes in the cartoon) in my games all of the time, so it was a nice fit for me. Anyway, watch it here!
Thanks a lot for reading and even watching. Have fun!