GMC Jam Discussion The Brilliant GMC Jam #7 Discussion Topic

Status
Not open for further replies.

Bingdom

Googledom
Just a little FYI.

For our Jam entry, Paint Bonanza, there's a chance that the paint will still remain after starting another level. Just double tap F1 and you should be good.
I haven't exactly pinpointed the issue. Before anyone asks, I'm definitely clearing out my surfaces before I use them and even before I destroy them (draw_clear_alpha).
 
O

orSQUADstra

Guest
Do people tend to write something to each game? Or only the top 10?
(Cuz I have a feeling my one will be the 26th out of the 26, but I still wanna hear people's opinions about it ;w; )
 

sylvain_l

Member
Do people tend to write something to each game? Or only the top 10?
(Cuz I have a feeling my one will be the 26th out of the 26, but I still wanna hear people's opinions about it ;w; )
with only 26 entries, I should be able to play them all and write something for each (doesn't garantee that each comment will be highly valuable so :p)
 

Dr. Wolf

Member
You know, now that I think about it, I'm not sure I remembered to put in the code to go on to the next level in DriftWar. So I thought I'd let people know: if you find that you've gotten all the flags, but the game hasn't gone on to the next level, or that you're stuck due to a bug in the pseudophysics-- there are still one or two that I didn't get around to fixing-- or if you just want to move on, you can press NumPad 1 (with numlock enabled) to go to the next level manually. Sorry for any inconvenience!
 

HayManMarc

Member
Postmortem, anyone? Since I didn't keep a devlog, I'll go ahead and take the liberty to write one up.

It's pretty long-winded, so here's a spoiler. :confused:
The theme worked out kinda nice because I was already thinking about making a physics-based game. And I wanted to make a tank, so I started in on the tank.

The tank is 4 parts: the tank body, the gun barrel, three wheels, and an animated tread sprite.



(All sprites shown in this write-up are scaled up 650%.)

The wheels are three separate objects and the tread is just a 3-frame sprite (not an object), but whatever. Anyway, I used the tank body as the base fixture, then created and attached the three wheels and the gun barrel as revolute fixtures. (Actually, I didn't attach the gun barrel this way at first, but I'll talk more about that later.) The tread is just drawn into place. So, there really isn't a tread moving the tank along. It's just wheels covered up by a facade, like a cheap tank toy from the dollar store. :D

I made a bunch of ground sprites, all using this sprite for the base texture:



This sprite is 32 x 8. I cut this into an 8 x 8, 16 x 8, and a 24 x 8 to make 4 different lengths of ground. I also made slopes of 1 to 1 (45 degree angle), 2 to 1, 3 to 1, and 4 to 1 for both directions with the same dimensions. So, I ended up with 12 different ground objects. However, I didn't use the 45 degree angle (8 x 8 slope) because the tank wouldn't go up the incline very well and had a tendency to tip over. I didn't want to code for tipping over, so I just omitted the 45 degree angle. Also, being pressed and stressed for time, every piece of ground you see in the game is an object. :eek: LOL! :p I should have used tile sprites for the ground underneath the top most layer of ground objects (ground that will never be collided with), but it's a jam game and things happen.

Now, I had to get the tank to move around like a tank. I got the wheels turning with the left and right arrow keys and the tank moved back and forth, but it would slide down hills. Even if I increased the density of the tank and the friction of the wheels, it would still slide down the hills. I finally found phy_fixed_rotation and used it on the wheels to turn them on and off depending on whether the player was pressing left or right. That stopped the tank from rolling when not moving. That took a long time for me to figure out.

Time to make the gun barrel move and shoot. Being a noob-iot to physics, I first tried to do this with just a sprite. Got it all working (after much lengthdir hassles)... the barrel would raise and lower, the bomb was coming out the tip, the bomb was finally going in the right direction to match the barrel angle, and it's speed and travel distance were adjusted to a comfortable level. It was just fine, until I noticed that nothing would collide with the gun barrel.

Oops. :rolleyes:

So I had to make it a physics object. And I had to use physics code. And I spent FOREVER trying to get the thing to rotate in the right direction and stay relative to the angle of the tank body. It was quite the frustration-fest. When it finally worked, I nearly stopped everything to throw a celebration party.

So, after painfully getting the tank to move correctly using physics code (coding that I've only barely messed around with a couple of times), I needed to make it a game. It was fun to drive around on the slopes and shoot bombs, but there was no game. I needed an enemy.

What better enemies than ninjas? I don't know. There probably isn't. Ninjas are awesome enemies.



What started as a simple sprite, grew into a monster. AI is a cold-hearted, unforgiving... well, you know. I ended up with an action_state, a move_state, and an attack_state... a big mess of code that I just simply got tired of trying to get right. I got it to a place that kinda worked, and the ninja action was kinda funny to me, so I said, “GOOD ENOUGH!” and moved on. It's a jam game and things happen.

It still wasn't a “game” though. Earlier on, I was kinda stumped, so I asked the wife what she thought. She suggested shooting vegetables at the enemy. That sounded fun, so I made sprites for: pea, corn, tomato, potato, turnip, and watermelon. Watermelon? That's not a vegetable, but shooting watermelons sounded like a lot of fun.

At this point, I only had about 7 hours left. There was no way I was going to make all those ammo types available, so they all got scratched. Except for the watermelon. I could make the watermelon be the crux, the thing we're fighting for!

And there's how “Retreadz” came to be. :banana::bunny::banana:

The last couple of hours was spent on creating the gui elements, implementing the stat screen between the levels, and a mad dash to find some music to try to cover up the deafening lack of sounds. The music helped a lot, but booming sounds, motor sounds, and ninja sounds are sorely missed.

I'm not disappointed. I was only able to use two out of the three days to make this. That third day would have helped a lot. Thanks for reading, hope you enjoyed it. Here's a potato. :potato:

Now, to play your games and assign semi-arbitrary number ratings to catagories and write reviews. This should be fun! See you in the voting topic! Good luck to you and your game!

Screenie with GUI (half scale -- so hard to capture a good action shot):

 
Last edited:

Zodaris

Member
I'll write a postmortem of sorts as well. Though I'll only talk about how the AI works, as @Alice showed interest in that and I have 2 sheets of graph paper filled up with my attempts to figure it out and I may as well not keep it buried. Also, on a note to the inspiration, yeah that was part of it. I actually made a tanks game for the graphing calculator about 7-8 years ago in high school because I liked that game. Seeing the theme made me go "Well, I did it on a calculator, how hard could it be in a game making engine?".

As stated in the README, the first 2 shots (and the first 2 shots after every time it successfully kills the player) are random. I pick a random angle that's facing the player, pick a random power, move it a bit, then fire. Usually this is a garbage shot but while testing it HAS landed a hit before. Though that's very unlikely. Note that the later phases don't move the AI's tank around. This is to balance out how accurate it can be. So the player has a better chance to hit the AI before the AI can kill the player.

The more interesting stuff will be in this spoiler. Warning, there be math ahead, haha.
To start, I'll say that as I went through to figure out the next 2 equations (the second really just being a more complete version of the first) I wanted to find both the starting velocity, and the starting angle. The only known variable I had, was the distance between the 2 tanks (found via the point_distance() command). It took half a page before I realized that I simply couldn't come up with a formula for each, since 1 variable was just not enough. So I had to pick a random angle to go off of, then find how much velocity it would take to hit the player.

I used these formulas to find my answers:
y = V[initial Y dir]t + 1/2a[gravity]t^2
x = V[initial X dir]t + 1/2a[wind]t^2 (note that wind was considered 0 for the simpler 2 shots)
V = at + V[initial] (used for both x and y pieces)
V[initial Y dir] = V * sin(angle)
V[initial X dir] = V * cos(angle)

Through a lot of of replacing and algebra, I got the following equation for the second phase of shots:
V = sqrt((4.9 * x) / (sin(angle) * cos(angle)))
Which, if you test out in the practice mode of my game, you'll find that with 0 wind this should land a hit every time. (Assuming you pick an angle that is facing the target enough that it'll move towards it and doesn't need more than 100 power.)

Now, for the final shooting phase, I made a formula that does account for the wind. And it works.... most of the time. The problem is that due to having to pick an angle, it could sometimes pick an angle that would require something like 272 power to land the hit. But it's maxed at 100, so it will miss. This usually happens when the wind is blowing very strongly against the intended direction, and the angle is a little high. SOMETIMES it still misses even when not maxed out by the power limit. I'm not quite sure what happens there though. Maybe a negative where there shouldn't or should be one. Wasn't really able to recreate it nor had the time. Figured it'd add some good variance so the player isn't nuked at turn 5 every time.

Here's the formula that shouldn't miss:
V = sqrt((grav ^2 * dist) / (2 * sin(angle) * ((grav * cos(angle)) + (wind * sin(angle)))))

If you guys would like, I can make some images showing my work then put them into here. I'll show you some of the assumptions I had to make in order for it to work. Like the target being at the same height as the source, so ending y velocity is just the negative of the starting y velocity. This actually helped me avoid a lot of sin/cos messy stuff.

Hope that all made sense and was interesting! I just wrote this in the moment so I didn't sit down and figure out how would be best to share this.

Thanks again to everyone playing my game!
 

JacobV

Member
Hey everyone, VERY IMPORTANT message for you while playing my game; If you are in combat with an enemy, DO NOT try and talk to an NPC. If the enemy hits you while you're talking, it will break the game due to an oversight in my code.
 

Micah_DS

Member
BTW, if anyone is interested in listening or downloading the track from my game, here it is.
I'm a bit disappointed in myself though, because I know I can do better mixing and mastering. Hopefully it's just me being picky and it really isn't as terrible as I feel it is. And musically, I guess it's good-ish.

I put some info in the track on Soundcloud saying the following, but I'll say it here as well:
The music doesn't fit the game too well, and this is because my original concept was an action-based game, not a puzzle game. I made the music too early and thus stuck with it. The original game was going to have roytheshort clones getting shot out of cannons to intercept flaming potatoes getting shot out of other cannons, but it was too mechanically involved for my small amount of time available.

(EDIT: eehh.. yeah, after listening more to my track, I realized I got it 'too loud'. An overly loud mix is very bad; it shows I didn't mix as good as I should, nor did I master correctly.
The 'space' in the mix is too upfront, and constantly (this is REALLY bad - leads to listener fatigue), the bass is too overshadowed by the rest of the frequency spectrum, the mix isn't very clean, and other things. The song is probably not a keeper. Hopefully I'll do better next time, but maybe I expect too much from myself with just a couple hours... good music complete with proper mixing and mastering takes time and effort.)
 
Last edited:
Now that my exams are done, I am eager to get in and play some of these games.
I hope even though I didn't get to spend much time on it, some of you still enjoy what I tried to make. I wasn't very inspired by the theme so I tried to make up for it with presentation. Spent majority of the time in the art and I'm mostly happy with how it turned out. I would have liked to have added some extra backgrounds to parallax and some art to go over my ground objects at least though.
My AI kind of sucks too, the floaty enemies in level two are wonky and silly, I just had no idea how to make them work the way I wanted in box2D. Oh and speaking of levels. For anyone wondering about them, after I made the tutorial, I made the first level, and last levels first with the intention of making some more levels to put between them but a combination of running out of time and realising people might get bored quickly led to the decisionto leave it as is.
Lastly, while I'm happy mostly happy with how my main music track turned out(given it was made quickly on the last day), I still would have liked to have written a separate level theme if I had the time and the inspiration, but in that last hour I had nothing left.
Anyway, here's my one track if anyone is interested.
https://soundcloud.com/siolforthejackal/impulse-title-screen
 

dadio

Potato Overlord
GMC Elder
Yeah, I wasn't a big fan of the theme myself this time.
I fiddled around with something for a bit, but couldn't really get into it/ feel inspired by it either.*

I kinda feel like the best themes are ones that are general "scene setters" rather than dictating mechanics.
Hoping the next Jam theme can be broader.

*Least dats my excuse fer being a lazy bum dis time and I'm sticking with it lol
 
Yeah, I agree. I really thought the first two jams here had great themes. "Everybody is Dead" and "You are not the hero" were interpreted in many interesting ways which was great. They were specific without being restrictive.
 

ghandpivot

Member
Wow, so few games this time around. I wish I had more than just a few hours make my game, then I would have done something completely different. I'm a sucker for physics and have a lot of on-going projects that would have been perfect for this theme had they not been already started. It remains to see whether I'll be able to play any of the games though, but I'll try
 

Dr. Wolf

Member
Funny thing is, I'm actually a big fan of the genre of 2D Newtonian shooters (which, having been a distinct genre since the early 1960s, with really different core mechanics from, say, scrolling shooters, you'd think would have more of a real name by now-- but, somehow, that's never happened)-- but I almost felt like going that way for this theme would be too obvious for me. I wonder, did others feel the same way? Glancing through the games, it doesn't look like anyone decided to go the route of just making something within that genre or its various sub-species.
 

The M

Member
I'd like to know how you programmed the regions of the nations (borders) to accept button click selections and highlighting the nation.
@HayManMarc I'm just using the built in mouse enter/leave/click events to register inputs. Each nation has its own sprite with image_blend set to its base, highlight or selection color depending on what you're doing. Clicking on one simply selects is and deselects the other nations.

Also, the theme was going to be much more apparent, mostly focusing on the third law (but also the first I suppose). Unfortunately, being spied on is pretty much the only thing that hints at that as you get to choose how to react to their reaction of your actions (if that makes sense ;)).

After I made it a year, it advanced by years instead of weeks.
Darn, you got me I never tested the game for that long! Lastly, you don't gain money in the game but don't lose any either. It's all about choosing what to prioritize spending them on and dealing with the consequences.
 

Iodinex64

Member
I swear, if "the mysterious planet of Newton" doesn't win I will throw a really immature temper tantrum.
That game engrossed me for far longer than any other game did.
 

HayManMarc

Member
@HayManMarc I'm just using the built in mouse enter/leave/click events to register inputs. Each nation has its own sprite with image_blend set to its base, highlight or selection color depending on what you're doing. Clicking on one simply selects is and deselects the other nations.

Also, the theme was going to be much more apparent, mostly focusing on the third law (but also the first I suppose). Unfortunately, being spied on is pretty much the only thing that hints at that as you get to choose how to react to their reaction of your actions (if that makes sense ;)).


Darn, you got me I never tested the game for that long! Lastly, you don't gain money in the game but don't lose any either. It's all about choosing what to prioritize spending them on and dealing with the consequences.
Thanks for the reply. Coding the nation's on screen like that would have been my approach, too, but I thought there might be some "region" trick I didn't know about.
And thanks for explaining the theme usage. I suppose I can give you a point for that. :) I'll have to try it again now that I know I only get a certain amount of upgrades.
 

Dr. Wolf

Member
DriftWar 0.9.9.1 is released!

~~~v0.9.9.1~~~
Gameplay:
-Increased the damage of the Peashooter and Dreadnaught to 25 per shot (was 10).
-Decreased Peashooter cooldown to 180 frames (was 240).
-Added more points pickups, but also more enemies to some levels.

Bug Fixes:
-Tweaked a line of code to make bouncing work properly while near the top of a jump.
-Tweaked a line of code to fix a bug that would sometimes bump the tank up to the next level when landing in a tight space.
-Added the code to move the tank to the next level upon completion.

Cosmetics:
-Added level titles and subtitles to display at level start.
-Added a couple of new Kevin MacLeod songs, and changed the code slightly to allow for different music in each level (see revised credits for details).

Naturally, for judging purposes, you should stick with the version in the official .zip...but if you just want to play some DriftWar, the attached version is an upgrade. The changes are fairly minor-- a few lines of code here and there, mainly-- and I'm not going to call it 1.0 yet, but I do think they help create a (slightly) better experience.
 
M

Misu

Guest
Im gonna be live streaming all your entries in the next half hour (maybe a bit later than that).
 
M

Misu

Guest
I finally uploaded a playthrough of 5 entries from this jam. My OBS is still not set up properly and ended recording it as it is already. I need to make more fixes to the quality for the next time I record. I have to apologize for the bad quality this time. Need to improve everything. Im not really into participating on reviewing this time since I never really participated in the jam. I want to be fair for those who have participated to show their effort on reviewing. Im only doing this for the fun even though I didnt execute this one correctly.

 

Zodaris

Member
Glad you liked my game a little more than my first jam entry, haha. When you reacted to my name I went "What have I done to get that response?... oh.... oh gosh my dragon game. Yeah that'd do it". Honestly I would react that way too. And I got a chuckle from your play through.

As for the AI, you never actually saw it work. The first 2 shots are pure random, and whenever it gets a kill, it resets (So it doesn't start chain killing the player over and over). So since it killed you almost every time, it did those random shots every time.
 

Alice

Darts addict
Forum Staff
Moderator
@HayManMarc Actually, that's the first time I see the movement in my game being called the challenging part, and certainly wasn't my intent. o_O'

Myself, I found the movement pretty straightforward once I got it to work, with a clear cause-and-effect (the shooting pushes the ship back). It felt actually more convenient than some shooter games requiring player to move in a specific direction to aim there, which means you need to get closer to the enemy to shoot them. In this regard, shooting the asteroid both damages it and helps avoid it.

I dunno, maybe it could help to associate controls primarily with shooting rather than movement, and thus focus on shooting first, and movement later? That could make it feel more approachable, I guess...?
 

HayManMarc

Member
@HayManMarc Actually, that's the first time I see the movement in my game being called the challenging part, and certainly wasn't my intent. o_O'

Myself, I found the movement pretty straightforward once I got it to work, with a clear cause-and-effect (the shooting pushes the ship back). It felt actually more convenient than some shooter games requiring player to move in a specific direction to aim there, which means you need to get closer to the enemy to shoot them. In this regard, shooting the asteroid both damages it and helps avoid it.

I dunno, maybe it could help to associate controls primarily with shooting rather than movement, and thus focus on shooting first, and movement later? That could make it feel more approachable, I guess...?
I get what you're saying, but it just felt counter-intuitive to me. A lot of the games in this jam felt that way to me, so it's probably my problem more than the game's problem, to be fair. No hard feelz, pleez! I liked the carrot! Made me grin. :)
 

Alice

Darts addict
Forum Staff
Moderator
Well, you did say that collecting the loot was kinda neat, so we're cool. *whistling*
(really, though, out of all aspects of my game I feel like loot collecting is the highlight and the one I expect to get most consistent praise for ^^')

Also, I hope you're more of an exception here and most people won't have trouble with the control scheme. In part, I brought this up because I was wondering if many others feel the same about the movement (which could indicate a bigger issue); hopefully, that's not the case.
 

HayManMarc

Member
Well, you did say that collecting the loot was kinda neat, so we're cool. *whistling*
(really, though, out of all aspects of my game I feel like loot collecting is the highlight and the one I expect to get most consistent praise for ^^')
Yeah, I probably should have said, "The loot collecting was REALLY neat." (I'll go change that. :) )
 

Micah_DS

Member
Only 4 voters. This is going to be quite the jam. :/
I'm doing mine this weekend. I'm sure a good number of people will post votes later.
Yep, I think a fair number of others are still in the middle of playing the games and writing down feedback, etc. My votes and reviews are also coming soon to a thread near you, unless something terrible happens, preventing me from doing so. It's just taking me some time, since I'm doing video reviews again. I'll probably have them done in the middle of next week.
 
M

Misu

Guest
I released another new playthrough. My mic still needs some adjustments but it sounds a bit better than last time. Gonna do some more improvements to the quality next time.
Check it out!

 
If I mention people in an edited post, do they get a notification?

At any rate, the first 15 video reviews are uploaded and timestamped in the voting thread. I'll probably finish the last 10 this Thursday or Friday, I don't really have more time for recording until then. When I finish, the written reviews and score break downs will be be posted.
 

Bingdom

Googledom
If I mention people in an edited post, do they get a notification?
I haven't received an alert.

I just watched your video. It was great.
A few answers to your questions:
  • The game is only currently single player. Only the enemies have a red arrow above their heads. I didn't put a green arrow above your teammates because it can cause confusion.
  • 0/9 to adjust the minimap.
Thanks for the video.
 
Last edited:

Micah_DS

Member
Bummer, my mic isn't recognized in @RargraveEntertainment's game 'Gimbo The Ghost'. I looked at some reviews/comments and noticed I'm not the only one with this issue. In fact, the only person I've seen have success so far is @Dylaniza, since his feedback suggests it worked for him.

I feel bad, because 1) I can't really give any valuable feedback, and 2) I'm probably going to be rating the game pretty low. The idea is fun, I just wish it worked properly.

EDIT:
If I mention people in an edited post, do they get a notification?
Like Bingdom, I didn't get a notification either. On that note, I just edited my post to include your quote. I expect it won't notify you in this case either..? Probably not... hmm.
 
Last edited:
M

Misu

Guest
Bummer, my mic isn't recognized in @RargraveEntertainment's game 'Gimbo The Ghost'. I looked at some reviews/comments and noticed I'm not the only one with this issue. In fact, the only person I've seen have success so far is @Dylaniza, since his feedback suggests it worked for him.

I feel bad, because 1) I can't really give any valuable feedback, and 2) I'm probably going to be rating the game pretty low. The idea is fun, I just wish it worked properly.
.
... Have you seen my video playthrough of the game?... I did mentioned something interesting right before playing the game that is related to your 1)
 

ghandpivot

Member
@Misu you can walk in my game with A/D, that'd make actually hitting anything a lot easier. That being said, you saw everything.

Oh, and the bullets are way too inconsistent in their hit detection. It'd work if you had hit points but with instant death anything but absolute perfection in hit detection is abysmal.
 
Status
Not open for further replies.
Top