Why exactly is it called "Zloxx II? Is there a first version?Yes, some years ago I wrote a first version with SDL, which was never released though. I completely rewrote it and added a lot of features.
Is there a background story to the game?No. :P
I guess you're not using any physics library, right?No, physics and collision detection are written by myself.
The rope catching mechanism could be a bit better.I agree. I think I could just make the respective areas a bit larger. However, concerning the rope, I don't want to make it too easy. Now there are some places where it is difficult (but possible) to reach a certain place with the rope, and this should remain a challenge ;)
[...]
The text hints appearence is also a bit too small.
Sometimes the jump key doesn't work instantly as expected, atm I'm not sure why or when it happens, but it just sometimes misses the key press. Maybe if you press it a few milliseconds before you hit the ground it won't get recognied as a jump although intuitivly it was one.Yes, the jump key is not recognized while in the air, you need precise timing. This is intentional :)
It's intended that you keep your objects even though you die and respawn at a save point, right?Yes.
The exe file misses an icon...Indeed. Some time ago I experienced with Visual Studio's resource files, but I failed to embed an icon that scales correctly, and then focused on more important tasks. But maybe I should give it a try again...
It's kind of annyoing that you have to exit to the main menu to save the game state.You cannot save your game state in the conventional sense. You can only interrupt your progress to continue later, but you can't restore the same state again and again. However the completed levels remain.
In some levels you can walk against an invisible wall/ceillingThat's true, it's an artifact of a quite recent modification. Originally, every level was surrounded by a solid (and visible) wall. Then I decided it would be more interesting if not every level had the bounds of a rectangle, so I made the most outer walls invisible and adapted the most parts, but in some places, I didn't want to enlarge whole level just for a ceiling.
Not sure if this is intended, when enemies walk on blocks that disappear as soon as you hit it, they will stop if there's a whole, but if you let a block fade away they will fall down.I don't know whether I have understood that correctly, but enemies treat the "volatile" tiles as solid, only the player triggers the disappear mechanism.
It's kind of confusing that you can't exit the game with Esc but have to to press P first.I wanted to avoid that one accidentally (or as a result of habitude) presses Escape and loses his whole progress. Furthermore, the pause menu states "don't save" to make that clear.
Too bad... What should the character of the player ressemble? Any eye with four legs? ;DQuote from: eXpl0it3rIs there a background story to the game?No. :P
I agree. I think I could just make the respective areas a bit larger. However, concerning the rope, I don't want to make it too easy. Now there are some places where it is difficult (but possible) to reach a certain place with the rope, and this should remain a challenge ;)Yes don't make it easier, although it can get frustrating sometimes. ;)
That's true, it's an artifact of a quite recent modification. Originally, every level was surrounded by a solid (and visible) wall. Then I decided it would be more interesting if not every level had the bounds of a rectangle, so I made the most outer walls invisible and adapted the most parts, but in some places, I didn't want to enlarge whole level just for a ceiling.Yes, in level 1-3 (http://pitload.org/3106) and 1-4 (http://pitload.org/3105).
Do you remember where this happened?
I don't know whether I have understood that correctly, but enemies treat the "volatile" tiles as solid, only the player triggers the disappear mechanism.What I mean is, if the block haven't gone yet, the enemies walk around and turn at the end of the blocks instead of falling down, now if you jump on one of these volatile blocks, the blocks disappeares and the enemy will fall down, where the block was before. I guess this is the easier solution for implementation and seeing that you've seperated the walking path from the 'physic' (i.e. lvl 1-3, the enemy turns one tile before the edge) it makes kind of sense, but in my mind it would make more sense if the enemies turn also if a block disappears unless they're standing on it.
I wanted to avoid that one accidentally (or as a result of habitude) presses Escape and loses his whole progress. Furthermore, the pause menu states "don't save" to make that clear.Yes I understand, but couldn't you trigger the pause 'menu' too when pressing Esc?
Maybe you should put it in a .rar or .zip instead of .7z. I'm sure not everyone has 7-zip and it saves them having to go download it themselves :)On the contrary, people should start using 7zip! I love it! ;)
How did you pack your resources into .zlx files as well (plus loading them)? I'm intrigued, as that could really help me in my game so people couldn't see the images and that!
Don't get me wrong, I do love 7zip too! It's just that I know that some people don't like to install stuff on their computer, or they've got that god damn awful WinRAR ... :@Maybe you should put it in a .rar or .zip instead of .7z. I'm sure not everyone has 7-zip and it saves them having to go download it themselves :)On the contrary, people should start using 7zip! I love it! ;)
How did you pack your resources into .zlx files as well (plus loading them)? I'm intrigued, as that could really help me in my game so people couldn't see the images and that!
It seems like he's created his own format with his own loader and packer. ;)
Hmm, If Nexus doesn't want to share, I may have to look into this :)
You can take a look at libMy (http://en.sfml-dev.org/forums/index.php?topic=5521), although it's outdated and the code design isn't the best, also since sfmluploads is once more down, you can't download it atm. ::)
Maybe you should put it in a .rar or .zip instead of .7z. I'm sure not everyone has 7-zip and it saves them having to go download it themselves :)I think WinRAR supports .7z as well. I prefer 7z because of its open nature.
How did you pack your resources into .zlx files as well (plus loading them)?I wrote a format only for that game, thus it is quite limited and specific. Actually I had the idea to improve everything and make it open-source, but I currently really don't have the time besides Thor, Aurora and other game projects.
Too bad...I know. I could have done a lot, but I have invested much time in bugfixing and gameplay during the last months, and I didn't want to delay the project any longer. But that doesn't mean this remains forever ;)
What I mean is, if the block haven't gone yet, the enemies walk around and turn at the end of the blocks instead of falling down, now if you jump on one of these volatile blocks, the blocks disappeares and the enemy will fall down, where the block was before.Ah okay. To guide enemies, I have created a special sort of tile which blocks enemies, but is invisible. This allows me to easily specify seemingly-intelligent behaviors like turning at a cliff or patrolling between two points. But it also means that enemies don't react specifically to volatile tiles -- on the other side, I think this way one can pointedly trigger the tiles to let enemies fall (especially later, where they fall into death).
Yes I understand, but couldn't you trigger the pause 'menu' too when pressing Esc?Then they'd leave with double escape, although one assumes that escape quits the pause menu, not the game. Players must read those signposts, they contain many useful advice (even if it isn't always obvious).
What I 'fear' is that some players don't read/remember that pressing P will open the pause menu...
Yey I found a 'hack' (at first really by accident, later I had to confirm that this wasn't just randomly). In level 1-4 you can avoid the spawing of some enemies if you jump over the invisible action blocks. ;DYes, this occurs in some places. And it's interesting that this is a typical programmer's observation, "regular" players don't think in terms such as "invisible action blocks" :D
I've kept playing a bit and I've now run into a nasty frame drop 'bug' which leads to some strange slowing down and speeding up the entities.This is a known issue, it results of the attempt to fix an FPS anomaly (http://en.sfml-dev.org/forums/index.php?topic=7750.msg51562#msg51562) by dynamically adjusting the framerate. That is also why I added an option "fixed framerate" which you can choose to disable the dynamic control system.
I have unreliable net and it is a surprisingly large file and 50mb compressed.Yes, the biggest part is music, I use about 15 different themes. I don't think I can shrink the size a lot without loss of quality.
Do you think you will incorporate any other sf mods like "let there be light"?I have not planned it. I know I could polish the game endlessly, but after a long time developping a Jump'n'Run I want to do something else. And there is still Thor...
You know what this would look great on.... Android. I'll volunteer you :PThanks, but as long as SFML doesn't support mobile platforms, this requires a rewrite of large parts.
Though honestly I do not know if it can live up to your airport game.Cool that you like Airport so much :) I wouldn't have expected that, considering its simplicity. I mean although I put some effort into the graphics, it's basically just a static background and moving planes with some particles and shadows ;)
I played that for hours. It had perfect graphics, great game play. You really outdid yourself on that project.
Though it does not live up to airport.I see. Zloxx probably isn't as addicting, especially once you have beaten everything ;) I think it also depends on the personal preferences, some people simply love Jump'n'Runs.
Nice game. Took me a few runs of the first level to figure out if I held down the F key while dropping on an enemy I'd bounce higher off them.That's why I added a signpost in Level 1-1 which describes exactly that ;)
Why not also setup something within the game to let someone change up the controls since sometimes the F key for jumpping is nice and other times I find myself hitting the up arrow?The up arrow for jumping is a bad idea, it is needed to climb up a rope.
Any planned support for linux?Theoretically, the code should be platform-independent, but I think I still have to adapt some parts. I should take a look at how long it would take.
Any planned support for linux?Theoretically, the code should be platform-independent, but I think I still have to adapt some parts. I should take a look at how long it would take.
./Zloxx2: error while loading shared libraries: libboost_filesystem.so.1.46.1: cannot open shared object file: No such file or directory
Since you have provided many library binaries in the Runtime directory, including SFML, GLEW and your own Thor, I suppose I should not need to install any myself.He most probably just forgot to include boost into the archive. ;)
In fact, there are many more libraries required (the SFML dependencies), but they're typically very stable C libraries with binary compatibility, and most of them are already installed in Linux distributions.
Now I included Boost in the Runtime folder, the new package is online.
./Zloxx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./Runtime/libthor.so)
./Zloxx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./Runtime/libsfml-audio.so.2)
./Zloxx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./Runtime/libsfml-graphics.so.2)
./Zloxx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by ./Runtime/libsfml-window.so.2)
I guess things will be much easier when SFML, and Thor in the current case, is officially packaged in various Linux distributions.This is still not a solution when you link to Git revisions between official releases. In this particular case I modified a part of SFML, which makes it even more difficult... So I simply ship the required runtime libraries. But this part works fine so far.
I have glibc v2.13 installed: libc.so.6 -> libc-2.13.soIt looks like you have an older C standard library, would it be possible to update it via package manager or www.gnu.org/software/libc (http://www.gnu.org/software/libc)? I don't know if it makes sense when I ship the runtime libraries in Zloxx -- but I could think about a separate package, similar to the MSVC redistributables.
It looks like it will be difficult to work around this issue, as this library is very sensible. I have searched for a solution, to no avail so far.
If anyone using Linux has a working solution, or is able to make the game work out of the box thanks to a different context, please report! :)Yes, I would like to hear that, too :)
This is still not a solution when you link to Git revisions between official releases. In this particular case I modified a part of SFML, which makes it even more difficult... So I simply ship the required runtime libraries. But this part works fine so far.
It looks like you have an older C standard library, would it be possible to update it via package manager or www.gnu.org/software/libc (http://www.gnu.org/software/libc)? I don't know if it makes sense when I ship the runtime libraries in Zloxx -- but I could think about a separate package, similar to the MSVC redistributables.
I did levels 2 and 3 while I was at it and I didn't have much trouble, though I did end up dying a couple times. The labyrinth was actually no problem at all. Most of my damage came from arrows I wasn't keeping track of (which was a bit lazy on my part, I'm sure I could get through unscathed if I tried).Okay, good to know it's doable :)
For overall gameplay design my main criticism would be that the weapon system seems sort of pointless since I can jump on all the enemies anyway.This is true for early levels, but later you'll encounter enemies with spikes on which you can't jump, or enemies that fire at you and are out of range, or simply too many enemies at once to fight them only by jumping (in particular when they jump themselves).
Also, instead of having separate keys for every weapon type (which I'll probably never remember), why not just have one "fire" button and use number keys to select between weapons we have ammo for?I think it's more tedious to cycle through the weapons until you get the correct one, especially when you have to react fast.
And of course: Why is the jump key F instead of space bar?
Actually Zloxx can jump while on a rope, and I found this was necessary to get certain coins, so that's not an option.
I think customizable keybinds would solve everyone's problems with the 'f' vs 'space' for jumping.This is precisely implemented in the SFML Game Development Book! :P
Or maybe I am just spoiled on the way mario jumps/climbs with the same key ::) It would sure make jumping and grabbing a rope to be much easier if it could all happen with a single key.Unless I am seriously mistaken, Mario jumps with one fire button and grabs a rope with the up-arrow.
Having the jump key change depending on what you're doing seems less intuitive than having it be the same key all the time (even if that key is F). You're probably overthinking this.I agree, I don't think mixing climb up and jump is a good idea.
This is precisely implemented in the SFML Game Development Book! :PAnd as an author, I don't even have an excuse :D
I got past that difficult jump in 1-1, then completed 1-2 and 1-3, but gave up in 1-4 at that double-rope part after 100 tries. :-\Apparently ropes are still quite challenging ;) if you read the beginning of this thread, you'll see that already other people had problems, as a result of which I simplified the mechanism. But I can't make it too easy, later you'll have to swing over blazing lava, where you can't afford any mistakes! :D
The game sure is challenging. What I miss most is the faculty to run, because it feels a little slow...Are there level parts which are too boring because you have to walk too long (if so, which ones)? I have tried to keep it more or less interesting with either enemies or platforming elements, or at least a beautiful scenery :P
Apparently ropes are still quite challenging ;) if you read the beginning of this thread, you'll see that already other people had problems, as a result of which I simplified the mechanism. But I can't make it too easy, later you'll have to swing over blazing lava, where you can't afford any mistakes! :DI must have tried every combination of position and action but the right one.
In this particular scenario from level 1-4, you should go to the very bottom of the rope (note that not the whole body must cling to it in order to hold), and then jump to the right. A mistake I've seen at some friends is that they press the right arrow before F, thus Zloxx leaves the rope and can't jump mid-air.
Are there level parts which are too boring because you have to walk too long (if so, which ones)? I have tried to keep it more or less interesting with either enemies or platforming elements, or at least a beautiful scenery :PAgree with Ixrec just above.
"While you are reading this, a rock strikes you". Seriously, stop that. ;);D
either longer rope or with a saving platform beneathThe puzzle itself is nice! So I guess a saving platform might be a good idea. By the way: I simply oriented myself to the next coin to the left: Just move Zloxx' eye right below it, and the jump will succeed. lol (I've done that several times already in the game, as some kind of marker.)
Okay, I admit this one is mean. Were you struck?Well, I had one battery charge left, and one life. So guess how happy I was. ;) The joke was alright, but maybe give the player a charge before you show him your humor. :D
But most signposts contain quite useful information, even though you sometimes have to read between the lines.Indeed, most of them are very useful. After the "trick" I always look up before going to one, though. Bitten dog.
Well, I had one battery charge left, and one life. So guess how happy I was. ;)Really? :D
One question though: In 2-1, if I remember correctly, there was a sign that said "It's not the first time you see the red thing. What did it mean last time?". I absolutely don't know what it meant, and given that I discovered that triangle some more times, I'd like to know what it's all about. :)Yes, nobody who played the game has really noticed or understood that, I need to make it more prominent or relevant somehow. It's not spectacular...
Not really a bug, but it's really sad that the only way to get a highscore registered is to "properly" exit to the menu. Can you just save highscores when finishing a level?Do you mean savegames? The idea was that you can use the transitions between levels to decide whether you want to continue playing or have a break, and continue later. Do you think you should be able to restart the level with the previously saved attributes? Then, the final highscore when beating all levels would not make sense anymore...
zsbzsb said on IRC that you can assign the same key to multiple actions but if you do that, then the key simply doesn't do anything anymore.Yes, I should explicitly forbid that, and also add a few more checks to prevent the strange situations you've described.
In addition to what I said about the spikes not staying down long enough, another major issue is that the player doesn't lose the inertia when running/jumping into a wall.Totally. I completely missed that when testing, and I re-played all levels for v2.3. Should be easy to fix ;)
I think 2-3 is hard enough, making the platform move under the rope in the beginning wouldn't hurt the game.Hm... It's really a challenge, but you're warned twice (you have to look for the warnings, there's not a lot to see at the beginning of 2-3). Since it's at the very beginning, you can usually restart the level, but yes, you lose a few weapons. Maybe providing a reference point as you said in the video would also simplify it.
Do you mean savegames? The idea was that you can use the transitions between levels to decide whether you want to continue playing or have a break, and continue later. Do you think you should be able to restart the level with the previously saved attributes? Then, the final highscore when beating all levels would not make sense anymore...Ah well I just had a different highscore system in mind. Guess the current system is just fine. ;)
I re-played all levels for v2.3. Should be easy to fix ;)Yay!
Hm... It's really a challenge, but you're warned twice (you have to look for the warnings, there's not a lot to see at the beginning of 2-3). Since it's at the very beginning, you can usually restart the level, but yes, you lose a few weapons. Maybe providing a reference point as you said in the video would also simplify it.Well, I just don't see any use in it other to frustrate people. In my opinion the first action in a level should be easy doable, so you already get some satisfaction in progression, instead of "Yes! A new level!" - "Hahahaha, you can't even move a few tiles from the spawn, you're so bad at this!". ;)
You say that one should collect coins prior to enabling the checkpoint, so that one would not have to do it again. Actually, the opposite is true: if you activate the checkpoint first, you can collect them twice (you only lose a life when dying, everything else is retained). This is even more important for items and hearts.Well that's one view. I usually like to collect everything I see and progress. If I get to a difficult part and respawn 3 times, it's really boring have to spend the first minute of the respawn collecting the same items over and over again. I guess if you're playing it for the highscore your strategy might be better.
There were some very cool situations :D once at the end of 1-3, you killed the enemies near the end and were almost there, and then jumped right into an arrow. Saying "jetpack fun" and jumping straight into lava looked also hilarious :) I only realized the key binding bug later.Well maybe cool for YOU! :P
Well, I just don't see any use in it other to frustrate people. In my opinion the first action in a level should be easy doable, so you already get some satisfaction in progression, instead of "Yes! A new level!" - "Hahahaha, you can't even move a few tiles from the spawn, you're so bad at this!". ;)That's not really my intention ;)
Well that's one view. I usually like to collect everything I see and progress. If I get to a difficult part and respawn 3 times, it's really boring have to spend the first minute of the respawn collecting the same items over and over again. I guess if you're playing it for the highscore your strategy might be better.The result is the same if you collect - save - continue or save - collect - continue. In the second case, you additionally have the option of collecting things a second time. This can be (literally) a life-saver ;)
Well maybe cool for YOU! :PNo, really -- it's very interesting to see others play your own game, especially if they comment about what you think. There's a lot of things that one doesn't realize as a developer, that's why I find it so valuable :)
Actually I really enjoy the difficulty of Zloxx, it's like in the good old days without health regeneration etc. Yes, the game pissed me off a lot, but in a challenging way. I have always had to come back to it and try again. If hard situations are predictable I'm fine with them. And hey, it gives an extreme good feeling when you master another !#*@%& situation.Cool to hear that :)
I really don't know what it is and whether it's because of my PC, but loading resources takes quite some time. So if I start the game, click through the menu and load a level, the game might freeze for another 30s or so. Do you experience something similar?Yes, but not that long, usually only a few seconds. I'm loading all the sound effects in one thread as soon as the game starts, and I join the thread when the level starts, to make sure they're loaded when needed. The problem is, I don't really know how I can avoid resource loading taking time. Even if I parallelize it further, the hard disk will be the bottleneck. There are the following trade-offs, and neither is optimal:
While trying out some speed running, I came across a bug (or is it a feature?) that lets you circumvent one of the enemy spawn triggers.There are a few ones where it's indeed intended, but yours isn't one of them. Thanks!
Not sure if a bug or a feature, but if you die and restart the level the music will start again from where you left off before dying. Shouldn't it fully reset?I did this to reduce the annoyance, letting the player hear different parts of the theme, not always the beginning. But yes, it may appear strange, I could restart it indeed.
Also when only having VSync active, do you still do some odd calculations? Because on my desktop as well as my notebook I get very sluggish movement with VSync active.I have to revisit this code. The whole frame time computation is a bit limited because when I started to develop Zloxx half a decade ago, I didn't use separate graphics and logic ticks, and several parts in the code rely on that. I'm not even sure if providing VSync at all is a good idea under these circumstances. I'll see what I can do :)
When on a rope and you're going up (pressing UP) and then want to jump left or right and press JUMP + LEFT/RIGHT while accidentally still holding the UP key, Zloxx will just jump a bit higher on the rope and not go left or right.I never encountered this... You don't need to hold the up key to hold on to the rope, so you can release it long before. Since up is needed to cling to a rope, I can't just disable it, because it's very well possible that one jumps even to grab the same rope again.
Holding the JUMP key won't repeat the jumping, as such if you press the JUMP key a few milliseconds before Zloxx really landed, the jump won't register. If instead a jump were to be triggered when in contact with the ground and the JUMP key is pressed, jumping would be less of a millisecond precision act.Yes, as explained here (http://en.sfml-dev.org/forums/index.php?topic=8403.msg56489#msg56489), this is intentional ;)
Same goes for jump + holding on enemy for a higher jump.No, here you can hold the key before landing on an enemy. There's no other possibility, because the time you actually touch the enemy is just one frame, which is impossible to hit.
Yes, but not that long, usually only a few seconds.I don't really know what it is either. I just takes way too long and my SSD isn't the limiting factor here either. Tank said it works fine for him...
The problem is, I don't really know how I can avoid resource loading taking time. Even if I parallelize it further, the hard disk will be the bottleneck.Pre-loading is fine. If it turns out to really just be a long loading time, you could think about not directly joining the thread, but instead have some flags to check if the loading is finished and if not, keep displaying some text showing "loading resources" or whatever.
What I can do is have another look at the loading with a profiler, and see if there's optimization potential.If it doesn't happen on your system you could create a debug build which I could try and profile it and provide you that data. Maybe it's just my system after all?
I did this to reduce the annoyance, letting the player hear different parts of the theme, not always the beginning. But yes, it may appear strange, I could restart it indeed.It doesn't really matter, I'd have just expect the music to start from the beginning again, since the full level reset.
I never encountered this... You don't need to hold the up key to hold on to the rope, so you can release it long before. Since up is needed to cling to a rope, I can't just disable it, because it's very well possible that one jumps even to grab the same rope again.Really? I guess you're just used to it then.
Yes, as explained here (http://en.sfml-dev.org/forums/index.php?topic=8403.msg56489#msg56489), this is intentional ;)As I said a looked a bit at Commander Keen and they implemented the jumping, that when you hold the key nothing happens, but when you repress the key in mid-air and keep it holding, the jump will get triggered again once on the ground. As such it's not senseless repeated jumping, but your input will get processed. Then again I guess this all a matter of taste. I'd just like it if Zloxx was a bit more forgiving.
I really think this is part of the challenge, just holding the jump key to jump again would be too easy.
Just a suggestion but I've noticed that a technique which I think is really effective is to design a small, simple mini-game that barely takes any sprites/sounds so doesn't take long to load that can then be played in a separate thread so as to keep the user entertained while loading the resources for the main game. Examples would be the nintendo eShop with their little roulette game and splatoon which has a very basic upward scrolling platformer.The problem is, I don't really know how I can avoid resource loading taking time. Even if I parallelize it further, the hard disk will be the bottleneck.Pre-loading is fine. If it turns out to really just be a long loading time, you could think about not directly joining the thread, but instead have some flags to check if the loading is finished and if not, keep displaying some text showing "loading resources" or whatever.
Can we do levels ourselves? I would like to create a "Tank's payback" map pack. ;)This is planned for version 2.4! The editor is already functional, but needs some bugfixes and instructions. I also have to implement a whole system to name/store custom levels. And there are so many other things to fix... So that may take a while.
zwookie, what exactly flickered? Was it the background (i.e. the mountain/sky/forest painting) or something else? Always in fullscreen mode?