The Diasporic Crypt

beelzybeelzy Posts: 39Member
edited February 14 in Projects
Messed with GodotEngine over the holidays and ended up with this demo.
https://github.com/Algorithmus/CastlevaniaClone
This is just sample code for how I made a classic platformer using this guide: http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/comment-page-1/#comments
It will probably become something bigger later though.
Im still a noob though, so feel free to suggest better ways to do things if I miss something.
I am also getting strange area_inout (!area_in && !E) errors on x64 builds. No idea what thats about. Appears not to have any significant side effects in the game though.
Artwork (mostly the tiles) made with the new Krita animation feature.
EDIT: This project has been updated in the meantime. I cross-posted on freegamedev.net while the old GodotEngine forums were being moved. If you haven't been following along there, I've basically added a whole bunch of new features and now it has some semblance of a GUI and some RPG elements.

/>

I haven't decided on what the overarching storyline will be, if there is any, but there are some gamers who just play for fun and don't care about the storyline at all (one of the reasons I picked the platforming genre over strict RPG or visual novels; lots of flexibility there). I do like the idea of a FOSS vampire gothic horror themed game though.

Some of the sounds/music are not CC-BY-SA/CC0, so I am going to replace those eventually. I also don't have anyone to make music just yet, but I don't think I consider myself at the stage of development where it would be a good idea to start looking for music (and I'm rather picky...). Maybe I'll advertise in that forum when I'm ready to look. But if anyone is interested anyways, that would be great if you could contact me about it. I'm also having difficulty finding the right SFXes sometimes too. The hardest one right now appears to be dialog box sounds.

I've decided the full game should be called The Lost Catacombs.
EDIT: It has come to my attention that someone else already made a Unity game with the same name. So I will go for the more unique fitting "The Diasporic Crypt" for the title.

Tags :
«1

Comments

  • beelzybeelzy Posts: 39Member
    Thanks for all the feedback. Ive restructured the files. I hope I didnt miss anything.
    Tried to fix the attack. I hope its better now.
    Made a few level designs. Theyre going to be for more advanced levels. I figured it would be easier that way since theyll probably have the more complicated features and stuff Id like to do with them, and give me a good idea of the stuff that should be implemented. The easier levels after that wont be too much of a problem.
  • beelzybeelzy Posts: 39Member
    Sure, go ahead.
    Although that website I linked in the code comments is where I get most of the implementation from. It explains the stuff more generally than my code does.
    I have a separate swinging feature that I havent pushed yet thats not from that guide that I implemented myself. Not sure if you wanted to use that implementation for learning as well, but its not pushed yet because the graphics are missing. Still working on that at the moment.
  • beelzybeelzy Posts: 39Member
    Decided if I worked on larger features in this game, it wouldnt really be a demo anymore, so I moved all that stuff to a different branch. Its under the fullgame branch.
    New features:
    You can now select two different characters to play as. They will have different abilities.
    The new character can attack in different directions and swing or hang.
    You can absorb blood from certain enemies (graphics missing. I just did the cheap color swap trick).  After you defeat them, go up to them and press a repeatedly.
    Some new character sprites below.
  • beelzybeelzy Posts: 39Member
    Decided if I worked on larger features in this game, it wouldnt really be a demo anymore, so I moved all that stuff to a different branch. Its under the fullgame branch.
    New features:
    You can now select two different characters to play as. They will have different abilities.
    The new character can attack in different directions and swing or hang.
    You can absorb blood from certain enemies (graphics missing. I just did the cheap color swap trick).  After you defeat them, go up to them and press a repeatedly.
    Some new character sprites below.
  • beelzybeelzy Posts: 39Member
    Sure, go ahead. I didnt think people were interested in using it so soon, but now that Ive gotten a few requests, Ive decided to go ahead and GPL it.
    Would be looking forward to seeing what you make with it.
    Small update: added all those special attacks. Theyre now in the fullgame branch.
  • beelzybeelzy Posts: 39Member
    Now with more magic.

    I havent exactly decided how to limit the void spell within the tilemap. Its either going to be detecting the edge of the tilemap or placing solid blocks there. Im unsure how to detect the edge of the tilemap in GodotEngine or if thats even at all possible. Does anyone know?
  • BishopBishop Posts: 162Member
    Nice job beelzy,keep up!!
  • beelzybeelzy Posts: 39Member
    Thanks.

    Now some new stuff. Has some RPG elements, NPCs and a pause menu where you can manage your items, scrolls and change the settings like sounds and controls.
  • BinaryOrangeBinaryOrange Posts: 101Big Boss
    Wow, looks excellent! I really like the look of the menus and how you interact with NPCs.
  • beelzybeelzy Posts: 39Member
    Thanks.

    There is now a UI for selecting levels. Excuse the atrocious looking map; I haven't exactly decided what the overworld should look like just yet.

    I put in a tagging feature that allows players to tag specific levels for when they find levels with areas they can't reach yet or there's something there they missed and didn't get yet, or they simply just liked the level.







    The levels don't actually exist yet, so you can't actually select them just yet. That will be coming up soon.
  • MegalomaniakMegalomaniak Posts: 283Member
    That looks great, and the map may be simple but it's effective. Smiley
  • beelzybeelzy Posts: 39Member
    Thanks. I was kind of thinking of going with a similar style for the map where it's just a parchment styled map with minimal colors. The land masses and other features might change though.

    I guess if that works for most people, I'll keep the style I had in mind.
  • MegalomaniakMegalomaniak Posts: 283Member
    yeah, reminds me of the maps in lotr/hobbit books.
  • beelzybeelzy Posts: 39Member
    Important new feature: warping between levels. The essential idea behind it is that you don't actually walk between levels to get there, but rather, teleport there by warping the catacombs underneath the level. The "lost" catacombs is the player's hub for everything: access to levels, some item shopping, healing, etc.

  • dkreydkrey Posts: 5Member
    Hey,
    this look really amazing and also thanks for sharing the source. It really cool to see that you already implemented all of the common features of a modern platformer - awesome!

    One question though - in the crypt the framerate is quite alright around 30-60 fps. But in the testarea I can't get more than 4-5 fps. Is this because of all the enemies or due to the level size?
  • beelzybeelzy Posts: 39Member
    Well the amount of objects in that level might be it. Or a very specific object, since that sandbox has more types of objects in it than any of the other levels do. What platform are you running? Does anything show up in the error console? I had a similar issue about that once before, and it was because of some error that was cropping up and slowing down performance on Windows/Linux, but not Mac OSX.

    There is probably a slight performance drop due to all the objects in that one sandbox level, as screen capturing slows it down quite a bit, but not the other levels, and it takes longer to load the resources in it (I'm going to have to implement some form of background loading for that eventually). However, if it is an actual error like the one I had last time, I would very much like to fix it.
  • dkreydkrey Posts: 5Member
    I'm using a Win 7 32bit Notebook with a i5@2,7GHz and integrated graphics.
    Here's the debug output. As you can see, the character select screen is blazing fast(84 fps), the crypt is alright(49-61 fps) and after that it's very choppy (4-5 fps)

    Code:
    ** Debug Process Started **
    EXEC PATHP??: C:\Users\dirk\PortableApps\godot\Godot_v2.0.1_stable_win32.exe
    EXEC PATHP??: C:\Users\dirk\PortableApps\godot\Godot_v2.0.1_stable_win32.exe
    EXEC PATHP??: C:\Users\dirk\PortableApps\godot\Godot_v2.0.1_stable_win32.exe
    DETECTED MONITORS: 2
    FPS: 1
    FPS: 3
    FPS: 1
    FPS: 99
    FPS: 85
    FPS: 83
    FPS: 84
    FPS: 59
    FPS: 48
    FPS: 62
    FPS: 8
    FPS: 16
    FPS: 49
    FPS: 52
    FPS: 61
    FPS: 30
    SunbeamGroup/Sunbeam
    [KinematicBody2D:3666]
    FallingPlatformGroup/FallingPlatform
    [Node2D:2927]
    SwingableGroup/SwingBlock 2
    [KinematicBody2D:3590]
    FPS: 58
    FPS: 1
    FPS: 4
    FPS: 4
    FPS: 5
    FPS: 5
    FPS: 5
    FPS: 4
    FPS: 4
    FPS: 5
    FPS: 4
    FPS: 5
    FPS: 5
    FPS: 4
    FPS: 5
  • dkreydkrey Posts: 5Member
    I just had a try on another system: Win10 64bit i5@2.5 GHz
    Surprisingly here the crypt and the testlevel are both at the same frame rate, both at 5 fps

    Code:
    ** Debug Process Started **
    EXEC PATHP??: D:\Eigene Dateien\Godot\Godot_v2.0.2_stable_win64.exe
    EXEC PATHP??: D:\Eigene Dateien\Godot\Godot_v2.0.2_stable_win64.exe
    EXEC PATHP??: D:\Eigene Dateien\Godot\Godot_v2.0.2_stable_win64.exe
    DETECTED MONITORS: 1
    FPS: 1
    FPS: 19
    FPS: 310
    FPS: 315
    FPS: 76
    FPS: 5
    FPS: 5
    FPS: 5
    FPS: 5
    FPS: 5
    FPS: 5
    FPS: 5
    FPS: 6
    FPS: 74
    SunbeamGroup/Sunbeam
    [KinematicBody2D:3672]
    FallingPlatformGroup/FallingPlatform
    [Node2D:2933]
    SwingableGroup/SwingBlock 2
    [KinematicBody2D:3596]
    FPS: 78
    FPS: 5
    FPS: 6
    FPS: 6
    FPS: 6
    FPS: 5
    FPS: 6
    FPS: 5
    FPS: 6
    FPS: 6
    FPS: 5
    FPS: 6
  • beelzybeelzy Posts: 39Member
    Thanks for testing. So I was able to reproduce the first scenario where the sandbox level lagged, but the catacombs level was fine on Windows 7 64-bit through Bootcamp using release exports. If you turn off the debug option for export release, it runs a bit better. I decided to use VisibilityEnabler2D anyways to prevent processing objects that are too far away. Compare ~457 collision pairs in the sandbox level with 16 in the catacombs! I don't know how that gets calculated though; I noticed that when you use VisibilityEnabler to detect disabling and enabling fixed process, the number of active objects drops, but not the collision pairs and release export on Windows works much better. Unfortunately, I doubt this will improve performance much on the second scenario with Windows 10, as the catacombs level is already small enough, and I don't have that OS and can't test it directly. Anyone with experience running GodotEngine games on Windows 10?

    Also fixed a minor bug where the catacombs teleport doesn't connect to the correct level if you leave and come back.

    You should now be able to test it though. I pushed those changes.

    I'm also not sure if I'm using VisibilityEnabler correctly. I had the same problem as this guy: http://godotengine.org/qa/2640/how-to-use-visibilityenabler2d?show=2640#q2640
    The only way I could use it successfully was to connect it to the enter_screen and exit_screen signals and call set_fixed_process on them.
  • dkreydkrey Posts: 5Member
    Just tried the latest revision - inside godot and exported.
    The framerate in the catacombs is alright , but the sandbox is still choppy. For some reason it gets better if I walk to the left.

    Also the debug window is full of this message "ERROR: canvas_item_add_triangle_array: Condition ' ps % 3 != 0' is true. AT servers/visual/visual_server_raster.cpp: 3740
    I hope this helps.

    Btw. the death animation is genius Cheesy
  • beelzybeelzy Posts: 39Member
    Just tried the latest revision - inside godot and exported.
    The framerate in the catacombs is alright , but the sandbox is still choppy. For some reason it gets better if I walk to the left.

    Is that the area with all the enemies or the pit with the zombie target just before that?

    Quote
    Also the debug window is full of this message "ERROR: canvas_item_add_triangle_array: Condition ' ps % 3 != 0' is true. AT servers/visual/visual_server_raster.cpp: 3740
    I hope this helps.

    I was looking into that yesterday as well, and did some testing with help from Megalomaniak. After a little bit of research, it appears that another message from GLES shows up when there is a texture somewhere with size set to 0, 0. I suspect this might be related to the canvas_item_add_triangle_array calls, but I'm not sure. I'm going to have to find this texture and fix it.

    Quote
    Btw. the death animation is genius Cheesy

    Haha, thanks.
  • dkreydkrey Posts: 5Member
    Quote
    Is that the area with all the enemies or the pit with the zombie target just before that?
    I think I cornered it to as soon as I get away from anything that's in the air Wink

    As soon as I kill the burning skull, the framerate gets much smoother. Also platforms seem take a bit of performance.
  • MegalomaniakMegalomaniak Posts: 283Member
    Quote
    Also the debug window is full of this message "ERROR: canvas_item_add_triangle_array: Condition ' ps % 3 != 0' is true. AT servers/visual/visual_server_raster.cpp: 3740
    I hope this helps.

    I was looking into that yesterday as well, and did some testing with help from Megalomaniak. After a little bit of research, it appears that another message from GLES shows up when there is a texture somewhere with size set to 0, 0. I suspect this might be related to the canvas_item_add_triangle_array calls, but I'm not sure. I'm going to have to find this texture and fix it.

    Ah, right it's probably a good idea to link that CMD screenshot here, just in case you wish to take another look at it.
  • MegalomaniakMegalomaniak Posts: 283Member
    dkrey, btw it might be useful to know also what gpu those systems had, might it have something todo with the graphics drivers for an example?
  • beelzybeelzy Posts: 39Member
    Guess I should mention that I fixed a few of the reoccurring error messages (like the triangle_array one that keeps popping up). I doubt that will improve the speed very much for you, and I still haven't figured out the issue with the sample player malloc error. Apparently, there is this list of sample related stuff in a list that should be freed before the destructor gets called. If they're not freed, the list is printed out in the error console. No clue how that works exactly.
  • beelzybeelzy Posts: 39Member
    I fixed the issue with the malloc errors.

    Basically, this is what happened: https://github.com/godotengine/godot/issues/4332

    Now it shouldn't crash on closing.
  • beelzybeelzy Posts: 39Member
    Some more updates.
    The "catacombs" level has received a total makeover, and now it looks more like one. You can also sleep in the coffin to restore health.

    I put up the first tutorial level. People are free to try it. It's a bit of a unique level though because it's one of only a few levels that are shared between both characters.

  • MegalomaniakMegalomaniak Posts: 283Member
    lookin' great!
  • BinaryOrangeBinaryOrange Posts: 101Big Boss
    Extremely impressive! Just catching up, and the amount of work you're putting into this is incredibly inspiring!
  • beelzybeelzy Posts: 39Member
    Thanks for all the comments.

    Sorry for the lack of updates, but I suppose planning all the levels would have taken some time and not much else to show, and there wasn't really a good place to just stop to take screenshots or show off features, so I guess I'll do that now.

    Here are a few bosses. I don't want to spoil the strategy too much, so they're just screenshots. I pushed the changes though, so you can try them yourselves if you'd like. The tilesets are obviously not final either. They're just there so that I have a level, and will be replaced later.



    I had another idea for this boss which involved having a specific BGM for this fight with four voices in it (an SATB thing). Unfortunately, it's hard to find something like that for something as intense as a boss fight. Beethoven's 9th symphony, for example, is way too happy for something like this.

Sign In or Register to comment.