Open RTS Library

by KingCold999
A library for making real time strategy (RTS) games.
ID:1870077
 
A library for making real time strategy (RTS) games.

W.I.P. Open Alpha 0.01

Currently Working:
Selecting Troops
Moving Troops (Currently disabled until my walking function is complete)
Multiplayer (Each player has their own ID. Can't select other player's troops)

Projects to go:
Attacking / Fighting
Buildings
GUI

GitHub
https://github.com/kingcold999/Byond_RTS-Library

If you have changes to make / additions to add / fixes for bugs / suggestions, message me on the pager.

Credits List:
------------

Changelog:
0.02a (Unreleased)
"RTS Library.dm" removed.
Added enemy detection, so you can't select enemy troops.
Changed tree icon to test walking around objects in tight spaces
Started working on basic combat and advanced pathfinding / turf checking.

0.01a
Initial release
Selecting of troops
Troop movement
Hey this sounds really cool. Let me know when you have a public version, I would like to contribute.
It should be publicly available now. Having trouble with the download site, and I'm not currently a byond member anymore (though I will be soon again).

Edit: Fixed download, it's on dropbox temporarily.
In response to KingCold999
Can't download it. You need a direct link, hubs don't let you download from http.

You either need to buy membership for BYOND storage space or find a server to host it for you.
Sub'd and uploaded. Try now :p

Edit: Double click to spawn a unit. Other than that, it's your normal click+drag to select, or click-select, or shift-click to add to selected units, and right click on turf to deselect all.

Game lags out a bunch if you have too many units vying for the same spot though, due to not having proper pathfinding; need to figure out a way to set each troop's individual spot so they don't all try to swarm the one tile.
In response to KingCold999
Still having trouble downloading it. The zip works but the download button doesn't. Maybe check that the file isn't hidden or protected in your files list.
In response to KingCold999
After trying it. Got some questions.

Why does the camera move so slowly across the screen?
What happens when the person who imports your library isn't using pixel movement?
Why are trees so large? That's ridiculous.
Why does it not mention what the controls are in the output?
Why don't you structure your files at all? Reallyyyy need some folders.
Why do some of your file names allow spaces and some don't?
Why are you using 16x16 icons when most people use 32x32?
Why are trees png files?
Would you not remove test code before releasing something?

Just in general this is all really diorganised and lacks structure that a library needs at the moment.
The entire thing was about a few hours work total, and is basically just the troop selecting at the moment. It is in no way complete, or even close to it, and is so far incomplete you can't even see the light at the end of the tunnel. Only made it public for people who want to play around with it while it's progressing.

Currently working:
Selecting Troops (Highlights, allows you to move them)
Moving

1) I don't know what you mean by this, the camera pans at a normal move-speed for byond?

2) Shouldn't matter if it's tile based or not, still should be functioning.

3) They are a test icon meant to be used as a barrier. They will be removed eventually, and the library won't contain any graphics whatsoever in the end, other than a demo to show how the stuff works, and how to use the library.

4) Because it is unnecessary to do so? I don't think I understand your question here. Output defaults to whatever you set as the default in the skin.

5) It has 14 files. Adding them to folders wouldn't add much organization, and I'm not even sure what of these files will still be in later on in the project. When I get to the point to needing folders, they will be moved around.

6) The file names aren't 'allowing' spaces. I just used an underscore on the one file name because it is where the Client's click handling will be going. There will eventually be other files here, like "Client.dm" and "Client_Keyhandling.dm" and likely other files afterwards named like this.

The only reason "RTS Library.dm" has a space is because it is a file that was made by default when the project was created, and I had yet to remove it from this version.

7) Because I like 16x16, and it made it easier to see a larger surface area on my monitor. It really doesn't matter though, the project should translate to any size tiles.

8) Because .png files are easier to access by external programs like Photoshop, Gimp, Paint.net etc. This is really a nonissue, you could just change it to .dmi instead of .png and it would be the exact same thing.

9) The test code is there so others can mess around with it as well, or to get feedback if a particular code that isn't in the project yet would fit into the project.
Update: "RTS Library.dm" removed. Added enemy detection, so you can't select enemy troops. Changed tree icon to test walking around objects in tight spaces (removed original large tree). Started working on basic combat and advanced pathfinding / turf checking.
Why not just do a github repository?

It's free and has crap like issue reports and pull requests, it's better for storing code, and committing to it.
Never used one before (and don't even know how), but does byond even support this? o.O
Git is a form of Source Control.

I'm surprised you don't know what it is, it's common in developer circles.

https://git-scm.com/
I know what it is, I just never figured out how to use them :p

Going to look into it when I get back home

edit: We have GitHub.

Going to fix it so byond links to the most recent version all the time when possible - their system detected me as a robot for some reason, so I have to wait for them to read my message and respond.

https://github.com/kingcold999/Byond_RTS-Library
Did you move over to github and are no longer updating your hub here? :P
I ended up not updating anything at all, was quite busy with work up until September and then busy with trying to find a new job. Going to be redoing the entire library sometime in the next month or so and (hopefully) continuing from there.