Video game design

Anything else
Post Reply
floogin
Posts: 43
Joined: Sun Jan 23, 2011 6:39 pm

Video game design

Post by floogin » Mon Nov 04, 2013 7:10 pm

Hey guys,
For a school project I've decided to make a video game. I was thinking about using adobe flash to make it. Are there any other ideas in terms of programs? I have a bit of understanding about how games work, but that knowledge is basic. Also what kind of simple do you guys think would be fun?

User avatar
AmorphousGamer
Posts: 832
Joined: Sat Jul 06, 2013 2:41 am
Location: Montgomery, Alabama

Re: Video game design

Post by AmorphousGamer » Mon Nov 04, 2013 7:50 pm

Adobe Flash? Hmm. I haven't dealt with Flash much.
Making Roguelikes in C++ is always fun. Perhaps you should look into that?

User avatar
Korban3
Posts: 4146
Joined: Tue May 31, 2011 9:14 pm
Location: 42nd St E, Hell

Re: Video game design

Post by Korban3 » Tue Nov 05, 2013 2:28 am

I'll advocate Game Maker all day. I still use it, even though I'm well beyond its level. It's awesome for putting something together quickly and you can graduate from the drag-n-drop to the scripting eventually.
Definitely give Game Maker a shot, if you want to get into game development.

User avatar
Endoperez
Posts: 5668
Joined: Sun Jan 11, 2009 7:41 am
Location: cold and dark and lovely Finland

Re: Video game design

Post by Endoperez » Tue Nov 05, 2013 7:05 am

Simple shooting game:

WASD or arrow keys to move [player]. Player can't leave the screen.
Whenever the mouse is clicked, shoot bullets from [player] towards [mouse position at the time of click].
Enemies appear outside the screen and start walking to the player 's direction. If enemy is close enough to the player, player takes damage.
If bullet is close enough to an enemy, enemy takes damage and bullet disappears.

Random objects spawn on the screen area, e.g. health kits, weapon upgrades (double shot, triple shot, penetrating bullets), alternate weapons, powerups...


No need to make a level, level editor, pathfinding or any of that stuff.

floogin
Posts: 43
Joined: Sun Jan 23, 2011 6:39 pm

Re: Video game design

Post by floogin » Tue Nov 05, 2013 12:27 pm

Thanks guys for the ideas. I'll definately give game maker a try

floogin
Posts: 43
Joined: Sun Jan 23, 2011 6:39 pm

Re: Video game design

Post by floogin » Mon Jan 13, 2014 4:48 pm

Well, I bought game maker, and started learning it. Also Is anyone experience with this program who would be willing to help me with something?

User avatar
Korban3
Posts: 4146
Joined: Tue May 31, 2011 9:14 pm
Location: 42nd St E, Hell

Re: Video game design

Post by Korban3 » Tue Jan 14, 2014 4:26 am

I've got an interview and some other work tomorrow, but I'll see if I can sneak some time in to help you. I spent a fair bit of time with GM, still remember some of it. Let me know if you want to use Skype or whatever.

floogin
Posts: 43
Joined: Sun Jan 23, 2011 6:39 pm

Re: Video game design

Post by floogin » Tue Jan 14, 2014 12:23 pm

Thanks Korbin!
So right now I am making enemies. I have the player die when he place_meets with the enemies at all. I have the enemy Die when the blob place meets with the enemy's head. The code looks like this
Player step event
if place_meeting(x,y,obj_enemy)
{
room_restart
}

Enemy step event

if place_meeting(x,bbox_top,obj_player)
{
instance_destroy
}

What happens is that the player kills the enemy when they jump on him from a short distance above, but when the player falls a long time and collides with the top of the enemy, the player dies. So I was wondering if there was a better way to make platform enemies.

User avatar
Korban3
Posts: 4146
Joined: Tue May 31, 2011 9:14 pm
Location: 42nd St E, Hell

Re: Video game design

Post by Korban3 » Tue Jan 14, 2014 8:47 pm

What's happening is that the player object is likely accelerating so fast that he jumps through the enemy's top bounding area.

One solution is to limit his vertical speed, which is a good idea no matter what. For most platformers, you don't need the actor to achieve real terminal velocity, so limiting his speed is a good practice anyways.

Code: Select all

//Step code for object we are limiting
if (vspeed > max_vertical_speed) {
     vspeed = max_vertical_speed;
}
The other solution, and the one I would recommend trying either way, would be to change how you are checking which one should die.

Because the player has to be moving downwards to land on the enemy's head in the first place, you can perform the entire operation in one of the objects, all at once. I would use the player, because there is only player object who has to do checks, rather than a potentially large number of enemies.

The idea is that if the two touch, either the player dies or the enemy dies. The condition for the enemy dieing is that the player has to land on his head, which we are going to gauge by checking the player's vertical speed. If his speed indicates that he is moving downwards, then hitting an enemy at that point means that you've landed on his head.

The condition for the player dieing is everything else. If the player isn't moving downward, then he probably hasn't landed on the enemy's head and then dies. To achieve this, we use an 'if else' check. We check for collision first. If we are colliding, we go to the if else. So, the condition that this pivots upon is whether or not we are moving downwards. I believe that positive vertical speed means that you're moving downward in GM, but if you find that that is incorrect, flip that greater than symbol around.

By using else after the vspeed check, we tell GM to do that section of code if the first condition is false. This way, we achieve the entire scenario from a single actor with less code and less processing.

The use of 'with' allows us to do processing for another object as if we were acting from inside of it. So, 'with other' means that we are going to do whatever is in the following brackets inside of 'other'. When we're coding in one object, 'other' whatever we've collided with. There are other methods for finding out enemy, but this should work. If it doesn't, I'll help you find another way.

My GM knowledge is pretty rusty, but I believe it should look something like this.

Code: Select all

//Player's step code
if (place_meeting(x,y,obj_enemy)) {
     if (vspeed > 0) {     // Flip that '>' to '<' if you find the death-live action is inverted.
          with other {
               instance_destroy;
          }
     } else {
          room_restart;
     }
}

floogin
Posts: 43
Joined: Sun Jan 23, 2011 6:39 pm

Re: Video game design

Post by floogin » Tue Jan 14, 2014 10:10 pm

thanks, that worked!
Also, you wouldn't happen to remember the sound functions. I am having difficulty playing a sound every time I hit an enemy. For example, When I hit 2 enemies in a row, the sound plays once. It should play twice.
I used
if place_meeting(x,y,obj_enemy)
{
sound_play_(sound1)
}

User avatar
Korban3
Posts: 4146
Joined: Tue May 31, 2011 9:14 pm
Location: 42nd St E, Hell

Re: Video game design

Post by Korban3 » Tue Jan 14, 2014 10:42 pm

I don't remember sound much, but I'm using Game Maker for prototyping tonight. I'll see what I can figure out for you.

Post Reply