Here are the things I’ve just done…
- Added a new light, the velocity light, which either increases or decreases the velocity of anything under it
- Added bullet animations and artwork and a flash animation for when they hit things
- Added a flashing light to the enemy that flashes and rolls at you
- Added an explosion animation for enemies when they get shot
- Added working 3D sound to enemy sound effects
It’s funny because none of these things were particularly challenging or time consuming, but the game seems way different now that it looks like something. Up until this point, I was playing the game with the debug view from the Farseer Physics Engine on, but now it can function as a visual element without physics debugging to show what’s happening in the physics world.
I am going to start expanding the level I have, adding some actual platforming, and I have been asked by classmates multiple times about adding a light that the player can control, so that seems like an obvious step to take. Moving platforms are something I’d like to have as well. It still isn’t that pretty, but I guess I need to get a video up of what it looks like. I know there are some friends that would love to play whatever I’ve got too, and I’ll make that happen this Thursday to get some advice on where I should go next, and of course to just get some end-user opinion.
I have some news about other projects that I’ll be posting about soon.
I was rather unproductive this week, thinking about what I was going to do and not getting around to it. I also had a lot of paperwork to take care of due to a new job that I will be starting in the Spring, so that left me not wanting to do much else. But! Now this the time for action, because I definitely don’t want to be left with a bunch of work to do when I have to start a full-time job! So, here is my basic rundown of stuff that I want to have accomplished by the end of this sprint:
- First, smooth out the two enemies I created and add an animation for the one that currently doesn’t have one
- Fix a bug wherein the flying enemy falls to the ground (has to be a simple logic error)
- Actually, I just looked at the code and that stupid bug was because I had already set up a timer which tells the enemy when to attack, but never actually implemented attacking, so a nice block of nothing was getting executed after a certain amount of time
- Player-controlled light or enemy-controlled light? I guess player-controlled would be the more “fun” one, so I’d be a fool not to do it. Mouse used to point in certain directions, or else arrow keys
- Player sprite! This can’t be put off any longer, the player needs to look like something or there isn’t a game
- Add new lights, this should be easy, just need to do it.
- Expand the levels, throw in more enemies
- I’m still debating this one, but a way to write messages to the screen, and have NPCs to talk to? This seems like it could be helpful for content, and also for future projects, but at the same time I kind of want to avoid it. Need to think more about this.
- Create a cutscene. Really want to do this, but if it doesn’t work out I’d be okay dropping it
So that’s a good list to work with I think. Really need to have something for people to play. And in the meantime I will try to get this thing running on foreign machines; I want to be present for the process so that I know exactly what end users have to go through.
NOTE: For better or worse, the following is a bit of a live development journal of working with the flying enemy that dives at you.
I just was working on the flying enemy that is supposed to dive at you, and implementing the attack method the first try he flew up instead of down at you, and the second try he just got onto me really fast and shoved me against a wall. Pretty brutal, pretty awesome actually, but I think it was most awesome because it was so surprising to me. Man, just tried it again and if you jump, the thing pins you to a wall and you slowly slide down it together while it’s pushing you against it. So awesome! However, now it’s very clear that I need a way to know when the player has been successfully attacked. Sounds like more collision subscription to me! Of course that would be the case.
Rather big progress today, actually. I created another enemy that rolls at you, and I also created a bullet class and physics component, and added collision category support so that everything which collides with other things has well-defined properties. I also added “crouching” to the player, so that you can fire at two different heights. The bullets work flawlessly with the gravity light, which makes them angle upwards. This could be used to shoot the enemy that flies above you. I want to add artwork to the rolling enemy so that I can call it done, and I need to add the concept of health to the player. The enemies have health, but the player isn’t affected by them yet. Next steps are to limit the amount of bullets and make each key press fire only one bullet, and also to add artwork to the bullets and perhaps a little explosion animation when the bullet is destroyed. And then I want to create more lights, finally, now that everything is working pretty well. I will make a firm decision on which lights to move forward with shortly.
I’ve been coming to grips with the fact that the enemy movement is not precisely as simple as I thought it would be. That said, I have got a pretty nice enemy that flies around above you without too much work, but the movements are not yet smooth, and it’s a bit weird because I’m applying forces to a physics object rather than simply updating position. It also doesn’t try to attack yet, and I also haven’t implemented the collision stuff that will handle damage and other effects of collision, but that shouldn’t be too difficult. I will be looking around online for different techniques to approach the enemy movement with and see if there are any good ones I should know about.
I also still need to implement projectiles for killing the enemy with. In its current state, the enemy won’t be easily shot unless it is trying to attack, or if the player can aim all around the screen. For now, simple left and right shooting is going to be the name of the game…