[Game]Starbase Defender [V1.0.0]

Hey all,

I’m releasing my first Pokitto game! The code was actually mostly in place almost a year ago, but I got discouraged when I went to add in sound… But now there’s LibAudio! So I dropped in some SFX and made some music, and I’m kicking this project out the door so that I can work on something more exciting :slight_smile:

Before actually sitting down and working on something, I had grandiose ideas about what I wanted to do. But then I realized that I needed to start simple to get a sense of the hardware; hence, the game here is a breakout game with some elements of space invaders. It was definitely a learning experience.

Zip file contains a pop file and a music folder. The music folder should be placed in the root of the sd card (and merged with any other existing music).

StarbaseDefender.zip (692.4 KB)

Unfortunately, I don’t think it will play in the sim right now, but I might be able to reorganize some code and get it working if that’s a showstopper. And speaking of the code, I’m happy to release the source if it might be useful? It’s got my own special flavor of jank, though, so… :man_shrugging:

Anyways, I hope someone finds this enjoyable! Let me know if the levels are too easy/difficult. They’re easy to tweak, and I didn’t really test the latest iteration a ton :wink:

edit: adding in some screenshots here, too.

Source repo here: https://github.com/lucentbeam/pokitto-starbase-defender

13 Likes

Congrats for the first game! Sounds like an interesting concept.

I do not think is a big problem.

That would be good. Just drop the zip here or in GitHub etc. Please include the license (I am using the MIT license a lot).

Sure!

4 Likes

As I very recently said to someone else, limiting one’s scope is a very useful skill at times.
(Albeit one of the most difficult to learn and put into practice.)

2 Likes

Thank you for sharing this. Its my new favourite game on Pokitto! I wanted to do a breakout-style game as well but you really did something special here👍 simple and yet challenging later in game as you juggle many balls at the same time.

Your tutorial is just brilliant too!

Great job!

6 Likes

@lucentbeam thank you for this, looks very interesting! Can’t wait to get to try it!

3 Likes

This is AMAZING!
You turned a combo of simple mechanics into a masterpiece. I love the aesthetic style of the menu and UI in general, it fits perfectly. I also like how the menu has an independent volume slider! It is really refreshing to not have to restart the game to select a volume :wink: ! Going to need to practice up on this one so we can start a high score thread! @tuxinator2009;)

[Edit.1]
This gets intense very quickly! I’m going to have to really practice some strategy here haha. The upgrade system is awesome, I always love a good upgrade system :smiley:

4 Likes

This is a really awesome game. Was actually surprised, and very impressed, when I discovered I could shoot the ball to bounce it early, but enemies could also shoot the ball and bounce it back. Can’t wait to play some more of this, great work on this.

I created a highscore topic (though apparently I’m not trust level 3 as I can’t make it a wiki, but any mod can get that fixed easily enough):

EDIT: I do have TL3 I just wasn’t seeing the “Make WIKI” button anywhere (turns out it’s in a sub-menu of a sub-menu of a button in a hidden menu that requires clicking a button to see), it was there the time I don’t know why I couldn’t find it :laughing:.

1 Like

@torbuntu glad to hear you like the volume slider! Getting that in was really important to me too :slight_smile:

@Hanski Thanks for the recommendation. I uploaded the code here with the MIT license: https://github.com/lucentbeam/pokitto-starbase-defender . Here’s hoping that it might be helpful to someone.

A few notes on the codebase, though:

  1. I didn’t use the simulator and instead wrapped my own SFML-based renderer around things. At the time I was just trying to avoid having to compile PokittoLib so that I could have a standalone project to use in Qt Creator for Desktop editing. I’m an oddball - it’s my preferred IDE. I also just like the ease of SFML (it was quick and fun to get going, though the sound hooks are still stubs). If anyone happens to have interest in SFML and/or Qt Creator, feel free to ping me.

  2. I had modified PokittoLib a little to add some of my own functions. I doubt if they were really necessary, but I can’t really remember anymore. For the repo, I’ve extracted them into separate files, so I think it will compile now with FemtoIDE and the latest PokittoLib…

  3. At the time of writing the code, I was interested in trying to write my own ECS’s, so I took the opportunity to see what making a small one for Pokitto would be like. I like ECS because you get to aggregate small data-oriented components, however, I also didn’t know about struct padding. This turns out to make that philosophy very inefficient for the limited memory of the Pokitto. So I ended up merging things into a generic entity, and the result is that it’s not actually an ECS… More just an overwrought bitmasking system for entities. But anyways… the “ECS” and FSM form the architectural spirit of the code. Hopefully it’s not too difficult to follow (the system calls, the workhorses, are pretty gross looking).

3 Likes

Wow! Just wow! I did not expect the first Pokitto game to be this good. The gameplay and gfx is Amiga level (Bitmap Brothers anyone?) !
One of the best shooters for Pokitto :slight_smile:

6 Likes

Thank you so much for sharing the source code! It is great to be able to see behind the screen what goes on to make amazing games like this.

2 Likes

Yay! I’m glad to hear that it’s helpful :slight_smile:

I’m super awkward about that kind of stuff, mostly because I have such a hard time reading other code and really following it. It’s slow to load into my RAM :grimacing: (I should probably practice it).

2 Likes

For me, reading code takes a lot of practice. For personal projects especially everyone has their own style and it is really fun to find the flow. :slight_smile:

1 Like