Getting together for developing a Game?


Keeping people interested is a hard fight. You want a reasonably successful community project as an example: PandoraPanic!


But I can tell you it was a LOT of effort keeping it going and I basically had to lower expected ability in order to let people feel they were "good-enough" to participate. Lowering expected ability also meant that I took on fixing all bugs and memory leaks in everyones' submitted mini-games.


So yeah collab can work, but you need to try and get everyone on the same side and really have someone prepared to stand at the front and keep people motivated...
 
Would it be possible to make a programming education out of this, like round up all the work into a lesson on week to week basis or something. I might be able to learn something if I see it grow slowly from the beggining instead of having the complete code in several thousands line of code hitting me in the face like a wall of bricks.


Im onboard for a shooter, but Id also like the idea of a shooter platformer like Hagane, although that dosnt have shooter weapons does it, Hagane was recently featured in a SNES video from Cinnemassacre.


I have a bezier curve formula that works, could be useful for a shooter.
 
Would it be possible to make a programming education out of this
What about a language VM that exposes some basic functions that could be used to program enemies/weapons in-game. Though maybe that's too complicated
 
Penguins do fly, actually (albeit underwater). The movement and mechanics for a penguin flying underwater is exactly the same as birds flying in the air, according to sir David Attenborough in one of his documentaries (Blue Planet?).


Also this - proof that penguins can and do fly.


http://www.youtube.com/watch?v=EU-dt9Ophgg
 
Last edited by a moderator:
To add to what B-Zar said:


Start small, like really small (it's important so I will say it again). Even with many people helping, the amount of work usually is underestimated.


Chose your genre wisely and accordingly, I personally would choose a shoot-em-up over a platformer, since it's easier to make (no physics, easy collision detection, less level design needed, ...).


(and besides every second indie game is a platformer, there are few good shoot-em-ups - although we could also use a good Mario or SMB-like game, SuperTux hardly is a good clone).


Also don't poll anything here, collect a bunch of willing people for a team and develop the game YOU GUYS want to make.


Make sure you have every position cast, though keep the team size reasonable (so there is less politics and discussion involved keeping actual work from being done).


Every member needs to be involved in the project and really needs to enjoy working on it, or they will drop sooner or later (which is the main concern).


There are very talented people in the community, so this can turn out to be an excellent game, but people have real lives, other projects and shifting interests, so this needs to be done swiftly.


Have the discussion here (and allow limited input) or have a private discussion somewhere, but in any case distribute IM contacts so you can kick each others arse from time to time, quickly exchange ideas and discuss in a more efficient manner.


The project leader needs to make a "design document", which includes a detailed description of the game's mechanics, art style, units/enemies, ideas, everything neatly organized, which helps introducing the game to new developers and accurately describing what is needed, what has been done, who is working on what, etc. so attention can be focussed better.


And well, less talking here, someone needs to contact people and get working!


PS: Binky the idea you are describing kinda sounds like http://0x10c.com/ in the sea (also SP), though I can already see it will be quite complex to make, so in my eyes it should not be the first project.
 
Excellent ideas Foxblock! Im so excited I can barely sit still! Who takes the lead? When do we start?
 
Guys. I propose to take a lead at least to kick things off. Contact me via PM.


EDIT : (I have sent a few messages out already).
 
Last edited by a moderator:
Chose your genre wisely and accordingly, I personally would choose a shoot-em-up over a platformer, since it's easier to make (no physics, easy collision detection, less level design needed, ...).


(and besides every second indie game is a platformer, there are few good shoot-em-ups - although we could also use a good Mario or SMB-like game, SuperTux hardly is a good clone).

well, all true especially about SuperTux; frogatto is an example of a very good platformer :)


what i want to say in the end is, and what you're also saying. create a game the devs like; if this is not the case, when it's getting tough, people will drop out cause it's not their game anyway...


traylorpark and i have setup a www.wunderlist.com account and are sharing a TODO list there.


this is important if you live in different time zones like we do. we just put some of our todos there or some notes, whatever comes to your mind. the great thing about it is, that it's available for many platforms and if it's not available as an app you can still use it inside your browser...
 
What about a top-down space multiplayer shooter?


Phase one could be simple ship with a basic weapon


Phase two Setting up network game


Phase three add asteriods/planets/black holes


Phase four add additional ships and weapons
 
well, all true especially about SuperTux; frogatto is an example of a very good platformer :)
Oh, right I forgot about Frogatto, though tbh I am seeing a lot of missed potential in that game (awesome graphics, great sound, yet gameplay could have been more focused on the tongue mechanics and used a bit more variety overall. Instead of just being a Mario game in which you play Yoshi (it's kinda Super Mario World 2 Lite). Well.. and the jokes in the story feel a bit too forced imo). It's still good, but it could have been way better.


To organize your group:


I can recommend several google services, like Groups and Docs. Groups is like a mailing-list with an online view, but you can also upload files, link to documents, sites, etc. Docs is an online text editor (with quite a bunch of features), which you can also use in collaboration at the same time.
 
Check this shit out! :D


I made the enemy swaying effect, it turned out to not be difficult... Anyway, it can be made into a funcction, and an enemy object can store the time it has been alive and as the "speed" value and have its own value for height difference.


I also included my bezier curve even though it might not actually be of use in a shoot em up I realize now, but its a good thing to have and mayby it can help someone with something else.


It also has my rotation function wich works here and is the best version of it I made.



Code:
//#include "iostream"

#include <SDL/SDL.h>

#include "math.h"

//using namespace std;

float ralign=360.0;// For the rotation function, changes starting position to calculate from.


void rotate(float xp,float yp,float& ux,float& uy,float degrees){float bt,lx,ly,rx,ry,nnx,a;

if(uy<=yp&&ux>=xp){a=atan((yp-uy)/((ux-xp)))*57.295779579;lx=ux-xp;ly=yp-uy;}if(uy<=yp&&xp>ux)

{a=90.0+(90.0-acos((xp-ux)/(sqrt(((yp-uy)*(yp-uy))+((xp-ux)*(xp-ux)))))*57.295779579);lx=xp-ux;ly=yp-uy;}

if(yp<uy&&xp>ux){a=270.0-(90.0-(atan((uy-yp)/((xp-ux)))*57.295779579));lx=xp-ux;ly=uy-yp;}if(yp<uy&&ux>=xp)

{a=360.0-(acos((ux-xp)/(sqrt(((uy-yp)*(uy-yp))+((ux-xp)*(ux-xp)))))*57.295779579);lx=ux-xp;ly=uy-yp;}

a=((ralign-a)+degrees)+45.0;rx=cos(a*0.017453292)+sin(a*0.017453292);ry=-sin(a*0.017453292)+cos(a*0.017453292);

nnx=sqrt((rx*rx)+(ry*ry));bt=sqrt((lx*lx)+(ly*ly));rx/=nnx;ux=xp+(rx*bt);ry/=nnx;uy=yp-(ry*bt);}


int main(int argc,char *argv[]){

unsigned short screen_width=640,screen_height=480,colorBPP=16;

SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER);

SDL_Surface* dis=SDL_SetVideoMode(screen_width,screen_height,colorBPP,SDL_SWSURFACE);

SDL_Event game;SDL_Rect temp;Uint8* key;int quit=0;

int ct=0,ot=0,fr=16;// FPS limiter,(current time, old time, frame rate) 1000(TICKS (1000 per second))/16 = 62,5 fps

float xpos,zpos,xv=0.0,xv2=0.0,xv3;

float enemyX=420.0,enemyY;

float time=0.0,rpx,rpy,px0,px1,px2,py0,py1,py2;


while (quit==0){while (SDL_PollEvent(&game)){//********************* START OF GAME LOOP

if(game.type==SDL_QUIT){quit=1;}}


   key=SDL_GetKeyState(NULL);

   if(key[SDLK_ESCAPE]){quit=1;}

   if(key[SDLK_x]){time+=0.01;if(time>1.0){time=1.0;}}

   if(key[SDLK_z]){time-=0.01;if(time<0.0){time=0.0;}}

   if(key[SDLK_w]){xv=0.0f;}

   if(key[SDLK_q]){xv-=1.0f;while(xv<0.0f){xv+=360.0f;}}

   if(key[SDLK_e]){xv+=1.0f;while(xv>=360.0f){xv-=360.0f;}}

   if(key[SDLK_UP]){enemyX=420.0f;}

   if(key[SDLK_DOWN]){enemyX=420.0f;}

   if(key[SDLK_LEFT]){enemyX-=1.5f;}

   if(key[SDLK_RIGHT]){enemyX+=1.5f;}


xpos=320;zpos=40;

rotate(screen_width/2,screen_height/2,xpos,zpos,xv);


xv2+=0.05;// SPEED OF MOVING UP / DOWN

xv3=100.0;// HEIGHT DIFFERENCE VALUE

//enemyX=420;

enemyY=240+(sin(xv2)*xv3);



  // BEZIER CURVE

px0=140;py0=440;

px1=80;py1=360;

px2=240;py2=420;

  rpx=px0;rpy=py0;

  rpx+=((px2-px1)*time)*time;

  rpx-=((px1-px0)*(1.0-time))*(1.0-time);

  rpy-=((py1-py0)*(1.0-time))*(1.0-time);

  rpy+=((py2-py1)*(time))*(time);

  rpx+=px1-px0;rpy-=py0-py1;

  temp.x=rpx;temp.y=rpy;temp.w=1;temp.h=1;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,250,0,0));

  temp.x=px0;temp.y=py0;temp.w=4;temp.h=4;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,0,250,90));

  temp.x=px1;temp.y=py1;temp.w=4;temp.h=4;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,200,250,0));

  temp.x=px2;temp.y=py2;temp.w=4;temp.h=4;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,200,250,200));



//  *********   R E N D E R I N G    *******************


  temp.x=xpos;temp.y=zpos;temp.w=1;temp.h=1;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,250,250,250));

  temp.x=screen_width/2;temp.y=40;temp.w=1;temp.h=200;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,250,0,250));    

  temp.x=screen_width/2;temp.y=240;temp.w=200;temp.h=1;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,250,0,250));



  temp.x=enemyX-20;temp.y=enemyY-20;temp.w=40;temp.h=40;

SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,250,0,0));


  SDL_Flip(dis);


  // CLEAN THE SCREEN (blank out the drawing to see the circle and bezier lines form permanently)

  temp.x=0;temp.y=0;temp.w=screen_width/2;temp.h=screen_height;

  SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,0,0,25));// Blank this one

  temp.x=screen_width/2;temp.y=0;temp.w=screen_width/2;temp.h=screen_height;

  SDL_FillRect(dis,&temp,SDL_MapRGB(dis->format,25,0,0));// And blank this one to


// LIMIT FRAMERATE

ct=SDL_GetTicks();if (ct-ot<fr){SDL_Delay(fr-(ct-ot));}ot=SDL_GetTicks();

}// **************************************************** END OF GAME LOOP

SDL_Quit();

  return 0;

}
 
I currently don't have a lot of time, but I could do some coding. I've never coded a game (well, except for some ANSI art BBS games), but I can implement some algorithms like path finding or things like that (enemy AI).
 
I currently don't have a lot of time, but I could do some coding. I've never coded a game (well, except for some ANSI art BBS games), but I can implement some algorithms like path finding or things like that (enemy AI).

Thanks for your proposition :)


I'll include you in the mailing list and all :)
 
Are we supposed to only talk in the document? I find it slightly confusing and weird.


I dont know if my question got materialized so I repeat it here:


What about using GLES2 for rendering, and how do the rendering currently work specifically?


You can put me on position for drawing sprites and backgrounds. If you need help with programming anything you can ask me if its of logical gameplay type and not system type. I would love to make the rendering system but I suspect you other guys might not appreciate my way of doing things.
 
From what I've heard, shaders gives worse performance than the fixed pipeline on our SGX. I think we'll need all the performance we can get to keep it at 60 FPS.
 
Thats strange, shaders might even do less then a fixed pipeline anyway, that depends on the shader code. I never got my GLES1 code to go above 30fps but it wasnt very pretty code, I should make some new tests later and see if I can increase fps, is there anyone that can compile GLES2 code for the Panda? A simple 2D game shouldnt be so demanding anyway should it?
 
My test-applications maxes out the 60 FPS fine. The key is to do as few calls as possible, and leave alpha blending disabled as much as you can.
 
Back