Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1400881 Posts in 67835 Topics- by 61357 Members - Latest Member: Akira

May 17, 2022, 03:17:34 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsRocket Fist - Throwing one punch at a time.
Pages: [1] 2 3 ... 11
Print
Author Topic: Rocket Fist - Throwing one punch at a time.  (Read 20505 times)
DanielSnd
Level 1
*



View Profile WWW
« on: February 25, 2015, 10:17:32 PM »

So, I've been making little games (specially in jams) for a while now (You can find what I’ve been up to over here: http://danielsnd.itch.io/ ), and a couple of months ago I’ve started pursuing a Masters Degree, and that has been taking a lot of my time, I’ve been spending most of my days working on projects for the program and when I get home I want to put my time into a personal project, something more long term. It’s kind of hard to find the discipline to be always chipping away at something bigger when there’s nothing to make me accountable, I keep making excuses for myself and procrastinating, so I figured I would try and keep a log of it, to make myself more accountable and keep people who might be interested to be able to follow along with my progress… So, here we are!

The game in question is a little prototype I made to test developing for the PS Vita, I thought how cool would be to have a multiplayer game in which each player holds one side of the ps vita and battle each other in a local-multiplayer arena in one single device. Given the Vita has 4 buttons and an analog stick on each side it seemed like a good idea. A couple of hours of greyboxing later I had something playable, players could move around and shoot at each other, I made the shot super bouncy, and gave them a limitted ammo of 1 (They have to retrieve their weapon to be able to shoot again.), kind of a top-down cross between towerfall and air-hockey.

Even without art (Just cubes and spheres) the game was already proving fun, I had many 1x1 with friends from school and people got into the game super quickly, Since there was just 1 analog stick for movement and 1 button for shooting, the game was super easy to pick up and play, and while there was skill plays involved, less game-skilled people still managed to get some kills and have fun Smiley



So that got me excited about the game, I made it controllable via regular Gamepads, made a 4 player mode and took it to a couple of Full Indies (Indie Game-dev Meetup that happens monthly over here) and people enjoyed it as well, now I want to take it to the next level and flesh the idea out.

Well, that’s about it for the back story… From now on my plan is to write at least a little bit over here every day about the progress on the project. The plan is to have NO-ZERO DAYS of working on it. Even if I only touch it briefly to do a small little task, I must do at least something on the project every day Smiley
« Last Edit: December 02, 2015, 08:22:42 PM by DanielSnd » Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #1 on: February 25, 2015, 10:21:04 PM »



So my first day after deciding to write about it was art day! It’s been awhile since I modeled anything, my Maya installation on this computer didn’t even have my regular maya shelf D: so I brushed away the spider webs out of it and got to work.

First off, here’s the concept art I drew a couple of days ago for my lil’ robot character.



So far I’m thinking of going with the vector-like art style that I used on This Little Piggy, so I started by picking a palette



Made a selection out of a quick search for robot on Adobe Color and started making the geo for my robot based on my previous drawing



Once I got to this point I started to think what kind of details I would add in the sphere itself, specially since we’ll be seeing this guy from the top view most of the time, I started to carve out some sections of the sphere to get some indentations into it.



At this point I was already quite happy with him, and it started to get late, so I figured I’d stop there, but a friend suggested I tried adding some bolts, but since the character will be seen from very far away, I decided to leave it out for now and revisit the idea later.



(Top view with and without bolts)


That day (yesterday) I also got some minor tweaks done. I made some changes that I wanted to playtest to know if I should keep them or not, one is to the dash (Having it actually available at all times, instead of only having it when you don’t have a weapon) and the other is to the movement (different way of coding the movement, with acceleration and deceleration, gonna play toggling between the old movement code and new one and see which one feels better).

And that was it for yesterday :D
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #2 on: February 25, 2015, 10:22:11 PM »

Well, today I got some classmates to playtest the changes, and the results were pretty much what I expected. Dash being able to be used at any time took away the advantage of the chased (no spear), reverting back to the way it was previously. The new movement system does feel better, with more flow, some classmates actually enjoyed the old/harsher one better, but I think I’ll be sticking with the new one. I introduced a bug where the stun is not actually stunning people when using the new movement system, so I fixed that already.



Since our little robot now has a model, I decided it’s about time to get him moving, so today was spent rigging him. It’s quite a simple rig, pretty much the same thing I showed how to do

.

I also reverted the changes I made to the dash and removed the button I was using to switch between different movement systems, leaving only the new movement sysem. Tomorrow I’ll probably tackle the animation, and hopefully the rocket fist as well.



This is how my wall looks right now. I like to mash-up a Kanban board with a Bullseye chart to track my tasks. I keep the tasks that are higher priority for me at the moment in the center, and put the tasks farther away based on their priority. So every night I pick a task and move it to “In Progress”, and reorganize the surrounding tasks accordingly. I love post-its to keep my projects organized <3.

Well, that’s it for today Smiley So far this idea of “NO-ZERO-DAYS” has been good, it’s keeping me excited to work on the project every day and I’m enjoying writing about it ^^
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #3 on: February 26, 2015, 10:53:28 PM »



So, today I didn’t get as much time to invest in the project, but I still wanted to tackle a significant task, so I went on to animate my little guy. All in all I spent about 2 and a half hours and did a run cycle, idle, dash and hurt. (I don’t think I’ll use the hurt on the multiplayer as it’s 1-hit-kill, but did a temp version of it anyway because I’m thinking of starting to tackle the singleplayer mode this weekend).

I might be over-doing things in the animation a little bit, considering it’s top down view and we won’t see the legs that much anyways.







Well, that’s it for today, not really happy with the dash and the hurt, but it’ll do for now. Tomorrow hopefully integrate this little guy into the game and start working on his first first weapon.
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #4 on: February 28, 2015, 12:59:26 AM »

So, tomorrow there will be a game developers meetup back in my home-town, and I want to send my game to be played in it. For some reason I thought this meetup was going to be on the sunday, I was planning on spending today and tomorrow working on the art, to be able to show something nicer there, however when I got home tonight I discovered the meetup is actually tomorrow so my plans of doing art went out of the window.

I have been playtesting the game since the beginning without a proper “Win” condition. The original game mode is a last-man standing. Whenever there is only one player alive (or less), the game restarts for people to start killing each other again. I had some TextMeshes counting the overall score based on how many people you killed, but there wasn’t any system counting for a specific score to end, usually when playing with friends we would do it ourselves by calling “First to 10 wins!”. However this time I wanted to actually have a win condition coded into the system, with a message announcing the winning player.

Instead of the regular “First to X score” wins that we’ve been using, I decided to experiment with a proper “Last man standing”. Players would all start with X numbers of lifes, and over the course of the rounds, whenever there is only one players still with any lifes left, he’s declared the winner. If there is none, it’s a draw.

When I started coding that in, I decided to also tackle another related task, that was to separate the Game-Mode logic from the Game Manager logic. Initially it was all mashed up into the Game Manager, a singleton that keeps track of players and weapons. I created a new reference to a “GameMode” script in the GameManager and made a bunch of methods in the GameMode that I imagine would be useful in any gamemode I could think of (Like PlayerAdded, Playerd Killed, Player Died, Game started, Game Ended). Then I extended it in my “LastManStanding” player mode, coding specifics on each method for this mode.

This way I’ll be able to make the win conditions in specific scripts for each mode, instead of adding lots of if/elses to the player scripts and etc.

Well, now the game finally have a win condition, and things are looking more elegant in the manager scripts. It’s even creating the score labels automatically (a step towards being able to have a menu to dictate how many players are playing, I gotta start making things create automatically instead of having to make the level with them connected in there.)

Tomorrow I’ll work more on art and the post will be prettier like the previous ones Smiley
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #5 on: March 01, 2015, 11:23:49 AM »



Yesterday was a pretty damn productive day!

Last day of february, I realized I still haven’t made a game for the “One game a month” thing. I figured I could use some of the code and art I’m already working on for the Rocket Punch game and make a mini-game out of it. I could later on add this game as a challenge mode or something.

Thinking “challenge-mode” I thought of making the player hit targets using the bounces, without being able to move. So I’d give the player control of a tower and he’d have to rotate around and shoot. The player would have a limited number of rockets (more than 1 though) and would have to think on how to better use them, sometimes having to actually account for retrieving the rockets through the bounces to pass a level.

I started by making a editor-only script that would draw me a ray with showing the bounces. This way I’d be able to plan the levels better without having to manually try lots of combinations , I’d be able to see in real-time as I moved the obstacles what that would do to my bounces.



This is how the game was looking like around 2pm. I actually decided to

, and got a couple of visitors in my twitch channel, which was cool Smiley I should definetly do that more times when I’m doing more interesting stuff, because pretty much all of the 3 hours of stream was untangling code. To make this different game mode I had to modularize the code further, separating the weapon logic even further from the player logic, also the weapon-damage logic from the player logic. Since the original game only had about 3 files (Weapon / Player / Game Manager), it’s been a lot of work to separate everything but it’s incredibly satisfying.

With things divided into modular specialized pieces I’ll now be able to start working on the adventure mode and other game modes I was thinking about. Smiley All possible enemies/players/targets/destructables will be able to make good use of the healthController, which responds to the weapon script, that can be extended to make different types of weapons, which in turn can be controlled and used by any actor with a weaponController ^^

Alright, after long hours of working code I got things working as I wanted, I was able to use my tower to aim, throw rockets, destroy targets, and receive rockets back. I went back to the original game and modified it to work again with the new modular pieces, and it all worked as intended :D

Now, instead of making levels, and just leaving it ugly and having something completed but ugly to submit as my February game in “One game a month”, I decided to make things pretty, and take a break from coding to do some art…



I exported as an object my robot in the middle of his running animation and imported it into a new file. I made the grid in maya match the unity grid and started making 2x2 floor pieces, aligned to the grid. A regular square one and a half-square/diagonal one. Afterwards I raised a 2x2x2 cube to be a wall, and made a diagonal wall as well.

Once I had all my pieces I started placing them in my scene and snapping them over, but that was boring as hell, so I started to think of coding a little level editor when I remembered I had seen an awesome one before… I went over to UnityPatterns and grabbed Chevy Ray’s Tile Editor, which made setting up a first level a breeze.



By this time it was starting to get late, around 10:30pm, so I knew I wasn’t going to be able to finish a respectable game in time for the February submission, I decided to go back to maya and go on with my art, since I wasn’t going to have a game for tonight, I could at least finish up the art I needed for it.

Back in maya I cut a part of my robot out and shaped it differently making a quick tower. Then used the top part of the tower to shape it into a fist to make the actual Rocket Fist. If you like seeing how I love to reuse models to make things faster, I wrote a lot about it in my “Art postmortem of Infection”.



Here you can see all the modular pieces I made + the tower and a rocket fist.



I brought the new stuff into unity and played around with the palette for the environment a bit, also with some post-processing effects and this is what I had. Keep in mind that I was using a simple Unlit shader, and this is what my textures look like:



So I was kinda happy with it, but I decided to play around with a more interesting shader… I got the UNO Unlit Shader a while ago in the Asset Store, only used him for my latest Ludum Dare game, Bugged Out, but it was a great experience, and he had awesome/quick fake reflections I thought would look great on the little robots.



After a little bit of tweaking, a couple of particle effects and some color correction, this is what I had. I’m quite happy with the results, I’ll probably still mess a lot with the colors and lighting, but this is a great first look at what the game can look like Smiley And it’s funny to think how good it’s looking with pretty much just flat colors (the textures are just 64x64 color palettes). It’s crazy to see what a difference a shader makes, try opening the before and after picture in 2 different tabs and Alt+Tab between them! In the game itself the camera won’t be as close though…



This is closer to the distance the camera would actually be in the regular game, less details but still looks good to me Smiley

Well, that’s it for today ^^ It was a very productive day and I’m quite happy with the results.

Full HD version of the final mockup here
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #6 on: March 02, 2015, 12:47:16 AM »

Today was another incredibly productive day. This weekend almost felt like a game jam!

So I started the day by implementing the character model and animaitons.



With the basics in place I decided to make some particles to make it look/feel better.



As you can probably see from the difference between the 2 gifs, I also tweaked the dash a bit to feel better. I love how the dash gives back a little power to the chased, and I want to test to see what happens if I make it even more powerful. The dash right now feels way better than it did before, now I gotta see how it will feel in a play session with other people.

As I messed around with the player, his art and his particles I had to duplicate it for the other characters on the map quite a bit… So I decided to take a step back and tackle another task from my list: “Making the game mode responsible for spawning the players from a prefab”. So I implemented spawnpoints in the map and logic in the game manager/game mode to handle player spawning. That way I just had to change the prefab and all the spawning/color assigning/etc would be handled by the code.

So now my characters were all nice in place, they had pretty particles and they spawned in my level as they should, but my level was still made of white and grey boxes. I fired up the TileEditor and tried to make a level similar to the original one based on 2x2 tiles, obviously it didnt’match 100% but I think I got something interesting/close enough.



I’m not happy with the looks of the level though, It was looking quite weird with the reflections from the shader so I reverted it back to the Diffuse shader. I think I might actually end up giving up on the color palette textures for this game and actually paint textures… One thing is for sure, the environment is DEFINETLY TEMPORARY. I don’t like the way it looks.

Alright, so once I had my level there the art was officially in place, I decided to tackle other tasks in the list, considering I still have the challenge mode in my head from yesterday, I picked “Making weapons collide with each other”, as that would open a lot of puzzle possibilitise for the challenge mode. Turns out that it’s extremely satisfying to bounce fists out of other fists, I spend a long time just running around trying to bounce them, it feels so good when they clash ^^ later on I might add even more particles/shake when that happens

Gfycat of the bouncing fists



As you can see I also added some particle effects and animation into the Stun, but stunning the other player didn’t feel so fulfilling, he stayed in place for a little bit but most of the times it wasn’t enough to save yourself. And getting close enough to a player to stun him isn’t an easy task in itself, so even as a hail mary it was too risky to justify. One idea I had to try and fix that was to make the player lose his weapon if he gets stunned, so I decided to implement that, it instantly felt better, as the hand no longer stayed put as the stunned player shook around, it gently floated away no longer belonging to the player.

This however made quite easy to recover the weapon and killed the previously stunned player. Also it felt a little weird that I come into the player with this velocity and then when I hit them he just stays into place… I decided then to add a knockback to it, both players would kind of bounce off of each other when a player dashed into another with extra knockback if the dash results into a stun. Combining that to the fact that the stunned player would lose it’s weapon and it would just be floating around, that could create a run from both parts towards the weapon. This can lead to interesting player dynamics Smiley To make it a little more fair to the stunned, I also reduced the stun duration a lil’ bit.



Now I’m quite happy with the dash/stun Smiley It feels good. I obviously have to playtest it in order to see if it also feels good to play with, or if it’s too unbalanced/OP, but I have a good feeling about it. I think I might actually have it as a melee attack in the singleplayer mode, causing a smaller damage to enemies.

Talking about singleplayer mode… with all the modularization nd changes I made to the codebase this weekend, I’m quite ready to start implementing it Smiley And giving how fun it feels already to run around and throw fists into other fists, I can’t wait to experiment how it’ll feel to run around a procedural generated environment killing enemies with my fists! Will probably play around with that during the next few days ^^

That’s all for now Smiley this weekend was incredibly productive!
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #7 on: March 02, 2015, 11:08:38 PM »

So today I ended up not getting much time to actually complete tasks, but I did get a bunch of stuff figured out though.



I made a higher poly version of my little robot to test out the school’s 3D Printer, learned a lot about prepping models for 3D Printing, after a couple of plastic abortions I got something that almost worked. I had to add support structures using Meshmixer but apparently the support structure under the hand wasn’t enough and half of it fell down…



On another front, I exported the game back again into the vita, and got an unpleasant surprise… The particle shader apparently is a no-no for the vita, and all the particles were instantly gone. I felt a bit of lag on the first time certain particles were spawned (First kill, first level restart), and the animations did not play for some reason. I think I’ll probably have to port the game for the vita after actually finishing the game, as a simplified port, as opposed to actually building the vita version side-by-side with the other versions. In a separated project folder…


(The android version seems to run just fine on my 2 year old nexus 7 though... http://gfycat.com/LikelyCoolAmericansaddlebred  Come on vita ;[ )

Today after-hours at the school we did some playtesting of the latest version, with all the changes I made during the weekend I didn’t actually got to test with people Smiley And it was A SUCCESS! My classmates enjoyed the changes, the battle felt way more dynamic and I felt I’m in the right track. I specially loved the way the stun could be used to turn the tides of battle. From chased to chaser in a jiffy! It also didn’t feel overpowered as many times I would manage to steal the weapon just to have it stolen back from me the next moment, before I had a chance to fire it. Wish I took some video of this but it totally skipped my mind, I was having way too much fun xD Moral of the story is: The changes are staying Smiley

So, I got home and I still wanted to complete one task, as to keep with my no-zero-days. I could argue that all that testing could have been my task for the day, but I just picked a small task to do it instead. I picked the “ability to change sides of holding weapon with a button”. Now the player can press Y to flip the side he is holding his fist in. Useful for that shot around the corner when you don’t want to expose yourself.



Well, that’s it for today. Wasn’t crazy productive but it was something! The next few days I’ll have a couple of meetupsin the nights, so I won’t be able to do much as well, but I’m hoping to at least lay some of the ground-work for the singleplayer version each day. Next weekend I really want to get a single-player prototype of the ground.
« Last Edit: March 02, 2015, 11:22:22 PM by DanielSnd » Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #8 on: March 03, 2015, 11:20:11 PM »

So today was a busy day, woke up quite early to watch Unity’s awesome presentation. (So happy with the unity 5 release :] Hopefully I’ll be able to use it soon, can’t stand 4.3.7 anymore!). It was a long day too, I went to a local game development meetup at night and got home about 9pm, so I didn’t have much time to tackle a long task, so I just picked one of the small ones.



Today I made the dash “bounce off” of objects when you dash onto them. The dashing got a nice weight once I made it knockback out of other players, but that weight was totally not noticeable when we dash into a wall. Now with the bounce-off and the camera shake that aspect of dashing also feels nice and right Smiley Another little thing I did was mess a little bit more with the stun effects, made it bigger, less transparent and made it stay a little bit after the stun effect wears off, it makes more clear what just happened.

Oh, also when I got to the school I was surprised with a perfect print of my little robot, my classmate Marina Lúcio had figured out how to properly print it using support-structures and printed it for me :D Thanks Marina!



The playtesting in the meetup was nice, people seemed to enjoy the game and got lots of nice suggestions. More importantly I got to record some gameplay footage that I kept forgetting to record on the previous playtests, I recorded about 8 minutes of playtesting and edited it down to 1 and a half minute of cool moments. (Music made by Thiago Adamo PxlDJ for our game “Nessie with lasers”).





And that was about it for today, tomorrow will be another busy day, but I’ll try to tackle at least one small task, again.
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #9 on: March 04, 2015, 10:34:10 PM »

Today I was thinking about the singleplayer mode. Yesterday at the playtest I had some interesting conversations about the nature of the singleplayer mode and it’s challenges and I realized instead of the Celular Automata method I used in the Coop Action Game Kit (and was planning to use again for level generation in this game) I could actually go simpler and make a grid/room-based procedural level generator, like the one found in Binding of Isaac. Each room would feel more like the original game, in a sense that you can see the whole room at once, but would play more like a dungeon crawler, since you’re exploring new rooms and facing new challenges.



I found this interesting article on this kind of generation and made my own implementation, you can see the result in the gif above. Next up I want to implement the locking of paths and placing keys in the open path, but I might do that later after implementing a couple of enemies to test and see if this method actually feels good for the game.

Here’s an example of how a level can look, with an arrow on top of it showing the actual room connections/flow.



I didn’t have enough time to implement the actual door system to move around rooms, but shouldn’t take long. I might do it as I procrastinate the enemy AI task xD

Also some very small fixes today: Fixed a bug where sometimes the weapon would bounce itself back after killing someone even though the other weapon didn’t get bounced off. I want the rocket fist to be able to pierce through enemies as it kills them, so I made the actual weapon they drop when they die not be able to be bounced off of for a moment after death. Another thing I changed was that it was looking in a raycast in front of the weapon for other weapons to bounce off of, now it’s using a sphere-cast, so it will bounce even if the other weapon is not perfectly in front of it.

Can’t wait to get home tomorrow night to work more on this Smiley I’m having so much fun with this level generation stuff.
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #10 on: March 05, 2015, 10:00:35 PM »

So last night I worked on the generation of the rooms, laying out the rooms and connecting them through doors… But the doors were actually blue cubes that didn’t do anything, just represented the connection. So tonight, to have something I could actually traverse to test the singleplayer mode once I get some enemies done (Yep, I’m procrastinating touching the enemies D:) I implemented the spawning of players in the initial room and the actual door logic.



The door logic is quite simple right now, I might complicate it later on, adding logic for locking doors and the logic for coop (In Coop I guess doors should be either everyone has to touch it to pass through or when one pass through all of the player pass through like magic, not sure which). Right now each door has a variable for the connected door to it. And each of the door’s transform.forward faces inwards to the room. So when a player touches a door his transform position becomes the transform position of the connected door + the transform forward of the connected door. Then I trigger a DOTween DOMove on the camera to pick the relative position to the room that owns the connected door.

I think the room size I’m using (I pretty much just picked the 4 player version room and dropped in as a room template) is too big for the singleplayer mode… But I think might be good if it’s a 4-player coop mode. Which makes me think I’ll have to make different rooms for a possible co-op adventure mode than the ones I’ll make for the singleplayer mode =x. Anyways, I’ll experiment with smaller rooms for the singleplayer… But next step really should be the enemies, I don’t think I can procrastinate them anymore… They’ll define whether singleplayer is fun/a good idea or not.

This weekend I really want to get the singleplayer playable and hopefully fun, lots of work ahead!
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #11 on: March 06, 2015, 11:29:56 PM »



Today was quite a busy day, so I didn’t get to touch the project much, just took a little jab at a couple of quick tasks and a little test for enemy movement. Also did this pretty render of the robot for marketing purposes xD

So, the quick tasks! I made a function in the Game Manager to stop the game for 2~3 frames. I’m calling it when a player dies, when a player gets stunned and when the weapons hit each other. It helps it to give a little bit more impact. I made the stun capable of damaging enemies (Will not damage players on the arena, but will be used as a melee attack in the single player.)



Also made a quick cube as an enemy to test the enemy AI code. For now it’s just a small script that walks forward and changes the direction it’s walking towards every few seconds, also changes it’s direction if it raycasts a wall too close to it.

Tomorrow I’ll be working a lot on enemy AI/enemies, sunday hopefully I’ll have a couple of cool enemies working and I’ll be able to do a bunch of singleplayer rooms to throw into the level generator… By the time sunday ends I’m hoping to have a playable prototype of the singleplayer.
Logged

Muzz
Level 1
*



View Profile
« Reply #12 on: March 07, 2015, 12:27:00 AM »

This looks great!

Really liking the simple art style.

Seems like a really fun little project.
Logged

Cranktrain
Level 4
****


making gams


View Profile WWW
« Reply #13 on: March 07, 2015, 01:49:36 AM »

Yeah, the stylized art really works. Looking forward to seeing how the enemies will work.
Logged

tjpalmer
Level 1
*



View Profile
« Reply #14 on: March 07, 2015, 07:04:14 AM »

I agree this looks really great and looks like fun, too. The rocket fists are cool.
Logged

gamedev123
Level 0
**


...it's alright. Really...


View Profile WWW
« Reply #15 on: March 07, 2015, 07:26:02 AM »

The more I scrolled down, the more I liked!!!

Great stuff.

Great evolution.

It's come a long way in just two weeks!



I'm curious about the POV.  For instance, I really like the third person-style and zoomed-in views you've posted as opposed to a distant top view.  What are your plans in regards to this?  And what has your playtesting been like in regards to different POV?



Logged

Visual designer, gameplay and game content designer based in New York City.  I done work\'d on iPhone, Web, casual downloadable and handheld console games.
DanielSnd
Level 1
*



View Profile WWW
« Reply #16 on: March 07, 2015, 09:09:34 AM »

This looks great!

Really liking the simple art style.

Seems like a really fun little project.

I agree this looks really great and looks like fun, too. The rocket fists are cool.

Yeah, the stylized art really works. Looking forward to seeing how the enemies will work.

Thanks :D I'm happy with the way the characters are looking, still not happy with the environment, but it'll get there ^^. For now I'm thinking of having some enemies that just wander around aimlessly, some that wander around aimlessly and shoot projectiles while doing so, and some that actually seek the player and will attack the player. Also besides the rocket fists I want to make some different types of fists for the player to use Smiley Yoyo-fists (melee attack) Boomerang-Fist ( Doesn't go as far and tries to come back unless hit something), Bomb-fist (BOOM! :D), Mine-fist (To leave mines around, this one wouldn't be reusable, <3 Golden Eye).

The more I scrolled down, the more I liked!!!

Great stuff.

Great evolution.

It's come a long way in just two weeks!

I'm curious about the POV.  For instance, I really like the third person-style and zoomed-in views you've posted as opposed to a distant top view.  What are your plans in regards to this?  And what has your playtesting been like in regards to different POV?
Thanks! :D It's quite great to see some comments, sometimes I feel I'm just talking to myself while writing those ^^
That's a good question, I didn't playtest different POVs at all D: Since the game started by being a multiplayer deathmatch I felt it would work better for the whole set to be visible, so people could plan the bouncing of the weapons better, since it's such a big part of the game to be able to kill people by bouncing the weapons off of the walls in unexpected ways. However now that you brought it up, for the singleplayer it could actually work well to have either a zoomed-in-view or to give the player actual control over the camera. I'll definetly test it! Thanks :D

So far all the playtesting has been in the multiplayer deathmatch, the singleplayer doesn't quite exist yet. Hopefully by the time the weekend is over I'll have a playable version of the singleplayer to test ^^


This is how the game looked about a month ago, playing with some friends on the projector. I didn't get to record actual footage from the screen itself, so I only have footage of those old versions from cellphone recordings.
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #17 on: March 08, 2015, 08:35:06 AM »

Alright, so yesterday wasn’t nearly as productive as I wanted it to be Sad I did get some important stuff done though.

I implemented a simple Finite-state-machine based on coroutines, which made my life easier when thinking on how to implement the different behaviours. Each behaviour is a different state. I have Idle, Wander, ToPlayer, Hurt, Attack and Dead.

This is how a state looks like in my code:



So I can place state initialization code before the while, the actual update of my state in the while and state change code after the while and before NextState(); I can also run a second coroutine with the same while condition, for instance when my enemy is in the State ToPlayer there is a second coroutine running to see if he should lose interest in that player based on distance & time-since-last-hit..

The NextState(); code simply starts the next state coroutine based on a switch()



I did not invent this, but I can’t remember where I learned it from, it was somewhere around the web, I think a github was involved, so… Anyways, it’s my favourite method to do AIs, too bad I can’t remember where I saw it to credit it D:



I’m the green guy in this gif, and the orange one is my enemy (Using the regular robot art as a placeholder). You can see I can damage him by knocking him back and he damages me by simply touching me.

The Wandering is based off of the basic enemies Chevy Ray made for Antidote, a bunch of Ludum Dares ago. It was quite a simple/interesting way to do this sort of movement so I picked the basic idea and added a little to it to make it more random. It basically will move forward and every few seconds will check in a raytrace in front of him for a wall, if there is a wall he’ll find the reflected vector between him and the wall and start to rotate into that direction. But also every few seconds if he can’t find a wall in front of him that he should avoid, he’ll randomly decide to rotate towards a random direction. The result felt fluid and nice to me Smiley



For the actual pathfinding to follow the player I’m using Simply A*, it’s free, it’s nice, it works well, it’s not full of features I’ll never use… And it can create a grid on run-time, so it will work well with the procedural level generation :D



Governing both of them I also made a couple of variables to tell if I want this enemy to be constantly moving or move in intervals (move for X seconds then stop for X seconds kinda thing). With all of the variables I made to govern their behaviour, I’ll be able to make a lot of enemy variation just by tweaking variables, without having to hard-code it.



Here is how the EnemyAI variables are looking like:



If “Damages On Touch” is turned on, the enemy will damage the player simply by touching him, as long as the player is not currently dashing into the enemy (I made the player dashing into the enemy to be a simple melee attack).

Well, that was it for yesterday, today I’ll code some actual attacks for the enemy, I want to make some projectile attacks and some charge attacks.
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #18 on: March 08, 2015, 07:06:56 PM »



First off, I finished sanding my little robot and sprayed him with a Prime :D Soon I’ll be painting him *_*. Anyway, back to the programming!



I added a couple of different methods for wandering, the one I showed previously was the Random Direction one. Forward one simply will reverse the forward transform when it encounters and obstacle (will pretty much keep on moving in a line). Bouncing works like the weapons work, when he encounters an obstacle he calculates the reflected vector between him and the wall and rotates into that direction. This will help me to get extra different behaviours of enemies Smiley

I also finally programmed an enemyAttack class, and extended it into a enemyShoot class. In my enemyShoot class I made several variables to control different aspects of the way the enemies shoot, with that I can make a large amount of different behaving enemies without having to write extra code :D Here are some examples:





Certain things like attack interval are controlled by the EnemyAI script, but there is still a lot of variables specific to the enemyAttack.





Projectile Angle variation will add random variation to the shot, the bigger the number the bigger the random variation.





Angle of Attack will spread the shots within the desired angle equally. If I want to add random variation on top of this I can add projectile angle variation.





With Bullets Per Shot interval, it will wait for that amount of interval between each bullet being shot. If Shuffle Bullet Dir is turned off it’s going to shoot it in the order of the angles (First from the most extreme angle, then the next one, and so on) otherwise it’s going to shoot randomly through the angles.





If Ballistic is turned on the shots will lobby over and fall down in an arc. This coupled with projectiles that explode on contact could make for interesting enemies :D Ballistic time will control how long the projectile should take before hitting the ground and ballistic up controls how much it should go up on the lobby.





Wait before and after attack waits a moment before/after attack. If “Can Move During Attack” is turned off, this can be used to make the enemy stop for a moment while he is attacking.



Also did a charge attack, also extending from the enemyAttack script, so I can just plug the attack type I want for that enemy, I could also chain attack scripts together and rotate through them in the AI, in the case of a boss for instance. This is similar to what I did with the boss in Alva the Mighty.

So now I’m actually ready to start making enemies and rooms for the singleplayer. However I didn’t have enough time to actually make a bunch of enemy prefabs and rooms to test the singleplayer Sad Hopefully in the next few days I’ll be able to do it. Well… That’s it for now! It was a productive weekend, even if it wasn’t as productive as I expected.
Logged

DanielSnd
Level 1
*



View Profile WWW
« Reply #19 on: March 09, 2015, 10:29:31 PM »



Alright, so today I didn’t have much time, got home quite late, but didn’t want to drop the ball on the whole No-zero-days thing, so I decided to do some art, as it would be relaxing and I could have something showable quicker. I did some different enemies exploration on post-its and put them up on my to-do board. Picked one of them and decided it would be my task for the day.



This enemy I envision just going back and forth in the same spot (Wandering type forward, when he finds a wall he goes back the same direction he came from), he would have 2 states, in one state he is invulnerable, and you must avoid him, touching him results in damage and any weapon will bounce off of him. The second state he stops moving, tilts back and looks up, that’s the moment when you want to hit him. However you must do so in the “vulnerable part”, the back with the saws will still damage you and/or bounce weapons off if it.



The animations would be quite simple and he wouldn’t even quite need a rig. I’d separate the saws and just have them rotating constantly with a script most probably.

Well, that was it for today. Really short task.
Logged

Pages: [1] 2 3 ... 11
Print
Jump to:  

Theme orange-lt created by panic