Saturday, March 19, 2016
Post-GDC Shenanigans
This week was GDC: the Game Developer's Conference! I had a ton of fun and met a lot of great new people. I did not, however, work on Pierce. Next week, expect more developments with switches.
Saturday, March 12, 2016
Timers and Interfaces
(New build is up here!)
Hi all! Just a quick update before I head out to the Game Developer's Conference this weekend. You won't see a lot different in this week's build, but timers have been rebuilt. This does mean that the timed walls on level 10 should now NEVER BE OUT OF SYNC. Hopefully that is the case.
I argued with myself over exactly how to implement an interface through which things could be timed. I now have I timable interface (which I should probably rename ITimable) which is being implemented by a "timedblink" script which is attached to default walls. A separate game object, called a Timer, has a script which takes in a public list of game objects and, on a set interval, calls the "DoEachInterval" method of any component of type timable it can find attached to any of the objects in its list of game objects.
I know that there's probably a much neater way to implement this, but for now I'll see how this is working. Switches will likely follow a similar structure, with a switchable interface attached to things I want to be able to switch on and off and also an actual switch object that the player must charge through in order to trigger.
And as always, the charging-up noise is by Javier Zumer. I'm using it under this license and have modified it.
Hi all! Just a quick update before I head out to the Game Developer's Conference this weekend. You won't see a lot different in this week's build, but timers have been rebuilt. This does mean that the timed walls on level 10 should now NEVER BE OUT OF SYNC. Hopefully that is the case.
I argued with myself over exactly how to implement an interface through which things could be timed. I now have I timable interface (which I should probably rename ITimable) which is being implemented by a "timedblink" script which is attached to default walls. A separate game object, called a Timer, has a script which takes in a public list of game objects and, on a set interval, calls the "DoEachInterval" method of any component of type timable it can find attached to any of the objects in its list of game objects.
I know that there's probably a much neater way to implement this, but for now I'll see how this is working. Switches will likely follow a similar structure, with a switchable interface attached to things I want to be able to switch on and off and also an actual switch object that the player must charge through in order to trigger.
And as always, the charging-up noise is by Javier Zumer. I'm using it under this license and have modified it.
Sunday, March 6, 2016
Kill walls and players
(New build is up here!)
This week is just a small update. I added a level which incorporates kill walls, which are a wall type that I made a few weeks ago but never implemented. I realized in making this new level that I might want to figure out what I want to happen when the player dies *and* completes the level at the same time. For now, I've just made it difficult for the player to die and simultaneously complete the level.
I also know that I want to do away with timed walls. Instead, I should just make a "Timer" script that is able to call methods and change properties on given objects. That way I can continue to make timed walls, but I don't have to make *new* timed walls if I wanted to make, say, timed warp walls or timed bounce walls. Or even timed enemies. I can also have one timer be in charge of multiple objects. This way, I'll always know that two or more timed objects remain in sync with one another (currently, the two timed walls in level 10 sometimes become desynchronized).
Finally, I want to create switches which the player can flip by charging through. Three is often a magic number, and if I created switches then I would have switches, timers, and movement as three modifiers that can be applied to walls and enemies. I would also have bounce, warp, and wrap walls as three objects which help the player. And enemies, default walls, and kill walls are three types of obstacles. Finally, regular goals, linked goals, and enemies are three types of goals. Helping objects, hindering objects, and goals, with modifiers which can mutate all of the above. Once I have switches, I might be satisfied with features, and start rebuilding and re-editing levels.
Or maybe I end up not liking how switches play. That could happen too. Anyway, timers and switches will hopefully happen by next week.
Oh, and as always, the charging-up noise is by Javier Zumer, is being used under this license, and has been edited by me.
This week is just a small update. I added a level which incorporates kill walls, which are a wall type that I made a few weeks ago but never implemented. I realized in making this new level that I might want to figure out what I want to happen when the player dies *and* completes the level at the same time. For now, I've just made it difficult for the player to die and simultaneously complete the level.
I also know that I want to do away with timed walls. Instead, I should just make a "Timer" script that is able to call methods and change properties on given objects. That way I can continue to make timed walls, but I don't have to make *new* timed walls if I wanted to make, say, timed warp walls or timed bounce walls. Or even timed enemies. I can also have one timer be in charge of multiple objects. This way, I'll always know that two or more timed objects remain in sync with one another (currently, the two timed walls in level 10 sometimes become desynchronized).
Finally, I want to create switches which the player can flip by charging through. Three is often a magic number, and if I created switches then I would have switches, timers, and movement as three modifiers that can be applied to walls and enemies. I would also have bounce, warp, and wrap walls as three objects which help the player. And enemies, default walls, and kill walls are three types of obstacles. Finally, regular goals, linked goals, and enemies are three types of goals. Helping objects, hindering objects, and goals, with modifiers which can mutate all of the above. Once I have switches, I might be satisfied with features, and start rebuilding and re-editing levels.
Or maybe I end up not liking how switches play. That could happen too. Anyway, timers and switches will hopefully happen by next week.
Oh, and as always, the charging-up noise is by Javier Zumer, is being used under this license, and has been edited by me.
Wednesday, March 2, 2016
Oh no! Missed a Sunday!
Ack! I missed a Sunday! Sorry guys, but I moved last week. There was hypothetically time in my schedule to still make an update, but as time went on that window rapidly closed. I even got so busy I didn't update the blog until Wednesday! Sheesh! I should at least have *something* for the blog by this weekend, even if it's just a small update.
Oh, and I'll be heading to GDC from the 12th to the 19th, so it is likely that I won't have an update for the blog on the 20th (hoping to actually get *ahead* enough to have an update ready before I leave on Saturday the 12th though).
Oh, and I'll be heading to GDC from the 12th to the 19th, so it is likely that I won't have an update for the blog on the 20th (hoping to actually get *ahead* enough to have an update ready before I leave on Saturday the 12th though).
Sunday, February 21, 2016
Movable Type
(New build can be found right here! Please don't play with your volume turned to max. I'm still trying to figure out how I can fix the way things sound over WebGL.)
This week I added two levels. Well, I modified the latest level and added a new one. I realized that the function of the green warp walls is much better illustrated if you show them bridging an impassable boundary, like a default wall. Then the second set of warp walls shows how they can work over a distance and how they can be used to turn the player.
The new level uses some very crude boost plates. They were really easy to prototype, but I think if I were to finish them I'd need to work on them a bunch more. We'll see how they go.
Finally, I'm not using them in any levels yet, but I made some red blocks which simply kill the player upon contact. Total features so far:
This week I added two levels. Well, I modified the latest level and added a new one. I realized that the function of the green warp walls is much better illustrated if you show them bridging an impassable boundary, like a default wall. Then the second set of warp walls shows how they can work over a distance and how they can be used to turn the player.
The new level uses some very crude boost plates. They were really easy to prototype, but I think if I were to finish them I'd need to work on them a bunch more. We'll see how they go.
Finally, I'm not using them in any levels yet, but I made some red blocks which simply kill the player upon contact. Total features so far:
- Charging
- Goals
- Linked Goals
- Wrap walls
- Bounce walls
- Warp walls
- Boost plates
- Enemies
- Timed Walls
- Kill Walls
I think that's about it. There are other things I could imagine wanting to do (like objects which slowly get pulled towards the player, or switches that flip on/off when charged through), but for now I think I need to decide whether or not to cut some features. The recently added boost plates don't do much that can't be done with bounce walls, but they do give me substantially more control...
Charge-up noise by Javier Zumer. Used under this license. Modified by me.
Sunday, February 14, 2016
Sick Day today, but WebGL is here to stay!
Here's a link to a build you can actually run on Chrome and Firefox!
Hi all, I've been sick this week, and busy figuring out some things for my upcoming move, so unfortunately there's no new build this week. I did, however, have time to look into publishing the game using Unity's WebGL platform. Expect the audio for certain sound effects to be a bit harsh, and expect shadows to appear jagged. I'll see in future weeks if there's anything I can do about that. Due to the inherent differences between web player and WebGL, there might not much.
As always, charge-up noise is by Javier Zumer, and is being used under this license. It has been edited by me.
Hi all, I've been sick this week, and busy figuring out some things for my upcoming move, so unfortunately there's no new build this week. I did, however, have time to look into publishing the game using Unity's WebGL platform. Expect the audio for certain sound effects to be a bit harsh, and expect shadows to appear jagged. I'll see in future weeks if there's anything I can do about that. Due to the inherent differences between web player and WebGL, there might not much.
As always, charge-up noise is by Javier Zumer, and is being used under this license. It has been edited by me.
Sunday, February 7, 2016
Reconfiguring Wall Logic, and adding Warp Walls
(New Build is up here!)
This week I did exactly what the title says - I added a new wall type! Okay, it's not that exciting. I want to play around with a type of wall that simply teleports you to a set location. Not sure if I want to make it a one-way trip or not, though that could be interesting... I'm calling this new type of wall "Warp Walls." I now have warp walls and wrap walls, so it isn't confusing at all.
I didn't get to really play around with them since I spent most of my time reconfiguring how all walls work. I used to have the code governing what happens when a player (or enemy projectile) hits a certain wall on that player (or on that projectile, as the case may be). In other words, it was up to the player or projectile to figure out what it should do when it hit a certain surface. This duplicates code and is a bit counterintuitive. On top of that, it makes the player script and enemy projectile script longer than they need to be. When I realized I really wanted to have the code for the warp walls on the actual wall, I realized I should probably bite the bullet and make the change for all wall types. Hopefully this makes my code cleaner and easier to deal with for the future.
And as always, charge-up noise is courtesy of Javier Zumer under this license. It has been modified by me.
This week I did exactly what the title says - I added a new wall type! Okay, it's not that exciting. I want to play around with a type of wall that simply teleports you to a set location. Not sure if I want to make it a one-way trip or not, though that could be interesting... I'm calling this new type of wall "Warp Walls." I now have warp walls and wrap walls, so it isn't confusing at all.
I didn't get to really play around with them since I spent most of my time reconfiguring how all walls work. I used to have the code governing what happens when a player (or enemy projectile) hits a certain wall on that player (or on that projectile, as the case may be). In other words, it was up to the player or projectile to figure out what it should do when it hit a certain surface. This duplicates code and is a bit counterintuitive. On top of that, it makes the player script and enemy projectile script longer than they need to be. When I realized I really wanted to have the code for the warp walls on the actual wall, I realized I should probably bite the bullet and make the change for all wall types. Hopefully this makes my code cleaner and easier to deal with for the future.
And as always, charge-up noise is courtesy of Javier Zumer under this license. It has been modified by me.
Subscribe to:
Posts (Atom)