Nihil Ace - Space Shooter WIP
I've been tinkering around with a block-based space shooter, currently codenamed `Nihil Ace`. I'm using some art from OGA (the explosions and sounds), but most of it is horrid programmer art.
There's really not much point to the game yet; you just fly around shooting things and getting shot at. Currently, you often quickly sustain crippling damage with no method of repair (that's a feature I'm working on now). Another main issue is that it's written in Python and there's been little optimization done as of yet (though I don't suspect that will be a big deal), so it's somewhat slow...
Mostly what I'd like is some artistic advice. What style would you all like to see from a game like this? Pixel art? (I'm afraid that would make it too much like Minecraft/Terraria). Painted art? SVG (like I currently have)? As soon as I can get some advice (and probably mockups that I like), I plan on commissioning the art I need.
Please let me know if you have any style ideas!
I think some high quality vector art could be pretty nice. Also, the background looks too "noisy" to me - I'd go for something with less stars...
And I also think the whole block-based thing is a good and original idea - have you got anything for us to see/test (some binaries or a repo to download from)?
Yeah, the background doesn't look like it matches at all. It's just a placeholder (and simply a photo from NASA at that). Eventually I plan on procedurally generating the background.
I thought it was an original idea, but someone yesterday pointed me to Captain Forever which has a similar idea. This will be quite different from that, but right now, Captain Forever is MUCH more polished. I'm looking into its gameplay right now as a way to help make my ships more easily controlled. There are already way more customization options in my game, but you've got to make them by editing config files. In the coming months, there will be a way to construct your ship in-game.
I do keep leaning towards high quality SVGs or painted art. I wonder if anyone out there would be interested in doing a mockup? Like I said before, once I settle on a style, I'm going to commission a whole set.
There's no (public) repo yet; I was a bit embarrassed to release it now. But I suppose that's part of open game development, so I'll probably post a repo and instructions on how to run tonight. Fair warning: it's not optimized in the slightest, so on slower computers, you might not get to play it like I do.
how about something like this? Sort of abstract but not minimalist
semiabstract.png 75.5 Kb [208 download(s)]
Treat the boxes as if they're pixels and scale with a pixel scaling algorithm like hq4x. Simple configurations could have interesting curves and angles that way, while keeping the construction simple.
Example:
From here, you could apply more effects, like making certain colors leave glowy trails, texture mapping, outline, etc.
Okay, repo everyone! All my warnings persist; there's more of a tech demo than a game right now. When you die or get damaged beyond repair, you'll have to restart the game completely. There's nothing saying "you win". It's probably quite slow on less beefy computers. That in mind, *I* still think it's fun. :)
https://github.com/pennomi/nihil-ace
Let me know if there's any trouble getting the dependencies set up.
@SpiderDave: Wow, that's an interesting idea. I wouldn't know how to go about doing that algorithm in OpenGL, but it's worth looking into. I will definitely use some of your ship designs though; they look much nicer than mine.
@Blarumyrran: I like the idea of abstract, though I still want it to visibly be a spaceship. I wouldn't know what that would be like... I'm definitely not an artist.
I wonder what it would take to modularize and vectorize something like the spaceship tutorial...
Ooh, forgot to say: The controls are the arrow keys for your thrusters and `a` for lasers. There's an experimental radar bound to the `s` key. Shields are `spacebar`.
All of these controls are configurable in the ship file. This one was pretty hastily thrown together and it's pretty fragile.
I tried the game on windows with all dependencies installed and it runs... for a bunch of seconds - eventually it crashes and the console reports the error
AttributeError: 'StaticSource' object has no attribute '_data'
Crash occurs sooner if I move the ship and crashes immediately when I try to shoot, but it happens after some time (10 seconds more or less) even if I don't press anything...
Oh, and I made some mockup blocks with inkscape (had lots of fun doing these!) - still a WIP, I still need to add the radar, the engine and the damaged blocks, but here's what I've got up to now.
bitmap.png 32.4 Kb [62 download(s)]
@Buch: Woah, those are some nice fun tiles! I'll see if I can get them put in-game tonight. :)
As far as the crash, I've never tested on Windows, so I'll do that tonight as well. The crash appears as if it's in the sound manager. I'm not sure, since it's in the library I'm using rather than my code. Try running the script like this:
python main.py nosound nogldebug
I had problems with that on my Ubuntu machine too until I installed AVBin... though that probably should have come with your Pyglet binary...
So I tried out the tiles and they look pretty awesome when zoomed in. I think they suffered a bit when zoomed out. I wonder if there's a way to give them a bit more distinction from each other when small?
I especially like the engine blocks with the fins; that's what I originally wanted to do. I bet having more shaped blocks like those and the blasters would be exactly what I'm looking for.
The last thing I had in mind was to have (blinking?) lights on each of the special blocks to make them feel a bit more scifi.
The nosound arg works fine... The game runs properly (the nogldebug seems to affect only fps, game runs even without it)
And I had already installed AVBin - for I got an error the first time I ran the game telling me that AVBin was required.
As for the tiles, I think I can modify them to make them clear when smaller - what size are you thinking of? 32x32, 24x24, 16x16, ...? Currently they're 64x64 (which I see being too big compared to the ones you have in the demo). Still, I might have a try reducing their size directly in Inkscape and posting the resized ones - for AFAIK resizing images programmatically looks worse than doing that in vector graphics.
Finally, adding blinking lights should not be that difficult even with my poor animation skills, so no problem about that... Maybe some on/off status lights? For shields and radars, for example...
By the way, I'm gonna be away from home for 3-4 days (no way to work on this then), so I should come up with something done next week...
Still, here's the latest update (maybe not all the blocks are compatible with your engine...)
nihilace-mockup.png 57.8 Kb [174 download(s)]
Oh, and I also noticed something odd - don't know if it is wanted... Seems like the arrows are inverted (right with left) in the fighter ship - which I guess being the default one - and up arrow is connected to the wrong engines (the ones moving backwards)... I changed this modifying the keybindings in the configuration files.
I think the up arrow should make you move forward - thus activating the back engine - and left and right arrows should make you turn respectively left and right... That makes a more intuitive control system in my opinion.
@Buch: Yeah, I wasn't quite sure what people wanted from the keybindings... I just made it so the left key fired the left engines. Really, it will be completely customizable as you build your ship in the future.
Right now if you change the bindings, the (quite stupid) AI will go crazy, but I'll fix that first. It's good to have a second opinion to show the usability issues I've missed.
The target tile size is quite small actually, I forgot to tell you, but the mouse scroll wheel will zoom in and out on the ship. Try putting your tiles in as replacements (maybe I'll make a branch for your tiles. As soon as they look great, I'll merge it into master) and see what they look like at various sizes. It's not even that they look bad small, it's that they lose quality when small AND rotated in-game.
I'm looking at your new tiles and really like them... it's making me want to figure out a way to have multiple sizes of blocks. I'm just afraid it will make things more complex than they need to be. I'll look into it; maybe it's not as hard as I think...
Also, any thoughts on stars, etc. in the background? I was considering procedurally generating those.
Okay, I fixed the ships and AI to use somewhat saner keybindings :)
Uh, I'm a big fan of procedurally generated stuff!
You might come up with a bunch of vectorial stars placed randomly around the background, according to some parameters.
For example, you might keep a list of available stars (meaning their images) together with their probability to come up. Then you generate a list of x and y coordinates and you pick, for each coord pair, a star to place there, chosen randomly according to their probability. The coords are chosen depending on a density parameter - you might of course add more variation and parameters to this.
And you would have to generate new stars while the player explores the round area, to simulate the endless space...
As for the different sized blocks, what I would do is having width and height specified for different blocks. For example, the standard block would be sized 2x2, the small one 1x1, etc. The ship definition could then be a list of blocks associated with their relative coords...
Still I don't know how you could implement this in Python - for I don't know that language - and I guess it would be a big difference from the current engine, so you might come up with some sort of compromise easier to implement... or you might even leave things as they are, maybe enlarging the amount of available blocks.
Smoother and smaller...
(I haven't tested this yet in-game for I'm not working from home)
nihilace.png 23.4 Kb [10 download(s)]
Updated: added some light effects to reactor and shield, as well as some wing variations.
NihilAce-mockup.png 73.7 Kb [51 download(s)]
I added these in to the master branch and they look great!
Uploaded the artwork, together with some little changes.
http://opengameart.org/content/spaceship-construction-blocks
@Buch: I'm quite happy with the style here. Like I said above, I'd be happy to commission a nice extension to this set. Feel free to contact me through PM or email at your convenience.
This may sound silly, but I've obviously had this set on my mind lately... I had a dream about it last night. ;)
It has been 3 years since captain forever was started. No wonder it is much more polished.