Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Okay, okay, it was all my fault after all...!

Sign in to follow this  


The physics is now fully integrated into my engine and works superbly. The slowdown bug I was experiencing was strangely nothing to do with the physics engine. I had a few strange slowdowns when the shuffler reached the edge of the arena and I had guessed that the cause was newton not being great at handling the case where the shuffler traps the puck agains the wall, I assumed it was hitting some kind of recursion limit. The actual cause of the problem was that the application was windowed. As soon as the cursor left the application window and hit an area of the taskbar that displays a tooltip, the aplpication slows to a crawl. I assume this is an issue with the application not having a high enough processing priority, so this will be something to look into shortly. For the time being, running in full screen mode is enough to recitfy the problem and guarantee a consistent 80-100fps.

With the physics out of the way, I'm now looking into completing the game mechanics, with a view to complete the 'fluff' elements once the core gameplay is complete, this will give me a much better idea of a direction for the project giving me time to make core changes without having to drastically rehash the project.

So my next aim is to facilitate the smooth display of bitmapped text so that I can show when a goal has been scored, what the score is, button names and so on. Now this is not a core gameplay mechanic in itself, but without the ability to display the score, there wouldn't be much of a game. Now I already have a working bitmap font class in place, but I want to be able to have the text perform different movement effects such as the text flying onto the screen character by character, or spiralling onto the screen from a distance, zooming in over the course of the animation while rotating. To allow this, I have started work on a texteffect class which is maintained externally to the bitmapfont class. The texteffect class can be passed into the print function to slap the effect onto any given text. So now, if I want to print the score, I make a call to Font->Print() each frame specifying zero duration so the text is overwritten every frame with the updated text. I supply an externally maintained texteffect class which keeps track of what point the animation is up to. For one off pieces of text like a fly-in "Goooooal!!!" piece of text, I can make a one-off call to print and supply it with a set duration and relevant text effect.

The print command stores the texteffect class in the relevant textbox and obtains a matrix to apply translation/rotation/scaling either to the whole string, or to an individual character. The text effect class maintains it's own timer and automatically interpolates rotation/scaling/translation using a standard LERP.

Once I have completed the text effects, I think the next natural step will be to implement the final scoring scheme. Once the scoring scheme is complete I will implement powerups and then I will look at implementing the game flow (start game sequence, game, end game sequence, high score table, movement between levels, etc). Then I will update my rudimentary AI scheme to work in a more professional manner. This should bring me up to a level where I have a complete game that just needs polish, like rollover effects for the UI, a complete set of game options, ironing out bugs, improving the speed and adding fancy graphics effects like shadows, lighting, motion blur and reflection. I may also need to look into allowing the game to run on older graphics cards without pixel shaders. I know there is still a lot of work ahead of me, but I feel like I'm finally getting each component of my game up to a moe professional standard, the bulk of my work has been having to rehash older ideas for components because, although they work well in isolation, they did not fit into the grand design as fluidly as they should.

If I'm lucky, this professional appoach will allow me to reuse or adapt a lot of my existing code in future projects (namely Orbs: Battle Arena).

Speaking of which, I've had a new idea for the Orb game. In order to set it apart from my Airhockey game in terms of complexity, I'm going to throw in elements of another game... Bomberman. A bomberman game using rolling robotic orbs armed with a variety of powerups where players can be destroyed by bombs or forced out of an arena by being either knocked out or blown out, but players respawn to continue play once destroyed albeit at a score penalty. Adding the element of Arena knock-outs should add an extra strategic element to the bomberman genre without making the game too complex. I like the idea because like a move in chess, the move itself is simple, but combined with the ability to drop bombs, the strategic options multiply. I wonder if I can think up any further simple additions that would work in the same vein.

Something for me to think on anyhoo!


Sign in to follow this  


Recommended Comments

I'm not sure what the root cause of the tooltip slowness, but best I can figure it has to do with there being any per-pixel alpha blended stuff on-screen (like the drop shadow from the tooltip) combined with having FSAA turned on in the app.

If you run it windowed without FSAA, it should run just fine.

Share this comment

Link to comment
That may actualy be the case, I think IIRC I did have 2x FSAA enabled. I'll give that a try tonight! Thanks for that :)


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
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!