Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

SCRAPSHIP (Still going!)

A topic by 40wattstudio created Feb 16, 2020 Views: 18,033 Replies: 401
Viewing posts 128 to 147 of 305 · Next page · Previous page · First page · Last page
(+2)

23 JAN 2021:

As I mentioned in my last week's post, I had a major decision to make and this week I made that decision:

Starting fresh! 

Surprisingly, I got quite a bit accomplished and I feel that things are moving in a very promising direction.

Here are the most important things I got done:

A NEW ASPECT RATIO

Scrapship will now use the 16:9 Aspect Ratio (instead of 1:1). The game will still take place in a square-shaped arena, but the far left and far right parts of the screen can now hold all my debugging variables, as seen in the partial screenshot above.

THREE SCREEN RESOLUTIONS

Instead of a screen sized 1000x1000, the options are:

1280 x 720

1920 x 1080

2560 x 1440

I think those three will be adequate for most players. Will one of those work on your computer? Please let me know in the comments!

BETTER SCALING

Most of my time was spent here. In previous demos of Scrapship, going fullscreen resulted in a very stretched and pixelated image. I've since learned a LOT about proper scaling techniques in video games. There is still a lot of testing I need to do here. I have code that will allow for automatic scaling, but it's very math-intensive (lots of sin and cos). If it bogs the game down too much, I'll have to look at other ways to achieve the same effect. 

========================================

My strategy this time around is to make sure the menus, screen resolutions, scaling, etc are all working as intended before putting in the actual gameplay. I like to think of this as the "canvas" for the game. You can have a great game, but if the screen the game is played on is not optimized, it's not going to look very good. By analogy, you could be a good painter like Da Vinci or Caravaggio, but if you suddenly have to paint the Mona Lisa on a canvas the size of a postage stamp it's probably not going to look as epic as you imagined.

One of the biggest things I've had to get used to this time around: Referring to screen positions as percentages instead of absolute values. If you place an object at coordinate 100, 800 and then resize the screen, things will look out of place. But if you make that coordinate a percentage relative to the screen size, then things fall into place where they're expected.

Thanks for reading!

Play the old version of Scrapship here.

(+1)

30 JAN 2021:

Scrapship got its first donation!

This is really exciting for me and definitely motivates me to see the game through to completion!

One of the most important things I learned this week: Scaling works . . . but it also causes the image to "tear" a little and look a bit more jagged than usual. Scaling also sets the x and y coordinates to the center of the sprite instead of the upper left-hand corner. Basically this means that scaling will make hit box calculations much more tedious and complicated to write in code. So with that in mind, I still plan on using scaling, but only in specific instances.

Automatic monitor resolution: I also learned that QB64 has a command that returns the width and height of the current display. Using that, the game now automatically detects your monitor resolution and picks the most applicable window that will fit the screen! I tested this with my BenQ monitor at 2560x1440 and then tried it on my smaller Sceptre monitor at 1920x1080.

A proper pause button: The original  pause button stopped the game -- and that's it. The new one I'm working on shows a "Paused" indication while still showing all the frozen action on screen. Eventually I'll integrate a menu system of some sort so that the player can change things like sound and display settings mid-game.

Hide / unhide debug tools: Allows me to see the game as the player would see it, without all the variables cluttering the side of the screen.

Like any game, Scrapship uses a lot of pictures in various formats and I'm also learning a lot about how to display graphics as "cheaply" as possible.

Imagine you need to make a black box with a thin white border. I did some experiments with Aseprite:

A 1280x1280  .jpg of a black box with a white border -- 33kb.

A 1280x1280 .png of a transparent background with a white border -- 5.8kb

A 1x1280 .jpg of a vertical white line and a 1280x1 of a horizontal white line -- A dirt cheap 452 bytes!

So definitely look at all your options! I was surprised to see that the first .jpg was more "expensive" than the .png.

Thanks for reading!

Play the old version of Scrapship here.


(+1)

6 FEB 2021:




Using all of the things I've learned in previous weeks, I now have a really good "canvas" for my game. There are two modes. Game Mode shows a narrower windowed screen where all the debug information is turned off by default. This is how you will play the game. Then there is Debug Mode which is wider and allows me to see the values of different variables in real-time. As you can  see in my Youtube video above, the sprites scale and reposition correctly, regardless of the screen resolution!

I've also made progress with a text-centering function. In all the previous demos of Scrapship, the text was never truly centered, just estimated based on how it looked.

What's the small spaceship on the left for? That's a reference image I imported to make sure the scaling was working properly. That sprite measures 64x64.

Thanks for reading/watching and have a great week!

Play a demo of Scrapship here.

(+2)

I'm glad to see you're still going!  :)

(+1)

Thanks, likewise!

Deleted 104 days ago

13 FEB 2021:



This week I thought of an even better way to do the opening animation for Scrapship. It also incorporates my idea for a better Settings menu.

The previous versions of Scrapship animated the ship dropping to earth by cycling through about 30 .png files. I recently learned how to accomplish the same effect just by scaling the image! This means I only need one .png file to get the animation started. With these savings in file size, it also means I can make a longer and more dynamic animation without adding too much to the total file size of the game.
I'm not ready to show it off yet, but it's looking promising. Above you can see a small preview of the cockpit of your Scrapship. I added the chair, monitor, joystick and cockpit glass transparency. The rest of the ship was modeled by @another_blender_user on Instagram (who just got first place in a Blender art competition hosted by @polygonia.development).

I also played around with the text-centering feature . . . and ended up having to scrap it. It works if you use QB64's default font, but using a custom font causes the text to never center properly without doing a ridiculous amount of manual adjustments. But I did learn that I can work around this by just making my menus and text in Powerpoint (which is GREAT for centering and aligning text and adding colors and effects) and then using pictures of the text and then centering the pictures.

Side note: Scrapship is programmed in the QB64 version of the QBasic programming language and the first-ever QB64 Game Jam is right here on Itch.io! Of course I was too busy with Scrapship to join in on, but I'll definitely be checking out the game entries. It will be interesting to see what the more experienced programmers at the QB64 forums are able to come up with!

Thanks for reading! May the muses find you working!
(+1)

20 FEB 2021:

It's coming together nicely!

This week I made the new settings screen which is shown above. What I like about this design is that you can view ALL of the settings on one page (the original version had sub-menus and back buttons that didn't always work properly).

A most welcome surprise was figuring out how to get the text centering feature to work after all! 

The "Intro" of the game is now almost back to its original state. When I run the program it goes like this:

Basic Controls guide (while game assets load in the background)

Settings screen

Opening animation

Start of main game loop

I still have some work to do on the settings screen and the opening animation, but once that's done, the "foundation" for the game will be set and I can start on the fun part: Putting the enemies back in!

Fun fact:

24 February was the release date of the very first Scrapship demo -- it's been almost exactly a year that I've worked on this project! I realize my progress is a bit slower than some indie game developers I follow, but I'm just happy that I'm still going. I usually start projects, get burnt out and then never return to them again. So daily small improvements has absolutely been key to my progress so far. 

As I look back at the condition of Scrapship last year and compare it to today: MAJOR improvements. 


Something special for those that have followed me this far:

A lot of indie game developers here on Itch.io ask: What are "typical view / download" rates for my game?

Of course that varies from game to game, depending on the quality and genre. Shmups or Shooters may be one of the most traditional types of games to make, but they're not as popular as FPS or platformers, etc.

For an unfinished space shooter I think these are some really good numbers. Keep in mind that some of these views and downloads are from the same people since I was releasing new demos every month.

What do you think about these stats? Are they more or less than you expected? Please let me know in the comments below!

Thanks for reading and have a good rest of your weekend!

(+2)

27 FEB 2021:

I might make some minor adjustments later one, but I pretty much finished the new opening animation for Scrapship. For such a short "scene" it's actually quite complicated:

The planet background is a high-resolution .jpeg image rendered in Unreal Engine 4.

The spaceship (with cockpit transparency) are a sequence of .png renders using Blender.

The "dropping down" part of the scene was done by scaling down the image programmatically.

What's crazy is that most games made with Qbasic or QB64 look like this:

It's very exciting to push this old programming language to its limits!


I also learned how to scale and move the background objects, even at different resolutions. I don't have a preview for this yet, but let's just say that it ultimately allows for some very cool background effects.

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

(+1)

that's quite impressive... but who still uses QBASIC?!

(+1)

Surprisingly, quite a few! There is a new "version" called QB64 that has some extra commands and features that actually make Qbasic gamedev more practical. In particular, the _PUTIMAGE command lets you drop in graphics instead of having to create graphics with LINE and CIRCLE statements. There is a BASIC Game Jam currently in progress as well.

Now all that being said, yes, Qbasic is perhaps still a bit primitive for modern-day Gamedev -- I've certainly seem some of its limitations. But for those like me that grew up with Qbasic and already have a good understanding of it, it sometimes makes more sense to stick with what you already know than to start from scratch with something else.

Thanks for the comment!

(+1)

Quite interesting. I haven't used QBASIC since my middle school/junior high days so I probably won't be delving into this anytime soon or else I'd have to go dust off my old BASIC guidebooks from back in the double-aughts and the nineties... I don't even know where I keep them, or if I kept them.

(+1)

I know how that is. I only got back into Qbasic because I found an old harddrive with all my old programs still intact. Trying to find a way to play them again led me to QB64.

If you ever do decide to check it out again, this Qbasic series by School Freeware is perfect for getting back up to speed (it had been 20 years since I last used Qbasic). It covers a lot of the old commands and concepts plus a lot of the new ones.

6 MAR 2021:

The "foundation" of the game is nearly done. Screen resolutions now scale properly. I've also improved the Settings screen so that it only shows valid screen resolutions.

Important Game Dev lessons learned this week:

1) When programming, you can often do things in a very concise manner (less code to read), but the downside is that it might be harder to understand what those lines of code are supposed to do. Sometimes your program makes a lot more sense if you code things out in a longer, more explicit form. This is what I ultimately had to do to solve my issues with screen resolutions and objects not scaling properly. Of course you can always condense/consolidate the code again after you're confident that everything works and you understand how it works.

2) "Boring" work can really make your game a lot better. You've probably noticed that the past few weeks there haven't been any updates on enemies or actual gameplay features. But taking this time to allow for different screen resolutions makes the game look more professional and accommodates players with smaller monitors/laptop screens.

What's next?

The main game loop! As a quick test, I'll see if the player ship can properly collide with another object and "die" before prompting the player to quit or try again. 

Once that works, the "foundation" will be stable enough that I can confidently start re-importing enemies and game logic.

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

13 MAR 2021:

Simplified main game loop is complete! This means you can start the game, crash into a test object and then decide to keep playing or quit. If you decide to keep playing it loops back around to the beginning -- with no loading times!

The riskiest addition this week was copy/pasting the code so the player can shoot. Thankfully it worked! Up to now, most of the new features had to be programmed from scratch.

I also shortened the opening animation by nearly half. Each frame is a 1 to 1.5 MB .png file so they add up pretty quickly.

There is still some work I have to do on the sprites and the other two weapons still need to be added back in.

HAHA! I literally just now figured out how to do something I've been wanting to do for a LOOONG time: Render the Bloom effect while maintaining a transparent background. This is a game-changer! Now I'll be able to add a natural "glow" effect to anything that needs it. 

For those that are interested, here is how I set it up in Compositing (using Blender 2.9x).


Have you used Blender in your indie games? Feel free to share your experience in the comments!

In other news:

I got a small job doing the English Localization for a game on Steam called "Destroy the Demon Army -- Modified". It was an educational experience because I had never worked with .xaml files before and the game itself was fun to play! 

Although gamedev is my primary focus, I am also open to beta-testing and proofreading your game. If you're interested just contact me at 40wattstudio@gmail.com

Have a good rest of your weekend!     (and don't forget about Daylight Savings Time)

20 MAR 2021:


Two of the 3 weapons are now programmed back in. I also added a "hitbox" debug mode (shown above) which will come in really handy.

The debug mode that I added to this version of Scrapship has already proved useful: Earlier this week I was able to use it to troubleshoot some problems with the player bullets and I also discovered that my original code that I had copy/pasted over had an error in it that was causing a random stray shot occasionally.

In Other News:

I signed up for another Game Jam!

The BASIC Game Jam starts in 11 days and can be viewed here.

I'll still be working on Scrapship during this time, but this will give me an opportunity to "recharge" a little and, more importantly, actually finish something. So I"m really looking forward to it!

Thanks for reading! For more frequent updates please check out my Instagram @40wattstudio.
Have a good rest of your weekend (and for some of you, Happy Newroz!)

27 MAR 2021:


Making progress!

-- Added the scrap back in and the player ship can even collect it.

-- Worked on the player ship animations. This time the player ship can also bank forwards! (the weapon selection lights need fixing though).

-- Also added the Scrapcannon back in.

What do you think? Is this an improvement over the last version of Scrapship? 

Thanks for reading and have a good rest of your weekend!

(+1)

I really like the zooming away from the planet.   :)

Thanks! That's a new technique I learned.

(1 edit)

3 APRIL 2021:

-- Thanks to my excellent debug system, I fixed a bug where the game would crash if left idle for a few minutes -- a background function would keep trying to shrink down a graphic that was already reduced to its smallest size.

-- I've designed the code so that only ON-SCREEN objects check for collisions.

Hit detection can be VERY "expensive" in a shmup. Some bullet-hell games (like Dodonpachi Daioujou) are made so that hits are only calculated on every other game loop.  In all previous versions of Scrapship, I was checking for collisions whether the object was on-screen or not.

-- Just started to code this out, but Difficulty is now determined by how often the enemy spawns, not by the number of ships.  The previous "Wave" system I used for Difficulty definitely worked . . . but it was also nightmarishly complicated and some lines of code had to be written in very specific places.

If it works as I intend, the player will be able to change Difficulty mid-game -- something that could not have been done in previous versions.

-- The spawn-code for the Fighter enemy has been added back in. 

Thanks for reading and have a good Easter weekend!

10 APRIL 2021:

-- Added banking animations to the enemy fighters. 

-- Added some simple movement AI.

-- Started programming the hit detection for the different segments.

-- Lesson  learned: If you have an image you really like (with a transparent background), do NOT edit it in Microsoft Paint -- it will remove the transparency and turn it a solid white color.

Thanks for reading and have a good rest of your weekend!

(1 edit)

17 APRIL 2021:


-- Scrapship has hit a milestone! Over 100 downloads! Sounds small, but for an unfinished game in an over-saturated genre I think it's really good. Thanks to everyone for their support!

-- Finished the hit detection for the enemy fighters. In the above .gif you can see the AI at work and the new banking animations. What do you think? 

-- I fixed the player bullets after I messed them up in Microsoft Paint. They're a little different looking but pretty close. 

-- I had very briefly added the particle explosions back in, but it was making the code very complicated so I took it back out. I'll work on that more later. 

-- Added Credits option to the  main menu and started adding those screens back in. 

In other news, I'm about 40-50% done with my QBasic Gamejam game. Look for that one towards the end of the month!

Quote of the Week:

"A user interface is like a joke. If you have to explain it, it's not that good." -- Martin LeBlanc

Thanks for reading and have a good rest of your weekend!

(+1)

woah... Watching the game progress from a blue square to this is a sight to behold.. 

Thanks spacepiano! Glad you enjoy it. :)

(+1)

24 APRIL 2021:

- Added code for Difficulty! In previous versions of Scrapship, you could only change difficulty at the start of each game. Now the player will be able to pause the game and change difficulty as needed! Space shoooters sometimes have a reputation of being too hard, so this will make it better for everybody.

- Finished all the pages for the Credits.

- Improved enemy fighter movement.

- Started adding in the code so that the fighters can attack.

- Fixed the main game loop: If you died by crashing into an enemy fighter, there would be a sort of "screenshot" in the background even after the game restarted. Thankfully a simple CLS statement was all that was needed.

- Fixed an issue where the Game Title would not display during game restart. 

IN OTHER NEWS:

- My Game Jam game "Wallet Warrior" will have to be released early because next week I'll be on a business trip for work. So today I'll be rushing to finish it up. My goal is to have it uploaded and posted tomorrow. This game is part of the Jam for all BASIC Dialects.

QUOTE OF THE WEEK:

"Spend more time doing and less time to-doing"

Thanks for reading and have a great weekend!

(+1)

Nice!

Thanks for playing! All the demos on the page now are the old version from last year. The version I'm working on now will be better in just about every way.

(+1)

looking forward to it! 

(+2)

1 MAY 2021:

- Fighters can now attack and damage the player! The logic is still WIP which is why both wings are shot off instead of just one. But what is really cool is how the ship appears damaged even when viewed from different banking angles. 

In other news, my game Wallet Warrior has been submitted to the Jam for All Basic Dialects #1. Voting ends in about a week. It was a fun experience and I learned some new techniques that I hope to later implement into Scrapship!

Quote of the Week:

"No risk, no story."

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

7 MAY 2021:

- Better AI for the enemies! Each enemy type will have 3 levels of AI along the lines of Easy, Normal and Hard. At each level they get a little more aggressive. On Easy, the fighters just fly straight down the screen. On Normal, some fighters will now bank towards the player. On Hard, some fighters will rapidly bank across the screen.

- Fighter damage. If you shoot off the left engine of the fighter, you would imagine there would be a reduction in speed, right? That's exactly what happens now!

Player cockpit can now take damage! Still playing around with this one, but it looks promising. It will take 2-5 direct hits to destroy the player. Two hits only if the enemy manages to hit the cockpit twice. 

- Better Hit Detection. All "hits" from projectiles are based off the location of the middle-most pixel of the sprite. Not only does this make the hit detection more realistic, it is also more forgiving -- a projectile can graze your wing and still miss.


A QUESTION ABOUT DIFFICULTY:

What should make Scrapship "Difficult"? 

The level of the AI?

The amount of damage the player does? 

Both?

Something else?

Right now, not only does the AI get better, but the player damage is decreased the harder it gets. But perhaps this is going a little too far. 

Please let me know in the comments below!


Quote of the Week:

"The only disability in life is a bad attitude." -- Scott Hamilton


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

15 MAY 2021:


- Enemy fighters can now be stunned! Stunned fighters will continue on their last-known trajectory and will not fire back at you.

- Difficulty changes. Difficulty only affects the AI of the enemy ships, not the player damage. In the gif above you can see some of the new flight patterns the enemy ships take.

- Thoughts about scrap: I'd like to make the scrap in this game more meaningful and/or interesting. It is SCRAPship after all. One idea I've toyed around with is adding physics so that the scrap can bounce around when collided with. Another idea is that scrap can be destroyed with energy weapons by the player OR the enemy, but weapons with mass will propel the scrap.

Quote of the Week: 

"Don't show off, show up!"

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

22 MAY 2021:


New this week on Scrapship: 

- Fighter debris. Debris floats off the enemy fighters after a segment has been sufficiently damaged. 

- New mini-explosion animations! In previous versions, I used a particle explosion effect. Looked cool, but very math-intensive in the background. I spent some time the last two days using BlastFX to make some explosion effects (as shown above). It's "good enough" for now, but I might try and improve how it looks at a later date.

- More thoughts about scrap. I tried an experiment where scrap could bounce off of other objects. It looked a little interesting, but I decided against it for a couple reasons:

  • It makes the screen look ridiculously busy. The player should be focused more on their ship and the enemy ships and projectiles and that's hard to do when one's eye is constantly being distracted by scrap flying around. 
  • Collision-detection with the floating scrap was not very good. Sometimes it would bounce off of objects properly and sometimes it would get stuck. Overall it looked very messy. I could always try and perfect the physics and hit-detection, but my goal this year is to actually finish this game, not get nitpicky over minor features that might not even make it into the final version of the game.

Quote of the Week:

"You cannot improve something that you don't understand."

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

29 MAY 2021:


This week I added the bombers back into the game. They can move and attack but I still need to reprogram the bomb damage and some of the graphics need some improvement. 

We'll see how it goes, but I'm setting a personal goal here: I'd like to have most of the enemy ships back in the game by the end of June. If I can do that, then I'll have a solid 6 months for level design and to polish up the small things: Engine exhaust, more debris, better explosions, etc.

Scrapship has been in development for a little over a year now and I'd like to see it finished before Unreal Engine 5 officially comes out early next year so I can start learning that for other projects. :)

It sounds crazy working on a single game for over a year, but keep in mind that family, work and life often get in the way. Oh, and I'm very lazy, let's not forget that. 

But persistent!

Yesterday there was an awesome short film released by Ian Hubert. It's only about 20 minutes long. But guess how long it took him to make that project? 

THREE. YEARS. 

But the results are very impressive, especially considering that he did most of it himself and used Blender for the models. (Scrapship also uses Blender, btw). 

I say this just to show that it's okay if your personal project runs into a timeframe of years instead of months.

Stick with it!


Quote of the Week:

"If you set your goals ridiculously high and it's a failure, you will fail above everyone else's success." -- James Cameron


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

Viewing posts 128 to 147 of 305 · Next page · Previous page · First page · Last page