Page 9 of 11

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sat May 22, 2010 5:11 am
by zeid
Behold my ability to triple post without any sense of guilt or shame. Bwahaha i am truly a monster!

Here are a couple of teaser screenshots.
Image Image

I'm planning on doing a youtube video, what sort of things would people like to see? Obviously some gameplay segments. What else?

Also if people are wondering why I'm not talking about the project much lately, it's because I have been working on it and other uni/work things a lot. After this month is through however I should be up to Beta testing the game on iBetaTest.com. Then it's just a matter of polish and making lots of levels and perhaps some challenge modes. I may hook this bad boy up to my site so to record the highscores of players.

I may improve the art with regard to a few things later on as I'm not completely happy with the way everything looks. We will see, I might be too lazy.

Does anyone have any suggestions on how to get some attention for this game? From talking with other iPhone developers it seems poor marketing is where most games fall short and therefore don't get the attention they need/deserve.

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sat May 22, 2010 7:09 am
by pritam
zeid wrote:I'm planning on doing a youtube video, what sort of things would people like to see? Obviously some gameplay segments. What else?
How about showing us your dev studio, like recording the screen where you compile your project and perhaps also recording of your computer setup, I think that would be interesting to see.

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sat May 22, 2010 5:46 pm
by Bakkon
I was wondering why I had never seen this thread before, but then realized it was once your artwork dump. You have some amazing sprite skills.

Are you using the iPhone SDK or something like Unity?

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sat May 22, 2010 7:34 pm
by zeid
It uses the iPhone SDK. The game is almost entirely written in C++ code using openGL ES for rendering. There are 2 or so classes that are written in Objective-C that I have wrapped around. The engine is all from scratch, including; rendering, physics, image loading, animation, entity management, state management, etc. The core of the game is all but done. All that is left is some more polish, improving the menu systems adding some more level and perhaps some more power-ups. As soon as I get some time spare (Probably in a week or 2) I will begin beta testing publicly (I have technically been testing since it started by harassing my friends and family to play).

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sat May 22, 2010 11:00 pm
by ibly31
I always wondered how you beta test for iPhone games... because the only way I could think of would be to give the entire project, and let the person change the com.samzeid.imadethisup to com.ibly31.imadethisuptoo and compile it...

Also, would you ever post this code up? Or even portions of it? Because I would give up an arm to get a glimpse of the rendering code you use! It would help me learn how to use OGL on the iPhone a lot easier

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sun May 23, 2010 4:19 pm
by zeid
Well in all honesty the code has gotten to the stage where it's about as pretty as dog vomit. I will release the source (or parts of it) regardless, though I'm sure I will feel great shame having everyone look at it :P and I doubt most of it will be of much use for learning given how untidy it is.

I will not go out of my way too clean up the code as most of the ugly stuff is abstracted away from and I can't afford to sink time into it.

Seeing as you are interested here is the C++ section of my rendering code:

Code: Select all

/*
 *  Renderer.h
 *  core
 *
 *  Created by Samuel Zeid on 16/02/10.
 *  Copyright 2010 *. All rights reserved.
 *
 */

#ifndef _RENDERER_H
#define _RENDERER_H

#import <QuartzCore/QuartzCore.h>

#include <OpenGLES/EAGL.h>
#include <OpenGLES/ES1/gl.h>
#include <OpenGLES/ES1/glext.h>

#include "Singleton.h"

#include "TextureManager.h"
#include "AnimationManager.h"
#include "StateManager.h"
#include "SpriteManager.h"
#include "Entity.h"

#include <map.h>
#include <list.h>

class Renderer : public Singleton<Renderer>
{
	friend class Singleton<Renderer>;
public:
	void initialise(EAGLContext* context, GLuint renderBuffer, GLuint frameBuffer)
	{
		textureManager=TextureManager::instance();
		stateManager=StateManager::instance();
		animationManager=AnimationManager::instance();
		spriteManager=SpriteManager::instance();
		m_context=context;
		m_renderBuffer=renderBuffer;
		m_frameBuffer=frameBuffer;
		
		glEnable(GL_TEXTURE_2D);
		glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
		glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
		glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
		glEnable(GL_BLEND);
		glDisable(GL_LIGHTING);
		glDisable(GL_DEPTH_TEST);
		
		vertices[0]=-0.5f;
		vertices[1]=0.5f;
		
		vertices[2]=0.5f;
		vertices[3]=0.5f;
		
		vertices[4]=-0.5f;
		vertices[5]=-0.5f;
		
		vertices[6]=0.5f;
		vertices[7]=-0.5f;
		
		texCoords[0]=0.0f;
		texCoords[1]=0.0f;
		
		texCoords[2]=1.0f;
		texCoords[3]=0.0f;
		
		texCoords[4]=0.0f;
		texCoords[5]=1.0f;
		
		texCoords[6]=1.0f;
		texCoords[7]=1.0f;

		[EAGLContext setCurrentContext:m_context];
		glBindBuffer(GL_FRAMEBUFFER_OES, m_frameBuffer);
		glViewport(0,0,320,480);
		
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		glOrthof(0.0f, 320.0f, 0.0f, 480.0f, 0.0f, 1.0f);
		glMatrixMode(GL_MODELVIEW);
		
		glClearColor(0.5f, 0.55f, 0.65f, 1.0f);
		
		glEnableClientState(GL_VERTEX_ARRAY);
		glEnableClientState(GL_TEXTURE_COORD_ARRAY);
		
		//Make them pixels nice and crisp...
		//glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
		//glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);

	}
	
	void render()
	{
		glClear(GL_COLOR_BUFFER_BIT);
		glColor4f(0.0f,0.0f,0.0f,1.0f);
	
		renderCycle();
		glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_renderBuffer);
		[m_context presentRenderbuffer:GL_RENDERBUFFER_OES];
	}
	
private:
	Renderer(){}
	~Renderer()
	{
		textureManager->release();
		NSLog(@"Cleanup");
	}
	void renderCycle()
	{
		glVertexPointer(2, GL_FLOAT, 0, vertices);
		glTexCoordPointer(2, GL_FLOAT, 0, texCoords);

		State* drawState;
		GLuint previousTexture;
		
		for(int i=0;i<stateManager->size();i++)
		{
			drawState=stateManager->states[i]->state;
			
			if(drawState->visible)
			{
				glPushMatrix();
				glTranslatef(drawState->camera.x, drawState->camera.y, 0);
				list<Entity*>* layer=drawState->entityManager->getLayer(0);
				int layerCount=drawState->entityManager->layerCount()+1;
				for(int i=0; i<layerCount;i++)
				{
					for(list<Entity*>::iterator iter=layer->begin();iter!=layer->end();++iter)
					{
						Entity* e=*iter;
						if(e->y>(-drawState->camera.y)-(e->sizeY/2)&&e->y<(-drawState->camera.y)+480+(e->sizeY/2))
						{
							e->onScreen=true;
							Animation *a=animationManager->getAnimation(e->currentAnimation);
							
							if(!e->textureDetail())
							{
								glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
								glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
							}
							else
							{
								glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
								glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
							}
							
							if(a->spriteSheet!=previousTexture)
								textureManager->bindTexture(previousTexture=a->spriteSheet);
						
							float cellDiff=(a->getDiff(e->currentSubframe))*spriteManager->getCellDiff(a->spriteSheet);
						
							texCoords[4]=texCoords[0]=cellDiff;
							texCoords[6]=texCoords[2]=cellDiff+spriteManager->getCellDiff(a->spriteSheet);
							
							glPushMatrix();
							glColor4f(drawState->screenRed*e->red, drawState->screenGreen*e->green, drawState->screenBlue*e->blue, 1.0f);
							glTranslatef(e->x, e->y, 0);
							glScalef(e->sizeX, e->sizeY, 0);
							glRotatef(e->rotation, 0, 0, 1);
						
							glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
						
							glPopMatrix();
						}
						else
						{
							e->onScreen=false;
						}

					}
					layer=drawState->entityManager->getLayer(i);//stateManager->getLayer(i);
				}
				glPopMatrix();
			}
		}
	}
	
	EAGLContext *m_context;
	GLuint m_renderBuffer, m_frameBuffer;
	float vertices[8],texCoords[8];
	list<Entity*>* layer;
	TextureManager *textureManager;
	StateManager *stateManager;
	AnimationManager *animationManager;
	SpriteManager* spriteManager;
};

#endif
I never bothered implementing VBO's for it (which is recommended) and there are a number of other things I would change if I were to spend more time on it:
* Obviously clean up the code a bit.
* Use dynamic VBO's and adjust their data using my own matrix class rather then the inbuilt openGL functions for translation, rotation and scaling.
* Use the batch rendering classes I had originally intended to use (dividing the objects to be drawn into groups based on their texture).
Instead of that I ended up using a cheap trick to improve rendering which took 3 minutes to implement. Whenever a texture is bound I store it's id value then whenever an object is to be drawn I check if it has the same texture value, if it does I don't bind the texture, otherwise I do. This mightn't seem like much of a boost, but because I sort objects based on the layer they are in when drawing (they get drawn from back to front on top of one another) most objects of the same type are in the same layer, and hence all are drawn one after another.

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sun May 23, 2010 10:30 pm
by avansc
Gotta say man, looks uber polished, nice work. hope it sells like chocolate dipped bacon. (if you were planning on putting it on the istore)

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sun May 23, 2010 10:33 pm
by eatcomics
um... avan where can I get some of this chocolate dipped bacon? that sounds sooooo good right now...

Re: Zeids Epic Art Post

Posted: Mon May 24, 2010 11:04 am
by Falco Girgis
GroundUpEngine wrote:
zeid wrote:Some nice suggestions so far, thanks.

I decided I liked the grub character so here's some elysian shadow "fan-art" I suppose:
Image
the left is the original the right is my redux of the little guy.
Holy crap niceeee, Kendall would be proud ;)
Oh, man. I don't know how the hell I missed this. I quit following the thread for a few days. XD

I'll have to show Kendall. Very nice!

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Tue May 25, 2010 9:09 am
by zeid
I don't know how the hell I missed this. I quit following the thread for a few days. XD
Well now you know the error of your ways and it won't happen again. Just set this thread to your homepage :P
Gotta say man, looks uber polished, nice work. hope it sells like chocolate dipped bacon. (if you were planning on putting it on the istore)
Thanks I was going for a nice clean and finished experience rather then load and load of features so I'm glad it shows, I do intend to put it up for sale, and we can only hope it sells that well. I got similar feedback this night, which was very affirming as it was from people actually getting to see it in action/playing it rather then just screenshots. (more on that bellow).

My university had a games industry open day this afternoon. We were encouraged to show off our work to people around the area. Unfortunately Perth/WA hasn't any games development industry aside from independent developers (perth actually does have a really good indie scene). So I showed a bunch of my projects I have made including this iPhone game, some people approached me from Immersive Technologies which is a mining simulation company. One of which gave me his e-mail address and suggested I contact him if I'm interested in working for them at the end of this year, after I'm done with my course. Simulation technology mightn't be exactly what I was hoping to get into, but I would think that it would be a good way to go about getting my foot in the door (it will probably pay better then a game's job as well). Also it doesn't require me to relocate from the city I'm living, which could be very difficult having just been a flat broke student. The only real issue for me to consider is whether I should/or how I could go about doing honors if I am going to end up working for them.

Needless to say it was great getting some feedback from some industry people that was so positive.

EDIT:
On another note the people at Immersive, as with the majority of other companies in graphics software use DirectX for all their rendering. So for my side project this semester I will be creating some cross platform stuff hopefully that uses DirectX on windows and openGL on mac. I may also include Linux if I can be bothered installing/partitioning my mac book for it.

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Tue May 25, 2010 10:53 am
by MrDeathNote
zeid wrote:Behold my ability to triple post without any sense of guilt or shame. Bwahaha i am truly a monster!

Here are a couple of teaser screenshots.
Image Image

I'm planning on doing a youtube video, what sort of things would people like to see? Obviously some gameplay segments. What else?

Also if people are wondering why I'm not talking about the project much lately, it's because I have been working on it and other uni/work things a lot. After this month is through however I should be up to Beta testing the game on iBetaTest.com. Then it's just a matter of polish and making lots of levels and perhaps some challenge modes. I may hook this bad boy up to my site so to record the highscores of players.

I may improve the art with regard to a few things later on as I'm not completely happy with the way everything looks. We will see, I might be too lazy.

Does anyone have any suggestions on how to get some attention for this game? From talking with other iPhone developers it seems poor marketing is where most games fall short and therefore don't get the attention they need/deserve.
That looks amazing, seriously, i'm gonna buy it!!

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Tue May 25, 2010 12:46 pm
by avansc
zeid wrote:
I don't know how the hell I missed this. I quit following the thread for a few days. XD
Well now you know the error of your ways and it won't happen again. Just set this thread to your homepage :P
Gotta say man, looks uber polished, nice work. hope it sells like chocolate dipped bacon. (if you were planning on putting it on the istore)
Thanks I was going for a nice clean and finished experience rather then load and load of features so I'm glad it shows, I do intend to put it up for sale, and we can only hope it sells that well. I got similar feedback this night, which was very affirming as it was from people actually getting to see it in action/playing it rather then just screenshots. (more on that bellow).

My university had a games industry open day this afternoon. We were encouraged to show off our work to people around the area. Unfortunately Perth/WA hasn't any games development industry aside from independent developers (perth actually does have a really good indie scene). So I showed a bunch of my projects I have made including this iPhone game, some people approached me from Immersive Technologies which is a mining simulation company. One of which gave me his e-mail address and suggested I contact him if I'm interested in working for them at the end of this year, after I'm done with my course. Simulation technology mightn't be exactly what I was hoping to get into, but I would think that it would be a good way to go about getting my foot in the door (it will probably pay better then a game's job as well). Also it doesn't require me to relocate from the city I'm living, which could be very difficult having just been a flat broke student. The only real issue for me to consider is whether I should/or how I could go about doing honors if I am going to end up working for them.

Needless to say it was great getting some feedback from some industry people that was so positive.

EDIT:
On another note the people at Immersive, as with the majority of other companies in graphics software use DirectX for all their rendering. So for my side project this semester I will be creating some cross platform stuff hopefully that uses DirectX on windows and openGL on mac. I may also include Linux if I can be bothered installing/partitioning my mac book for it.

excelent, i have a buddy that works for 4DT, they do mining/medical and that sorta simulations too. he says he loves it.

err edit: i mean 5DT, http://www.5dt.com/ they are based in south africa, but i think they have offices in US.

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Sun May 30, 2010 5:04 pm
by zeid
That looks amazing, seriously, i'm gonna buy it!!
You are awesome then :D

So I was digging around my portfolio/scattered about projects. Trying to put something a little more presentable together and I stumbled accross some things I thought people might like to get a hold of. Namely, the LockedIn models I made ages ago. I remember someone commenting if one of the models was available for use. I did send them to someone who was going to put them into an open source model bundle but don't know if they ever did. As such you can get a hold of the complete model files with textures from here.
Image

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Fri Jun 25, 2010 2:52 pm
by zeid
So a long time ago I put together a space game. It was a one-on-one, two player, overhead shooter. You could choose from a number of different space ships each with two unique abilities and a standard attack. The game was actually pretty good if I do say so myself. I had lots of fun playing it with my brothers and every now and then I get the feeling I should remake it. Each space ship encouraged different strategies due to the unique abilities and the gameplay was surprisingly deep and well balanced. Recently I have been procrastinating a lot having just finished uni for the semester, so to try and get myself motivated again I decided to do some art and redesign some of the ships from said game.

[Remake]
Image
-Spider-
A favourite amongst wealthy slavers, ship-choppers and pirates, the aptly named Spider design has proven as resilient as it is notorious. Originally created during the first faction war this craft's individual components are considered cheap and dated, however its crude nature is why this ship is so commonplace. The craft is able to overload it's engines in such a way that it creates what has been dubbed a 'disruption web'; This web is used to disable nearby vessels allowing ample time for criminals to board or flee from them. Furthermore the inconspicous nature of the individual parts makes the creation of such ships both legal and cost effective. Though outlawed since the unification wars it is not uncommon for Spider fighter's to still use nightstar-mines or similar weaponary. Such devices are often coupled with the Spider fighter's already formidable trapping skills to create insidious ambushes.

[Remake]
Image
-Sword-
Using what was originally mining technology, the Sword fighter is able to generate a propulsion field that makes it all but invulnerable. Furthermore the energy is easily channeled allowing for faster speeds whilst the ship is fully engrossed and protected by said energy. The only draw back is that the energy produced can only be dispelled for short bursts or it will become exponentially volatile and destroy the very craft it protects. Due to the swift nature of the spaceship it has become common practice for a less dangerous burst of the propulsion energy to be output to cleave enemies in two upon ramming them, with little, to no ill effects on the Sword fighter itself. Whilst this lesser energy can't prevent against many oncoming attacks it has proven to serve as a most powerful form of offense and an excellent tool for traversing asteroid fields.

[Remake]
Image
-Foilwing-
The moon of Romulus IV gave rise to the first signs of intelligent life other then our own. Discovered upon it was a long since abandoned and non-functional alien artifact. Though no sign of the race of whom constructed it has ever been seen since, the technology itself has been painfully and extensively analyzed. It proved to be a form of interstellar engine intriguingly different from those of our own. The engines functionality has since been replocated and retrofitted to a number of different craft however it requires the occlusion of many materials that would otherwise be standard on most spaceships. The advantage of this engine is the removal of limitations on short range travel; Whilst most interstellar drives only allow for long distance travel, this engine allows for what to the lamen appears as teleportation. What actually takes place is the literal movement of the spacecraft through other matter in a near instantaneous manner. Due to the somewhat strict nature the engine has over transportable matter, unique weaponary has been devised to use alongside such space-fairing vehicles.

[Remake]
Image
-Scourge-
During the faction wars all manner of weaponary was explored to offer any edge possible. The most malevolent of which manifested itself in the bio-frigates. Small warships that incubated living bio-weapons to be released upon enemy populations, although not uncommon these ships were attrocities to behold and supposedly "uncondoned" by all sides. Such vessels crews would on occasion go mad from the numerous antitoxins and venoms they where constantly being exposed to. When the second faction war ended the majority of those aboard bio-frigates were convicted of war crimes; because of this numerous crafts and their flight staff went missing, dissapearing into the void of space. However in time the shocking result of such actions would reveal itself, some of the ships returned encrusted in living weaponary, now manned by psychotics or spitefilled war veterans, horrifying ghost ships using arcane and corrupt weaponry. The ships have since become known as Scourge class.

[NEW]
Image
-Serpens-
The Serpens class war cruiser was first intruduced during the unification war. It has since become the staple policing ship of the unitarians. Boasting an insurmountable amount of fire power, the broadside of a Serpens class ship is all but unapproachable. It also serves as a carrier to smaller ship allowing it to serve as a living station for unitarian forces as well as a war platform. Finally it is capable of forming a gravity well to reduce the movement of passing vessels, a technology which has been invaluable for it's new roles of inspecting and detaining potential criminal vessels.

Re: Zeid's Epic iPhone Game Post: Update Pending

Posted: Fri Jun 25, 2010 3:05 pm
by eatcomics
Dude those are all awesome, but I think the foilwing is my favorite :D