soundmud / soundrts Goto Github PK
View Code? Open in Web Editor NEWA real-time strategy audio game
Home Page: http://jlpo.free.fr/soundrts
License: Other
A real-time strategy audio game
Home Page: http://jlpo.free.fr/soundrts
License: Other
http://forum.audiogames.net/viewtopic.php?pid=188237#p188237
"About the damage radius, I did a test with a trap on the center of a square. When many units enter in the square, the trap kills just one unit the first time, whatever the damage radius. After, when all units are in the center, the trap kills some units, even though they are all in the damage radius. I specify I tested that with a very big damage radius."
A parameter for the whole map could be added.
It would be called "build_anywhere_limit_per_square".
Its default value would be 10.
A map could change this value with the map command: "build_anywhere_limit_per_square 20", for example.
At the minute, I believe, you can only have an effect use its harm (or heal for that matter) level across the square its in. Either using the normal range mechanism or something like the special range mechanism would be good for effects that should cause damage or healing in a larger radius.
I think the normal range mechanism would be more flexible, if my understanding of it with these new changes is correct.
Any player who has lost a game would turn into an observer for the rest of the game. It can be used to observe a game without relying on a new menu item during the creation of a game.
Added an experimental branch called "continuous". Continuous space is supposed to solve the oddities caused by the current "rooms and doors" structure of the current space.
The first step is to check what a zoom would be like. A zoom might be needed to position more precisely the units. It would allow some kind of micromanagement under the square level at some strategical points while keeping the bigger square scale. For example a square would have one of the sub-squares with higher altitude which would be ideal for an archer. Maybe the zoom feature has nothing to do with continuous space though. I'm not sure yet.
The maps list will be automatically sorted alphabetically, probably for the rest of the session.
If the pacakges feature doesn't been implemented yet, release a 1.2a9 rev 3 (or 4) only updating the crazymod package.
Currently, the name of the maps are writed using the numeric codes for the letters and numbers that the creator want to use, but if the game doesn't use anymore recorded speetch, this behabior is so unefisient.
You should change it to use strings as the maps name instead numeric codes, and add the option to write a small description (as a other string) for all maps.
And if is posible, for the description, add the option to these have multilanguaje support.
for example, in a map, using XML tag styles:
Super cross powerfull map
This is a map with a cross form, and have many resourses in its center
Es un mapa que posee forma de cruz en su centro, y en el medio una gran cantidad de recursos
Air units and units with sight_range wouldn't have this limitation.
Current maps allow navigation in 2 dimensions. a-z and 1-N.
I propose allowing navigation in the 3rd dimension for certain maps, in essence implementing a space system for star trek/other space-style combat.
How we represent the 3rd dimension/other characteristics we can discuss, but I wish to push the idea forward.
In the game's creation room, put a menú with some (and small) advanced options.
For teamPlay, allow friendFire, active or not the shared updates (on starcraft when you play with allianses the upgrades aren't shared) and when you play 1 vs 1, active or not one option to the games, put each player in the farest starting points that be posible. And starting resources modifiers. Map default, some multiplier or simply define amount for each resourse. Some people love change it.
A, and please, remember the issue #8 about public games.
For some scenarios, having buildings or units that can periodically generate resources might be handy. An example might be a command center periodically generating credits, or a townhall periodically generating gold from taxes and such.
For a command center providing 15 of resource 0 every 10 seconds, it might look something like this.
def command_center
class building
...
resource_0_provided 15
resource_0_provide_time 10
Of course, I'm not sure how the naming scheme would work best to cover multiple resource types... I just saw that in style.txt and wasn't sure if resource_x_something was easy to parse.
Also, if done in separate fields, it might make upgrading them with bonus research easier later on.
currently, when you active the shortcuts menu, the game automatically speaks all of possible commands. Change this behavior to display a commands menu on that you can move through it using the arrow keys to select one option and next active it pressing enter, or simply, using the shortcut key; and, when you are navigating through the menu, when you select one option, the games speaks the shortcut key for that option instead of summary all of it.
Of course, if you press escape, you close the menu and you can return to the game.
Claudio of tiflo juegos community has been translated the remaining documents of soundRTS documentation.
And a new documentation for shortcuts (based on the bindings.txt file) is currently under development.
The links of updated files are these:
AI Macking:
https://dl.dropboxusercontent.com/u/21542289/aimaking_es.rar
Modding:
https://dl.dropboxusercontent.com/u/21542289/modding_es.rar
Manual:
https://dl.dropboxusercontent.com/u/21542289/manual%20-%20es.rar
MapMacking:
https://dl.dropboxusercontent.com/u/21542289/mapmaking%20-%20Es.rar
All translations are based on the documentation of version 1.2a8.
Now that the TTS is used it should be possible to give many hints from inside the game. It should be almost unnecessary to read the manual.
It would be cool if you could have some units reveal themselves for a short amount of time after an attack. An example of this is the partisan from my Blitzkrieg mod. To give some explanation, They're essentially Russian saboteurs, undermining German war efforts.
Having them go invisible is something I want to do, but it feels weird that they'd be able to set charges off on a tank and the tank crew just ignore them, and isn't really how I'd imagine them being used. Rather I'd imagine them slipping behind enemy lines and causing havoc.
I'd imagine a rule looking something like this would have them stay invisible until either detected or they attack. After the elapsed time has gone, they'd cloak again.
def partisan
class soldier
...
is_invisible 1
attack_reveals_for 10 ; 10 seconds after attack
I'm not sure of a good name for this field, that was my first effort.
Obviously, detectors would still have their place, as ideally you'd not want them to be able to attack in the first place. Also, you'd need them to deal with any permenantly invisible foes.
If you say at least three things, you will notice that the first ones seem to go through instantly. You get feedback as soon as you press enter. but consistently with the third and subsequent messages, they are delayed.
I still can't redo and fix this bug. After alt tab the keys are not working correctly, maybe as if alt was considered as pressed. Pressing alt solves the problem. If you know how to redo this bug consistently please tell.
An oddity in the code concerning alt tab is that some events are potentially skipped. Key modifiers are not tracked at this level though. Anyway, it might fix the bug, but without a way to redo the bug it will be hard to check if the bug has been fixed.
Currently, you can't know how many units are inside a transport.
You should put this information in the status information, with the V key, when you select the corresponding transport.
When a match turns in to a infinity situation, the game needs an inactivity counter that automatically detects the player is does (or can does) nothing.
For example. you doun't have resources, and workers, but a lots of buildings and units, but on this, you have any detector. But the remaining things of your oponent is a set of invicible buildings that you can't destroi.
if your oponent doesn't want forfeit, you have to loose?
In this case must have a timer to declare looser the player that have annoying invisible buildings, and stop the continuity of the game.
Instead of including a mod in the default SoundRTS, an URL would be provided. This way, mod makers would provide new versions from their own web site.
Maybe the URLs would be included in a file called cfg/mods.txt. A tool, included in SoundRTS or not, would install, update, and start mods. Maybe a very small script would be enough.
The URL would contain a zip archive, or maybe a list of zip archives, so it would be possible to provide patches, and the size of some updates would be very small.
Standalone servers should install and update mods easily. At least the update should be easy to do from a command line shell. Maybe a command-line option would be enough, even with the client version. For example, the Crazy Mod would have an URL for version 8, and a command would be:
soundmud.exe --mods=soundpack,CrazyMod8 --modurls=http://pragmapragma.free.fr/soundrts-crazymod/download/version8
Neighboring squares have an influence over sight and range attacks.
I'm interested in having a campaign based on a mod I'm creating. Currently, the best way to do that seems to be to copy+paste the mod into the campaign and make any campaign relevant changes and add any campaign only stuff on top. The problem comes in when/if I'd want to change the behaviour of one of the existing things in the underlying mod.
It would be neat if we could get a campaign to have its own "mods =" bit (or similar) in it somewhere. And have any rules.txt and style.txt (and so on) changes patched on top of them. It separates out the campaign from the main body of the mod itself.
This feature requires a blocking resource to be exploitable from both sides of the exit, which isn't as simple as it seems.
In some maps, players will be isolated from each other until a path is created by workers exploiting woods.
With the mod I'm making, the economy is on a different scale to the one of Warcraft, where things would take a few bits of gold and wood. We're looking at hundreds and thousands of credits to afford stuff.
Could there be a new rules.txt parameter to multiply all relevant starting resources by a given amount? So that this mod is still playable on the vanilla official maps without having to wait ages for labourers and workers to start getting your economy ticking over.
A particular example I'm thinking of is JL1, which I like as a test map. You start off with 10 credits. That ain't gonna buy you nothing. Well, a couple of labourers, but I made that the case to get around this problem. If I could make my mod multiply the starting resource by 100 (or another given amount), it would help give players a kickstart.
There should be a map details menu which you can invoke which would include things like the starting resources, food limit, sum of resources for all resource sources on the map, etc. as a submenu off the game creation menu.
This means that the server will have to send more detailed information which clientservermenu will have to process appropriately.
Hello, sounmud:
Some users of typhlojuegos mailgroup created an update of the manual of soundrts, based in the document that is on the 1.2a9 version.
Please, include this update in the future Spanish releases of soundRTS.
manual:
https://dl.dropboxusercontent.com/u/21542289/manual%20-%20es.rar
mapmacking:
https://dl.dropboxusercontent.com/u/21542289/mapmaking%20-%20Es.rar
Thanks in advance!
Credits for the users of typhlojuegos mailgroup
By the way, currently they are working in the translations of other manual documents, and in translate the new features of the game (replay menu, etc)
They don't add the shortcuts of units to the Spanish layout yet, because they prefer wait to the update of crazy mod in September.
Thanks!
When a game finishes and there are people in the lobby, they should be told about the results of the game. this will let them know when the other people who were playing are now free to possibly play again, and will give the winner a bit of bragging rights.
When you create a game in the server's lobby, after choose the map and the speed of the game, in the screen of the races an candidate players to be invited, you should put and extra option to make the game a public game.
With this, all people in the server can join to game and don't need a specific invitation to join and play on it.
Also, with it, is necesary in the server lobby, refresh the list of public games every some small period of time.
When the armor is higher than the damage, a minimal damage should still be dealt.
For example, in rules.txt:
def parameters
minimal_damage .1
The lowest allowed value is .001 because internally the number will be multiplied by 1000 and turned into an integer.
When a new version of SoundRTS is released, servers have to be updated. Moreover, each mod requires its own server. This can discourage users to host a standalone server.
Of course sometimes a server is really incompatible with previous clients, but this is not always the case. Maybe a compatibility version, maybe just a server version number, a simple integer, would be incremented when the new version changes the compatibility of the server.
In the case of mods, the server should only make sure that the clients have the same resources. Providing the resources to the clients would still not be necessary. Providing resources can be network intensive and might even cause legal problems. The idea here would be to accept different client signatures and isolate the clients in compatible subsets. Or, in a more open variant, allow the clients to know exactly which mod and map is about to be used, and decide if they still want to play.
Kind of related to issue #36. I'm trying to influence how much damage a particular unit's attack does to different enemy types.
So far, I've been using armour and cooldown to do this and it has worked mostly well. Units that specialize in killing infantry fire really fast and do little damage, so that they don't really penetrate tank armour too much. Similarly, tank destroying weapons fire slow and do a lot of damage, to punch through the armour.
The problem comes in more with the second scenario really. It means that slow firing anti-tank weapons are actually quite effective against infantry, since they do lots of damage, even though the rate of fire isn't all that high.
I now also want to make anti-tank weaponry that really does specialize against tanks, and does less damage to infantry and structures. Since tanks are the things with the high armour, I can't use the normal high damage low rate of fire thing here.
What I'd like is either a modifier or a different damage amount altogether for different types. So some kind of a list of types and the modifier applied. For example.
def tank_destroyer
class soldier
...
damage 80
damage_modifiers infantry 0.1 structure 0.1 ; some kind of dictionary I guess
Whether this is done through inheritence or some kind of custom class could match up with issue #36's solution.
Suggesting the idea of allowing people to both join long-running games and re-join games. This will require players being assigned a uuid by the server, so when they reconnect, it can be verified they should be able to control whatever games.
This would possibly allow multiday, or even longer games, with units patrolling ones empire and keeping it safe while offline, and logging in to make moves when available.
Much more of a longterm pie-in-the-sky goal, but something worth thinking about as we shape the upcoming changes in architecture.
Currently, when you want to select a specific building, you must navigate through all of your buildings with w until you can reach the building that you want.
This behavior is annoying when you have more than 10 buildings, and you lose a lot of time when you pass the building that you want.
Create a modifier key (or command) that change the soldier keys for building keys for fast select of a building, or group of that.
use some command with w?
In the screens for race selection and ally order, the menu are some redundant.
A good option, is change the presentation of this options.
For example, for the game creation screen, change the selector of team for each player, to a option that you can press multiple times to change the current value. For example.
IF is a map with 8 players, the screen just shows 8 options one for each player, indicating the alliance of each player. and if you press enter on a option for a player, you increase the value of he's team, or if you press shift + enter you decrease the value.
In the case of races, for the computers show the race selector as a one option indicating the current race selected, and if you press enter, pops up a submenu in that you can select the race for that CPU.
For your race is OK have a multiple options.
This might not be as important as the fast UI.
I've got a rough idea of how effects as bonuses and such like work in SoundRTS when making your own mod. So I thought something like this would work.
def radar
class upgrade
cost 500
time_cost 60
effect bonus sight_range 2
With an air command center able to use this upgrade, I'd expect that when radar was researched, the air command center's sight range would increase by 2 squares. Unless I'm doing it wrong, it doesn't.
My guess is that this hasn't been implemented yet as a bonusable field (not quite sure how it works and haven't looked into the code enough to work it out). Would this be feasible?
I'm trying to implement sniper infantry, however I've come up against an annoying problem. I want them to 1 shot kill most infantry from a great range. But there's no way to tell them not to use their awesome rifles on tanks or buildings too. Let's skip over the debate whether a sniper could actually take out a tank or building.
What I'd like is to be able to tell the snipers not to try to attack tanks or buildings. Tanks in Blitzkrieg are also soldier types.
I'm not sure of the best way to do this. But I feel like the most customisable way of doing it would be to have either a can_only_attack or a cannot_attack flag which will prevent the unit from picking up any of the units listed (or things that inherit from it) as a potential target. For example:
def infantry
class soldier
; infantry specific stuff here
def rifleman
is_a infantry
def sniper
is_a infantry
...
can_only_attack infantry
; or
cannot_attack tank structure ; pretending I have tank and structure definitions similar to the infantry definition above
Another alternative would be to have another class type to soldier, such as vehicle and you could then use those is your can_only_attack property. Though this does seem less flexible.
A final way might be to have a user defined class type as well and use those, to save breaking down the inheritence hierarchy. So give all vehicles the vehicle user_class and infantry an infantry class, etc.
def rifleman
class soldier
user_class infantry
I'm not sure which way would be better, all of them would solve this problem. I've got a preference for the first or last one though.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.