gamedev
Work a lot on the level editor. I've added edge tiles, but this caused a problem with the level format because the number of tiles is now in the double digits and I was using two digits in the tile maps. The first determined if the tile was drivable or not and the second was the index of each tile. I had to make the tile maps triple digits now because of that.
gamedev
So, I think I fixed the lag problem, key word being "think". So, in SFML, you have two objects for sounds: sf::SoundBuffer and sf::Sound. The sound buffer just loads the sound file. And sf::Sound is an instance of said sound with a pointer to the buffer. Up until now, I have every game object holding all of the sounds they play in their own sf::Sound objects. I thought it wouldn't be a strain on the memory because the actual sound data is stored in the buffers, but now I have a singleton class to handle all the sound playing.
I've noticed that there is somewhat less lag when there is a clutter of cars, but I haven't truly verified that yet. I haven't done it on a huge cluster of cars. Anyway, this should be a good thing, because the game is piss easy right now with amount of enemies on-screen.
gamedev
Maybe it did fix the lag, but only slightly. I've also rearranged some if-statements, which also seemed to help.
Regardless, if you drive slowly enough, eventually all the cars in the level will appear on-screen at once because the only start moving once they are fully onscreen and will only disappear once they are on the bottom of the screen. So you will eventually get lag. But nobody is going to play the game that way so who cares?
Unlike my previous game, enemies do have some sort of AI, as opposed to just having patterns. Naturally, there are a few state machines and lot of if-statements even for this basic AI, but that's also because of poor planning. Some could be turned into switch statements.
Also, having a mine car does increase difficulty, a little bit. So, I probably won't need that much more cars on screen.
Anyway, the game is coming along nicely and quickly regardless. Like the last game, don't expect anything ground-breaking, just something that would be fun for a couple of minutes.
gamedev
Oh, I've also replaced one large if-else statement with a switch statement. I think that might help with performance. Contrary to popular belief, a switch statement and an if-else statement do not compile the same way. if-else uses branching instructions (constantly checking for and calculating conditions) while a switch statement uses a lookup table.
gamedev
gamedev
I'm realizing that this game is piss easy because Spy Hunter-style enemies can only attack from the side. While I do have a mine car. It isn't enough. Unlike the original Spy Hunter, enemies cannot appear from behind because this game has predefined enemy placement. And if you know where the enemies can attack, you can always attack from behind, and never have to deal with the threat of enemies attacking you.
I plan on adding one more enemy that appears from behind and will shoot you on sight. Hopefully, it will add a little bit more challenge. However, I need to be careful about adding too many enemies on screen because of the lag problem that I can only mitigate so much.
The other option is just to scrap predefined enemy placement altogether, and have cars appear from either the top or bottom after a certain interval with a limit on how many cars can appear on-screen at once. This would obviously be a hard choice because I put so much work in designing the levels and even creating my own level editor, but unexpected turns are just simply a reality in game development.
gamedev
Now, I'm experimenting with having randomly spawning enemies as opposed to predefined enemy placement in levels. It should help with the problems I had previously and also allow me to include enemies that appear from behind (which I haven't implemented yet).
I should also tweak the behavior of some enemies. Have them catch up to the player, if they attack from the side.
gamedev
Made a beach/island/sandbar level. I don't know if I'm going to make more levels. Other than that, I just need to tweak some things, add music, replace the Spy Hunter sprites with my own or stock assets, give this a name, and then I'm done.
I'm hoping that my next game would be something more inspired.
gamedev
Added background music. This track is called Mom's Workout CD by Zane Little Music on OpenGameArt.org.
gamedev
Replaced the player car's sprite with my own. It kind of looks weird though. I probably should make a smaller one and have this sprite be for an enemy. It turns black when destroyed because it's supposed to be charred.
I also made this using Piskel instead of Pinta because Pinta, for whatever reason, keeps on randomly crashing, even after updating it.
gamedev + important question
So I'm almost done with this project. All I need to do is add a few more songs, sound effects, and iron out a few bugs.
But I have an important question: What should the title be? It's a Spy Hunter clone and it has no story. Unlike my last project, I can't get away with coming up with some made up name because it's set in a realistic setting.
gamedev
Finally got a logo on the title screen/menu along with a title for this game. Shout out to @Mr_NutterButter for the logo and for coming up with the name.
It actually looks too good, especially compared to the actual game.
gamedev
So, the game is basically done. I could add more levels and stuff, but I'm burnt out and want to move on. It's playable from start to finish and that's all what matters. It also isn't as polished as the last game, but that's because I've switched both languages and frameworks.
Expect a release later today. I just need to create a page for it on my website. It might be for Linux only for the time being because I currently don't have access to a Windows PC and I don't really feel like cross-compiling with MinGW and Wine.
gamedev
IT'S FINALLY DONE.
My Spy Hunter clone, Distant Ruins is now complete. Currently, there is only a Linux binary, but you should be able to compile for Windows in the meantime.
gamedev + important question
@xianc78 Carburetor
gamedev + important question
@beardalaxy
@xianc78
I second "Carburetor"
gamedev + important question
@souldessin @beardalaxy
Okay. I don't expect anyone else giving suggestions. @Mr_NutterButter can you make a logo? You can use the player car as a reference.
gamedev + important question
@xianc78 did you still want some music for it?
gamedev + important question
@beardalaxy I need menu music, credits music, and music for the last level. I should probably upload footage of the last level so you can get a feel for it (it's really just a sandbar and designed to be slow pace and difficult).
As for credits, it requires the correct timing. You need to end the song exactly when the credits end.
I'll send you footage later. I'm too tired right now.
gamedev + important question
@xianc78 cool cool. no music needed for the normal levels? or will you just use the menu music for it or something?
gamedev + important question
@beardalaxy I already have normal levels covered (stock music from OpenGameArt).
gamedev + important question
@xianc78 i'd like to hear that too so i can at least try to match the style somewhat :)
gamedev + important question
@beardalaxy Most of the levels use this song.
https://opengameart.org/content/moms-workout-cd
I have a snow level that uses this song.
https://opengameart.org/content/arctic-beat
I also have a desert level that uses this theme
https://opengameart.org/content/desert-theme-8bit-chiptune-theme
gamedev + important question
@beardalaxy BTW, if you have any unused game music, please consider uploading them to OpenGameArt. The selection there sucks.
gamedev + important question
@xianc78 if you'd like, i can upload the ones i make for this over there.
gamedev + important question
@beardalaxy That would be great. I think Codeberg only allows me to upload anything that is released under an open license.
re: gamedev
re: gamedev
re: gamedev
re: gamedev
gamedev
I now replaced the assets for the spike car and limo. All that's left is the bumper car.
#gamedev #SFML