itch.io Spring Selects Series A
On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

SCRAPSHIP (Still going!)

A topic by 40wattstudio created Feb 16, 2020 Views: 17,794 Replies: 399
Viewing posts 283 to 302 of 303 · Next page · Previous page · First page · Last page

18 NOV 2023:


- One of the harder effects for me to create has been the "electrocution" effect when you hit an enemy with the single laser. Thankfully I found this video that has an excellent (and up-to-date) tutorial on how to make lightning effects in Embergen. I tested about 10 or 15 different variations before settling on the one you see above.

- Also worked on scaling so that the game looks right at smaller resolutions. This is something that I have to do for each object that goes back into the game, so it's a little tedious. 


QUOTE OF THE WEEK:

"Every complex system starts as a simple system that works." -- Amy Jo Kim

Thanks for reading and have a great rest of your week!

(+1)

25 NOV 2023:

No updates this week due to Thanksgiving vacation. But here’s the motivational . . .


QUOTE OF THE WEEK:

“The only thing standing between you and your goal is the story you keep telling yourself as to why you can’t achieve it.” — Jordan Belfort

Thanks for reading and have a great rest of your week!

(+1)

Hey 40watts! Just thumbed through your devlog for the last three years! It actually made me emotional seeing the simple square asset prototype to now being a full blown indie game with mechanics and polished up graphics of your desired style. I wanted to ask if you need music and sound for project seeing as its at 80% completion. Making sounds and music is my fulltime job so I wanted to go ahead and reach out to see if you were in need of it :) Otherwise, keep going strong! Would love to see the final product in action. - Jake

(+1)

Hi Ohpal! Thanks for taking the time to look at my devlog, there's a lot of entries for sure. 

I already have music and sound effects for my game, but I do like to keep a list of potential composers / sfx artists for future projects, so I'll keep you in mind.

(+1)

2 DEC 2023:


- Continued reintegrating the shield fighters. It has rocket flames again. 

- Moving away from sprite sheets as it causes issues on lower screen resolutions. Thankfully I can still get the animations to look correct with little or no impact on performance.

- In previous versions, the player explosion particle effect happened in a sort of vacuum where all of the background images would be absent. I fixed that this morning, as shown above. So now when you get destroyed, all the background objects are still there and active.

- Fixed a bug where the electrocution effect was animating in random locations.


QUOTE OF THE WEEK:

"There is little success where there is little laughter." -- Andrew Carnegie


Thanks for reading and have a great rest of your week!

9 DEC 2023:


- Scrap is not just a threat to the player, but to your enemies as well! I think this is a nice touch in the name of consistency. It would be weird if scrap hurt you and not the enemy ships. 

- If you look at the right-most shield fighter, you can see a new explosion effect I made in Embergen. 

Some notes on the gif above:

- Enemies aren't moving because it's easier to test them for hit detection when they're stationary. Movement will be added later when I do the AI.

- This is what the full game screen will look like (hopefully not that small though, although I have tested it on a 7" monitor.) Ideally you'll have a 32" widescreen monitor.

- Very minimal UI and what UI elements you do see will be integrated into the environment. Above you can (kinda) see 2 of them: The orange dot on the player ship indicating what weapon is currently selected and the green outlines of the scrap indicating when they are a threat to the player. 


QUOTE OF THE DAY:

Sharing two that I just read in StephanRewind's excellent Atlantic '41 blog here on Itch.

". . . a good composition always alludes to something more, outside the boundaries of the canvas."

". . . you make a game for other players too, and you can't always assume that they'll play it as you intended."


Thanks for reading and have a great rest of your week!

16 DEC 2023:

- Trimmed and logged coordinates for the bomber graphics. Originally the bomber sprites took up 3MB, now they only take up 1MB!

BEFORE:



AFTER:



QUOTE OF THE WEEK:

"Software and cathedrals are much the same -- first we build them, then we pray." -- Samuel T. Redwine Jr.

Thanks for reading and have a great rest of your week!

(+1)

This is awesome! :D

Thanks BlueJumperFox, glad you like it!

23 DEC 2023:

- Now that the bomber sprites are all trimmed, I started putting the code back in so they appear in the game. Originally I was using a scale function to draw them, but found that the trimmed sprites have major coordinate issues. Basically none of the bomber segments were aligning properly and just looked like a jumbled mess. Really didn’t want to spend all week troubleshooting that so I took an alternate route where I just draw the sprites to the screen directly with _PUTIMAGE. 

- Not a whole lot of progress this week and next . . . but progress nonetheless!


IN OTHER NEWS:

Godzilla Minus One is a lot of fun to watch! Until yesterday I hadn’t been to a movie theater since before Covid. 


QUOTE OF THE WEEK:

“First do it, then do it right, then do it fast.” — Addy Osmani


Thanks for reading and have a Merry CHRISTmas!

30 DEC 2023:

- Started adding the bombers back into the game. All 4 types are assembled and drawn correctly and can also be damaged. 

- Fixed a graphical inconsistency where part of the bomber tail section would be floating unattached to anything if the middle segment was damaged while the wings were intact. 

- I forgot to mention this last week, but this devlog just passed 15,000 views. Thanks to everyone who has read, liked and/or commented over the years! 


- Scrapship is made using QB64PE, a modern version of the QBasic programming language. If you're interested in the QBasic programming language -- or just want to try some retro-style games --  check out the 5th QBasic Game Jam which is wrapping up soon. Although I'm always asked to participate, I usually don't since that would detract from my progress on Scrapship. But it is fun to play and rate the games and see what other people can do.


PLANS FOR NEXT YEAR:

I really want next year to be the year that I finish Scrapship. I was hoping it would be this year, but my job has a lot of business trips that take time away from game development. So  we'll see how it goes, although there is also a big possibility that I'll be changing jobs next year as well. Either way, I'll keep chipping away at this project until it's done. 


QUOTE OF THE WEEK:

"It's never too early to think about performance." -- Rebecca Parsons


Thanks for reading and have a great rest of your week and a HAPPY NEW YEAR!

6 JAN 2024:


- All-new bomber explosion which you can see at the very end of the gif above!

- Added back in most of the bomber code. The bombers above don't move as they're still in a testing phase while I work some bugs out.


The 5th BASIC Game Jam had some really good entries! My favorite two were a puzzle game called TapOut and a side-scrolling endless runner called Ruins of Zeugma.


QUOTE OF THE WEEK:

"If we wait for the moment when everything, absolutely everything is ready, we shall never begin." -- Ivan Turgenev

Thanks for reading and have a great rest of your week!

(+1)

13 JAN 2024:

- Bombers and bombs are finished.

- Started adding the Cruisers back in.  Almost done with that. Just this morning I was working on getting the attack animations to work again. 

- On the sticky note on my monitor I have 7 more TO-DOs before I can call the game done:

  • Cruisers
  • Battleships
  • Carriers
  • Cargo Boss
  • Final Boss
  • AI (for all enemies)
  • Other (voiceovers, gamepad support? minor adjustments, bugs, playtesting, etc) 


QUOTE OF THE WEEK:

"Always do what you are afraid to do." -- Ralph Waldo Emerson

Thanks for reading and have a great rest of your week!

(+1)

Keep up the good work buddy!

Thanks Trisani Studios!

20 JAN 2024:


- Finished adding the cruisers back into the game. 

- Created a new cruiser explosion animation. 

- Started working on the battleships. This is going to be tedious. As you can see from the screenshot above, just one battleship has a dizzying number of gun sprites to cover all the different firing positions and states. As with all the previous enemies, I huge change here will be the fact that I'm trimming all of the images to save space.

Above is one of the guns before trimming. As you can see there's a lot of wasted space above and left.  The real benefit to keeping it like this is that it allows me to place the image using just one x,y coordinate.  For all the guns in the first screenshot, I have to use Aseprite to get the updated coordinates which I'll then have to update in the code so they draw correctly. Hopefully I'll be able to draw more than one battleship to the screen without losing fps. The last build of Scrapship could handle one battleship but lagged with the addition of any other enemies.

I'll see how the "trimmed" battleships work, but if I deem it impractical then I'll revert to my original files (in the ORIG folder) and go with that.

- Also updated my version of Aseprite to 1.3.2. You can update Aseprite by going to their website.

- You can get spend a lot of time trying to make an explosion in Embergen -- especially if you're doing it from scratch. But a quick and effective workaround I've found is this: Take one of the presets and view the explosion from top-down instead of making an animation of the default camera angle. Then change some of the values to your needs.  This allowed me to make the cruiser explosion in less than an hour.


QUOTE OF THE WEEK:

"Those who keep learning will keep rising in life." -- Charlie Munger


Thanks for reading and have a great rest of your week!

27 JAN 2024:

- The first of four types of battleships is mostly back in the game. It can be drawn to screen and both guns can move and fire.  Lots of coordinates! I keep a stack of scratch paper for writing all the values down after I get them from Aseprite:

Then I have to program all that into the game:

Then I test it to see if it works properly:

Now I just got to do that workflow for the other 3 types of battleships and add the damage code back in.


QUOTE OF THE WEEK:

"To improve is to change, so to be perfect is to have changed often." -- Winston Churchill


Thanks for reading and have a great rest of your week!

3 FEB 2024:

If you look at last week's GIF, you'll notice that the forward gun "jumps" when it fires. This was a bug I noticed just after I posted my devlog. As it turns out, this bug was present in several other firing positions as well. I tried manually adjusting the coordinates and still couldn't get it to line up or display properly. I'm sure if I kept at it I'd figure it out, but troubleshooting it was taking quite a bit of time. In the end, I decided to revert back to the old battleship code and untrimmed images. One step back, two steps forward . . . 

- All 4 battleships draw to the screen and fire correctly. No "jumping" bugs.

- After doing some tests, I concluded that the trimmed battleship images didn't really improve performance all that much. Trimmed and untrimmed versions of the battleship still exhibit noticeable lag. But the real cause of this is not so much the battleship as the background which covers the whole screen and is drawn every iteration. So I might have to regulate the larger enemies like the battleships and carriers to "deep space" levels where the background is mostly black with no large background images to process. 

- To finish the battleships, I need to re-add the code for damage and make sure some of the animations still work.


QUOTE OF THE WEEK:

"Opportunity is a haughty goddess who wastes no time with those who are unprepared." -- George Clason


Thanks for reading and have a great rest of your week!

(+1)

10 FEB 2024:

- All the battleship code is back in the game. They can now be damaged and destroyed, as well as damage and destroy the player.

- Fixed a bug where the battleship gun explosions didn't stay aligned with the ship.

- Added all the variables required to make the battleship scale at different screen resolutions.

- Right now I'm thinking that the battleship needs to be strictly a "deep space" enemy against a minimalist background to keep the framerate up.

QUOTE OF THE WEEK:

"Let's optimize for player experience rather than what we think will make more money." -- Ron Carmel


Thanks for reading and have a great rest of your week!

(+2)

17 FEB 2024:

- The first of 4 types of carriers is now back in the game. So far it looks like I'll be able to use trimmed carrier graphics for a slight performance boost.

- Tested the battleships on my son's laptop and ensured that scaling works properly.

- Scrapship enters its 4th year of development! I never would have thought I'd be working on a "simple shmup" this long! But to keep things in perspective, I only do an hour of gamedev a day, excluding vacations, illness and business trips. Regardless, it is still a challenge to stay dedicated to a single project for so long. You might be wondering, does he ever feel like this?


And the answer would be "Yes, quite often!" I have a "dream game" idea that's been in my head for a while now that I'm eager to get started on. But besides all the motivational quotes I surround myself with, there is a particular meme that has been very helpful in staying focused . . .

QUOTE  MEME OF THE WEEK: (One of my favorites)


Thanks for reading and have a great rest of your week!

(+1)

24 FEB 2024

- Two of the four carriers are now back in the game.

- Restructuring the carrier code so all 4 types can use it.

SIDE NOTES:

This week I found some interesting YT videos about programming language speed, like Assembly vs C++ vs Python. It's amazing how much slower some high-level languages can be when tasked to run a "simple" task like counting to a billion. There were no "speed test" videos for QB64 (QBasic) though, so I made a little program to see how long it would take QB64 to count to 1 billion:



If I run it without printing to the screen, QB64 can finish it in 2.197 seconds. But if I uncomment my PRINT statement it takes considerably longer: 7.6 minutes!

I think speed tests like these are good for understanding what your programming language is capable of so you can pick the right language for the right project. Imagine programming a complex game like Dwarf Fortress in Python!


QUOTE OF THE WEEK:

"A comfort zone is a beautiful place, but nothing ever grows there."

Thanks for reading and have a great rest of your week!

(4 edits) (+1)

Nice to see you're sticking with your project until the end, you really understand the importance of finishing something you started! Props to you!

I just noticed your attempt to benchmark QB64, and I couldn't hold myself from giving you my two cents on that matter as I worked on developing benchmarking applications for embedded devices for 4 years of my life.

Your loop only has a print command in it, which basically has the same implementation on almost every language, it's a OS interruption basically (interop), so you're not actually measuring the performance of your language but rather measuring the OS interop to print a value. The interop sometimes hold the application until it has completely executed your task, in this case printing a value, so that's why it takes minutes to finish your test.

The simplest but accurate language benchmark I can think of is maybe a MD5 solver for a very long string, or something similar, anything simpler will most likely diverge from the actual purpose of the benchmarking.


Now there's a good overall simple rule to know if a language is fast or slow: How is it converted into machine instructions?

The fastest languages out there are the LLVM compiled languages, like: C, C++, Fortran, Rust and Zig

The slowest are the interpreted languages, like: Ruby on Rails, Python and JavaScript

There are also some languages that are not exactly interpreted, but something like compiled to a intermediate stage just to be translated into machine code, they are like the "half way" between compiled and interpreted languages, like: C#, java and Lua. That's why, although very slow comparing with languages like C++ and Rust, they are still quite fast (mostly what slow them down is a system called garbage collection).

As for QB64(I never used it) but it seems like they can be either compiled (not LLVM though) or interpreted too, so yes it can be very fast, just one step behind languages C++, Rust and Zig.

Hi FearCode! I'm admittedly inexperienced when it comes to benchmarking programming languages so thanks for the insights! Not exactly sure how I would implement an MD5 solver, but I saw on YT that another benchmark method is to see how many "passes" a programming language can make in 5 seconds when solving for all prime numbers. 

According to its creator,  "The QB64 compiler converts BASIC code into C++ code, and then uses a third-party C++ compiler (GCC) to compile the C++ code into an executable file."

For now I'm pretty happy with QB64, mostly because it's what I'm familiar with and pretty easy to work with. But if I need something blazing fast I'll definitely be checking out those low-level languages. I've played around with C++ a little bit, but I'd have to really dedicate some time to get to a point where I can work with it.

(1 edit) (+1)

Interesting, didn't know the compiler converts to C++, yes, then if you just switch away from GCC (to clang or msvc) it may be as fast as C++ itself (depending on how good this converter is, ofc)

About the video from dave's garage, it's okay-ish, but not enough, I use this site as a good reference, they are old timers, and have a lot of benchmarks from mandelbrot to reverse complement. As you can see: C, C++ and Rust are the fastest on an average of all their cases (note that unfortunately they don't use a LLVM for C and C++ which could make them even faster).

For games I do recommend C++, it's not only blazing fast but also the best in terms of content and tools produced for game development, but to be honest you can make a very good and efficient game on any language.

Java. for instance, I have a history with it and oh boy it's a painfully annoying language, specially for game dev, but still it was minecraft's first development language, it all comes to how you make it, as long as you leave the heavy lifting to the GPU you can even make hardcore games in python (that may be too much lol, Lua maybe?) 

So yes, if you're comfortable with QB64, go ahead I and finish it up in there, I know it will be just fine

(+1)

2 MAR 2024:


- I have a business trip the next two weeks, so I challenged myself to finish the carriers before I have to go. 

- Carriers are done! I made some pretty significant changes to them this time around.  The up and down carriers were being problematic so I removed them completely. For at least one of them, I would have had to rework the original Blender files to fix some issues and that would have taken who-knows-how-long.

- Carrier fighters can attack from up to 4 different directions. I wasn't entirely pleased with the old carrier fighter logic, so I created this new attack method for them which is much less math-intensive. And in my opinion it's a lot more interesting and fun.

- Scrapship is currently up to 11000 lines of code. There is only about 3000 lines of code left to transfer over and reintegrate. 

- As for my sticky note on my monitor, the only things I have left are "Cargo Boss", "Final Boss", "AI" and "Other". 

- 12 of the 16 sticky note tasks have been completed, so I'm about 75% done.


QUOTE OF THE WEEK:

"That's what games are, in the end. Teachers." -- Ralph Koster

Thanks for reading and have a great rest of your week!

(+1)

9 MAR 2024:

Still on my business trip so no Scrapship updates, but I am looking forward to getting back so I can finish it up. 

I’ll be changing jobs in the near future, but this shouldn’t affect development of Scrapship as I only need an hour a day to work on it.  If I’m unemployed I’ll probably work on it even more — it’d be a nice break from job hunting and studying for IT certifications.

QUOTE OF THE WEEK:

“Excuses are the nails used to build a house of failure.” — Jim Rohn

Thanks for reading and have a great rest of your week!

Viewing posts 283 to 302 of 303 · Next page · Previous page · First page · Last page