Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

SCRAPSHIP (Still going!)

A topic by 40wattstudio created Feb 16, 2020 Views: 17,168 Replies: 392
Viewing posts 250 to 269 of 299 · Next page · Previous page · First page · Last page

8 APR 2023:

Finally back from my S. Korea trip -- and the jet lag sucks! It was 27 hours from the time I left my hotel to the time I walked in the front door of my house.

In spite of that, I was happy to sit back down to Scrapship and get going on it again. This week was mostly bug fixes and minor adjustments, but there were a lot of them:

- Fixed bug where earth would vanish when it was still on-screen

- Fixed bug where music restarted every time volume adjusted

- Music files stop and close when game ends

- Commented out scaling code for ships and explosions

- Fixed game tips

- Fixed opening animation graphics

- Adjusted player launch sequence (between levels)


As fate would have it, I have another business trip starting next week -- Ft Drum, New York ( at least it's not the middle of winter). I just can't seem to get a break, can I? Fortunately it's only for a week and a half and then HOPEFULLY my schedule should be free for a little while. 


QUOTE OF THE WEEK:

How you do anything is how you do everything.


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

15 APR 2023:

- I use Embergen software to do all the explosion effects in Scrapship. They just launched version 1.0  a couple weeks ago, so I upgraded my version of it and started familiarizing myself with the new features. One of the biggest things missing in Scrapship right now are different explosions. I have a couple to work with, but obviously it'd be nice to have more variety. And now that I know how to use sprite sheets, I'm hoping I can have that variety with relatively little cost in game performance.

- So far I have 2 more scheduled business trips this year (4 weeks), so that's obviously going to cut into my development time but I'm hoping I can still get the game done or close to done by the end of the year. 

- I have a question for all of you: Do you prefer being able to play a game as it's being developed or do you prefer waiting until a game is completely finished?


QUOTE OF THE WEEK:

"If you don't have a strategy, you're part of someone else's strategy." -- Alvin Toffler


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

22 APR 2023:



Whew, glad that uploaded! It was 2.986 MB and the limit is 3MB!

- As you can see, I've been working with Embergen 1.0 this week.  Sorely missing from the game at the moment are explosions for minor hits on enemies. The above explosion comes pretty close to what I'm looking for although the in-game version will be much smaller. The actually rendering and exporting was pretty easy, but -- as before -- the hard part  was figuring out how to get the exported frames to look exactly like the viewport frames. 

In my RENDER--> Export settings I had to change my Alpha Blending Mode to Straight Alpha to get the right look. 

- I've found that 20 frames of animation is sufficient for these small explosions. Five frames show the explosion going from nothing to full blast. The next 10 are to ensure those pretty explosions stay on screen long enough for the player to see them. The explosion fades away in the last 5 frames. 

- Right now this folder of 20 frames is about 577kb, but I'll be able to get that even smaller by using a sprite sheet, which I successfully tested and integrated several months ago. 

- Ideally, each ship will have a different "minor hit" animation and possibly a different animation depending on what weapon you use.


QUOTE OF THE WEEK:

"An investment in knowledge pays the best interest." -- Benjamin Franklin


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

29 APR 2023:



- There are now two different explosions when you hit an enemy. A smaller one when you use the "rapid laser" and a larger one when you use the "scrap cannon".

- More importantly, I reworked all of the explosion animation code so that I can show multiple "damage explosions" at once. This took a while to figure out. But it had to be done because there's no point spending time in Embergen making fancy explosions that are only going to be shown once per enemy. 

- One of the nice things about Embergen is that it has a nice amount of PRESETS: 


So I can take a prefabricated effect that is close to what I want and adjust it to my purposes.  Right now I'm trying to make a lightning or electric discharge sort of effect (which they don't have  a preset for, but a few come close in principle). I also saw that they have Premium Presets, the first one being clouds. So if you don't want to buy the Embergen software, you can just buy some presets. Think of it as Kitbash but for explosions, clouds and particle effects. Pretty cool. I'm not affiliated with Embergen by the way, I'm just happy that I found an "explosion solution" that fits my minimal  budget.

- The majority of my development time is going to be in Embergen the next few weeks, with minor code adjustments to get the explosions to line up properly over the enemies. 

QUOTE OF THE WEEK:

"A problem is a chance for you to do your best." -- Duke Ellington


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

6 MAY 2023:


- It took all week and lots of experimentation, but I finally made a lightning effect for the "stun gun"! 

- Below you can see my Embergen node tree for it:


- I always seem to encounter this problem -- rendering bloom. The bloom effect with the lightning looks amazing, but trying to capture it in the final render is elusive if not impossible. So I took the animations to Aseprite:


Here are the Aseprite notes I took on how add some Alpha  while still retaining the bloom effect of the original image:

Open your first image in Aseprite and select "Agree" for "load the following files as an animation."

Click the Layer "Continuous" button in the timeline (links all frames together for changes) (rightmost arrow in above pic)

Click the lock button to upper left of colors to unlock color editing. (leftmost arrow in above pic)

Click down arrow and sort by brightness (or whatever)

Select Sprite --> Color Mode --> Indexed

Use eyedropper tool and click on a color

Change Alpha value (below the color rainbow, not the two color bars below it (middle arrow in above pic)


QUOTE OF THE WEEK: 

"Hide not your talents, they for Use were made. What's a Sun-Dial in the shade?" -- Benjamin Franklin

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

13 MAY 2023:

Hours of gamedev this week = ~9


- Final Boss can spawn in 3 different orientations (experimental)

- Enemies only become stunned after the final frame of the lightning animation

- Simplified main menu

- Enemies don't spawn when bosses are active

- Railgun won't scroll off screen and get lost

- Enemies won't hurt player when railgun is active


QUOTE OF THE WEEK:

"If you always do what interests you, at least one person is pleased." -- Katharine Hepburn


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

20 MAY 2023:

- Redesigned Final Boss model 

- Left and right guns for the final boss can be damaged separately



Above is the original model. But I quickly saw a couple problems with it. 

1) Too many unnecessary parts extruding out from it. This also meant that I had to zoom out to fit it all in the frame. By getting rid of the extruding parts, I was able to zoom in more for a larger, simpler image.  

2) I got rid of the right "machine gun". I still want there to be  a sort of "machine gun" weapon for the final boss, but not one that I have to have any fancy animations for (like on the battleship, which was an absolute headache to code).  Below you can see a preview of the new version:



QUOTE OF THE WEEK:

"A game is a series of interesting choices. " -- Sid Meier


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

27 MAY 2023:


- This week's update ties in directly to the Quote of the Week. Last week's Final Boss design was ok, but not entirely to my liking. So this week I experimented with a new design that you can see above.  I like how this version has more symmetry and it's given me new inspiration for how the Final Boss battle should play out.

- I also made a cool beam attack animation in Embergen and tested it in-game. 


QUOTE OF THE WEEK: 

"If you aren't sure which way to do something, do it both ways and see which works better." -- John Carmack


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

(+2)

Very inspiring to see such dedication and regularity in the updates, keep up the good work !

(+2)

Thanks for the encouragement!

(+1)

3 JUNE 2023:

- About halfway done with rendering some of the gun animations for the final boss. The left and right guns each have the three following states:

  • Banking Left, Idle, Banking Right
  • Damage level from 0 to 2
  • Disabled status (0 or 1)

If my math is right  3x3x2 = 18 different states for the final boss.

I've always liked banking animations in shmups -- they make movement look so much more natural. Plus they also inform the player what direction the enemy is going in. Without banking animations, there is no telling if the enemy is going to move up, down, left or right until it actually starts doing so -- and by then it may be too late for the player!

Having played a good handful of indie shmups here on Itch I've noticed that the better ones try and do some sort of animation for the player or the enemies. Sure, it's more work (sometimes a lot of work) but it really does look better in the end. 

This week's update is a bit short since I had (another) business trip last week, but the following week or two should be back to normal.  


QUOTE OF THE WEEK:

"It is a beautiful truth that all men contain something of the artist in them." -- Walt Whitman


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

10 JUN 2023:

- Started programming the AI for the final boss. It can currently move in 8 different directions.

- Left and Right guns can be stunned and damaged (no animations yet).

- Aseprite came to the rescue when I was trying to figure out how to crop multiple frames of animation all in one go. This cropping will mean smaller file sizes for that animation and more accurate hit detection against the player.

- I'm being deliberately scarce on gifs and images of the final boss -- to me, they should always have a bit of mystery to them until finally encountered.

QUOTE OF THE WEEK:

"I think that inside every adult is the heart of a child." -- Shigeru Miyamoto (Creator of Mario and Zelda)


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

17 JUN 2023:

- Sometimes I tinker around with side projects that give me new insights into how to do things. This week, those side projects taught me how to make my code both more readable and more practical. I implemented this into Scrapship by reworking some of the code and even creating a few new functions. 

- Previously, the vast majority of my sprites were positioned using hard-coded coordinates -- which I now realize is very awkward and inefficient. The new subroutines I created can now position objects relative to the dimensions of the game screen. A good handful of still images use this new method for positioning, but I still have to figure it out for the images that are embedded in arrays.

- I also worked on the final boss beam attack animation and came up with my best iteration of it yet just this morning. 

- Once the final boss is done (still got damage animations to do), it's just a matter of going over the game from start to finish and polishing as I go along. 


- Something fun. If you need something to do this weekend, I highly recommend walking around in nature and listening to the Skyrim soundtrack.  I don't get to do it as often as I'd like, but when I do it sometimes feels like living the game. 


QUOTE OF THE WEEK:

"Games shouldn't only be fun. They should teach or spark an interest in other things." -- Hideo Kojima (Creator of Metal Gear)


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

(+1)

Hey dude, I've been following you for a while. Interested to see where this ends up, and props to you for keeping on. 

(+1)

Thanks Alpha King and it's cool to see that you have a new project in the works!

(1 edit)

24 JUN 2023:

- Started creating animations for when the final boss gets damaged.

- Perhaps more importantly, I created a subroutine that handles sprite sheets. For shorter animations, I've found that it's still best to cycle through them the old way, but for longer animations of 100 frames or more, this new  subroutine works splendidly! With sprite sheets I can pack more frames into a smaller space than if I loaded them in individually. For my sprite sheets I've been using TexturePacker which is really nice and intuitive.

- I also discovered (rediscovered?) the Sprite --> Trim feature in Aseprite, so I've been using that to get rid of any unnecessary transparency around the edges in some of the larger images. Simple but excellent way to reduce file size!



QUOTE OF THE WEEK:

"Constraint breeds creativity."                         (I heard this one when I was listening to Episode 71 of The Game Design Round Table podcast.)

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

1 JULY 2023:

- Still working on the final boss attacks and animations. 

- In Blender I was having issues where the lighting//coloring on half of an object was slightly different from the opposite side. This week I learned that it was because of my normals. Going into Edit mode, highlighting everything and pressing Shift + N reworked all the normals so that the lighting and coloring was consistent. 

- I'm up to 11,500 lines of code now, so I've been cleaning up the code so I don't run into . . .

- A bug. This one had me puzzled for several hours. Thankfully I just got it straightened out this morning. A bug like this can be pretty demoralizing but a combination of reviewing log files and looking at the code base from a previous version helped me find out what was wrong.


QUOTE OF THE WEEK:

"When things get harder, and the obstacles get tougher, it just means you leveled up." -- Lilah Pace

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

8 JULY 2023:

- The final boss is coming along nicely! It actually looks and behaves a little differently than it did before. You can stun the left gun, the middle or the right gun individually -- and they're animated! The guns can also be damaged incrementally. 

- The only downside was that the final boss graphics took about 30MB (which for QB64 QBasic is a massive amount of data to load in). So I experimented with some different methods of drawing the sprites to the screen:

 

This is a WHOLE image. Notice all the dead space to the right of the gun. This makes the file size for this one frame 188 KB. Not cool. The only positives to this method is that 1) I can position every image off of the same upper left coordinate and 2) No cropping/trimming required.


This is  a CROPPED image. You can safely delete the dead space to the right of the gun and anything below the gun. This shrinks the file size down to 60.7 KB. Major improvement! It also benefits from making it easy to position. But some manual cropping is required to get it this way. 

This is a TRIMMED image. This is when Aseprite trims all around the image so that all dead space is deleted. This shrinks the file size down to 59.6 KB. Now that doesn't sound like much, but here's a comparison of the folder sizes using the 3 different methods:

WHOLE IMAGES = 30 MB                           CROPPED IMAGES = 23 MB                   TRIMMED IMAGES = 18 MB

Trimmed images almost halve the original folder size! So clearly that's the way to go. But there is one problem with trimming images. When Aseprite trims the image, it also trims away the original position in the upper left corner. So now the individual sprite segments that make up the final boss no longer align properly. 

To fix this, I took the cropped image width ( or height) and then subtracted the trimmed image width ( or height). This aligns all of the images properly. 


- Now that I finally figured all this out, I can apply this same logic to other enemies in the game. 

- I'm on Threads! It was really cool being able import my Instagram profile to Threads on Day 1. I plan on posting there a little more frequently than I do on Instagram and sharing my thoughts on gamedev and a few other things as well, so feel free to check it out!


QUOTE OF THE WEEK:

[This quote comes from Episode 75 of the Game Design Roundtable Podcast]

"If you can't make it good, make it short."


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

15 JULY 2023:

- Final Boss can now drop bombs! This is in addition to the beam cannon attack that it already has. Because the beam cannons are easy to dodge, the homing bombs force the player to move around the screen more. 

- At the moment, only one bomb can be dropped at a time, but I'd like there to be a possibility of multiple bombs dropping for increased difficulty. 

- Not a whole lot of progress this week as I was on vacation, but well-rested now and looking forward to more progress next week!


QUOTE OF THE WEEK:

Never beg for a seat when you can build your own table.


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

(+1)

22 JULY 2023:


- Bombs now have an explosion animation! It's currently not very efficient (the sprite sheet is 2.8MB) but it works so I'm going to run with it unless I find a more practical solution. 

- Final Boss can now be destroyed. It's a nice challenge too! The bombs increase speed as the boss gets weaker. But the bombs will never outpace the player. Even so, you will be forced to move around a lot to avoid taking damage. 

- I also added text declaring how the final boss destroyed you (e.g. "The Final Boss hit you with its beam cannon", etc). 

- There is a bug that has been plaguing the bombs for a long time now -- sometimes they'll get "stuck" near the player and never detonate unless the player moves. It's very intermittent and therefore very hard to troubleshoot. It has to be fixed though so that will probably be one of my main focal points for next week.


QUOTE OF THE WEEK:

"Never be limited by other people's limited imaginations." -- Mae Jemison


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

29 JULY 2023:

- Bomb bug appears to be fixed. A huge part of that was reworking the log file code to facilitate better debugging. 

- I also figured out a way to consolidate the way enemy projectiles are handled. Now there is only one subroutine to handle the shots for battleships, the cargo boss, bombs and the final boss bombs. 

- My debug program is much improved now. The upper left of the screen shows what iteration of the game loop is currently being shown. This then matches up with the text in the log file so I can pinpoint what is going on in the code at a specific point in time. 

- Ok, so this last one is not Scrapship-related, but I was so amazed by this fact that I just have to share: Did you know that the clouds and bushes in Super Mario Bros use the same shape, just different colors? It’s true! Look it up on Google. I think that’s a good example of doing things efficiently. 


QUOTE OF THE WEEK:

“There’s a way to do it better — find it.” — Thomas Edison

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

5 AUG 2023:

- As it turns out, the bomb bug is NOT fixed.  In the GIF above, the bomb is supposed to either hit the engine or the cockpit. But it's hitting neither and just getting stuck. A look at my log file revealed that this is because, for either segment,  only 1 of the 2 coordinate positions were met. 

Basically the game is miscalculating what the player middle x and middle y coordinates are. So apparently I need to rework that -- which is fine because I planned to do that anyways. :)

- Not much else this week as I just got back from another business trip last night. 


QUOTE OF THE WEEK:

"When the uncreative tell the creative what to do, it stops being art." -- Tony Bennett

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

12 AUG 2023:

- Bombers now have this cool scaling-down effect when they first appear on-screen! This was something I've been wanting to do for a while.  


- I was pressing CTRL + S to save in Aseprite when I noticed these coordinates pop-up on screen. They show you the x and y coordinates of where the trimmed image would be relative to the original image. Because of this, I did a test of trimming all the satellite images and then positioning them. This worked wonderfully and has 2 huge upsides: 1) Being able to trim away all that excess transparency = smaller images = shorter load times. 2) I can use QB64's _WIDTH and _HEIGHT functions to auto-return those values and use them for hit calculations! Now I just have to do this for the rest of the images in the game . . .

To get those coordinates, you press CTRL in Aseprite. Sometimes you may have to do the following for this to work: Make a stray mark anywhere transparent. Then get rid of it with the eraser. Then press CTRL and the coordinates should show up. 

- I also learned how to generate a Console screen in QB64 using $CONSOLE. This would be invaluable for debugging! The only problem is that the console window doesn't want to stay on top of the game screen where it would be most useful. 

- Started working on a subroutine so that the game will display properly at any resolution up to 2k or so. 

- Lots of work on the programming side to try and get things more consistent (naming conventions, etc). 

- A lot got done this week, but I also put in a lot more hours than usual. 


QUOTE OF THE WEEK:

 "Side content is meaningful because you can miss it." -- Joel Burgess (?)

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

Viewing posts 250 to 269 of 299 · Next page · Previous page · First page · Last page