Staredit Network > Forums > Modding Assistance > Topic: StarCraft clone in the works!
StarCraft clone in the works!
May 11 2010, 3:15 pm
By: asymptote  

May 11 2010, 3:15 pm asymptote Post #1



I am working on writing a StarCraft engine reimplementation. It is cross-platform and supports high resolution.

A screen-shot is attached, as well as a copy of the program itself.

EDIT: I've released a significantly improved version attached to this post.

Attachments:
StarLite_bin.zip
Hits: 34 Size: 559.72kb
StarLite_screenshot.png
Hits: 133 Size: 446.01kb

Post has been edited 1 time(s), last time on Jun 13 2010, 9:21 pm by asymptote. Reason: released a new version



None.

May 11 2010, 4:41 pm EzDay281 Post #2



Interesting work thusfar.
How closely are you planning on keeping this to Starcraft? Also, any intentions of it being open source?
If it gets far enough, it could be quite neat to do things with that are impossible (or rather, impractically difficult to do) in current Starcraft modding.



None.

May 11 2010, 5:13 pm asymptote Post #3



I attached a copy of my current source code, excuse any messiness as this is very much a work in progress. I am using MSYS/MinGW on Windows to develop in in C++ using the open source graphics/sound libraries SDL and SDL_mixer.

I also attached a copy of an earlier project to make an RTS engine. You middle click to add units, shift+middle click to add enemies, and ctr+shift+middle click to add "medics." You can press F3 to toggle frame limiting. I'll eventually merge features from both projects, but currently I am focusing on the StarCraft engine itself.

I intend on cloning the engine of StarCraft while enhancing the pathfinding, multiplayer features, and the interface. Some features I am going to implement are:

* Intelligent "cluster" based path-finding
* OpenGL rendering to support full-scene zooming
* WarCraft III style unit selection (being able to change the currently focused type of units within the selection to access their abilities)
* Queues for researching & constructing buildings
* Possibly adding "autocasting" for repair, defense matrix, etc (possibly would change the gameplay too much)
* Map previewing from the map selection screen (no need to host the game first)
* Being able to vote to go back to the game creation lobby upon leaving a game as the host, enabling players to follow them for quick rehosting

and anything else I can think of :-)

Attachments:
StarLite.zip
Hits: 19 Size: 661.72kb
xsc_old_project.zip
Hits: 12 Size: 1048.04kb
xsc_old_project.png
Hits: 27 Size: 25.09kb



None.

May 11 2010, 6:10 pm EzDay281 Post #4



Quote
* OpenGL rendering to support full-scene zooming
I'm not entirely sure what you mean by this. Mind elaborating?
Quote
I am using MSYS/MinGW on Windows to develop in in C++ using the open source graphics/sound libraries SDL and SDL_mixer.
How convenient; I use these (though I'm exceedingly inexperienced with anything).



None.

May 11 2010, 6:19 pm asymptote Post #5



Quote from EzDay281
Quote
* OpenGL rendering to support full-scene zooming
I'm not entirely sure what you mean by this. Mind elaborating?

What I mean is you would be able to scroll the mouse wheel and zoom in and out of the battlefield, even seeing the whole map at once. This means you could even get away with barely using the minimap to change your view.

There is an open-source game called Dark Orberon that has this implemented:
http://dark-oberon.sourceforge.net/



None.

May 12 2010, 12:47 am Heinermann Post #6

SDE, BWAPI owner, hacker.

I'm positive you lack information on how Starcraft works on the inside. If you had that, there's no doubt you'd be able to create a "true" clone with your own enhancements and portability, however, I don't think anyone has figured out how Starcraft's pathing works, and I have yet to reach that point myself.

I'm currently working on my own clone, which strictly follows the original very closely, and conforms to the variable names seen in Starcraft 1 Beta (debug strings). I have the intro video and data management nearly perfected, and now working on the menu and UI (I'm going in order instead of jumping to the game).
I'm hoping to create my own clone that is multiplayer-compatible with the original, and focus on portability later.




May 12 2010, 1:25 am poiuy_qwert Post #7

PyMS and ProTRG developer

This thread is full of awesome. I can't wait to see the progression of your clones! And nice screenshot of your progress so far asymptote!




May 12 2010, 2:09 am DavidJCobb Post #8



@Heinermann: So are you going to replicate SC glitches, or are you only going for multiplayer compatibility in melee?



None.

May 12 2010, 2:30 am Cinolt Post #9



Quote from asymptote
* Intelligent "cluster" based path-finding
* OpenGL rendering to support full-scene zooming
* WarCraft III style unit selection (being able to change the currently focused type of units within the selection to access their abilities)
* Queues for researching & constructing buildings
* Possibly adding "autocasting" for repair, defense matrix, etc (possibly would change the gameplay too much)
* Map previewing from the map selection screen (no need to host the game first)
* Being able to vote to go back to the game creation lobby upon leaving a game as the host, enabling players to follow them for quick rehosting

A revamp of the trigger system would be nice, such as adding native support for the mouse, screen, text, unit positions etc. Also adding multiplication and division as an option for the triggers would do wonders.

Maybe even allowing custom unit graphics in maps and other unit properties like speed, attack rate.



None.

May 12 2010, 3:50 am asymptote Post #10



Quote from Heinermann
I'm positive you lack information on how Starcraft works on the inside. If you had that, there's no doubt you'd be able to create a "true" clone with your own enhancements and portability, however, I don't think anyone has figured out how Starcraft's pathing works, and I have yet to reach that point myself.

To be clear my clone is not going to be multiplayer compatible with the official StarCraft client. The goal is an improved StarCraft, which means better pathing and would completely break the behavior expected by other clients. Plus as you said, I'd need to know how StarCraft worked down to the last detail.

The idea is to have a multiplayer-only clone that is more ergonomic in general, and has native Linux support.

Quote from Heinermann
II'm currently working on my own clone, which strictly follows the original very closely, and conforms to the variable names seen in Starcraft 1 Beta (debug strings). I have the intro video and data management nearly perfected, and now working on the menu and UI (I'm going in order instead of jumping to the game).
I'm hoping to create my own clone that is multiplayer-compatible with the original, and focus on portability later.

I have the resource management done, as well as the FNT file decryption. I was originally working on an RTS engine with no graphics, and now I am working on just the graphics aspect of the StarCraft clone. You ought to check out my posted "xsc_old_project.zip."

May I see what you have so far? I'm curious as we're working in parallel with similar goals.



None.

May 12 2010, 6:46 pm Sand Wraith Post #11

she/her

Very intriguing. I hope to hear more from both projects.




Jun 12 2010, 9:34 am asymptote Post #12



Weapons support has been added, try attacking other races with right click. All units are invincible currently.
NOTE: Goliaths/Tanks will not work as subunit support has not been added yet, and Reavers/Carriers use other units to attack (Scarabs/Interceptors) so they don't technically attack with a weapon.
NOTE: self-destructing a unit with DELETE will cause a crash if that unit is currently being attacked. This is because the engine currently has no death notifications nor polling so it will still reference the deleted unit.

I have also been working on proper flingy acceleration/halting. Turn radius and unit "natural rotation" remain to be implemented.

I fixed some stability issues, and reduced the CPU usage significantly. There still remains an obscure bug where a crash sometimes occurs on activating the Scourge portrait. I haven't been able to get to the bottom of that, not even with valgrind...

Interesting Finds:
Top Speed and Acceleration: PyDAT is actually wrong about how these are calculated. It isn't *3/320, it's /256 just like the Halt Distance. I suspect Blizzard was avoiding floating point operations and instead used bit-shifting the position to get the pixel coordinates.
Flingy "Partially Mobile/Weapon" Control: PyDAT claims it is poorly understood, and that if it is selected the Acceleration/Top Speed are ignored, but in fact only the Halt Distance is ignored. This is so weapons will continue accelerating to their top speed and ram the target rather than slowing down to gently "land" at it. That is the only difference as I can tell between it and "Flingy Control."

As always bear with me :-) This is very much a work in progress, and having to reverse engineer means code gets messy fast and rewrites are necessary. Once I get everything working I'll make the engine more elegant.

Attachments:
StarLite.zip
Hits: 44 Size: 555.33kb



None.

Jun 12 2010, 12:50 pm Adeon Post #13



Very nice so far!

I tested your last attachment. There's one glitch that happens once you drag your mouse down (until the cursor changes to the down arrow) and hold-click the minimap. It will keep scrolling down even if you move the mouse up.

Also, I think the margin for the auto-scrolling is too thin. Since your SC is totally resolution-flexible, Perhaps it would be a nice idea to make the margin size be adjusted according to the window size.

When you work on unit selection, could you please make it much less limited than the original game? It's one of the biggest weak points of SC1.

:)



None.

Jun 12 2010, 1:27 pm Demented Shaman Post #14



You should put in all the new features in SC2 such as multiple building selection, being able to queue units while supply blocked, unlimited unit selection, auto-mine, smartcast, etc.



None.

Jun 13 2010, 3:30 am Apos Post #15

I order you to forgive yourself!

That command center is way better! Perfect for early rush :D




Jun 13 2010, 10:45 pm ImagoDeo Post #16



Quote from name:New-.Hydrolisk
Very intriguing. I hope to hear more from both projects.

Same here.

Some things to change, @OP:
  • Unlimited unit selection. Zerglings armies are too hard to control in SC1. ;(
  • Display of queued commands.
  • Worker to Mineral rally pointing that orders them to begin mining instead of the player having to do that.

That's all I could think of that you hadn't already covered. :awesome: I don't think Blizzard ever anticipated this - it would be interesting to see what they would say if it were brought to their attention.

Final note - I would suggest simply cloning the current trigger system. If I were you, I wouldn't want any more on my plate than necessary.



None.

Jun 14 2010, 2:33 am Apos Post #17

I order you to forgive yourself!

If this works, it means that all the current maps could be played on your clone. Seems like a cool project :rolleyes:

I also think it would be interesting to see what blizzard would say about this since you are making a potentially better engine than the original :drool:




Jun 14 2010, 3:14 am Demented Shaman Post #18



Quote from ImagoDeo
That's all I could think of that you hadn't already covered. :awesome: I don't think Blizzard ever anticipated this - it would be interesting to see what they would say if it were brought to their attention.
He would get a cease and desist letter.



None.

Jun 14 2010, 12:52 pm Excalibur Post #19

The sword and the faith

Quote from name:devilesk
Quote from ImagoDeo
That's all I could think of that you hadn't already covered. :awesome: I don't think Blizzard ever anticipated this - it would be interesting to see what they would say if it were brought to their attention.
He would get a cease and desist letter.
Correct. Its happened to far less clone-like projects. Blizzard gets real touchy about people using their work in anything but their own provided tools in their own provided formats (IE map editors, scm/scx, MPQ).




SEN Global Moderator and Resident Zealot
-------------------------
The sword and the faith.

:ex:
Sector 12
My stream, live PC building and tech discussion.

Jun 18 2010, 3:42 am Apos Post #20

I order you to forgive yourself!

Not sure if that has to do with anything, but I found this on sourceforge, maybe it could help a bit.

Stargus




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[06:47 am]
NudeRaider -- lil-Inferno
lil-Inferno shouted: nah
strong
[05:41 am]
Ultraviolet -- 🤔 so inf is in you?
[04:57 am]
O)FaRTy1billion[MM] -- my name is mud
[04:35 am]
Ultraviolet -- mud, meet my friend, the stick
[10:07 pm]
lil-Inferno -- nah
[08:36 pm]
Ultraviolet -- Inf, we've got a job for you. ASUS has been very naughty and we need our lil guy to go do their mom's to teach them if they fuck around, they gon' find out
[05:25 pm]
NudeRaider -- there he is, right on time! Go UV! :D
[05:24 pm]
lil-Inferno -- poopoo
[05:14 pm]
UndeadStar -- I wonder if that's what happened to me. A returned product (screen) was "officially lost" for a while before being found and refunded. Maybe it would have remained "lost" if I didn't communicate?
[2024-5-16. : 3:36 pm]
NudeRaider -- :lol:
Please log in to shout.


Members Online: 1madisonc1291rh3, 6madisone1185rb4, 9madisonc6491wh7, 4harpere47100er4