• entries
    383
  • comments
    1075
  • views
    352186

Week of Improvements Ahead

Sign in to follow this  
Trapper Zoid

243 views

I spent yesterday doing a whole bunch of things that weren't working on Brixtar. I needed a bit of a break to do important things, like realise that the Mozilla Thunderbird logo is actually a postal delivery bird and not, as I had originally thought, an envelope in a bad punk rocker wig.

Not a wig

Thanks to everyone who has played Brixtar, and thanks again for all the feedback I've got. Part of the reason I need a new journal entry is as another repository for your feedback - multiple pages of comments get weird especially when I post replies due to the unconventional nature of the journal commenting system.

This week my plan is to fix up Brixtar and to improve the underlying game library in preparation for the MAGIC game contest (in only four days time!). Since I'm experimenting with the whole "game in a week" policy it would be a loss if I weren't to join in with a game of my own. Thankfully there's a big overlap between Brixtar fixes and general library improvements.

Here's a list of what I'd like to get done, and a rough guide of the order I need to do it in:

Mac OS X Brixtar Port

I still need to port Brixtar to Mac OS X. I've been porting code regularly between platforms, so I know nearly everything works already. The only code I need to sort out is the Carbon specific functions for specifying where the writable game directory is kept; I'm using Ravuya's PropaneFS code as a basis for this as my Carbon knowledge is basically nil, so I assume it'll work well. I have yet to test it however.

I also need to figure out how to get PhysicsFS to read files within a Mac OS X application file. It's good karma to bundle everything up into a single package for Mac OS X, but unfortunately PhysicsFS seems to by default not read inside the application file. I may need to add in some extra platform specific code to fix this.

Mouse/Joystick Support

A common request is for mouse support for Brixtar, and I agree that it would be a better method for paddle control. I've got stubs in the input module just waiting for me to add in mouse and joystick control. I haven't played around with SDL's mouse and joystick support, but I'm assuming it'll be pretty easy to get running.

Annoying multiball bug in Vista

The report of a hang-up with multiball in Vista troubles me, as I suspect it might be a flaw with the signal code within my architecture. Every ball has its own set of signal connections which are used for timer updates; it needs to record which signals it has connected to so it can disconnect when it is destroyed. However this requires some moderately complex memory management under the hood to store the lists of signals and slots, and I suspect this might be the cause of the hang-up. I've been plagued with memory leaks in this code and I suspect I haven't caught them all.

This might be a lot harder to fix, given that I don't have a copy of Vista to do the tests. I may have to kindly request help from Vista owners to try out different debug version and send me the log files, making this a slow problem to solve. But it'll have to be done if I want to ensure that my game library will work on Vista

Paddle collision and other small gameplay fixes

There's an issue with the ball seeming like it should collide with the paddle but it doesn't. This needs fixing. There's also small problems with timing and powerups that may need fixing too.

Sound effects

I might leave the music for Brixtar, but it does need sound effects. I'll put in some basic beeps for the game, and tie a function key to sound on and off.

Graphics internals overhall

No-one reported this as a bug, but I know the internals of my engine so I know it's there. There's a nasty problem with the creation of sprites in my current graphics architecture; a sprite has what I suspect to be an O(N2) algorithm time for changing the depth. This is due to a naive sorting algorithm being run to position the sprites in the right order in the internal list. At start-up, this translates to O(N3), which is nasty; it's only not a bad problem in Brixtar because there isn't a large number of sprites, but you can see it slowing down the game for a split second if you spawn lots of balls at once.

I'll need to fix this, and at the same time I'd like to try storing the sprites in a vertex buffer object to see if that gives me any rendering speed up. It mightn't have much effect in Brixtar as there's only one texture used, but it may make a difference in more complicated games.

Menu System

Brixtar would be better with a menu. I've got a good menu in the partially completed code for Ice Slider, but the code is very messy and specific to that app. I'd like to make a general module for menus so I can reuse it in all my games, or at least the arcade like ones that I'll be making for the next few months.

Animation System

Finally, if I have the time (and I suspect I won't) I'd like to start working on code to make animated character sprites easy to implement. I've got a very specific style of character that I'd like to use in my games based on a kind of paper doll system; 2D sprites made up of individual components. I've done some simple tests on paper and Inkscape and in the very basic case I think they'd work very well:


Concept art from a yet unnamed Castlevania-style platformer


This is some early experimental concept art for a game idea I had late last year; the characters are in a style that I think would work very well in a lots of my game ideas. Eventually I'd like to use them in a story-based platformer game I've got floating around in my head, but I suspect the style will work in nearly everything I'd like to do.
Sign in to follow this  


13 Comments


Recommended Comments

Just wanted to say that I enjoyed Brixtar and am looking forward to the MAGIC competition.

SDL_Joystick is pretty easy to use, and I can provide some code that I've been using in my framework, if you need it. The hard part with SDL_Joystick is writing the input system in a generic enough way so that many types of gamepads can be used.

I like the concept art for the castlevania type game. Are you thinking of doing something like "Symphony of the Night" or something like the earlier games?

Share this comment


Link to comment
Quote:
Original post by Stompy9999
Just wanted to say that I enjoyed Brixtar and am looking forward to the MAGIC competition.

Me too. I think it'll be great. There a large amount of people wanting to join in so the vibe will be excellent. It's down to me to select a good theme though, otherwise everyone will be after my head for spoiling the fun. Unfortunately there's a random element involved (so it's partly a challenge for me as well!) so I have to pick a lot of good themes to seed the pool.

Quote:
SDL_Joystick is pretty easy to use, and I can provide some code that I've been using in my framework, if you need it. The hard part with SDL_Joystick is writing the input system in a generic enough way so that many types of gamepads can be used.

I'm fairly sure it should be easy. I've got a copy of "Focus on SDL" which acts like a reference manual, and the docs are bookmarked in my browser. Combined with that it's a snap to code anything. The only challenge I've had so far is methods to use PhysicsFS with SDL_mixer, since you can't use the default file loading methods, but that wasn't too hard to figure out once you dig deep into the internals of SDL.

Quote:
I like the concept art for the castlevania type game. Are you thinking of doing something like "Symphony of the Night" or something like the earlier games?

I've only played Super Castlevania (IV, I think? Can't remember the number), not "Symphony of the Night" due to my general lack of Playstations (until recently, when I found a PS1 in the trash [grin]. I've still got to get that baby working). But it's in somewhere between a Metroidvania game and a regular platformer; fairly strong characterisation for a platformer and with dialogue. To be honest I haven't got much beyond the concept stage since there's so much tech I need to develop it would be a bit foolish to go too far right now.

I suppose it would be like an RPG platformer cross. Mabye a bit like the latest Paper Mario game, except I haven't played that either. Nintendo, release that game in a PAL version already! My Wii needs new games, and continental Europeans are generally a smart bunch who know enough English to not require the translation.


Share this comment


Link to comment
Love the cartoon vector art style. Nice and clear. Perfect for Flash. Lemme know if you're available for some light contract art-work.

Share this comment


Link to comment
Quote:
Me too. I think it'll be great. There a large amount of people wanting to join in so the vibe will be excellent. It's down to me to select a good theme though, otherwise everyone will be after my head for spoiling the fun. Unfortunately there's a random element involved (so it's partly a challenge for me as well!) so I have to pick a lot of good themes to seed the pool.


I'm ready to get started when the theme is announced. I'll be using C# and XNA for my entry. Which reminds me, I'm planning on using XNA and I don't know how to do transparent sprites with it yet, so I have some work to do[grin]

I don't know if you have a Xbox 360, but if you do, you can download Symphony of the Night for the Live arcade. It is, in my opinion, the best game that came out for the PS1. It replaces the level structure of the previous games with a complete interconnected castle. Basically it's like Metroid except instead of guns and aliens there's swords and demons.

Share this comment


Link to comment
Quote:
Original post by johnhattan
Love the cartoon vector art style. Nice and clear. Perfect for Flash. Lemme know if you're available for some light contract art-work.

To be honest I'm not confident enough in my artistic abilities to accept work yet. I entered game development through the door marked "software engineer"; art is just a hobby I picked up to compliment that. It wasn't until I start sketching cartoon figures a lot that I realised I really enjoy it.

Maybe after a couple more months of my own games I'll have enough of a portfolio to feel like I'm an artist.

Share this comment


Link to comment
Quote:
Original post by Stompy9999
I don't know if you have a Xbox 360, but if you do, you can download Symphony of the Night for the Live arcade. It is, in my opinion, the best game that came out for the PS1. It replaces the level structure of the previous games with a complete interconnected castle. Basically it's like Metroid except instead of guns and aliens there's swords and demons.

Unfortunately the only consoles I have are the Wii and the old PS1 I rescued from the trash heap; I'm considering getting an Xbox 360 when it gets cheap but even then I don't think I could hook it up to the internet here. I really should see if I can find some classic PS1 games at a second hand store though; there's so many classics I've missed.

What's really embarrasing is that I haven't played that much Metroid either; just the Metroid Primes on the Gamecube; but I still know what "Metroidvania" means as a game genre. I'm such a game nerd I've even got a book on how to design an MMO world despite having no desire to build one of my own; I was just interested in the theory.

Share this comment


Link to comment
I haven't played any of the 2D metroids either, and I've barely played any of Metroid Prime. I hear Metroid: Zero Mission is pretty good, but I haven't gotten around to playing it.

The PS1 version of Symphony of the Night is somewhat of a collectors item now, with the lowest price on Amazon being $51, despite the fact that the game came out in '97. Still, if you get the old PS1 working, I'd really recommend giving the game a try, it's one of the best.

Share this comment


Link to comment
Quote:
Original post by Stompy9999
The PS1 version of Symphony of the Night is somewhat of a collectors item now, with the lowest price on Amazon being $51, despite the fact that the game came out in '97. Still, if you get the old PS1 working, I'd really recommend giving the game a try, it's one of the best.

That's what I suspected, which is annoying. Still, there's a whole bunch of PS1 games I should try, especially the Japanese RPGs that everyone expects everyone to have played like Final Fantasy VII, (although you just need to have been connected to a game related forum for any time in the last decade to know all you need to know about about that game).

I've just generally had a lack of time to try out the PS1. Plus the poor thing was covered in Manchester United stickers by the previous owner. Why someone would inflict such cruely on a defenceless console is beyond me.

Share this comment


Link to comment
Quote:
Original post by Stompy9999
The PS1 version of Symphony of the Night is somewhat of a collectors item now, with the lowest price on Amazon being $51, despite the fact that the game came out in '97. Still, if you get the old PS1 working, I'd really recommend giving the game a try, it's one of the best.

That's what I suspected, which is annoying. Still, there's a whole bunch of PS1 games I should try, especially the Japanese RPGs that everyone expects everyone to have played like Final Fantasy VII, (although you just need to have been connected to a game related forum for any time in the last decade to know all you need to know about about that game).

I've just generally had a lack of time to try out the PS1. Plus the poor thing was covered in Manchester United stickers by the previous owner. Why someone would inflict such cruelty on a defenceless console is beyond me.

Share this comment


Link to comment
Quote:
I've just generally had a lack of time to try out the PS1. Plus the poor thing was covered in Manchester United stickers by the previous owner. Why someone would inflict such cruelty on a defenceless console is beyond me.


Just think of it this way, you saved it from an abusive home[grin]

Final Fantasy VII and VIII are great to get. Also, don't forget the original Metal Gear Solid. There is, ofcourse, a remake, but the cutscenes in that one were a little to John Woo for my taste.

Share this comment


Link to comment
Hey, I'm sure you've probably already considered it, but just thought I'd check: is there some reason for why you're not using z-buffer for depth sorting? Actually, I don't even know if you're using 3D hardware. [grin]

Share this comment


Link to comment
Quote:
Original post by LachlanL
Hey, I'm sure you've probably already considered it, but just thought I'd check: is there some reason for why you're not using z-buffer for depth sorting? Actually, I don't even know if you're using 3D hardware. [grin]

Good question. It would be great if the hardware depth buffer would work, but it plays merry havoc with alpha blending. Unfortunately for alpha blending of sprites to work properly they need to be drawn in the right order. So 2D engines that want to support partially transparent sprites are stuck with dealing with rendering sprites in the correct order.

Thankfully with hardware acceleration being as it is today I don't think it'll end up that much of a performance issue; a 2D game isn't going to have that many polygons on screen at once. It's just at the moment my graphics engine is very much a prototype; there's no real concessions to speed at all. I knew at the time I coded it the depth code list was a flawed algorithm, but it had the benefit of being only a couple of lines of code [grin].

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now