I don't know what exactly you mean, but most of those Engines do support Online multiplayer. (Programming with that in mind can be pretty stressfull though, optimizing netcode even more)
If you mean the online Subsystem (Battle.Net, Steamworks, etc). You can expect steam support from them. So advertizing open games to the Steam Master Server is possible. Unreal Engine 4 makes it also possible for you to implement your own, because you have full source code access.
I also moved to UDK and now to Unreal Engine 4. Creating Assets is the biggest problem though, but Unreal Engine 4 has enough for me to work on a prototype. I'm also able to make my own 3d Models and animations. On top of that I'm working together with Gorandor (Xaragoth), who is also able to make assets. We'll need one or two additional artists though if we enter a phase where we need more polish.
To bind keys to actions you need to go into the KeyBindings UserType inside the Data Editor and add a new instance.
Each instance has the following Properties:
ActionName: This is the friendly Name of the Action and can be localized. If you are using the preset KeyBindings UI this will be the the name that is displayed.
Default Key: Default key that is used if the game does not find an corresponding entry inside the players bank file. The key needs to be a integer number. The number for the key used can be looked up within the galaxy API as they are the same as the constants used for the "Key" Preset.
DownFunc: Function that is triggered on KeyPress. The function is required to have a format that can be used for Triggers.
UpFunc: Function that is trigger on KeyRelease. The function is required to have a format that can be used for Triggers.
The triggers that are created during runtime will be stored inside the global DataTable and can be accessed with the String Player[PLAYERNUM].Key[ACTIONID]
Since I've moved on to Unreal Engine 4 ( if you are interested) I have decided to upload my work here so some of you can use it or learn from it.
So I present you my shooter system. This one is probably quite advanced in terms of functionality, since I've tried to really add some features that are not really standard to SC2. It also includes a modified version of the SC2 Spectre that has additional animations for strafing, reloading, etc. Some of them are additive, so they can be used on a seperate layer to the main animation (i.e. Reloading, so you can reload while walking). And a Ragdoll death version of the Spectre that still keeps it's team color when dying.
Before you ask: There is no form of Network delay compensation included. But it offers enough flexbility to include your own. Ahli had some nice ideas about that, by saving the last X positions of each unit and using them when tracing the shot.
Features:
Main Mod:
Pre built WASD + Mouse Movement. That features, Walking, Running, TPS Aim down Sight, Dodge, Reload, Weapon Switch.
3D aiming and shooting
Inventory and User Data based Weapon and Ammo system
Weapons make use of normal SC2 Effects. So porting existing ones to this mod requires only minor adjustments (mainly enabling Unit and Point Targets)
Weapons do support multiple Firing Modes. How you switch or access them is up to you.
Decal Spawing when a Shot hits the ground.
Connection to external Dialog based Interfaces possible using Generic Trigger Messages (UI is not in Main Mod, but Mods depending on this one can react to those messages)
Rebindable Keys and User Data Based Key Binding. You can just set up Key Binding Data inside the Data editor by specifiing a up/down function, a name for the Binding (this will be displayed in the ingame Menu and can me localized) and a Default Key (integer). A Mod using TSS as a depedency is able to delete the Pre-built Controls and just use it's own and is even able to add new actions. Triggers will be rebuilt when bindings change to have a minimum amount of triggers firing ingame.
Simple Height Region system to enable shot collision with doodads. (not very accurate)
Vector Functions based on Points
The Mod is mostly done in GUI, because I wanted people to easily understand it. There is some galaxy here and there though, especially for math, but it shouldn't be a big problem to understand even if you don't know galaxy.
Further Documentation will come in the posts below.
The other Mod SCT.SC2Mod is a example how to set up a UI for this mod.
The Map that is included shows how to set up a Map using this Mod.
Note that this mod was not really intended to release in this state. But since I'm not working on it anymore I thought that I should share it.
It only works with Models that are set up for that.
If you want to know more, look into the art tools documentation. There should be a example to how to set up a Turret Behavior in 3ds Max.
So in short. It won't work on most normal units, unless you edit them in 3ds max to make them work.
The function is left over from the time, when cinematics had to be triggered. The WoL Campaign also has traces that they tried to trigger a lot of cinematics untill they moved to making them entirely in 3ds max and then create cutscene files in the old previewer.
I am using Reaper as my DAW. Most Virtual Instruments I use need Kontakt as a Sampler. Then I'm using a Native Instruments Komplete Audio 6 as a interface for recording DI's or capturing MIDI. Also I have a Ipad Mini with Touch OSC to control my DAW or the virtual instruments when I'm sitting at my stage piano that I use as a Midi Master Keyboard.
I usually capture guitars/bass as DI and then simulate the complete effects chain, amp and cab. I also have a real amp, but I'm only using it when I'm jamming with friends.
Real Instruments:
Ibanez RG 370 DX (heavily modded by me) w/ D-Sonic/D-Activator X
Ibanez S 7-String guitar w/ D-Activators
Cort Acoustic guitar
Ibanez BTB 5-String Bass
Casio CDP 100
Virtual Instruments:
Percussion:
Damage (Heavyocity)
EZDrummer (Toontrack) with Metal Machine expansion
Strings:
Cornucopia Strings (Strezov Sampling)
Kontakt VSL Strings
Brass:
Kontakt VSL Brass
Rogue (Strezov Sampling)
Piano:
The Giant (Native Instruments/Galaxy Instruments)
New York Grand (Native Instruments)
Choir:
Olympus Elements (Sound Iron)
Other:
AEON (Heavyocity)
Evolve Mutations 2 (Heavyocity)
Effects wise I'm using the stuff from Variety of Sound and what comes with Reaper (they don't look fancy but work really well). I also got some freebies for christmas from NI. Sometimes I script effects myself if I need something very specific, but simple.
So yeah ... I actually spent quite some money over the years. You can often find good deals for them though at black friday or around christmas.
Other than that I had 8 or 9 years of piano lessons in classic and jazz. And I've been playing the guitar for 5 years.
I have some challenges/goals I have set for myself. The first one would be to do another "epic" orchestral piece, but without the mistakes I made with ready for battle. I want to use a scale with a bit more harmonic tension and I want to try to work on my chord progression. I'd also like to make it a bit more fast paced.
As far as the Tube Screamer goes, you can also try other distortion/overdrive plugins. There should be a lot. Also Guitar Amp/Effect Simulators can work well too, since they try to give you the kind of distortion vacuum tubes create. Also some Saturation plugins could bring out the needed harmonics, but they are harder to control since you need to hit their sweet spot.
It also seems to me that the linked overmind sound might be double tracked, but it could also be just the same voice underlayed with different settings or just the delayed voice.
from what i can hear, I think you need to low pass the dry voice a bit, it also sounds a bit like there is some slight overdrive/distortion on there. Also there is another effect that I heard somewhere, but i can't recall if I had that.
It's still a bit closer I think. Maybe it will help you get to where you want.
I created a lowpass at 3.3 kHz then I added a TubeScreamer (TSE 808 2.0) with a bit of drive and tone set to a rather low setting. With the TubeScreamer I artificially add the harmonics I cut with the EQ.
In the second one I added a Delay (Nasty DLA) I set the feedback somewhere around 12o'clock and the time to 60-80ms. Then adjusted the wet signals level until it wasn't too muddy.
sounds like the increments of your Camera Data aren't set up properly.
Go to the camera you are using in the Data Editor. There you can find the fields Rotation Increment and Perspective Increment. They control the increment for those values for the script. Smaller values tend to create more networking load, since they need to be updated more frequently for all other players, so don't overdo it.
I've been getting a bit more serious about composing and I think I've reached a point were I can show some of my stuff. So here it is:
Ready For Battle - My most recent track and my first attempt at Orchestration.
Modern Trailer Test - This is an older piece. A attempt to create a modern Trailer kind of feel. Definetly needs a bit more variation and a middle part.
Groove Metal Track - And finally the most game/modding unrelated one. A metal track I'm currently working on.
Feedback would be appreciated.
If it might be of interest I can provide some more information what I used to make these tracks.
I'm also open to answering quetions in regards to how to create music or where to start or even music theory.
What I'm doing is increasing the time the unit needs to turn. The "Make Unit Face ..." Action allows you to set the time the rotational movement should take. Since Map Script has 0.0125 game time seconds between each tick, you need to time it to this. The actual rotation is then handled at a much higher speed.
If you are updating the Rotation at a slower interval, use that time. If it isn't smooth enough increase the time. The units rotation will be lagging behind the camera's rotation. You will have to find a good balance. The trick is to have the unit still rotating or stopping when the next rotation is passed to the unit. If the unit finishes it's movement before that it will stop for a short moment.
Yes you will need a new unit. Preferably a completely new unit type to keep things clean. And yes you will have two units for each player in the game. Don't forget to make the helper invincible and remove collision.
Create a new Camera in the Data Editor. And Remove the Zoom states and change the bounds for pitch to something that makes more sense in a shooter.
Then look for parameters that are related to Target Smoothing. These are the ones you need to change in order to decrease the amound your camera lags behind while following. The faster you unit can move the faster your camera's acceleration needs to be.
In the Map Initialization Trigger add the necessary methods to create a helper for each TPS player. And store it in a variable to have access to it later. Then change the unit that is being followed to the helper unit. You also should change the Camera Data that is used to the new one you created. You'll find the method if you look for it. (hint: use the search bar and look for camera data)
in Move Player unit you can need a Move Unit (Instantly) Method at the end, that moves the helper unit to it's destination. Enabling Blend would be recommended, but is not necessary if the Camera's Target Smoothing is set up correctly. Try to find something that suits your needs, it's different depending on how you want it to be.
While you're at it. Decrease the timer from 0.04 seconds to 0.0125 seconds. To further optimize, precalculate the Move Direction when the buttons are pressed or released and store it. This way you can simplify the Periodic Trigger significantly.
Same with the Rotate Camera Trigger. Change the Event to "Camera Moves". This way it only fires when a player acutally moves the camera rather than firing each Tick.
The smoothest way is to use an invisible helper unit, with a camera that follows that unit. The Camera needs to be set up via Data in order to decrease the movement smoothing with the "Follow Unit Group" function.
The Helper unit then just needs to be positioned at the right location in each Tick. Move (smooth) would be sufficient for that.
This is what I did here:
Something to avoid is placing the camera via Trigger in each Tick because you'll position every 1/16th of a second, which means it won't look good. Most functions that handle stuff natively like follow unit group often work at a higher rate.
In order to keep the movement of the camera smooth enough you'll have to mess with the smoothing parameters inside the Camera Data to find the optimal between smooth movement and tightness.
Project Vector also does it like that as far as I can remember.
0
@sandround: Go
I don't know what exactly you mean, but most of those Engines do support Online multiplayer. (Programming with that in mind can be pretty stressfull though, optimizing netcode even more) If you mean the online Subsystem (Battle.Net, Steamworks, etc). You can expect steam support from them. So advertizing open games to the Steam Master Server is possible. Unreal Engine 4 makes it also possible for you to implement your own, because you have full source code access.
I also moved to UDK and now to Unreal Engine 4. Creating Assets is the biggest problem though, but Unreal Engine 4 has enough for me to work on a prototype. I'm also able to make my own 3d Models and animations. On top of that I'm working together with Gorandor (Xaragoth), who is also able to make assets. We'll need one or two additional artists though if we enter a phase where we need more polish.
0
Key Bindings
To bind keys to actions you need to go into the KeyBindings UserType inside the Data Editor and add a new instance. Each instance has the following Properties:
The triggers that are created during runtime will be stored inside the global DataTable and can be accessed with the String Player[PLAYERNUM].Key[ACTIONID]
Weapon Setup
TODO
0
Since I've moved on to Unreal Engine 4 ( if you are interested) I have decided to upload my work here so some of you can use it or learn from it.
So I present you my shooter system. This one is probably quite advanced in terms of functionality, since I've tried to really add some features that are not really standard to SC2. It also includes a modified version of the SC2 Spectre that has additional animations for strafing, reloading, etc. Some of them are additive, so they can be used on a seperate layer to the main animation (i.e. Reloading, so you can reload while walking). And a Ragdoll death version of the Spectre that still keeps it's team color when dying.
Before you ask: There is no form of Network delay compensation included. But it offers enough flexbility to include your own. Ahli had some nice ideas about that, by saving the last X positions of each unit and using them when tracing the shot.
Features:
Main Mod:
The Mod is mostly done in GUI, because I wanted people to easily understand it. There is some galaxy here and there though, especially for math, but it shouldn't be a big problem to understand even if you don't know galaxy. Further Documentation will come in the posts below.
The other Mod SCT.SC2Mod is a example how to set up a UI for this mod. The Map that is included shows how to set up a Map using this Mod.
Note that this mod was not really intended to release in this state. But since I'm not working on it anymore I thought that I should share it.
Links: Download
0
It only works with Models that are set up for that. If you want to know more, look into the art tools documentation. There should be a example to how to set up a Turret Behavior in 3ds Max.
So in short. It won't work on most normal units, unless you edit them in 3ds max to make them work.
The function is left over from the time, when cinematics had to be triggered. The WoL Campaign also has traces that they tried to trigger a lot of cinematics untill they moved to making them entirely in 3ds max and then create cutscene files in the old previewer.
0
I am using Reaper as my DAW. Most Virtual Instruments I use need Kontakt as a Sampler. Then I'm using a Native Instruments Komplete Audio 6 as a interface for recording DI's or capturing MIDI. Also I have a Ipad Mini with Touch OSC to control my DAW or the virtual instruments when I'm sitting at my stage piano that I use as a Midi Master Keyboard.
I usually capture guitars/bass as DI and then simulate the complete effects chain, amp and cab. I also have a real amp, but I'm only using it when I'm jamming with friends.
Real Instruments:
Ibanez RG 370 DX (heavily modded by me) w/ D-Sonic/D-Activator X
Ibanez S 7-String guitar w/ D-Activators
Cort Acoustic guitar
Ibanez BTB 5-String Bass
Casio CDP 100
Virtual Instruments:
Percussion:
Strings:
Brass:
Piano:
Choir:
Other:
Effects wise I'm using the stuff from Variety of Sound and what comes with Reaper (they don't look fancy but work really well). I also got some freebies for christmas from NI. Sometimes I script effects myself if I need something very specific, but simple.
So yeah ... I actually spent quite some money over the years. You can often find good deals for them though at black friday or around christmas.
Other than that I had 8 or 9 years of piano lessons in classic and jazz. And I've been playing the guitar for 5 years.
0
Yes I do.
I have some challenges/goals I have set for myself. The first one would be to do another "epic" orchestral piece, but without the mistakes I made with ready for battle. I want to use a scale with a bit more harmonic tension and I want to try to work on my chord progression. I'd also like to make it a bit more fast paced.
0
Thank you for the positive comments.
@Argutaris: Go
Modern Trailer - yes
Ready for Battle - Currently no.
0
As far as the Tube Screamer goes, you can also try other distortion/overdrive plugins. There should be a lot. Also Guitar Amp/Effect Simulators can work well too, since they try to give you the kind of distortion vacuum tubes create. Also some Saturation plugins could bring out the needed harmonics, but they are harder to control since you need to hit their sweet spot.
It also seems to me that the linked overmind sound might be double tracked, but it could also be just the same voice underlayed with different settings or just the delayed voice.
0
from what i can hear, I think you need to low pass the dry voice a bit, it also sounds a bit like there is some slight overdrive/distortion on there. Also there is another effect that I heard somewhere, but i can't recall if I had that.
I wasn't able to replicate it, but here is my try: Overmind 1 Overmind 2
It's still a bit closer I think. Maybe it will help you get to where you want.
I created a lowpass at 3.3 kHz then I added a TubeScreamer (TSE 808 2.0) with a bit of drive and tone set to a rather low setting. With the TubeScreamer I artificially add the harmonics I cut with the EQ. In the second one I added a Delay (Nasty DLA) I set the feedback somewhere around 12o'clock and the time to 60-80ms. Then adjusted the wet signals level until it wasn't too muddy.
These are all free vst plugins. TSE 808 - http://www.theserinaexperiment.net/software.html Nasty DLA - http://varietyofsound.wordpress.com/downloads/
0
sounds like the increments of your Camera Data aren't set up properly.
Go to the camera you are using in the Data Editor. There you can find the fields Rotation Increment and Perspective Increment. They control the increment for those values for the script. Smaller values tend to create more networking load, since they need to be updated more frequently for all other players, so don't overdo it.
0
I've been getting a bit more serious about composing and I think I've reached a point were I can show some of my stuff. So here it is:
Ready For Battle - My most recent track and my first attempt at Orchestration.
Modern Trailer Test - This is an older piece. A attempt to create a modern Trailer kind of feel. Definetly needs a bit more variation and a middle part.
Groove Metal Track - And finally the most game/modding unrelated one. A metal track I'm currently working on.
Feedback would be appreciated.
If it might be of interest I can provide some more information what I used to make these tracks. I'm also open to answering quetions in regards to how to create music or where to start or even music theory.
0
What I'm doing is increasing the time the unit needs to turn. The "Make Unit Face ..." Action allows you to set the time the rotational movement should take. Since Map Script has 0.0125 game time seconds between each tick, you need to time it to this. The actual rotation is then handled at a much higher speed.
If you are updating the Rotation at a slower interval, use that time. If it isn't smooth enough increase the time. The units rotation will be lagging behind the camera's rotation. You will have to find a good balance. The trick is to have the unit still rotating or stopping when the next rotation is passed to the unit. If the unit finishes it's movement before that it will stop for a short moment.
0
@StarGazingContinuum: Go
Yes you will need a new unit. Preferably a completely new unit type to keep things clean. And yes you will have two units for each player in the game. Don't forget to make the helper invincible and remove collision.
Create a new Camera in the Data Editor. And Remove the Zoom states and change the bounds for pitch to something that makes more sense in a shooter. Then look for parameters that are related to Target Smoothing. These are the ones you need to change in order to decrease the amound your camera lags behind while following. The faster you unit can move the faster your camera's acceleration needs to be.
In the Map Initialization Trigger add the necessary methods to create a helper for each TPS player. And store it in a variable to have access to it later. Then change the unit that is being followed to the helper unit. You also should change the Camera Data that is used to the new one you created. You'll find the method if you look for it. (hint: use the search bar and look for camera data)
in Move Player unit you can need a Move Unit (Instantly) Method at the end, that moves the helper unit to it's destination. Enabling Blend would be recommended, but is not necessary if the Camera's Target Smoothing is set up correctly. Try to find something that suits your needs, it's different depending on how you want it to be.
While you're at it. Decrease the timer from 0.04 seconds to 0.0125 seconds. To further optimize, precalculate the Move Direction when the buttons are pressed or released and store it. This way you can simplify the Periodic Trigger significantly.
Same with the Rotate Camera Trigger. Change the Event to "Camera Moves". This way it only fires when a player acutally moves the camera rather than firing each Tick.
0
The smoothest way is to use an invisible helper unit, with a camera that follows that unit. The Camera needs to be set up via Data in order to decrease the movement smoothing with the "Follow Unit Group" function.
The Helper unit then just needs to be positioned at the right location in each Tick. Move (smooth) would be sufficient for that.
This is what I did here:
Something to avoid is placing the camera via Trigger in each Tick because you'll position every 1/16th of a second, which means it won't look good. Most functions that handle stuff natively like follow unit group often work at a higher rate. In order to keep the movement of the camera smooth enough you'll have to mess with the smoothing parameters inside the Camera Data to find the optimal between smooth movement and tightness.
Project Vector also does it like that as far as I can remember.
0
set the map name to "Test_Map" without the file-extention