Monday, July 18, 2011

Texture Mapped Fonts

They work!

I use them in my dialogue UI element so that I can fulfill the humor category in my marking scheme. 


Wee more screens

Particle Systems, Level Objects, Textures

Finished off my particle system - I created an abstract particle system and I make concrete versions for the different types of fuzzy phenomenon. The one I show here is a simple one to simulate an explosion. Its pretty simple but it looks alright I think. It displays particles as textured quads with a color.

Another thing I am adding in now is a textured fonts renderer. It's simple, ( KISS ) and suits my purpose, but there is a bit of work that remains on it. I need to make a better texture for the textured fonts ( they overlap, but the texture should be transparent in some areas ).

Also finally got around to working more on the level file I created before. I edited it a bit and added some building entities with varying textures. If I have more time later, I would like to add some more buildings and enemy ship models. Deadline for this project is in 2 days - have to keep working.

More screenshots!


Saturday, July 16, 2011

Collisions, Projectiles and Enemies

Pretty happy right now. Made a lot of progress coming back to the graphics assignment after being stuck on other school work for almost a week.

I have static and dynamic collision finished. I'm using axis aligned bounding boxes and it seems to work pretty good for my needs. Also, I just finished my enemy ship class and added more grammar to my level file format to accept additions of enemy ship spawns. The AI isn't spectacular but it does try to find your ships position and shoot at you.

Changed the camera too, it has a slightly better feel to it now when you move your star fighter. Also the ship banks when you fly it around. Overall cooler feel.

Also shamelessly created a cross-hair that is basically taken directly out of Star Fox 64 - we should always incorporate ideas from good design right?

Also the top left shows a simple HP bar. Next task is to make a "good" HUD.

Progress:

Still have to work on the textures. Blotches of colours won't do me any good when it comes time for the TA to give me subjective marks.

Thursday, July 7, 2011

Height Maps and Level Objects

So I finished off the height map generated terrain yesterday and tweaked it so that I am scrolling it as the game proceeds. I am only drawing a part of the entire terrain at any time by limiting the rows of the array I draw. I have also finished implementing a file parser for my level data, which is a simple text file that I use to dynamically control what objects are in a level and where.

Here's an early screenshot of what I have :


I made a simple arch shape and a long stick shape as obstacles to be tested with. The level data allows me to easily change what objects exist in a level very quickly. Here's another screenshot of a level where I added many objects!


That only took a few seconds - this will help me a lot when I'm actually making the levels!

The upcoming tasks I will tackle is storing the vertex data in vertex arrays and also adding in shadows using either the shadow volume projection technique or the stencil buffer shadow technique. I'm still learning so I'll know more once I start working on it.

Sunday, July 3, 2011

CS488 Final Project - START!

I finished up my final project proposal last week and had started to work on the project. I decided to make an on-rails shooter akin to Star Fox. It was is one of my favourite Nintendo series and I wanted to try and make something similar.

This will be my first OpenGL game, I'll be using and learning SDL for this, as my friends who also love making games have said its a great library.

For the scope of the project for CS488, I plan on only making one level - as it should be sufficient to meet the technical objectives I have set for this project. However, I will continue to work on this even after I'm done the course.

I just finished up the setting up of an OpenGL context using SDL and also created a mesh loader class to load Wavefront .obj files. I can render meshes now, and I also finished off my texture loader/manager class. The texture loader gave me a lot of problems, one hiccup I encountered was that I made calls to glVertex3f and glTexcoord3f in the wrong order. This made it so the texture was being displayed incorrectly because the glTexcoord was being associated with the incorrect vertex. However, I found out after looking at the code and playing around with some simpler meshes and got it to work.

Here's my very early start on the project:


The texture is very basic right now, so I'll have to change it later. The next step I'm going to take is probably editing my ship class to handle input so that I can have it move around the screen in a "realistic" way; and by realistic I mean have it maneuver around like it was an Arwing!

Wednesday, June 30, 2010

On Hold

For now the project is on hold, I need a dedicated artist for this project; the scope is too big! For now I am working on a new game with the working title of Angry Knight. This is a much more managable project and should be done in about 2-3 months time.

Wednesday, October 14, 2009

User Interface: Weaponsmaster

Here are some ideas for user interface. I think the user interface should be clear enough for the eyes to see but compact enough so it doesnt block much of the map. Afterall, the screen is limited. Today's agenda will focus on the HP bar concept, life, scoreboard, damage values, fevor bar, D-Pad, and buttons.

HP Bar
The HP bar should be located on the top left or right of the screen because the bottom is reserved for D-Pad, jump, attack, and weapon swapping. Putting the hp bar on the sides should be avoided because not only will it block the map a bit but it will be unpleasant to the eye. The small space is very crucial for a this game style and screen.

For damage calculations, we will have two types of hp bar in a single bar - Actual and Regenable.

The current idea is to split the damage the weapon master (WM) receives into actual and regenable damage. Actual damage is the damage the WM receives and it can be only healed via potions, rations, etc dropped by monsters. Regenable damage is damage that can be regenerated via killing/slashing the monster. Something like using their blood to bathe your wound kinda thing. However, if the actual part is reduced to 0, then the WM dies regardless of his regenable hp. The damage formula would probably look something like (damage x .75 = actual) and (damage x 25 regen).

  • An idea would be to designate a weapon that has life steal aura and every level the WM completes, the weapon that has the aura will be different - this will probably be considered the "hard" level. An easy game level would have the aura for all weapon; normal level would have aura for all weapons with lesser % hp regen;hard level would have aura for random weapon with even lesser %hp regen.

Scoreboard
Any game contains a scoreboard and this game is no different. The scoreboard will be located at the top right/left corner of the screen. Basically, the score starts out with eight zeros (ie. 00000000) and it will increase throughout the gameplay - stardard arcade scoreboard interface. We are still discussing whether we should grant extra life to the user when certain amount of score is met or let the user clear certain number of levels to gain an extra life.

Life
The WM will start off with 4 lives for easy mode, 3 for normal, and 2 for hard. This will change if needed during alpha testing. As discussed earlier, we might let the user receive extra life after reaching a certain amount of scores or after a certain amount of levels are cleared or one of these two and random life drop from monsters. The life will be denoted by an icon with a number beside it as this seems to be the most space efficient.

Damage Values
We like big numbers. So we're going to aim for big numbers. The damage cap will probably be 9999 because if the damage is too large, it will hog too much space on the screen. When the WM hits a monster, a damage number will pop nearly the top-center-right of the sprite and will fade away after a second or so. There will be critical hits too, so they will appear slightly different than normal damage.

Fevor Bar
It is kind of hard to display a fevor bar because of space availability. We can put a "combo #" text on the upper-centered-right screen to indicate this. When fevor is increasing, the combo text will gradually change color until its "hot" .. maybe red/yellow or something.

D-Pad
The D-Pad will only have left and right arrows as there will be a button for jumping. Crouching is unnecessary at the moment. Maybe we will implement this feature for later releases to introduce new levels. It will be located near bottom-left of the screen.

Buttons
I think we should have only the jump button and 4-weapon-swap button and no attack button. Its already difficult to touch on the iPhone with so many things on the UI. We should allow the user to tap anywhere on the screen to attack. It allows users to act faster when switching weapon for combos since they are not restricted to a certain area on the screen.