I started work on a little exercise to improve my animations and slim down my code a bit. After looking at the horrendous code I put into the last FPS, I wanted to build a better engine. It's a simple FPS, WASD controls, Spacebar jumps, shift runs, left-click shoots, right-click uses "iron-sights". I went with a more traditional culling feature to prevent the gun from clipping through close objects, but that was about that. The animations are not recorded, they are hard-coded, which takes up quite a bit less space and processing power. Projectiles are little balls with a tail attached to allow them to be easily seen when fired. Due to the fact that they fly at such high velocity, the engine has to render the bullet in steps, between frame one and two the bullet may cover several yards, but will only be displayed at points one for frame one, and two for frame two. This caused the bullets to fly through the objects I was shooting them at, unless they were right at the frame area. I used an old code idea that casts a ray from the projectile, towards the direction it is flying, using the distance between frames as length (which is based off of velocity) and any object hit causes the projectile to turn on it's collider (i can't quite remember why I instantiate it without a collider, then later turn it on when it is supposed to hit an object, but i like the effect and it's not spending process power looking for collisions, just the raycast script i wrote), it also will be transported to hit.point, the point of raycast collision, and while maintaining it's velocity, and now having a collider, causes an impact on the target in proportion to the masses of both objects. Because the bullet's mass is so little and the dummy and target is slightly higher, they react naturally.
The other experiment I was working on a little was ragdoll effects, the dummy uses spring hinges on it's legs and feet, and the target "hangs" by a spring hinge, which you'll see in action if you shoot it or run into it.
Here's another divergence from traditional FPSs that I wanted to make note of: I tilt the camera when using Iron sights on the rifle. It feels strange at first, but later starts becoming natural and expected, I have even caught myself tilting my own head involuntarily to simulate the action in real life while playing. Most games pull the gun up the center of the screen to look down the rails, which you would have to, but when holding a rifle, you lean into it a bit, some head tilt is going to happen. Now, another thing that may be different, may not be so is that the projectile Actually comes out of the end of the barrel, that is to say that the bullet is instantiated at the end of the barrel, as apposed to the center of the screen, so when holding the gun at the hip, the bullet will not fire directly at the center of the screen, it will be slightly off to the right.
https://www.dropbox.com/s/40jfzlykcqn4wd7/FPS%202.zip?m
02 March 2013
20 February 2013
Non-update update
My progress this week has been lacking. I've worked my way through a few more menus and working on unlocking/upgrading, which is easy but terribly tedious. I started trying to revamp my game physics since I wasn't very happy with the speed of gameplay, plus getting caught up on blocks and whatnot. The idea was to use a constant force applied to the player to "push" them through the level at a constant rate of speed, despite objects. The biggest difference would be that if the player was pushed through a block or a bad guy without him destroying it first, it would cause the player damage, which, as it turns out, was incredible frustrating, and became increasingly more-so when dealing with jumping or mid-air acrobatics. So I opted out of that style and stuck with the old gameplay, but decided to add ramps. They slow the player down ever so slightly, but allow the player to elevate over obstacles without having to jump every half-second. Which leads me to ideas of special blocks that will cause the player to speed up (like a forward boost) or a slow down (like a sticky pit) when they move on/over them. Still a very early idea, and I'm not quite sure how to make it not look strange, we'll see. On a side not, I took a look at my coding for that side-scroller: Primitives, that I was working on months back, and wow, I was almost frightened by how bad it was. I made some cursory changes just to make gameplay a little smoother, which turned out nice, but there are so many other processes going on simultaneously that chew up system resources and they seem to bog the game down a bit, especially with camera movement. I'll have to come back to that one later on when I'm done with this current project. So after I made the changes I wanted, I decided it would be a good idea to take a look at the FPS I started work on so long ago, my first real project. It was like trying to read hieroglyphics. The coding is sooooooo bad! I have no idea what I was thinking with it all. I guess I never really understood the term "Hack" in reference to coding before now, but it's like every script was pure hack, just to make the game run. I have so many improved methods now compared to then that it almost hurts looking at it. Which brings me to my last point: I told myself back then that I would never re-write the code for that game because I had put so much time and effort into it, but now I know I will. I may keep certain aspects, but almost every script has serious flaws. That's all for now. More to come later.
08 February 2013
Menu Update
Just returned from a short little underway, (although it felt more like a month than two weeks) and I had a little time to spend on my game, polishing up a few glitches, and most importantly adding menus. The introduction is only a formality, it's not useful at all, clicking next through the three windows then finish on the last one will initialize a character on your computer. (it's a first-run script that will explain how the game works and what you should do, as well as some basic help, but right now I'm more concerned with getting everything functional.) once created, the help dialogue will never re-appear, unless you press "P" at which point you should close out of the game and restart, P deletes all stored data dealing with this game.
Ok, that being said, Here is what works: A simple list of actions that can be chosen if, from the main menu, you click on "Character", then click on either "Powers" or "Gadgets". for the time being, all powers are availible for use, in the release game, they will have to be unlocked, and then upgrades will be availible for purchase as well, none of those work at this time. so select the powers you want, based off the action button you would press (note that only specific actions can be assigned to specific keypresses/swipes. left tap is the "Jump" menu, while right tap is the "Attack" menu.) For the sake of porting to computer as apposed to android, use the wasd keys for swipe-direction, spacebar for left tap, and mouse left click for right tap. Makes sense right? Space-bar jumps, left click attacks...
So once you've selected what powers you want, you'll notice the only other working button on the main "Character" page is the "Gadget" button, with one gadget availible. Moving on, lets start actually playing this game, go to "Level Select" from the main menu, click 1, because thats the only one that actually works, and it will load up with a pause menu up, click either "Play!" or hit the esc key, use the keys and play through the level, destroy thin blocks and bad guys to get collect coins, the game is only 100m long for now, but you can hit the esc key again to pause the game(this will be equivalent to hitting the back button on android phones) select restart, end level, or character, here you can modify the characters powers, in game, but whetever you select here will not be saved, and will revert to your original selection once you've ended the level and return to the main menu. The in-game character button will only be for a visual reference and stats, and right now is only for debugging.
Right now the coins are saved to your computer when you end a level, thats the only time they are, I'll add a script that stores them any time the game window is closed, sometime later maybe. Got a lot more to work on, so let me know how I'm doing, Feedback drives me forward!
https://www.dropbox.com/s/wqv3ljp24rkvu5b/AndSS%200.04.zip
Ok, that being said, Here is what works: A simple list of actions that can be chosen if, from the main menu, you click on "Character", then click on either "Powers" or "Gadgets". for the time being, all powers are availible for use, in the release game, they will have to be unlocked, and then upgrades will be availible for purchase as well, none of those work at this time. so select the powers you want, based off the action button you would press (note that only specific actions can be assigned to specific keypresses/swipes. left tap is the "Jump" menu, while right tap is the "Attack" menu.) For the sake of porting to computer as apposed to android, use the wasd keys for swipe-direction, spacebar for left tap, and mouse left click for right tap. Makes sense right? Space-bar jumps, left click attacks...
So once you've selected what powers you want, you'll notice the only other working button on the main "Character" page is the "Gadget" button, with one gadget availible. Moving on, lets start actually playing this game, go to "Level Select" from the main menu, click 1, because thats the only one that actually works, and it will load up with a pause menu up, click either "Play!" or hit the esc key, use the keys and play through the level, destroy thin blocks and bad guys to get collect coins, the game is only 100m long for now, but you can hit the esc key again to pause the game(this will be equivalent to hitting the back button on android phones) select restart, end level, or character, here you can modify the characters powers, in game, but whetever you select here will not be saved, and will revert to your original selection once you've ended the level and return to the main menu. The in-game character button will only be for a visual reference and stats, and right now is only for debugging.
Right now the coins are saved to your computer when you end a level, thats the only time they are, I'll add a script that stores them any time the game window is closed, sometime later maybe. Got a lot more to work on, so let me know how I'm doing, Feedback drives me forward!
https://www.dropbox.com/s/wqv3ljp24rkvu5b/AndSS%200.04.zip
22 January 2013
New doo
Trying out dropbox for my uploads, Following in Nick's footprints, it looks and seems way easier. Here's the release of my latest (extremely cropped) game, I'll see what I can do about a pause function and maybe a power selection function for troubleshooting purposes, right now you can jump, and attack, and thaaaats about it :( couldn't leave the goodies in there all at once, lets see what I can do about fixing that.
https://www.dropbox.com/s/3aqr181p5v3643x/AndSS%200.02.zip
https://www.dropbox.com/s/3aqr181p5v3643x/AndSS%200.02.zip
21 January 2013
Update
This post is more for myself rather than showing off my progress, gotta keep my head in order. I've made several powers availible, but no way to really access them in game. I guess I'll have to start working on menus, saving coins/powerups, and purchases. Added several weapons: Basic attack (which is a simple melee attack), Basic ranged attack (low rate of fire or semi-auto/one fire per click), High speed ranged attack (has a form of bullet spread and much higher rate than basic ranged), Grenade like attack which lobs an explosive in the air and it xplodes on impact destroying blocks around it. Built a shield defense attack thing which destroys objects as the player runs into them, an optional powerup/coin magnet to help with collecting those powerups and coins, oh yeah: coins, which will assist in purchasing upgrades and new powers. Also fixed a bunch of the movement options, dashing, effects and even speed up the level as distance goes up to add to difficulty, and added another random level seed, which I'll have to keep working on. Visually the game is very plain right now, but I feel like I'm making some stupid-serious progress and barring menu's, will have a decently running game in only a few weeks. Thats all for now
19 January 2013
In and Out
Popping in to drop another post, nearly a month after the last. This is what's going on: Started on a 3rd game idea, a top down Zombie apocalypse recovery/rebuild game. Something in between a turn based and rts game. Decided to scrap the idea due to lack of interest and direction, just couldn't decide what I wanted to really do with it. Plus it turns out to not be an original idea anyways. So I did a little work on the Side Scroller ( Working Title: Primitives ). Got a couple cool features implemented, fixed a couple bugs here and there, and I've been turned onto another idea recently that will dissolve several other bugs I was dealing with, just haven't gotten around to it yet.
Prior to my last at-sea period I somehow also got turned onto the idea of Android programming. Honestly, I don't think PC gaming is dying, but i feel like tablets and phones are on their way to top fast, and I better hop on that bandwagon. So I started work on a little auto-paced sidescroller. The idea is sparked from playing several other sidescrollers on my phone which I dig, but just don't have the features I want, or at least not enough of them. So for now I present you my idea. (download for PC until i can afford the android license)
https://docs.google.com/file/d/0B3iGA1KoiI7fU1lTVTNUaGRwR0U/edit
Controls are pretty simple right now, it's auto-paced so there's no need for a forward key, instead right now use:
Space - Jump (tap again for double jump)
W - Dash up
D - Dash Forward
S - Dash down
L Mouse Click - Basic attack
in the android release space will be a Tap on the left side of the screen, L Mouse Click will be a tap on the right side of the screen, W will be a finger swipe up anywhere on the screen, and so on with the other dash options. Also right now I've kept all "super powers" in the game just to try them out, but the initial release will start the player off with only jump and attack. You'll have to collect coins / power up points to purchase upgrades later on, also, the idea is to have multiple options available, instead of an up dash i may add a different upwards attack. or a long range forward attack to replace the original. Special actions (other than attack and jump) will require a form of stamina, which will have to be replaced during gameplay, by picking up some form of potion or powerup. I have way, way more ideas for this game than I've put out now, but what I have is a pretty basic, almost seamless sidescroller. Also incase it gets confusing, You can only smash through the thin buildings, not the thicker ones, oh and can we say Random Level Generator? working on different setups for different levels, have 2 basic ones right now ( buildings, and some form of cave), as well as a difficulty setting thing (adding more unbreakable blocks as well as higher "buildings", you'll see)
Prior to my last at-sea period I somehow also got turned onto the idea of Android programming. Honestly, I don't think PC gaming is dying, but i feel like tablets and phones are on their way to top fast, and I better hop on that bandwagon. So I started work on a little auto-paced sidescroller. The idea is sparked from playing several other sidescrollers on my phone which I dig, but just don't have the features I want, or at least not enough of them. So for now I present you my idea. (download for PC until i can afford the android license)
https://docs.google.com/file/d/0B3iGA1KoiI7fU1lTVTNUaGRwR0U/edit
Controls are pretty simple right now, it's auto-paced so there's no need for a forward key, instead right now use:
Space - Jump (tap again for double jump)
W - Dash up
D - Dash Forward
S - Dash down
L Mouse Click - Basic attack
in the android release space will be a Tap on the left side of the screen, L Mouse Click will be a tap on the right side of the screen, W will be a finger swipe up anywhere on the screen, and so on with the other dash options. Also right now I've kept all "super powers" in the game just to try them out, but the initial release will start the player off with only jump and attack. You'll have to collect coins / power up points to purchase upgrades later on, also, the idea is to have multiple options available, instead of an up dash i may add a different upwards attack. or a long range forward attack to replace the original. Special actions (other than attack and jump) will require a form of stamina, which will have to be replaced during gameplay, by picking up some form of potion or powerup. I have way, way more ideas for this game than I've put out now, but what I have is a pretty basic, almost seamless sidescroller. Also incase it gets confusing, You can only smash through the thin buildings, not the thicker ones, oh and can we say Random Level Generator? working on different setups for different levels, have 2 basic ones right now ( buildings, and some form of cave), as well as a difficulty setting thing (adding more unbreakable blocks as well as higher "buildings", you'll see)
27 December 2012
Another Long Time
Here's my newest update: A friend of mine bought me the Steam mega ultra Indie pack for Christmas, and it's awesome! But his primary purpose for buying it wasn't for my enjoyment, and he admits to this too. He wanted me to try out other indie games and compare and contrast programming styles, features, gameplay, graphics, what have you. and it's working really well I'd say. Aside from some conflicting feeling about what makes up an indie game (should it be artsy? should it have a great story? should it be something reminiscent of an early 90's arcade game?) I've come to an overall conclusion: The game is built a specific way because someone wanted it that way. That is to say that these games are so thought over and built, and rebuilt, and rebuilt that they -ideally- are released in the image of the creators true idea. So why is it that sometimes the game doesn't function the way it's supposed to, not bugs. Esc buttons for instance, why not close out of dialog windows... close pop ups, pull up a main menu by using the esc key in the right context? The second part of my conclusion is a much deeper and hate filled one, Functions are not included in games not becuase the programmer can't do it, but because they won't do it. Either it's too hard or there's too much programming involved, or they just don't care enough about how regular people play games. Frustrates me, just saying... if you're going to spend all this time making the game exactly the way you want to, don't leave it unfinished, even little features like an escape key, or a "Help" button on the main menu can be the difference between your game being played or it just sitting on someones -cloud- shelf.
I'll be updating later, I've gotta finish up some implementation of buttons and a little more escape key action :)
I'll be updating later, I've gotta finish up some implementation of buttons and a little more escape key action :)
Subscribe to:
Posts (Atom)