Available Work for Programmers

Programmers discuss here anything related to FreeOrion programming. Primarily for the developers to discuss.

Moderator: Committer

Message
Author
OceanMachine
Pupating Mass
Posts: 95
Joined: Thu Jun 26, 2003 12:09 pm
Location: Chicago

Available Work for Programmers

#1 Post by OceanMachine »

This is a thread for the leads to post work that needs to get done that is not currently being worked on.

Interested programmers can come here and find things to do. Just be sure to post here or let the respective lead know if you're starting on something so we can take it off the list so the effort isn't duplicated. Also you should consult the board and/or the lead regarding implementation details before investing too much effort.

I'll try to compile the data from the thread into this top post and keep it current so you don't have to read through the entire thread to figure out what's going on...

So I'll start off:

General Tasks

--Create config files and move the various #defines scattered around code into them, read them into memory during client/server startup. You'll definitely want to start a forum discussion regarding implementation details on this one...


Universe Tasks

--Implement star generation for spiral and elliptical galaxies. I've got some old code around that Gralves wrote a long time back that contains most of the math you'll need. Contact me and I'll send it.

--Implement the bitmap galaxy shape star generation. Reads a bitmap and bases the probabilty of star placement on the darkness of the area. Someone wrote a demo of this as well that could be helpful. Anyone remember did this or still have the code?

--Create a text file list of default empire and system names. Use these lists to name systems and empires during universe creation instead of the current "Empire1, Empire2, .." system.

--Create and place the initial starting fleets during universe creation. This will need to be done in cooperation with Empire. IIRC, there is some code to be added there as well. You'll need to add the ship designs to the Empire, then create the ships and fleets and place them on the map. Check with myself and Josh (jbarcz1) on this.

--Also in cooperation with Empire, implement storing of fleet ID ranges into empires during universe creation, and generate proper fleet ID assignments in the InsertObject function of ServerUniverse. Empire will need to have code added to handle fleet ID ranges. Again, check with me and Josh.

--See the many other TODO areas of universe code, let me know if you're interested in writing any of them...


Utils Tasks

--Complete the rest of the SitRep entries. The code has been written for BuildSitRep entries, but needs to be done for the other types of entries following that example.
Programming Lead

tsev
Space Kraken
Posts: 167
Joined: Thu Jun 26, 2003 2:17 pm
Location: Pittsburgh, PA

Re: Available Work for Programmers

#2 Post by tsev »

OceanMachine wrote: General Tasks

--Create config files and move the various #defines scattered around code into them, read them into memory during client/server startup. You'll definitely want to start a forum discussion regarding implementation details on this one...
I've already begun this part, so people can start adding stuff to the config file as they see fit. The config file is in XML format and is in <FreeOrion-root>/default/config.xml. Just append your module's XML encoding to the end, before the </XMLDoc>. It might be best for you to generate the XML programmatically using your XMLEncode functions. Ideally, this data will be read in and passed to the constructor initially.

Right now, I believe only HumanClientApp and ClientUI are in the config file.
Universe Tasks

--Implement star generation for spiral and elliptical galaxies. I've got some old code around that Gralves wrote a long time back that contains most of the math you'll need. Contact me and I'll send it.

--Implement the bitmap galaxy shape star generation. Reads a bitmap and bases the probabilty of star placement on the darkness of the area. Someone wrote a demo of this as well that could be helpful. Anyone remember did this or still have the code?
I wrote the code for the generation via bitmap. I wrote it using MFC and pure SDL before I knew how to use GG. It probably won't take long to rewrite it for use in FreeOrion....I still have the code, so I'll take care of this...might be a nice warmup to starting the galaxy map.
FreeOrion Programmer

DarthVeda
Space Krill
Posts: 1
Joined: Sat Jul 05, 2003 10:58 pm
Location: Hell

#3 Post by DarthVeda »

It might be easier to come up with empire names and planet names if we had a list of races (Humans, Bulrathi, what not)

:)
"To all you veda haters out there we'll blow your planet up!"

Neuromancer
Krill Swarm
Posts: 10
Joined: Fri Jun 27, 2003 4:00 pm
Location: ... still in the Tonal

#4 Post by Neuromancer »

--Create a text file list of default empire and system names. Use these lists to name systems and empires during universe creation instead of the current "Empire1, Empire2, .." system.
I'm not a programmer, but I could help with this, if nobody else did it before.
Can I?
... seeker of the Unseekable

OceanMachine
Pupating Mass
Posts: 95
Joined: Thu Jun 26, 2003 12:09 pm
Location: Chicago

#5 Post by OceanMachine »

Neuromancer wrote:
--Create a text file list of default empire and system names. Use these lists to name systems and empires during universe creation instead of the current "Empire1, Empire2, .." system.
I'm not a programmer, but I could help with this, if nobody else did it before.
Can I?
Neuromancer, feel free to help out on this. There is a thread regarding this topic you may want to reference as well: http://www.artclusta.com/bb/viewtopic.php?t=59
Programming Lead

Tyreth
FreeOrion Lead Emeritus
Posts: 885
Joined: Thu Jun 26, 2003 6:23 am
Location: Australia

#6 Post by Tyreth »

Currently there is no working way (afaik) to join an existing game without setting up a new game.

We need the ability to enter a server address, and then choose to either:
a) join game
b) set up and join game

The second option is what already happens - you connect to the server and set up the parameters. We need (a) to be implemented so that players can join an already set up server.

Tyreth
FreeOrion Lead Emeritus
Posts: 885
Joined: Thu Jun 26, 2003 6:23 am
Location: Australia

#7 Post by Tyreth »

The "search more..." button exists to find more servers, but is not functional.

This needs to be working. I'm not sure what the official UI design is, but this is my suggestion, correct me if I'm wrong:
The dropdown list should contain a list of the servers that have been discovered.
There should also be a "Connect directly to IP" button added to this screen so that a player can specify a server directly.

Perhaps an additional "Local server" button that quickly connects you to localhost - but this may not be necessary.

tsev
Space Kraken
Posts: 167
Joined: Thu Jun 26, 2003 2:17 pm
Location: Pittsburgh, PA

#8 Post by tsev »

tyreth wrote:The "search more..." button exists to find more servers, but is not functional.

This needs to be working. I'm not sure what the official UI design is, but this is my suggestion, correct me if I'm wrong:
The dropdown list should contain a list of the servers that have been discovered.
There should also be a "Connect directly to IP" button added to this screen so that a player can specify a server directly.

Perhaps an additional "Local server" button that quickly connects you to localhost - but this may not be necessary.
I don't know if this is the place to mention this, but I think the server list should just be a in a standard list box so you can see all of them at a glance.

As for the localhost thing, we should have the listbox default to selecting 'localhost' so that you can just hit OK and go on to setting up the game real fast.
FreeOrion Programmer

tzlaine
Programming Lead Emeritus
Posts: 1092
Joined: Thu Jun 26, 2003 1:33 pm

#9 Post by tzlaine »

I thought that the enitre current setup was for demo purposes only. If not, it should be. What we really need is a consistent design doc (nothing formal, just a scetch or something). I think we should have a MP/SP choice right off the bat, and then for MP you can select to host or join a game. If you choose to join, you can search for servers on the localhost, LAN or the internet (the latter to be disabled until the day when we have public serers up).

While we're at it, I think we should either come up with a custom FreeOrion button look (the default is not very pretty, probably because I -- a programmer and not an artist -- designed it). I'd be happy to implement it if someone were to degin a new one. drek's earlier design was a nice start, but more work should probably be done.

Tyreth
FreeOrion Lead Emeritus
Posts: 885
Joined: Thu Jun 26, 2003 6:23 am
Location: Australia

#10 Post by Tyreth »

I created this thread to continue discussion of what tzlaine raised, so as not to clutter this thread.

http://www.artclusta.com/bb/viewtopic.php?t=112

tsev
Space Kraken
Posts: 167
Joined: Thu Jun 26, 2003 2:17 pm
Location: Pittsburgh, PA

#11 Post by tsev »

Galaxy Map Assignments

Programming will soon commence on the galaxy map screen....the meat of FreeOrion. We've got enough graphics available to put something decent together and we have lots of nice concept art of the planet panel. I'm going to work on the actual map screen myself. Is there anyone who would like to develop the planet sidebar based on drek's image #6?

These 2 modules will work in tandem, so we will need to coordinate a little bit. We will create 2 classes as the main portion of this: GalaxyMapScreen and PlanetBarWnd, but more classes may be added as needed.

Edit: I defer interested parties to the Galaxy Map Design Doc located at http://www.artclusta.com/bb/viewtopic.php?t=81
FreeOrion Programmer

tsev
Space Kraken
Posts: 167
Joined: Thu Jun 26, 2003 2:17 pm
Location: Pittsburgh, PA

#12 Post by tsev »

ChatWindow class

It would be nice to have a chat window object that we can reuse throughout the code. The window should include the following...for bare functionality:

- A non-interactive, scrollable window containing incoming and outgoing chat messages
- a user-input field where the user may enter text to send to other players
- a SEND button which sends the message

The first version will send messages to all users. Subsequent versions may include the following:

- color coded text based on users
- a simple parser that can extract commands from a user's message so that they can send messages to a specific user, etc.
- private message abilities
- ways to specify: send to allies, send to enemies, send to all
- play sounds on incoming/outgoing message
- listbox containing all players' usernames, possibly with interaction that allows PMs, etc.
FreeOrion Programmer

tzlaine
Programming Lead Emeritus
Posts: 1092
Joined: Thu Jun 26, 2003 1:33 pm

#13 Post by tzlaine »

tsev wrote:Galaxy Map Assignments

Programming will soon commence on the galaxy map screen....the meat of FreeOrion. We've got enough graphics available to put something decent together and we have lots of nice concept art of the planet panel. I'm going to work on the actual map screen myself. Is there anyone who would like to develop the planet sidebar based on drek's image #6?

These 2 modules will work in tandem, so we will need to coordinate a little bit. We will create 2 classes as the main portion of this: GalaxyMapScreen and PlanetBarWnd, but more classes may be added as needed.

Edit: I defer interested parties to the Galaxy Map Design Doc located at http://www.artclusta.com/bb/viewtopic.php?t=81
I'd like to do this. I was going to ask about it before you even posted it.

tzlaine
Programming Lead Emeritus
Posts: 1092
Joined: Thu Jun 26, 2003 1:33 pm

#14 Post by tzlaine »

tsev wrote:ChatWindow class

It would be nice to have a chat window object that we can reuse throughout the code. The window should include the following...for bare functionality:

- A non-interactive, scrollable window containing incoming and outgoing chat messages
- a user-input field where the user may enter text to send to other players
- a SEND button which sends the message

The first version will send messages to all users. Subsequent versions may include the following:

- color coded text based on users
- a simple parser that can extract commands from a user's message so that they can send messages to a specific user, etc.
- private message abilities
- ways to specify: send to allies, send to enemies, send to all
- play sounds on incoming/outgoing message
- listbox containing all players' usernames, possibly with interaction that allows PMs, etc.
I'm going to do a MultilineEdit control for GG that should be very useful in implementing this. Whoever is going to do it, give me a holler.

tsev
Space Kraken
Posts: 167
Joined: Thu Jun 26, 2003 2:17 pm
Location: Pittsburgh, PA

#15 Post by tsev »

tzlaine wrote:
tsev wrote:Galaxy Map Assignments

Programming will soon commence on the galaxy map screen....the meat of FreeOrion. We've got enough graphics available to put something decent together and we have lots of nice concept art of the planet panel. I'm going to work on the actual map screen myself. Is there anyone who would like to develop the planet sidebar based on drek's image #6?

These 2 modules will work in tandem, so we will need to coordinate a little bit. We will create 2 classes as the main portion of this: GalaxyMapScreen and PlanetBarWnd, but more classes may be added as needed.

Edit: I defer interested parties to the Galaxy Map Design Doc located at http://www.artclusta.com/bb/viewtopic.php?t=81
I'd like to do this. I was going to ask about it before you even posted it.
Well, then its yours. I had a feeling you'd want this one.
FreeOrion Programmer

Locked