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,796 Replies: 399
Viewing posts 193 to 212 of 303 · Next page · Previous page · First page · Last page

2 APRIL 2022:


Week 2 (of 3) of my business trip. This week I’m sharing a little preview of one of the boss enemies in the game — the Cargo Ship. This asset is already in the game, but still needs all the logic programmed into it.



Quote of the Week: 

“When setting out on a journey do not seek advice from someone who never left home.”  -Rumi


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

(+1)

This project is awesome! It's amazing that you've managed to keep going for multiple years. Best of luck!

Hi CosmoBrain, thanks for the comment! I’m looking forward to getting this business trip over with so I can finish the game (hopefully this year).

9 APRIL 2022:


Finally done with my business trip! As is my habit, I got up at 0530 and worked on Scrapship for an hour. Feels good to be working on it again! Being away from my source code for 3 weeks wasn't really intimidating as the code is pretty self-explanatory (to me at least). I'm sure it also helps that I've been working on it almost daily for the past 2 years. But having time away from your project can also help you see things in a fresh new way.

This morning I started adding in the logic for level transitions: When the player has destroyed enough enemies, the remaining enemies will retreat and the railgun platform will appear.  This will later trigger a level transition animation. One step closer to fleshing out the main game loop!

Above is a teaser of the final boss enemy. It's in the game currently, but still needs all its behavior programmed and animations done.

As I write I got Windows 11 downloading in the background and I've read that it's still compatible with QB64, which is the programming language I'm using to make this game.

QUOTE OF THE WEEK:

"Success is nothing more than a few simple disciplines, practiced every day." -- Jim Rohn


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

16 APR 2022:


A great week with lots of new features!

- As shown above, enemies now blow apart into scrap when destroyed!

- This scrap can also be collected by the player. An on-screen counter keeps track of how much has been accumulated. Scrap will later be used to repair your ship or as ammo for a scrap storm.

- The basic level transition framework is in place. You can go from the first to the last level, but the levels themselves still need to be fully fleshed out.

- Started making unique scrap for the enemy ships. 


Quote of the Week:

"If the path before you is clear, you're probably on someone else's." 

(side note: This quote is attributed to either Carl Jung or Joseph Campbell, but nobody references the original source).


Thanks for reading and have a great Easter!

23 APR 2022:


- An early request for the game was a store of some sort or some way to repair your ship between levels. This feature is now in the game as shown above. You can repair individual segments of your ship for 5 Scrap each. For 10 Scrap you can buy the ability to request a Scrapstorm -- the railgun launches a volley of high-speed scrap at all the enemies on screen.

- The Scrapstorm is back in the game. You press "B" to activate it. This is basically Scrapship's equivalent of a "Bomb" in other shmups.


QUOTE OF THE WEEK:

"Deciding what not to do is as important as deciding what to do." -- Steve Jobs


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

(+1)

30 APR 2022: 

- This was apparently "bug" week, the first bug being the stomach bug I got, so no development was done for a couple days. Side note: If you ever do get a stomach bug, ginger ale and kaopectate soft chews help considerably!

- Gamewise, there' s still a bug in the AI system that sometimes causes the game to crash by causing an endless loop. Trying to figure out the exact cause has been elusive thus far. So I opened a new project file with just the AI code to see if I could make some sense of it.

- I found a way to simplify the shield fighter code. I was almost to 11,000 lines of code and now I'm just under 10,000 again.

- I forgot to mention earlier that Scrapship does work on Windows 11 now.  Windows 10 should still be fine too since the vast majority of it was made using that.


QUOTE OF THE WEEK:

"I have not failed. I have just found 10,000 ways it won't work." -- Thomas Edison


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

(+1)

This game looks SICK!! Looking forward to it's completion. Keep up the great work👍

(+1)

Thanks for the encouragement hamwil! :)

7 MAY 2022:

- This week saw Scrapship go in a very experimental direction. I don't want to spend too much time describing things that might not work out . . . but if they do, then ooooh boy, Scrapship is going to look and play better than ever! 

- The first of these experiments is a simplification of the AI system. The old AI system mostly worked, but was also buggy in the worst sense possible in that it sometimes caused the game to crash.

- The experimental AI system also requires a change to the screen layout of the game. Instead of a square gamescreen, the game now goes to a windowed fullscreen by default. The benefits here will be that the game will accommodate just about any display. It also gives the game a much more cinematic feel. And if the new system works as planned, the player will have greater control over the difficulty of the game while they're playing.

- A thing I have never liked about shmups is how they too often restrain you to a narrow corridor of action. In this experimental version, almost the entire screen will be used for gameplay!

- I have to emphasize again my excitement at the new direction the game is going in! Hopefully I'll have some screenshots or gifs of this new branch of Scrapship next week.


Quote of the Week:

"Genius is 1% inspiration and 99% perspiration." -- Thomas Edison


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

14 MAY 2022:

So much progress this week that I can only properly show it off in a Youtube video!

- My experimental branch of Scrapship has been successful and is now the main branch!

- The game now detects the player's desktop width and height and goes to a windowed fullscreen by default. This gives the game a more cinematic effect and creates a lot more playspace.

- The screen moves around the player instead of the player moving around the screen. This massive improvement allows the player to scroll infinitely in any direction while imparting a greater feeling of freedom and space to the experience. To me, it doesn't make sense to confine the player to a narrow corridor of action like you see in a lot of shmups. Especially in a game that takes place in . . . space.

- Reworked AI system that allows a LOT more enemies to spawn. This is still a work in progress, but even as-is, I see it as an improvement over the last version. 

- The THREAT BAR. You'll see this as a red bar on the left side of the screen. Certain actions (like firing your weapons or damaging enemies) will cause it to increase. The game gets harder as the Threat Level increases.

- The MORALE BAR. As you destroy enemies, their morale decreases. When it reaches a set point, the railgun appears allowing you to go to repair your ship and go to the next level.

- More collectible scrap on-screen. Some is "free scrap" that floats around, but destroying enemies also generates scrap that can be collected. Scrap can be spent at the railgun store between levels. The scrap also helps give the player a sense of movement through space.

- Prior to this update, Scrapship was almost at 11,000 lines of code. The current version you see in the video only has 7,500 lines of code. I was able to accomplish this by consolidating a lot of redundant subroutines.

BONUS:

Morale is displayed using a counter that is broken down into hundreds, tens and ones digit spaces. One of my challenges was writing the code to make this decrement properly. Side note: I initially tried a modulus route, but that was returning incorrect values.

Below is the code I used to accomplish this. The same principle can be used in any programming language.



Quote of the Week:

"Pleasure in the job puts perfection in the work." -- Aristotle

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

21 MAY 2022:

- In most shmups, the enemies spawn from the top or sides of the screen. While that will also be the case in Scrapship, I'm working on a mechanic where enemies can sometimes spawn from the background. So far it's working as planned. This will ultimately allow more variation in the AI.

- The shield fighters now have a new animation when they spawn.


Quote of the Week:

"You didn't come this far to only come this far."


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

28 MAY 2022:

- Shield fighters can spawn from the background now. There is also an animation of the shield forming.

- Enemies deactivate if the player scrolls too far in certain directions.

- The Threat bar increases when the player is firing their weapon, but cools down when the player is not firing. The idea is that if the player wants a little more challenge, they can become more of a threat by simply firing their weapon. If the player finds the game too hard, they can cease fire so the enemy will view them as less of a threat.

- I put in a fps counter. It starts to lag when it gets down to 40-50 frames per second. This is mostly when larger enemies are on screen, so I'll be working on a way to make the graphics more efficient so the frame rate remains steady.


Quote of the Week:

"Obstacles are those frightful things you see when you take your eyes off your goals." -- Henry Ford


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

4 JUN 2022:

This week was mostly about balance.

If you think about it, making a game is very similar to someone making a sword. You could have a blade that is extremely sharp, but if it's not balanced properly, the wielder is going to tire out fast. That is why balance is so important in game design as well as in sword-making. We've all played those games that go like this:

Level 1 -- Easy

Level 2 -- A little bit harder

Level 3 -- Suddenly very hard!

That's a sign of a very unbalanced game and I often find myself giving up on games that do that.

At the moment, there are parts of Scrapship that feel very unbalanced. To fix this, I've started rethinking the relationships between different objects in the game.

For example, the Carrier enemy is in the same "class" as the battleship, but has 3x more hit points and takes up twice as much of the screen. It is also over 3 times the file size (500k vs 130k).

To fix these inconsistencies, I've been plotting out in Excel how all the different game assets and objects relate to each other. If the screen size is X by Y, what should be the max size of a planet graphic in the background? If the max planet size is X by Y, what should be the max size of the final boss enemy? And so forth all the way down to the smallest enemy and even projectiles.

When I'm done mapping all this out, the result will be much greater balance and consistency across the board, resulting in a better play experience. It will also affect things like frame rate, because larger enemies take longer to load than smaller ones. A giant planet background may look cool, but can also bring the game to a crawl. And as I'm learning the hard way, it doesn't make much sense to have a 1940x1940 planet background that is only going to be on-screen for about 10 seconds before being scaled down or moved off-screen.

Much of this week was more about number-crunching than actual programming. How slow should a shield fighter move? How fast should a shield fighter move? At either of those speeds, how quickly should the player be able to destroy them? How much more powerful should weapon A be against weapon B? 

A lot of this sounds like it should have been thought about early on -- and you'd be right. But as I'm finding out, the problem with game design is that sometimes you don't know what you need to do until you see that your initial plans aren't working.

I still feel like Scrapship is on the right track and I'm not too worried about Scope Creep. The game is only going to have 5 levels and 5 main enemies. The challenging part is getting it all to mesh together in a way that makes sense and is fun.


Quote of the Week:

"If you want the rainbow, you have to tolerate the rain."


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

(+1)

Looks pretty good. Reminds me of Space Invaders. Look forward to playing the demo when I have time.

Thanks for the comment! Space Invaders was indeed an early inspiration, but the game will play much differently. Also, just a reminder that the current demo is for the old version of the game. It's changed quite a bit since then.

(+1)

this cool devlog! i like this retro screenshots. And idea to make a game. latter- make it good looking. This is a thing to think for myself.

11 JUN 2022:

This week was mostly experiments and tests, but I got a lot out of it.

- To be consistent, I've decided to make all my image sizes a multiple of 8. Ideally, you want to have numbers that are nicely divisible (less math for the computer to do). You could work with an image size like 97x13, but it would be mathematically sloppy.

- Next up, the Battleship. Truth be told, I've never been completely satisfied with how the Battleship enemy has turned out. Below I'll do a quick review of its iterations:


This first one viewed from a top-down angle just looked plain ugly. Even now it's kinda hard to tell what it is.

The next version was bigger and the slightly angled view made it more obvious what it was. Guns not shown because they're a separate layer.


The final version I toyed around with this week will look something like this. Enemies in shmups shouldn't always have to be viewed from a top-down angle and I think this view makes it much more imposing and threatening -- like a Battleship should.

Whereas the previous version only had the 3 guns that could be targeted, the newer version will allow you to attack 4 segments. One for each of the guns, plus the Bridge. I've already tested this version in-game and it looks . . . AWESOME!


Quote of the Week:

"Don't set yourself on fire to keep others warm." -- Gamedev Unlocked             (<---- click here for video link)


It was a little shocking this week to hear that Gamedev Unlocked was going to stop doing Youtube videos. He's that rare indie game developer success story.

But burnout is a very real thing in any creative endeavor. 

As indie developers, we shouldn't be allowing this happen. For me at least, part of the whole allure of being an indie gamedev is being able to call the shots. Feel like working 10 hours in one sitting? Go for it. Only feel like doing 10 minutes? Do that too. Or even take the day off.

I'm blessed to say that I don't feel "burned out" with Scrapship. Sure, it's taking much much longer to finish than I expected, but I'm still having fun with it. I used to really pay attention to follower counts, downloads and other metrics, but I've recently stopped counting those things. If you want your performance to be measured, let me tell you, there are lots of 9-5 jobs that will gladly do that.

We're indie devs, and I hope that means to you what it means to me: We do our own thing and we do it because it's fun!

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

18 JUN 2022:




- This week I created a damaged satellite that you will encounter in Level 1. It's basically the tutorial "enemy" to allow the player to try different weapons and introduce them to the concept of collecting scrap.

- I started scripting out Level 1. A huge part of this is determining when and how the earth and moon appear. Those are definitely images  I do not want to be drawing at full scale when the screen is cluttered with enemies -- creates too much lag. In my tests so far, the game has been running over 60fps, which is what it should be.

- I'm satisfied with the new enemy sizes and tested all of them. Below is a little montage I put together in Powerpoint to give an idea of relative scale:


- Made some adjustments and bug fixes to the threat bar.


QUOTE OF THE WEEK:

"You are what you do, not what you say you'll do." -- Carl Jung

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

25 JUN 2022:

BEFORE

AFTER

Before I get knee-deep in coding again, I want to make sure that I'm absolutely happy with how the enemies look. The last one to need improvement was the Carrier. As you can see in the "BEFORE" picture, the original design has a lot of bright, highlighted sections that look cool, but don't make it obvious what their purpose is. Are the bright squares sections you can target? Where do the enemy fighters spawn from?

I started by seeing if I could get away with just making some slight modifications, but it quickly became apparent that would not be possible. I found that there were LOTS of vertices floating in space, disconnected planes and other chaotic geometry. To fix this, I deleted the "hull" section entirely and made heavy use of extrusion and insetting to get the new shape.

Colorwise, I felt it should be incredibly obvious where the enemy spaceships launch from. In the original version, I kinda arbitrarily picked a blue square and tried that out. As you can see now, the only highlighted sections are the hangar (glowing green) and the engines (glowing blue). All other colors have been toned down.

It felt really good to play around with Blender this week and I even learned some new techniques like push/pull. 

QUOTE OF THE WEEK:

"The wise man does at once what the fool does finally." -- Machiavelli


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

2 JULY 2020:

- This week I spent more time refining the AI. It is now set up so that there will be about 19 different attack orientations. I think that provides enough variety.

Shield fighters attack from 1 direction.

Bombers attack from 4 directions (originally only 2)

Cruisers also attack from 4 directions (originally only 1)

Battleships and Carriers each attack from 5 directions  (originally only 2)

- Experimenting with a new shield fighter design, in particular the shield itself. It's not quite where I'd like it to be just yet, but it is getting closer. 

ORIGINAL
EXPERIMENTAL


- I was invited to take part in the 3rd QBasic Game Jam but refused because, let's face it, I really need to finish Scrapship (this year hopefully) and that's not going to happen if I get sidetracked with other projects.

- I have all of next week off so I'm looking forward to getting a lot done!


QUOTE OF THE WEEK:

"Don't compare your Chapter One to someone else's Chapter Twenty."


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

9 JULY 2022:

- This week was all about graphics and animation!

- Has it ever happened to you where you play an old version of your game and think, "Hey! That feature was really cool! Why did I get rid of that?" That's basically  what happened with the Shield Fighter. In an earlier version, the shield would move back as it got hit. So I took to Blender and made some adjustments, resulting in the animation you see below.

Next, I turned to Embergen and experimented with some exhaust effects. There was only one problem -- Embergen can't render a transparent background.

A little frustrated by this, I next tried Aseprite because it does have support for rendering transparent backgrounds. But graphics in Aseprite are by their nature very pixelated, which I didn't really want for my game.

Finally, I turned to trusty ol' Blender and found a great (but dated) Youtube tutorial on how to make engine exhaust. But even here, I found that rendering against a transparent background was (seemingly) not possible. Thankfully I found a compositing node tree online that fixed the issue!

The shield fighter was the first to get the new exhaust animation, followed by the player ship.


It would have been nice to have bloom, but trying to render bloom against a transparent background is ridiculously complicated. This article I found here helps explain why. Basically, if your game engine or 3D program doesn't have proper alpha channel support, the best you can hope for is a post-processing type of workaround.

- Finally, I came across some VERY shocking news this week. As you all may know by now, I am developing this game in QB64, a very updated and modern version of the QBasic programming language. The website qb64.org has been EXTREMELY valuable in the forums and official documentation for learning how to use special commands and whatnot. But I recently noticed something: The website was always down whenever I tried to visit it. Thinking it was just server maintenance or something, I thought nothing of it, but then I finally got curious enough to ask on a QB64 discord server where I learned the horrifying truth:



CRAZY HUH? 

So before all this happened, people could upload snippets of code or even whole programs for others to try out. But because of the whole "ownership" issue and backlash, this one guy (who nobody really seems to know very well) just decided to nuke just about everything QB64 related.

So what does this mean for Scrapship? 

Ultimately, nothing. There is a historical backup of the original site that has all the documentation, but it now seems very unlikely that QB64 will be getting any more updates. That's fine, a lot of the new features that have rolled out I haven't been using anyways. All of the core commands and functionalities I need are still there. But it does give me strong reasons to consider switching to a game engine for my next game.


Quote of the Week:

"Don't be the one thing standing in your way."

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

(+1)

16 JUL 2022:

- The above gif doesn't have all the frames of animation I would like due to the 3MB upload limit, but it gives you a pretty good idea of the state of the Shield Fighter. You can see the shield get damaged by the rapid laser, nullified by the single laser, and the ship stunned by the single laser before being destroyed by the scrap cannon.

- As shown, stunning an enemy deactivates their engines. 

- Not shown, the engines can be targeted individually.

- And then there was a bug that caused the screen to glitch out. After hours of searching and reading through log files, I found it was because an animation was starting at a frame that didn't even exist. But thankfully I got it fixed so I can move on!


QUOTE OF THE WEEK: (one I really need to listen to!)

"Strive for progress, not perfection." -- David Perlmutter

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

Viewing posts 193 to 212 of 303 · Next page · Previous page · First page · Last page