Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - hailstone

Pages: 1 2 3 4 5 [6] 7
126
General discussion / StepMania Packages
« on: 25 May 2008, 00:18:10 »
From the Game's readme file:

Quote
The StepMania package format was created to make the distribution of songs and other add-ons very easy.  StepMania package files have the extension '.smzip' and can be installed by double-clicking the .smzip file.
 
 A StepMania package is 'installed' by extracting all files in the package to the StepMania program directory. This allows songs, courses, themes, and visualizations to all be installed by the Package Manager.
 
 The file format of an .smzip file is actually the PK-Zip standard.  This means you can rename any .smzip file to have the extension '.zip', and then open the file in any compression application (e.g. WinZip, WinRAR).
 
 The StepMania Package Exporter (smpackage.exe) can create packages of your song, announcers, themes, or other add-ons. Simply launch the Package Exporter (Start Menu->Programs->StepMania->Package Exporter), click the items you would like to make into a package, then click the one of the Export buttons. "Export as One" will take all of the selected items and make one package that contains them all. "Export Individual" will create one separate package for each selected item in the list.


What do people think?

127
General discussion / Hide GUI
« on: 16 May 2008, 12:04:13 »
Are people interested in a feature to hide the GUI (ie. resources, map, chat, HUD)? Is there any preference on how it could be done?

The biggest use of this feature I can think of is for taking screenshots.

EDIT: Removed poll

128
Mods / Glest Community Development Monthly - Issue 5
« on: 13 May 2008, 13:04:15 »

129
Mods / Factors of Balancing
« on: 5 May 2008, 20:50:07 »
What are the factors of balancing factions and the weighting of those factors?

Unit strength
Unit defence
Unit skills
Build time

Variety of units?

(most important, least important, etc)

130
General discussion / Change Log
« on: 4 May 2008, 22:54:04 »
These are made from posts on the forum:
GAE CHANGELOG
FPM CHANGELOG

EDIT: Added link for FPM changelog

131
General discussion / Software Process
« on: 4 May 2008, 21:47:34 »
This is my attempt at documenting the software process of GAE.

The amount of information needed will depend on the type of improvement (new feature, bug fix, change feature)

1. An idea or design is posted to the forum so that other people can post their thoughts.
2. Implement and test locally. Making sure the code follows style guidelines and requirements.
3. Post a working patch for review with details on how it was done or get help if not working.
4. If accepted, it is integrated into a beta version and documented (changelog and more if needed). Users post a bug report if it doesn't work for them. EDIT: also need to check if previous features don't break.
5. If no problems for a while it gets into the stable release.
6. Tested by general users.

I don't think there are any documented style guidelines and requirements for code or a standard format for bug reports.

132
Bug report / Cancel Display Bug
« on: 26 April 2008, 09:29:39 »
I tried fixing the cancel bug in GAE.

1. Where the info text is set when hovering on a 'phantom' cell below the image.
ie.

| 00 | 01 | 02 | 03
| 04 | 05 | 06 | 07
| 08 | 09 | 10 | 11
| 12 | 13 | 14 | 15
-------------------
| 16 | 17| 18 | 19    Invalid Pos


When selecting the worker, 12 is the autorepair and 15 is the cancel button. 16 will show autorepair and 19 will show cancel info text even though it is invalid.

Here is a screenshot of it. Note that the worker has stopped moving but the cancel button remains.



Code: [Select]
void Gui::mouseMoveDisplay(int x, int y){
computeInfoString(computePosDisplay(x, y));
}

void Gui::computeInfoString(int posDisplay){
...
                        if(posDisplay==cancelPos){
display.setInfoText(lang.get("Cancel"));
}
...
}

int Gui::computePosDisplay(int x, int y){
int posDisplay= display.computeDownIndex(x, y);

        if(posDisplay<0 || posDisplay>=Display::downCellCount){
posDisplay= invalidPos;
}
else if(selection.isComandable()){
if(posDisplay == cancelPos) {
//check cancel button
if(!selection.isCancelable() && !selectingBuilding){
posDisplay= invalidPos;
}
...
        return posDisplay;
}


In display.cpp/h
Code: [Select]
// definitions
        static const int cellSideCount= 4;
static const int upCellCount= cellSideCount*cellSideCount;
static const int downCellCount= cellSideCount*cellSideCount;
static const int colorCount= 4;
static const int imageSize= 32;
static const int invalidPos= -1;
static const int downY = imageSize*9;
static const int infoStringY= imageSize*4;

int Display::computeDownIndex(int x, int y){
y= y-(downY-cellSideCount*imageSize);

if(y>imageSize*cellSideCount){
return invalidPos;
}

int cellX= x/imageSize;
int cellY= (y/imageSize) % cellSideCount;
int index= (cellSideCount-cellY-1)*cellSideCount+cellX;;

if(index<0 || index>=downCellCount || downImages[index]==NULL){
index= invalidPos;
}

return index;
}

Therefore I think the problem lies in computeDownIndex but there is no commenting so I have no idea what is happening.

2. The cancel button doesn't disappear when the unit stops the command.

From selection.cpp/h
Code: [Select]
bool isCancelable() const {return cancelable;}
From gui.cpp
Code: [Select]
void Gui::computeDisplay(){
...
if(selection.isCancelable()){
display.setDownImage(cancelPos, ut->getCancelImage());
display.setDownLighted(cancelPos, true);
}
...
}

From selection.cpp
Code: [Select]
void Selection::update() {
...
cancelable = cancelable || ((*i)->anyCommand()
&& (*i)->getCurrCommand()->getCommandType()->getClass() != ccStop);
...
}


That is the only place that cancelable is modified therefore I think that is where the problem lies. Possibly the command is not being removed and anyCommand() is returning true when it should be false.

133
Bug report / Unneeded factions are loaded (fixed)
« on: 25 April 2008, 05:38:14 »
Previously all the factions would load even if there was only one faction type needed. I have fixed this with a patch for the 176 revision of GAE v0.3.

Changed files:
glest_game/game/game.cpp
glest_game/game/game_settings.h
glest_game/types/tech_tree.cpp
glest_game/types/tech_tree.h
glest_game/world/world.cpp
glest_game/world/world.h

Explanation of fix:
I used the factionNames from gameSettings to find out what factions were needed, then only added one faction of each needed type to the filenames vector. The factions are then loaded.

134
Mods / Glest Community Development Monthly - Issue 4
« on: 11 April 2008, 14:58:49 »

135
General discussion / Internode and S.W.I.N.E
« on: 5 April 2008, 05:18:02 »
For people using the Australian ISP Internode, they have made Glest v3.1.2 available for download on their servers. NOTE: I'm not sure if non-customers can download it from there.

I also came across S.W.I.N.E (available from Internode too).

Quote
It is a real-time tactical strategy game in which you must carry out extremely varied missions while taking advantage of the terrain and your units’ special abilities. Your army’s abilities and strengths will then develop over the course of the game.

136
Maps, tilesets and scenarios / Block tileset and flat map
« on: 28 March 2008, 00:01:31 »
The idea of the tileset was to make it like some Counter-Strike maps. The map is just something for testing maybe. It's a bit dodgy but the idea is there anyway.

Glest Screenshot
Counter-Strike Screenshot


Instructions for installing:
- download the files (only files needed, to save space)
- copy an existing tileset and rename to block
- replace textures with ones in zip file and rename xml file to block.xml
- extract test.gbm to maps folder
- select them when setting up a game

137
General discussion /
« on: 12 March 2008, 12:27:17 »
Welcome to the forum.

Xfire doesn't have a binary/source for Linux so I probably won't use it.

138
Mods / Three Months of Community Development - Issue 3
« on: 11 March 2008, 07:15:04 »

139
Multiplayer / RSS for Listing Games
« on: 29 February 2008, 06:18:21 »
This idea came upon me today. RSS is xml and xerces is already used for xml so that wouldn't be a problem. It also means that people can use it in other programs (or incorporated into other feed readers) because it is a standard format and it is not limited to just one list.

All that would need to be done is create a simple feed reader that retrieves the ip and game description and have the game send http requests to a page when a game is created (add item) and is unavailable (remove item).

140
Mods / Configurable Hotkeys
« on: 6 February 2008, 02:29:00 »
Basically what I did was create a modified version of the Config class which loads an ini file through the Properties class.

Code: [Select]
const char Keys::getKey(const string &commandName) const{
string key = properties.getString(commandName);

if (key == "ESCAPE"){
return vkEscape;
} else if (key == "ADD"){
return vkAdd;
} else if (key == "SUBTRACT"){
return vkSubtract;
} else if (key == "LEFT"){
return vkLeft;
} else if (key == "RIGHT"){
return vkRight;
} else if (key == "UP"){
return vkUp;
} else if (key == "DOWN"){
return vkDown;
} else {
char c = key[0]; // remove trailing null char
return toupper(c);
}
return 0;
}

This is the most important method in the Keys class.

When called like
Code: [Select]
Keys &keys= Keys::getInstance();
if(key==keys.getKey("SaveScreen")){

the command name is used to return the associated hotkey that is in hotkeys.ini (ie SaveScreen=E). If the hotkey is a 'special' one (not a number or letter) it returns the platform's representation of that key. I'm not sure how to implement combination keys such as ALT+RETURN.

These are places where hotkeys are used in the source:
-- glest_game/game/game.cpp
void Game::keyDown(char key)
void Game::keyUp(char key)

-- glest_game/gui/gui.cpp
void Gui::hotKey(char key)
void Gui::groupKey(int groupIndex)
void Gui::computeSelected(bool doubleClick)

-- glest_game/main/program.cpp
void Program::keyDown(char key)
void Program::keyUp(char key) (cant be used with the switch)

I put keys.cpp/h in glest_game/global/ and hotkeys.ini in Glest root
configurable_hotkeys.tar.gz

141
General discussion / How To Ask Questions The Smart Way
« on: 6 February 2008, 00:55:47 »
I think this is a brilliant online book by Eric S. Raymond and Rick Moen that everyone should read before asking for help on the internet. This website gives good tips too.

142
Mods / How do people like their tooltips?
« on: 27 January 2008, 12:03:32 »
According to Wikipedia:
Quote
The tooltip is a common graphical user interface element. It is used in conjunction with a cursor, usually a mouse pointer. The user hovers the cursor over an item, without clicking it, and a small box appears with supplementary information regarding the item being hovered over.


How would you like the tooltips to be included? My thoughts are to use the XML files to provide the information that comes up in the boxes. What information will be shown for what things?

Will there be a time before the tooltip is shown or does it appear immediately on hover?

143
Mods / Toggle Fullscreen
« on: 25 January 2008, 12:59:31 »
This was fairly simple to implement once I figured out how. You will need to add more code if you want different resolutions for windowed and fullscreen.

All Platforms:
I was going to use the 'F11' key but it would need more work to setup. This is in void Program::keyDown(char key) in glest_game/main/program.cpp
Code: [Select]
   if(key=='Q'){
        window->toggleFullscreen();
    }

Linux:
The SDL_GetVideoSurface(void) and SDL_WM_ToggleFullScreen(SDL_Surface *surface) functions were easy enough to put into shared_lib/include/platform/sdl/window.h

Code: [Select]
void toggleFullscreen() { SDL_WM_ToggleFullScreen(SDL_GetVideoSurface()); }
Windows:
I haven't tested this but it should work if the setStyle function does what I think it does.
In shared_lib/include/platform/win32/window.h
Code: [Select]
void toggleFullscreen();
In shared_lib/sources/platform/win32/window.cpp
Code: [Select]
void Window::toggleFullscreen(){
    if(windowStyle == wsFullscreen){
        setStyle(wsWindowedFixed);
    } else {
        setStyle(wsFullscreen);
    }
}


The diff of this is here.


When doing this I noticed that config.getBool("Windowed") was being called a few times in program.cpp so wouldn't it be better to use an instance variable to contain the boolean value?

144
General discussion / Live Linux Contains Glest
« on: 23 January 2008, 11:53:01 »
If people are wanting to try Glest for the first time (or are just curious). There is a live Linux distribution that contains Glest. I'm not sure what version of Glest, probably 2.

145
Mods / Command Line Arguments
« on: 23 January 2008, 05:53:26 »
I have command line arguments working on Linux (it should be simple to add Windows support). When joining or hosting it should skip to the proper menu. They can be in any order but the details of the option needs to be directly after it separated by a space.

Current options:
-h flag for hosting a game
-j flag for joining
-ip x.x.x.x for ip

Example:  ./glest -j -ip 192.168.1.1

Download here for diff and source

NOTE: I put command_line.cpp/h in shared_lib/util

146
Mods / Three Months of Community Development - Issue 2
« on: 13 December 2007, 06:29:52 »

147
General discussion / Running a free software project
« on: 5 December 2007, 01:19:30 »
Thought people might find this article interesting.

148
Mods / Decent Looking GUI System
« on: 26 November 2007, 11:30:37 »
Quote
Crazy Eddie's GUI System is a free library providing windowing and widgets for graphics APIs / engines. The library is object orientated, written in C++.


It has a few more dependencies to add to the list but it seems to be really flexible and is possible to use Lua scripting. Layouts are done using XML files.

http://www.cegui.org.uk/wiki/index.php/Main_Page

149
Mods / Three Months of Community Development - Issue 1
« on: 12 October 2007, 08:52:36 »

150
Mods / Different AI for special characters
« on: 4 October 2007, 01:29:40 »
Quote from: "lodemia"
"A modified client could move his forces automatically when it senses an enemy presence and fight the battle without any human intervention - if the cheater is good, he might devise algorithms to fight battles more efficiently than a human could manually - like moving forces out of the way right before having the dragons fire and then moving the forces back in immediately - stuff that is very difficult for a human to do efficiently. Or coordinating many different types of units all at the same time which a human might have trouble with."
from http://www.glest.org/glest_board/viewtopic.php?p=12129

I thought it would be a great feature to have different AI for different characters and possibly have upgrades or specials that increases the 'skill' of the AI. I'm dreaming at the moment so don't think this will be implemented any time soon but could be possible for a game AI enthusiast.

I reckon this would make the game seem like there is not just you giving instructions but working together as a managed army.

Pages: 1 2 3 4 5 [6] 7