Slick Forums

Discuss the Slick 2D Library
It is currently Thu Aug 22, 2019 7:12 am

All times are UTC




Post new topic Reply to topic  [ 74 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject:
PostPosted: Sun Jul 08, 2007 11:44 am 
Offline

Joined: Mon Mar 19, 2007 9:29 pm
Posts: 74
I just finish my mooving to another city.
So what the point with game? Are we going to make it? Or just everyone giveup? =)


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 08, 2007 6:56 pm 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
Me still ok to join a little project. Anyone who ever took part in a team project wanna join ?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 11, 2007 3:22 pm 
Offline
Game Developer
User avatar

Joined: Tue Nov 21, 2006 4:46 am
Posts: 620
Location: Iceland
We could do a top-view RTS (C&C style) game. I got the graphics, and a full idea! Of course, everyone got their own ideas about games, so I'm not even sure people would be willing to sacrifice their own game ideas for mine :)

I did try to do this project with others a year ago, but Slick wasn't available then, and we didn't have any map editor. So that project failed.
Now, I have Slick, and also Tiled which seems to do a lot of stuff for me now, and making a full RTS only seems to be a inch away :)

Btw. I see no purpose of joining a "little" project, then I mean some SpaceInvaders clone. It has to be challenging enough for about 3 people.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 11, 2007 3:55 pm 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
A space Invader isn't even a project :wink: .
Yeah a RTS, but a very simple one first.
I'm interested to deal with networking but that's all :roll: .


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 11, 2007 8:40 pm 
Offline

Joined: Mon Mar 19, 2007 9:29 pm
Posts: 74
I think RTS isn't a "small project". Especially with multiplayer.

I can take any part of coding/designing/documenting (but not networking). Preferably gameworld structure design.

Lets make some summary :)
genre: not specified (RTS, 2d platformer, anything else?)
8 persons was interested in june

from july:
3 persons (2 same) in july %)
one ready for networking (others prefer exclude it for first time)

Everyone (who didn't) please specify your skills, so we can plan what we able to make.

Next I present a concept of 2d platformer (if we choose it I'll be happy, we will make another game, I'll also be happy :)
2d platformer (jumping from platform to platform, like in mario). Shooting to enemies. Player start somwhere at level. His task is to defend some object near respawn from enemies. Enemies appear oudside visible area of level, and try to get to protected object. If they get, player loose. After each level player get a reward: better weapon/new skill/improved skill/etc. Also enemies will be stronger each level.
Networking: we can plan networking so if it fails - it will not affect game "production". If succeed - if will be grate additin to game.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 11, 2007 9:17 pm 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
For the networking, the best way to make it "removable" (in the case it fails), would be to make it cooperative. It suits well to your idea as well : for example a mansion to protect from zombies. Each team mate can protect a given door ( depends on their strategy).
If you ever had some experience in a team project you could be the leader ? We need one :wink:
If your idea also suits Apple and who else wanna join the project I start coding some things ready to test.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jul 12, 2007 12:45 pm 
Offline
Regular

Joined: Mon May 28, 2007 8:47 am
Posts: 106
Location: Coimbra, Portugal
I could help. I have many things to to but I guess I could find some time.
Also, I'm still learning Slick and I don't have an easy access to the internet (I'll be changing services for the next month).

Will the project use AI? If so, you should know that it's very time consuming task and with many aspects to tune.

Theorically, I know the essential of AI to apply to games, though I never did. This project could be a good starting point...

Meraxupypr has already suggested (and well) some relevant aspects. I'll do so too:

A) We need to write an initial document describing the project. This will help those who are already envolved and may attract others.

B) We must know who will dedicate to the project to distribute tasks and, preferentially, to the most appropriate colaborator.

... and... I forgot.. :lol: eh eh.. sorry, I'm a bit distracted..


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 13, 2007 11:12 pm 
Offline

Joined: Mon Mar 19, 2007 9:29 pm
Posts: 74
I was wait few days, so everyone who want can post. Time for thinking is over, now time for doing :)

I have an experience in team projects (but not in gamedev). I agree to be leader and also distribute tasks if reuired.
How we can do it: we need bug tracker (for self-distributing tasks) and SVN (for sharing code) for project. I think http://code.google.com suit well for that. There is also wiki so we can easily make doccumentation. I will handle biggest part of it, but not all.

Some better communication than forum: for brainstorming and faster solutions. Maybe irc? Also msn/icq suits for me.

Also I think a lot about networking. We can next architecture. One part will resolve physics and events, while other part will handle input/output. And third part will be game objects.
So we can just change part "one" so it will get some changes through network. Example (somwhere in part 1):

Code:
public void process()
{
...
  //here we do all changes comes from network
  //for single version value will be false
  doNetwork(true);

  //next goes normal processing
...
}

This is just idea, I think you have better solution :)
I think we don't need to care about cheaters for this game.

AI. I have just general idea how it will work. For example if we make 2d platformer with crimsonland gameplay, then we don't need strong AI, but if there some bosses, and only good teamplay can bet them. Or enemies that tries to attack in groups. Then we need good AI. So you can choose in what you are more interested, so we can tune project to your wishes :)


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 9:50 am 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
My msn : orel82@inbox.ru (not a hotmail address but it works).

For the networking, I need to define an overview of the architecture.
It 's surely not perfect but it runs really well and makes everything simple, here is my global approach:

Server side:

-a Thread pool to handle Clients. (so one Thread per client). (ThreadPool)
-one Thread to handle connections. (ConnectionHandler)
-one Thread to process events and tasks. (let's call it the MessageProcessor)

-one MessageInOut object which acts as the nerve center of the communication between all Threads described above.
This object contains In queue and an Out queue to stack up Message objects.
These queues use the "ConcurrentLinkedQueue<E>" data structure which suits very well : it's Thread safe for reading/writing in it.
That means there won't need any effort to avoid Thread collisions.
Message objects stored in it will all extend a common abstract class like Message :wink: .
A Message object can be used for networking and internal communication (for example, if a Client disconnects brutally, its Thread post a Message to warn MessageProcessor a Client disconnected and must be removed) as well.

Client side:

Almost the same architecture as the server:

-one Thread to handle Incoming packets. (NetworkThread)
-one Thread to process rendering, events and tasks... (MessageProcessor)

-one MessageInOut object (same principle as in the server).

__________________________________

If you ok to make it multiplayers (cooperative game), I prefer to tell you I can't rely on Phys2D unfortunately (very hard to make it synchronized from a Client to another one).
I need to rely on my simple collision system which doesn't provide complex physics :roll: .
Also, all dynamic entity classes (players,enemies,...) must provide that method:

Code:
public int step(long elapsedTime); //update posisiton,...


Where the returned parameter is an identifier for a possible event.

__________________________________

I think with only that, I can abstract much thinks you guys will code :?:

I hope my english and the way I explained is understandable lol.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 12:44 pm 
Offline

Joined: Mon Mar 19, 2007 9:29 pm
Posts: 74
my msn: wormspy@yandex.ru ;)
[offtop] We need to keep all documentation and forum posts in English so it will be still community project, and everyone can join. [/offtop]

Networking seems too complicated to me :( If you could handle also general architecture (or present to us some diagrams/code example for better understanding) it would be nice.

So we will make an 2d platformer game. Player task is to defeat enemies at level.

what about java version? 1.5 or 1.6? I agree for any of them.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 2:10 pm 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
added you in msn :wink: .

I'm writing a simple-to-use library for the server so it's gonna be easyly reusable. Then, I 'll build the server thx to that library.

For the game there will be some constraints :

-every entities (static or dynamic) will need a Hitbox object. That means we will have to build a Map/Entity editor.

-map/entity classes will be shared between clients/server/editor.

I think that apart networking, the first thing to do is to write down the specifications for maps/entities. Then from that, starting to code the editor.

To store the whole thing, XML serialization is ok ?

EDIT: I use java 6.0, dunno if it's a problem :?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 5:38 pm 
Offline

Joined: Mon Mar 19, 2007 9:29 pm
Posts: 74
XML and java 6 are good :)
But i didn't have XML experience.

If I understand correct:

object World (we need it cos there will be several different levels, and also characters shold be stored somewhere) contain:
* List of Levels
* List of Characters

Level will contain:
* tilemap (probably array)
* list of tiles
* list of Entities

Entity can be one of the following:
* creature (also player) - it will have some control part
* shot - just moove and collide
* event - if something hit it, event activates (it will be invisible)
* item - something that lay on platforms and can be picked up (it can be thrown away from dead body, or just set by level designer); step

I think no more is needed. For example we can have "computer" at level and when player came to it, he "hit" an event, and something can change (door open/close, etc).

What about collision system? What objects can it collide? Actually square vs square (same sizes) will be enough :)

Each level will consist 4 levels of depth (mostly for graphics):
1. bakground - some cool picture for whole screen :)
2. back decorations + platforms (creatures, shots and event also here; here hapenned all collisions)
3. front effects
4. front decorations (vill be small and cover only small part of tile).
Drawing will happened from back to front. level 2 (without entites) and 4 will be stored in tilemap (2d array). Each entity will contain absolute coordinates for level.

Controls: moving left/right, jump, shoot (only one button, shooting only horisontally), 1/2/3 - selecting weapon. No recharging, no ammo in game.

After each level (only between levels) players can improve their stats and buy/sell weapon. Here we can probably use mouse (depending on gui that we will use).

Fell free to change/improve my ideas :)


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 6:06 pm 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
I'm ok for everything ^^.

We can use a GroupStore to manipulate layers (the levels of depth):
Code:
public class GroupStore implements Serializable {  static final long serialVersionUID = 3L; private HashMap<String,LinkedList> groupStore; public GroupStore()  {  groupStore = new HashMap<String,LinkedList>(); }  private void addGroup(String ref) //ref: nom du groupe  {  groupStore.put(ref,new LinkedList()); }  public void removeGroup(String ref)  {  groupStore.remove(ref); }  public LinkedList getGroup(String ref)  {  return groupStore.get(ref); }  public void addToGroup(Object o, String ref)  {  System.out.println("groupStore:"+groupStore); LinkedList ll = groupStore.get(ref); if(ll==null) addGroup(ref); groupStore.get(ref).add(o); }  public void removeFromGroup(Object o, String ref)  {  LinkedList ll = groupStore.get(ref); if(ll!=null)ll.remove(o); } }


I like it cause it's really simple and efficient to group things.

For collisions, we can use my collision system (I'll have to modify it). It provides Polygon/Polygon (with collision details), Circle/Polygon and Circle/Circle tests. It's really bug free so far (test it for so long).
A Hitbox object is a set of segments. Each segment has some property flags (good for filtering things, for example: a type of bullet can go through it) and also has a normal vector.
The collision strategy is very simple, I compare all dynamic entities to all other entities but it looks first whether their bounding box radius colides. It doesn't need more optimisation at all for the moment.

I think the bigest part is to build a good editor. Then it's pice of cake ( I hope :P )


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 8:30 pm 
Offline

Joined: Mon Mar 19, 2007 9:29 pm
Posts: 74
why we need layers?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 14, 2007 8:46 pm 
Offline
Oldbie

Joined: Sat Nov 18, 2006 3:11 pm
Posts: 254
Location: Helsinki
For example, one Group for the background layer, one for the middle scene, one for effects and a fourth one for the HUD.
When you wanna render layers, it's easier to know which layer Group you wanna render before another one. It's also very easy to swap an object from a Group to another.
It's not a huge detail but I hope you like the idea :?:
Neway that's just a suggestion :wink: .


EDIT: what about the GUI ? :roll: Davedes is on vacation and he didn't manage to make a first release of the new SUI, dunno whether he gave out a svn access.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 74 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group