|
[KrampusHack 2020] DragonWrath |
Mark Oates
Member #1,146
March 2001
|
DragonWrath
AboutThis is my submission for KrampusHack 2020 (Gift for RmBeer who wanted a fury of dragons!! 🎉). It's a shoot-em-up where you, a dragon protagonist, take on waves of dragon enemies in an attempt to restore peace and tranquility to your kingdom. There's currently 1 level (which you can actually edit! ) and a boss. Screen Shots{"name":"612783","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/b\/0b21b37de4cf14100f780605c67a7a40.png","w":1920,"h":1124,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/b\/0b21b37de4cf14100f780605c67a7a40"} {"name":"612781","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/8\/c8eec2d514c2b8da4033711ff5231269.png","w":1920,"h":1124,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/8\/c8eec2d514c2b8da4033711ff5231269"} {"name":"612782","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/3\/73ba2fe0bb3c12e3d87671d28427f4fd.png","w":1920,"h":1124,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/3\/73ba2fe0bb3c12e3d87671d28427f4fd"} Downloads
Instructions
With more time, I would have added a limitation that you can only refire at the set rate. Currently you can re-press the spacebar quickly to refire faster than the rate limit. Giftee Wishes from RmBeer:
Notes:As far as the wishes, I managed to get in dragons and picked the most furious genre I know of, which is a classic arcade shooter. It's missing a compelling story and storyboards, but should have a decent flurry of classic side-scrolling fun. What's missing most is the behavior for the last boss, which currently is just him staying there and taking damage if you shoot him. Hopefully you don't run into him and lose a life in the battle! By the way, if you wanted to, you could modify the data/levels/level_1.generated.json file and make your own waves of dragons! The structure should be pretty clear what each of the elements represent, and you might take a look at the scripts/ folder which has the ruby scripts I use to generate the json for the first level . I hope you enjoy it! Excuses / Pleas
Celebrations / Achievements
This time around, the system showed itself to be able to handle much more abstractions, and I feel like the next instalment might approach a development style that's more "game-out-of-a-box". I absolutely loved the workflow of switching between the different platforms to test builds. Live StreamingThis year I did a lot of live streaming. What an amazing experience! It was challenging to talk as I coded, but it ended up being so much fun I got a sweet mic to level up the experience. I also managed to iterate over my setup several times each day (I tried to "pick one simple thing each day to improve the stream") and finally got an incredible setup where I could switch between development on MacOS and Windows, all while switching the streaming feed seamlessly. For what that was like, here's a clip I recorded from about day 7 : https://youtube.com/v/9SB8iDNoVws Edit: For some reason allegro.cc is pruning my screenshots/attachments. I've re-uploaded the attachments and moved files to Google Drive so hopefully it works. -- |
SiegeLord
Member #7,827
October 2006
|
I loved the intro and the art style, very polished. Kind of reminded me of Cave Story. Did you make the music/graphics? They were very good. As for the game itself, it was pretty basic, but I see the potential. I liked the sampling of patterns. I also tuned in a few times into the livestream, it was fascinating! "For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18 |
RmBeer2
Member #16,660
April 2017
|
It's very good. I liked it. I like art and its style, it reminds me of arcades. You achieved the wish I most wanted, I'm already satisfied. xD The game is very well done!! He still has some problems. Since I'm unable to change the screen resolution, I have checked the source code and all the size values are scattered throughout the code. It's also slow, it even causes delays in events, I don't know what the problem is. I would like to see it finished, with more levels, if you plan to continue working on it. :3 g++: error: unrecognized command-line option -ferror-limit=1 This error appear in linux, you need avoid this parameter also in this system. 🌈🌈🌈 🌟 BlackRook WebSite (Only valid from my installer) 🌟 C/C++ 🌟 GNU/Linux 🌟 IceCream/Cornet 🌟 🌈🌈🌈 Rm Beer for Emperor 2021! Rm Beer for Ruinous Slave Drained 2022! Rm Beer for Traveler From The Future Warning Not To Enter In 2023! Rm Beer are building a travel machine for Go Back from 2023! Rm Beer in an apocalyptic world burning hordes of Zombies in 2024! |
Mark Oates
Member #1,146
March 2001
|
SiegeLord said: Did you make the music/graphics? I did not! This time around I got graphics, fonts, audio, music from itch.io, opengameart.org, and freemusicarchive.org. The music is from the artist sawsquarenoise of whom I am now a fan! RmBeer2 said: He still has some problems. Since I'm unable to change the screen resolution, I have checked the source code and all the size values are scattered throughout the code. Yea true. A design decision was made to hard-code the resolution into the game. I don't have a good switcher yet, unfortunately. Is it too large or too small? Quote:
g++: error: unrecognized command-line option -ferror-limit=1 This error appear in linux, you need avoid this parameter also in this system. Ah interesting. I didn't run any compiles on Linux. I wonder if I could set that up with a PI. Quote: It's also slow, it even causes delays in events, I don't know what the problem is. Can you give a little more detail on what kind of slowness you experience? It does run laggy when I've had a lot of programs running in the background, but runs smoothly on my MacMini and Windows laptop. Quote: I would like to see it finished, with more levels, if you plan to continue working on it. :3 One day perhaps. . I've already spend a significant amount of time attempting to abstract the system entirely and have a pretty good map. The system is very open for extension and you could make new enemy types by following the design pattern of any of the classes in DragonWrath::Entities::Enemies::* like the PurpleDragon and tracing it through the system (where it's spawned, built, spawn event emitted, etc). If you wanted to experiment with enemy design, you could fuss around with the Enemies::SuperBoss and start the game with the "boss" level, which is listed in the initialization list of the DragonWrath::GameplayScreen. Anyway, point being it's written to be flexible, so adding enemies, levels etc. should work without breaking anything. -- |
GullRaDriel
Member #3,861
September 2003
|
Nice entry, liked it. Remind me of old NES/SNES games. "Code is like shit - it only smells if it is not yours" |
RmBeer2
Member #16,660
April 2017
|
I have forgotten my manners. Thank you so much by the gift!!! It's better than I expected! I have also forgotten to say that the dragons are well drawn, although I said it in an indirect way, it has not been clear there. 🌈🌈🌈 🌟 BlackRook WebSite (Only valid from my installer) 🌟 C/C++ 🌟 GNU/Linux 🌟 IceCream/Cornet 🌟 🌈🌈🌈 Rm Beer for Emperor 2021! Rm Beer for Ruinous Slave Drained 2022! Rm Beer for Traveler From The Future Warning Not To Enter In 2023! Rm Beer are building a travel machine for Go Back from 2023! Rm Beer in an apocalyptic world burning hordes of Zombies in 2024! |
Elias
Member #358
May 2000
|
The makefile did not work (and the .exe was missing DLLs so had to build myself): compiling object file src/allegro_flare/path2d.cpp...g++: error: unrecognized command-line option ‘-ferror-limit=1’ However just removing that option fixed it! The game is really nice, reminds me of Pegasus: https://www.youtube.com/watch?v=AJZPxw8nmkU I wish there were more levels (and a way to resize the window to 2x the resolution). -- |
Dizzy Egg
Member #10,824
March 2009
|
Get this error when running the binary: {"name":"612805","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/1\/9105b44547df3cf1bfb69929c42d067d.png","w":546,"h":259,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/1\/9105b44547df3cf1bfb69929c42d067d"} Will try and compile myself later.
---------------------------------------------------- |
Mark Oates
Member #1,146
March 2001
|
Elias said: compiling object file src/allegro_flare/path2d.cpp...g++: error: unrecognized command-line option ‘-ferror-limit=1’ This appeared on Windows during compile, too. You're on Linux? That flag is used entirely for development and can be removed. Essentially it makes it so a single error doesn't spill out into the terminal as a cascade of error messages that I have to scroll up on. Dizzy Egg said: Get this error when running the binary: Ah, I completely neglected to include the dll files . I have a list somewhere. I may have some time after work today to fix it up. On both of these, I actually had a "releaser" program that was designed to do all this work for me, dlls, cleanup Makefile. I should have leaned on that. I did write some documentation on it at some point. RmBeer2 said: I have forgotten my manners. Thank you so much by the gift!!! It's better than I expected! Ah, thank you. I appreciate that. I definitely learned a lot this time around. Again, the architecture is designed to be maximally flexible. I was watching Contra: Hard Corps yesterday and was watching all the varieties of enemies and designs for bosses and backgrounds. In principle, DragonWrath should be able to handle those designs. The majority of the work is explicit design and programming work on those enemies, backgrounds, and environments directly, rather than "making it work" in the system . Once I get past the hangover of the hackathon and starting back work again in 2021, I hope to have some time to really explore that and design some really compelling gameplay, which is a level of game programming I've never been able to get to . Elias said: Pegasus OMG it's the saame game!! 🤯🤯🤯 -- |
amarillion
Member #940
January 2001
|
This game looks and sounds great! I know you can't claim credit for the graphics, but still, when you put it all together it works. And yeah, the boss is a bit boring like this, I would love to see what you'll come up with in that extra hour... Are the power-ups completely random? There doesn't seem to be a pattern to them. I really like to get a speed boost early, but sometimes you don't get one until the end. Most gradius-type shooters start with that. On windows, after I put in place my own dlls, I get the same error as DizzyEgg. And for some reason, running "objdump -p DragonWrath.exe" comes up empty. I have no idea why that doesn't work. Building on linux was fine, I also had to remove the "-ferror-limit-1" bit. It would be nice if you could make a windows binary bundle including dlls, so that I can include it in the binary pack. -- |
Mark Oates
Member #1,146
March 2001
|
amarillion said: This game looks and sounds great! I know you can't claim credit for the graphics, but still, when you put it all together it works. Thank you. My typical approach in the past has always been to do everything myself (graphics, music), but that is such a major time sync and that make it harder to have a birds-eye view. I've never "finished" a project, and I believe this is one of the major reasons why. Also at work, when we talk about advancing in your career it usually comes with a discussion about delegating tasks to other people. So, I've tried to take that a little more seriously in order to get projects closer to completion. I really liked the general design. I would love to have a small team (composer, graphic artist) who can dedicate their craft as I focus on the engine. Ironically, I don't find myself compelled as much with the gameplay design. So many different hats. Quote: Building on linux was fine, I also had to remove the "-ferror-limit-1" bit. Cool. Maybe I could setup a Raspberry PI to run linux builds just to be sure there's not bumps on the platform. Quote: It would be nice if you could make a windows binary bundle including dlls, so that I can include it in the binary pack. DLLS, yea I completely dropped the ball on that. Ok, I can make a Windows binary bundle and will hopefully upload it in a few days. I do have a list of the needed DLLS in a text file somewhere. -- |
amarillion
Member #940
January 2001
|
I actually managed to get the right DLL's together yesterday. They're included in my binary pack The problems I was having earlier is that the binary you provided is 64 bit, whereas I still tend to target 32 bits for extra compatibility. I recompiled allegro with a 64 bits toolchain, recursively tracked further dll deps with objdump and presto. Now if only somebody could help me with archdark's entry... -- |
Niunio
Member #1,975
March 2002
|
Can't play it: I'm using Windows 7. The window is massively big and part of it overfloods the destktop (the title, so I can't move it). Initially I presumed it was because I use two monitors, but I've deactivate the second one and it just returns a runtime error (Windows doesn't give any detail, you know, a "it just failed and Windows is looking for a solution" type of ----------------- |
amarillion
Member #940
January 2001
|
DoctorCop was having the same problem with my game. You can make a window resizable, but you can't make sure it fits from the start. Is there a way to get the screen size before you create a display? -- |
Mark Oates
Member #1,146
March 2001
|
Niunio said: The window is massively big and part of it overfloods the destktop The window should be a standard 1920x1080. What kind of monitor do you have? Is it a retina? I've had some issues with other programs creating windows that are way too large, but I don't believe that should apply in this case. -- |
Peter Hull
Member #1,136
March 2001
|
amarillion said: Is there a way to get the screen size before you create a display? Does al_get_monitor_info work here?
|
Elias
Member #358
May 2000
|
This is what my krampushack game uses: ALLEGRO_MONITOR_INFO info; al_get_monitor_info(0, &info); int w = info.x2 - info.x1; int h = info.y2 - info.y1; al_create_display(w * 3 / 4, w * 3 / 4 * 9 / 16, ALLEGRO_RESIZABLE); My game itself uses a fixed 1280 x 720 resolution but I call al_set_clipping_rectangle() to limit drawing to the largest 16:9 ratio area in the center and create a transform with al_scale_transform() and al_translate_transform() to map any coordinates from 0/0 to 1280/720 into that area. For drawing I use it with al_use_transform() and for mouse coordinates I apply the reverse transform. Of course I'm not using any pixel art so that makes it easy to just transform coordinates -- |
amarillion
Member #940
January 2001
|
Good idea! I've added it to my code as well. -- |
Niunio
Member #1,975
March 2002
|
Mark Oates said: The window should be a standard 1920x1080. What kind of monitor do you have? 1366x768 ----------------- |
amarillion
Member #940
January 2001
|
At my day job, we target 1280x768 as minimum screen size. There are some customers out there who use that. I'm afraid you're living in a Mac-infused techno bubble Mark -- |
Mark Oates
Member #1,146
March 2001
|
amarillion said: I'm afraid you're living in a Mac-infused techno bubble Mark I think this is true. At my work we have a "sympathy station" where we have a "typical customer"'s computer so we can understand what their day-to-day is like. -- |
|