SFML community forums
General => SFML projects => Topic started by: maximaximal on October 11, 2012, 09:45:43 pm
-
Hello!
Until now I have only made some terminal "games", but this game is my first step into real graphical games. This project started a long time ago, I think I've started through the Christmas holidays 2011/2012 and I kept adding new things, debugging old things, and removing obsolete ones. I've integrated Box2D for the physics simulation of the asteroids (a really great tool - It was a tough learning curve but it was absolutely worth it and SFML (as you may have expected ;) ) for the graphics, audio & the networking.
News
Please see the tumblr blog (http://sfml-sidescroller.tumblr.com) about the game to get news about recent development actions.
Programmers
The game is mainly coded by me, but Roland Ruckerbauer (alias ruabmbua) has helped me with some graphics and some scripts. He has coded some games before I was able to do graphical stuff, so he helped me with the game concept and gave many ideas from his projects to mine.
What's the point?
SFML Sidescroller is a sidescrolling-sci-fi-asteroid-space-shoot-them-up-game which throws you asteroids in your face and you have to defend your spaceship from the annoying damage those little bastards can deliver! Upload your scores and be the #1 of the list!
Controls
The controls are gonna be ingame soon. Here is a list until a tutorial is implemented in the game :)
Everywhere
F2 = Screenshot (Saves at Data/Screenshots) (stolen from Minecraft ;))
F3 = Show Debug Information (stolen from Minecraft too ;))
Ingame
[SPACE] or [Numpad0] = Shoot
[WASD] or [Arrow Keys] = Move
Double-Tap [WASD] or [Arrow Keys] = Quick move (this is not finished, I will later add fuel to limit this kind of movement)
[SHIFT] + MOVE = faster move (this is not finished, I will later add fuel to limit this kind of movement)
[ESCAPE] = Pause the game
Game Over Screen
[ENTER] = upload your highscore
Powerups
They are gonna be in the tutorial when it is implemented in the game.
Laser Upgrades
They can be red, blue, green and magenta. They upgrade your laser to a better shooting rate and more bullets at the same time. If you take an upgrade from a different color, then your weapon level will be at the beginning again.
Repair
This repairs your ship to 100%.
Yellow Star
The yellow star boosts your highscore up 4 - 80 points.
Newest Dev-Screenshots
(The version indicator in the screenshots shows 0.07, but that is only for testing purposes - it is 0.08 ;) )
Gallery: http://imgur.com/a/PkL3a#0 (http://)
(http://i.imgur.com/iZ9wC.png)
(http://i.imgur.com/S5xLG.png)
(http://i.imgur.com/IULQV.png)
Download
You can download the project from my homepage http://maximaximal.com (http://maximaximal.com)(warning: it is mainly in German, the download links are the first heading after the big buttons - do not rage quit ;) ) and from the official site: http://www.srcttp.org/games/SFML-Sidescroller/download.php (http://www.srcttp.org/games/SFML-Sidescroller/download.php).
I am making prebuilt binaries for Windows and for Linux64. The game has an integrated update mechanism that detects whenever a new version is available :)
Of course it would be ok if you click on the direct links, but adf.ly is cooler ;)
Adfly: Download newest for Windows! (http://adf.ly/EYTlK)
Adfly: Download newest for Linux64! (http://adf.ly/EYTp2)
Direct: Download newest for Windows! (http://maximaximal.com/files/Programming/SFML-Sidescroller/winRelease.zip)
Direct: Download newest for Linux64! (http://maximaximal.com/files/Programming/SFML-Sidescroller/Linux64_newest.tar.gz)
Source Code
The source for this game is on gitorious (because github is not open source ;) ).
https://www.gitorious.org/sfml-sidescroller (https://www.gitorious.org/sfml-sidescroller)
Bugtracker
If you really want to help this game growing, then you could register at our bug tracker: http://bugs.srcttp.org (http://bugs.srcttp.org).
Last words
I am really proud of this project, but it is still not finished. It would be awesome if you could rate this project and give me some requests for it. I am going to make a video for this game, but I still want to wait with that until I get some other critical jobs done (the HUD for example).
And please notice that I am from Austria (not Australia ;) ) so my native language is still German, so don't be too rude about my English skills :)
-
I really like the game and it's quite fun to play! Well done! :)
Unfortunately you didn't say in your whole post here what the game is about, so here goes a quote from your website:
SFML Sidescroller is a sidescrolling-sci-fi-asteroid-space-shoot-them-up-game which throws you asteroids in your face and you have to defend your spaceship from the annoying damage those little bastards can deliver!
Since you want to hear some feedback here's a list. ;D
- On my 22'' screen the space in the menu is quite unused (you see this also in the posted images), on the top a 'tiny' title and on the bottom a even tinier menu. Use the space! :D
- In game it's kinda strange that I can fly out of the screen (I've got a 1600x900 resolution), so I actually don't see myself if I fly to the top or the bottom or the left. Maybe it's not a bug but a feature? ??? :P
- For my eyes the bright white stars in the background are a bit too bright and it's hard to look at them for too long. Maybe you could set a less intense white?
- When I first got to the highscore there was "aaaaaaaaa" in place where I later entered the name. I'm mean it works but it kinda is not such a nice 'solution'. You could for instance make a box around the field or have a semi-transparent text there, or....
- With the newest Windows version the version is not submitted/entered into the highscore which leads to wrong formatting in game and to whole on the website ranking (http://www.srcttp.org/games/SFML-Sidescroller/viewScores.php).
- Once you entered the name for the highscore you can't view the highscore anymore in game, you really should make a menu option for this and show the highscore list after the entering again. (That's what people would expect I think).
- The ship design/color doesn't really fit the style of the game, it's extremly small and the contrast with the background is too low (well maybe this is intended but it's hard to spot the ship sometimes...).
- There should be some instructions for the game, because I've only noticed that one can shoot with [space] after my second game or so. ;D
(Maybe this could be placed in the empty space in the menu!?) - It would also be nice to get an overview on all the goodies that exist and what their purpose is. (Certainly in game but maybe also on the website?)
- It would also be helpful to have a damage bar somewhere. Although the damage can be seen on the ship itself, it's hard to tell at which stage the damage is.
- I think there seems to be a bug with picking up items. Sometimes it just doesn't want to work and I can fly over it helpless. :(
- Are you using a fixed time step for the physics/updating, because for me it sometimes seems like the ships movement behaves strange. Sometimes I get a hugh speed up for nothing. With a time-step tight directly to the last frametime such 'pumping'/accelerating-decelerating is quite possible and annoying. But it's not only that random spikes, it sometimes feels really strange that I suddenly move slower than the scrolling speed and sometimes I move faster although I essentially didn't do anything. So the question is how do you handle movement? Maybe you need to make a hard cut at a certain level of movement speed so that it's possible to actually keep the ship steady when doing nothing. Or is this all intended? ;)
I hope I could give you some helpful pointers right there and wish you all the best, maybe you'll see my name a few more times on the highscore list. :)
PS: You got a new subscriber to your blog. ;)
-
I really like the game and it's quite fun to play! Well done! :)
Thank you!
I've edited my post already and added the controls & the different powerup types. A tutorial will be available ingame when I release the next version.
On my 22'' screen the space in the menu is quite unused (you see this also in the posted images), on the top a 'tiny' title and on the bottom a even tinier menu. Use the space! :D
Yeah, the menus are really small if you have a huge screen. The min resolution is 800x500 Pixels. I will look if I can make some conditional statements for bigger screens.
In game it's kinda strange that I can fly out of the screen (I've got a 1600x900 resolution), so I actually don't see myself if I fly to the top or the bottom or the left. Maybe it's not a bug but a feature? ??? :P
This is not a real bug, but also not a real feature. There is an invisible wall around the viewport which wont let the asteroids/bullets/the player pass through it. The wall is ~20 Pixels away from the window border, because It would not look good when the asteroids collide with your window. The spaceship is small enough to fit into that tiny space :)
For my eyes the bright white stars in the background are a bit too bright and it's hard to look at them for too long. Maybe you could set a less intense white?
The stars are configurable in the config file (I will later add a menu point for them). I think I will turn down the brightness of the star sprites a bit though.
When I first got to the highscore there was "aaaaaaaaa" in place where I later entered the name. I'm mean it works but it kinda is not such a nice 'solution'. You could for instance make a box around the field or have a semi-transparent text there, or....
This happens when you are pressing a direction key (for example A) and then die. The key event from pressing on that key is sent to the menu, and the aaaaaa is there :). Maybe I could fix this by adding a timer to the user input at the end of the game.
With the newest Windows version the version is not submitted/entered into the highscore which leads to wrong formatting in game and to whole on the website ranking (http://www.srcttp.org/games/SFML-Sidescroller/viewScores.php).
This is really strange. I have looked into the list and found your name several times, but often without a version value. This happens only on a few PCs, and even then not every time. A PC in my shool had the same problem, but I don't know what causes it.
Once you entered the name for the highscore you can't view the highscore anymore in game, you really should make a menu option for this and show the highscore list after the entering again. (That's what people would expect I think).
That's a good point. I will add a timer which reloads the highscores from the server after a few seconds. You can view the highscores from the pause-menu (ESC while ingame), but that's not the obvious way of doing it...
The ship design/color doesn't really fit the style of the game, it's extremly small and the contrast with the background is too low (well maybe this is intended but it's hard to spot the ship sometimes...).
The ship is the exact same sprite since 3 months. I never did like it. The damage effects are gruesome xD
I hope I can draw a better one myself, or at least find a better image :)
There should be some instructions for the game, because I've only noticed that one can shoot with [space] after my second game or so. ;D
(Maybe this could be placed in the empty space in the menu!?)
I am going to add a ingame tutorial in version 0.06 :)
It would also be nice to get an overview on all the goodies that exist and what their purpose is. (Certainly in game but maybe also on the website?)
Ok, I will add a new point in the navigation of the website which explains all about the powerups & the keys.
It would also be helpful to have a damage bar somewhere. Although the damage can be seen on the ship itself, it's hard to tell at which stage the damage is.
I wanted to make a HUD for the current version, but I did not had time yet to code it. I hope it will make it into V0.06.
I think there seems to be a bug with picking up items. Sometimes it just doesn't want to work and I can fly over it helpless. :(
That should not happen. There was a bug which caused exactly this in version 0.04, but I thought I've fixed it already.... I will look into this again :)
Are you using a fixed time step for the physics/updating, because for me it sometimes seems like the ships movement behaves strange. Sometimes I get a hugh speed up for nothing. With a time-step tight directly to the last frametime such 'pumping'/accelerating-decelerating is quite possible and annoying. But it's not only that random spikes, it sometimes feels really strange that I suddenly move slower than the scrolling speed and sometimes I move faster although I essentially didn't do anything. So the question is how do you handle movement? Maybe you need to make a hard cut at a certain level of movement speed so that it's possible to actually keep the ship steady when doing nothing. Or is this all intended? ;)
I am using a seperate thread for the physics and a mutex to keep the whole physics thing thread-safe. If you press at a button, the code will say Box2D to apply a force on the player. Because there is a different framerate on different computers, this force is dependent on the time per frame. I've tested this system on the computers of my school (~25FPS instead of 60) and it works perfectly.
I think you suffered under an intended feature, the "double-tap move". If you doubletab a key, you will move quickly in that direction.
The problem here is, that the OS sends the key events very often, and so you get a speed boost when you did not want to have it. There is a config option available for this, but I am hopefully going to fix this very soon.
Puh, long post, but thanks for your points :)
-
Update 0.07
This update is hot, because it contains explosion effects when you destroy asteroids, a new GUI, a built-in sound-config, a new, self developed gui, a new fancy icon, a new cool logo, and new awesome spaceship graphics!
If you can read German, then there is my german blog-post about this update: http://maximaximal.com/blog/?p=563 (http://maximaximal.com/blog/?p=563)
What's new?
- New Game-Icon
- New menu-system
- New spaceship graphics
- New update system (currently only for windows users, because I wasn't at my linux work machine back then and I've forgoten it quite often...)
- 2 new Menu-Backgrounds (random at start-up)
- New (hopefully perfectly working) asteroid spawning mechanics
- A click on a button now has a sound-effect
- New configuration-menu to configure the volume of the sounds and the music in-game. There will be more options soon...
What is not in this update?
- I did not create a in-game tutorial yet - this is something very important, so I will try to implement this in a good way in the next update
- A HUD/Status-bar system - I was too busy with the complete recode of the gui, so this is moved to a leter update
- Multiplayer Mode ;)
Download
Download the game as usual - here are the links:
- Windows (zip) (http://maximaximal.com/files/Programming/SFML-Sidescroller/winRelease.zip)
- Windows (7zip) (http://maximaximal.com/files/Programming/SFML-Sidescroller/Windows_newest.7z)
- Linux x64 (http://maximaximal.com/files/Programming/SFML-Sidescroller/Linux64_newest.tar.gz)
I hope you have fun with this update! Please share your thoughts and your discovered bugs with me, so I can make the game a better one :D
-
Very much fun! :)
Number #24 so far; I'm going for #1.
My only suggestion is to include something like a 'health-bar' since sometimes I'm not sure how good my ship is doing.
Keep the good work!
-
Very much fun! :)
Number #24 so far; I'm going for #1.
My only suggestion is to include something like a 'health-bar' since sometimes I'm not sure how good my ship is doing.
Keep the good work!
Thank you!
It is funny how bad I am in my own game xD - I'm #35 :)
I wanted to add a hud already, but I had to recode the comlete GUI, so this is going to be in the next version :) (I've just started with the health bar)
-
#1 :D
-
I've noticed if you edit the config.lua to modify backgroundStarsCount to anything other than -1, periodic crashes ensue (of the sort that require killing the program via the task manager.) This was true of the last version as well, I just never got around to reporting it.
-
#1 :D
Oh my gosh, you've beaten all my folks xD - Did you cheat in some way or is the score completely legit?
I've noticed if you edit the config.lua to modify backgroundStarsCount to anything other than -1, periodic crashes ensue (of the sort that require killing the program via the task manager.) This was true of the last version as well, I just never got around to reporting it.
Thank you! I had a dumb mistake in my config reader- it checked if the number was -1. If it was not -1, it would be given to the star-creator, which cannot generate a negative array :)
I fixed it and now the value is double checked by my star-manager too :) (if your crash happened after you changed the star-count to a different negative number - positive numbers without commas do work)
PS:
I've completed a health-bar-system, which shows the current fuel level too. Fuel is a new game-mechanic to prevent the overpowered shift-movement (Shift + WASD) to be possible all the time :D
-
I didn't cheat, but I 'broke' the game. ;)
By the way how do you store your top-score data; with SQL in a website?
-
I didn't cheat, but I 'broke' the game. ;)
It seems like double-checking the game mechanics after every critical change is not enough xD - How did you break the game? Did you find a way to avoid the asteroids automaticly?
By the way how do you store your top-score data; with SQL in a website?
Please don't laugh, but the scores are saved in a csv table on my update-server. You upload your score through a PHP script, which checks if your score is valid or not.
This check is obviously not enough, because 3 scores above you were hacked into the system :o (Roland already deleted those scores), so I will have to think about an extra method to check if the uploaded score is valid :-\
-
I don't laugh because I have no idea about any of those things. :(
The 'break' was quiet simple: I positioned the ship in the top-right corner of the screen, while continuously shooting. The score goes up slowly but steadily.
-
The score server works with a very simple text file, which contains the date, the version, the name, and the score. PHP then reads it, formats it in the right way, and outputs it to the webpage-body. The client then only displays the string :)
I've fixed your exploit by the way :) - Now the asteroids are spawning in the corners too, so bugusing won't be that easy with the next version :) The only thing that is left uncleared is a better security mechanism for "browser hacking" ;)
-
The only thing that is left uncleared is a better security mechanism for "browser hacking" ;)
I tried it, and I did it without effort.
With a packet capture tool, I got the HTTP request to do and it worked with Firefox.
You should at least check that the user-agent is libsfml-network/2.x and the from field is user@sfml-dev.org. It would prevent "browser hacking" but not hacking with a http requester tool.
I also noticed that a negative time is accepted by the server.
-
You wouldn't even need to capture the program with a network analyzer - you could just look into the source-code too ;)
Ok, negative time is dumb (i don't check this at the server) - I fixed it just now. The idea with the user agent is a good one - I will look into this as soon as I have more time :)
-
Maybe a few too many asteroids to start off with, unless you have repairs dropping often but otherwise OK game.
-
Maybe a few too many asteroids to start off with, unless you have repairs dropping often but otherwise OK game.
That's kind of the sense of the game. ;D
Who can survive longer in that asteroids hell? ;)
-
You should at least check that the user-agent is libsfml-network/2.x and the from field is user@sfml-dev.org. It would prevent "browser hacking" but not hacking with a http requester tool.
Ok, I've edited the server now - plain browser hacking is no longer possible :)
I still have to think about the http requester tool method though - The problem is that the game is open-source and everybody could check out my security mechanisms...
thank you for this suggestion!
-
Version 0.08
Overview
Yeah, update time again! :D (This update came out yesterday to be precise, but I did not have the time to write a text about it :( )
For this update, there is nothing as big as in update 0.07. I did fix some serious memory leaks with my asteroid sprites (the damage sprites weren't deleted :O) and I've added a HUD with 2 elements: health & fuel.
The asteroids and the player spaceship now get pushed back from the upper and the lower area of the screen into the middle. This means, that meteorites and the player cannot longer hide in the little area around the visible game, because they get pushed back away from there :)
Fuel is used when you are flying with the shift-key pressed (faster than normal) or when you do a quick move. It refills slower than it is used ;)
And I've deactivated the double-tab fast-fly-impulse-thingy which was mostly bugging around on lower framerates... (it is activate able through the config.lua file)
Changelog
- Fixed serious memory leaks
- better physics performance
- More & better debug text (F3)
- added a Fuel system
- Health & Fuel bar (HUD)
- When you are dead and want to upload your score, you just have to hover above the box with your name in it and press the "Enter" key. Or press "Submit!" as before
- Added the possibility of going back to the main menu through the pause-menu (ESC)
- Added a how-to button to the main menu (a simple text file which is displayed in-game)
- Added all the old credits images from the old GUI system again
- The alternative menu-background loader is now working correctly again (it did not load an alternative version of the menu-background if the pc could not handle the 2000x2000 one)
- Fixed some other bugs reported from cire & from the bugtracker
- Fixed some asteroids & the player hanging around in the area above and under the viewable screen
What's next?
I want to add a working local multiplayer mode. I think that would be fun :) - The networking version of a multiplayer-game-mode won't be in the next update, it is a bit complex to do with the whole physics stuff...
Download
If adfly is down, or not working, or you don't want to go on adfly, then here are 2 versions of 2 links :)
Adfly: Windows (http://adf.ly/EYTlK)
Adfly: Linux64 (http://adf.ly/EYTp2)
Direct: Windows (http://maximaximal.com/files/Programming/SFML-Sidescroller/winRelease.zip)
Direct: Linux64 (http://maximaximal.com/files/Programming/SFML-Sidescroller/Linux64_newest.tar.gz)
I hope you have fun playing the new version! If you have time, then please write your thoughts and possible improvements into this thread. That would be a good creative input for me ;)