SFML community forums

General => SFML projects => Topic started by: KarmaKilledtheCat on December 03, 2013, 03:47:28 am

Title: Faster
Post by: KarmaKilledtheCat on December 03, 2013, 03:47:28 am
Hello everybody! I am creating a small platformer called Faster. The end goal for the game is to have a random level generator that creates rooms for the player. I plan to release Faster as a free open-source game on the computer then re-write it using C# and XNA for the Windows Phone, and Lua and Corona for Android and IOS.

The game consists of 20X20 "rooms" full of obstacles that the player has to get through to reach the exit to the room. The player has 20 lives(that may be changed to 20 lives per room depending on how hard I decide to make the game). The only thing I have left to work on is the level generator and making some minor adjustments then the game is ready to be released!

Game download link(source and executable):
http://www.mediafire.com/download/y185o3ysu49u21n/Faster+-+Build+3.zip

This download includes everything you need to run the game in the "Faster" file and the source code for the game in the "Faster Source" file.

Also, in the options screen to change the options hover your mouse over the option you want to change and press the left arrow key to lower the value and the right arrow key to raise the value(I may change this to something that is easier to use in the future). The only option that will be saved is the "volume" option. The others are disabled and do nothing(these options will be replaced with other things later).

This is my first attempt at a game or any large programming project so I would appreciate any feedback you have about the game mechanics, my code, or anything else. I am also looking for some feedback on the performance of the game. The frame rate limit is locked at 60 but if the game drops below that at any point please tell me and include your computer's specs in the comment.

I will be able to update the post to provide a video and screenshots soon. Also the sound is obviously temporary. It is just some things I found that I thought were funny at the time and they stuck.

Thanks for your time and I hope you enjoy the game!

Video:
http://www.youtube.com/watch?v=Dv-Q9GKl93Q

Screenshots are now attached at the bottom.

(Update: 2/5/14)
I have updated the download link to the current state of the game. I have made the random level generator and it is working well but is not complete. It may make a level that is impossible to complete and if this happens just hit the "n" key. It will generate a new level. Also, if you get to a place in the level where it is impossible to complete, hit the "r" key to reset the level. The levels that will be created will not be very exciting right now. It works by placing predefined groups of tiles around a line that is made from one side of the room to the other. I have only created 3 groups so far but I will obviously be adding more once the level generator is complete.

I have also fixed a few of the bugs in the game. Most of them were collision issues. There are a few bugs that I need to fix with the random level generator.

I have also changed the music to a song I made in Garage Band three years ago. I know it's terrible, I will make the final music once the game is complete.
Title: Re: Faster
Post by: AlejandroCoria on December 03, 2013, 04:44:16 am
(sorry for the bad english - Google Translate)

I did not play the game yet. I can not run (I have Windows XP) and I can not compile (I have VS2008). But i was looking at the code a bit and has an error:
while (Window.pollEvent(Event)) //proccess the events
{
        if (Event.type == sf::Event::Closed) //if the close button is hit
                Window.close(); //close the window
}

ScreenManager::GetInstance().Update(Window, Event);
When run
ScreenManager::GetInstance().Update(Window, Event);
The last event processed in the frame is passed as a parameter, when in reality can occur several events that maybe be needed.
Title: Re: Faster
Post by: Tank on December 03, 2013, 08:07:29 am
Screenshots are always nice to get a first impression of something. :)
Title: Re: Faster
Post by: MrMuffins on December 03, 2013, 08:30:51 am
Quote
I am also looking for some feedback on the performance of the game.

This laptop I'm on is 7 years old, and...60fps :)

Anyways this is pretty neat, everything goes with the name (the menus, dieing, transitions etc..).
Although if you run against a wall and jump, occasionally you will fall through and my guess keep falling. The debug reports a top collision despite the wall being straight.
Title: Re: Faster
Post by: KarmaKilledtheCat on December 03, 2013, 11:02:41 pm
Quote
I am also looking for some feedback on the performance of the game.

This laptop I'm on is 7 years old, and...60fps :)

Anyways this is pretty neat, everything goes with the name (the menus, dieing, transitions etc..).
Although if you run against a wall and jump, occasionally you will fall through and my guess keep falling. The debug reports a top collision despite the wall being straight.

Thank you very much for the performance feedback and alerting me to that bug. I will look into fixing it.
Title: Re: Faster
Post by: KarmaKilledtheCat on December 03, 2013, 11:06:03 pm
(sorry for the bad english - Google Translate)

I did not play the game yet. I can not run (I have Windows XP) and I can not compile (I have VS2008). But i was looking at the code a bit and has an error:
while (Window.pollEvent(Event)) //proccess the events
{
        if (Event.type == sf::Event::Closed) //if the close button is hit
                Window.close(); //close the window
}

ScreenManager::GetInstance().Update(Window, Event);
When run
ScreenManager::GetInstance().Update(Window, Event);
The last event processed in the frame is passed as a parameter, when in reality can occur several events that maybe be needed.

I thought that the sf::Event held a stack of all events processed in the frame. I could be wrong though, I will look back at the tutorials.
Title: Re: Faster
Post by: downtimes on December 04, 2013, 03:10:49 am
Did not have time to look over the Code or test the game (yet :D).
Never the less i wanted to give you a little bit feedback based on your video.
Looks very promising and fun/challenging. One thing i think you could improve though is the visuals for the shots of the following guns in the Corners. The first minute or so i didn't even realize they did anything. Doesn't need to be anything gigantic, just something big enough to recognize it in your peripheral vision would be nice.
Title: Re: Faster
Post by: Nexus on December 04, 2013, 01:30:35 pm
I didn't even see the guns in the left/right upper corner :)

And how did you die shortly before the door? It looked like an invisible force sucked you down...
Title: Re: Faster
Post by: KarmaKilledtheCat on December 04, 2013, 11:17:57 pm
Did not have time to look over the Code or test the game (yet :D).
Never the less i wanted to give you a little bit feedback based on your video.
Looks very promising and fun/challenging. One thing i think you could improve though is the visuals for the shots of the following guns in the Corners. The first minute or so i didn't even realize they did anything. Doesn't need to be anything gigantic, just something big enough to recognize it in your peripheral vision would be nice.

Good Idea. I think that the reason you didn't realize that the guns did anything is because of the quality of the video. They shoot small bright red bullets but you can't see them in the video. I will try to implement some kind of muzzle flash when the guns go off.
Title: Re: Faster
Post by: KarmaKilledtheCat on December 04, 2013, 11:23:43 pm
I didn't even see the guns in the left/right upper corner :)

And how did you die shortly before the door? It looked like an invisible force sucked you down...

I saw how the player got sucked down right before the door but I couldn't replicate the bug. It looks like the game thinks that the collision was a top collision not a side collision.
Title: Re: Faster
Post by: KarmaKilledtheCat on December 08, 2013, 04:34:49 am
I think that I fixed the problem where the player shot down through the map in the video. It was just a small collision problem where one of the top collision vertices would intersect with the tile when it shouldn't making the player move down to the bottom of the tile. I have also started working on the map generator. It is going well so far.
Title: Re: Faster
Post by: Sub on December 09, 2013, 11:59:25 pm
The program can't start because MSVCR120.dll is missing from my computer. 

I downloaded the .dll and it now works no problem, but I thought you should know.

Title: Re: Faster
Post by: KarmaKilledtheCat on December 10, 2013, 12:31:28 am
The program can't start because MSVCR120.dll is missing from my computer. 

I downloaded the .dll and it now works no problem, but I thought you should know.

Did you run the program from the executable file or the VS project? If you ran it from the executable file where did you download the .dll?
Title: Re: Faster
Post by: Grimshaw on December 10, 2013, 03:18:47 am
If im not mistaken, the required DLL is a part of the Visual C++ redistributable package for Visual Studio 2013 Preview. I had to install it myself in order to try this game.
Title: Re: Faster
Post by: KarmaKilledtheCat on December 10, 2013, 03:54:29 am
If im not mistaken, the required DLL is a part of the Visual C++ redistributable package for Visual Studio 2013 Preview. I had to install it myself in order to try this game.

Do you need that file to run a program from an executable or only if you are running it from Visual Studio?
Title: AW: Re: Faster
Post by: eXpl0it3r on December 10, 2013, 07:14:46 am
Do you need that file to run a program from an executable or only if you are running it from Visual Studio?
If you run it from VS, then you have VS and all the needed DLLs installed.
Thus it's needed when running the application.
Title: Re: AW: Re: Faster
Post by: KarmaKilledtheCat on December 10, 2013, 11:33:58 pm
Do you need that file to run a program from an executable or only if you are running it from Visual Studio?
If you run it from VS, then you have VS and all the needed DLLs installed.
Thus it's needed when running the application.

Ok, so how can I allow people who don't have that file to run the program? Do I just add the .dll to the place where the rest of the .dlls are?
Title: Re: Faster
Post by: eXpl0it3r on December 10, 2013, 11:42:30 pm
If im not mistaken, the required DLL is a part of the Visual C++ redistributable package for Visual Studio 2013 Preview. I had to install it myself in order to try this game.

As Grimshaw said, let them install the Redistributable or you can add the dlls next to your exe.
Title: Re: Faster
Post by: KarmaKilledtheCat on December 11, 2013, 01:19:39 am
The download has been updated to include MSVCR120.dll. Hopefully this works.
Title: Re: Faster
Post by: KarmaKilledtheCat on February 19, 2014, 04:19:33 am
I have fixed a lot of bugs and added more blocks to the level generator. The link is updated.
Title: Re: Faster
Post by: Giblit on February 19, 2014, 08:27:20 pm
Quote
I thought that the sf::Event held a stack of all events processed in the frame. I could be wrong though, I will look back at the tutorials.
No one else mentioned this but you call
Code: [Select]
while( window.pollevent( Event ) ). Each time you call
Code: [Select]
window.pollEvent( Event ) it pops the Event on the top of the queue so by the time the while loop is done you will have only the very last event for
Code: [Select]
ScreenManager::GetInstance().Update(Window, Event);

Quote
bool sf::Window::pollEvent   (   Event &    event   )   
Pop the event on top of the event queue, if any, and return it.

This function is not blocking: if there's no pending event then it will return false and leave event unmodified. Note that more than one event may be present in the event queue, thus you should always call this function in a loop to make sure that you process every pending event.

sf::Event event;
while (window.pollEvent(event))
{
   // process event...
}
Parameters
event   Event to be returned
Returns
True if an event was returned, or false if the event queue was empty
See Also
waitEvent
http://www.sfml-dev.org/documentation/2.1/classsf_1_1Window.php#a338e996585faf82e93069858e3b531b7