Asset - Project Full Featured RTS

P

PixHil Entertainment

Guest
Hello all,

So far I've been developing features for an RTS (real time strategy) using pure GML with no extensions or tutorials. I believe I'm filling a gap in the GM marketplace as there are bits and pieces but nothing to the extent I wanted. All art, sounds and scripts will be available when it comes time to publish.

A little about me, I'm currently a full-time Software Engineer with a Bachelors of Computer Science and a minor in game development. I love building software and games for other people and believe Game Maker is a great way to express my passion.

So basically, I would like to ask the community what features they would love to see in an ambitious project like this. I have plenty of ideas but I'd rather target the community directly. As GML is a notoriously 'flexible' language prone to being unmaintainable for bigger projects, I've developed a maintainable and reusable set of GML guidelines I'll be following throughout the project to prevent 'spaghetti code' and also break down each section into modules which can be easily extracted for any project, not just the RTS genre.

Thus far, I have completed the following:
  • Finite State Machine
  • Comprehensive Multi-Selection
  • Advanced Path Finding algorithms
  • Basic 'Worker' AI
  • Multiple resources and automated gathering
  • In-depth Fog of War (Different resolutions for better performance)
  • Unit and Building definitions
  • Basic 'flocking' and unit separation algorithms
  • Debugging visuals
In the future:
  • Multiple team definitions
  • Full-functioning Enemy and ally AI
  • Unit way-point paths
  • Multiple units (warrior, archer, mage? priest)
  • Hero Unit (basic RPG elements)
  • Various buildings
  • More maps
  • Detailed Art and animation
  • In-depth setting and map selection
  • Mini-map
In the distant future:
  • Multiplayer
  • Customisable units
If anyone has anything else they would like to see on this list please feel free to leave a suggestion.
I would also like to know what people would pay for a project like this? I was thinking when it's done listing it for around $9.99 if that's reasonable?

The screenshot is a very early alpha without art.

EDIT:

Hey guys here is a quick update video I created real quick to show off some new features. It's extremely early alpha so the art isn't quite there yet.


UPDATE:

Hey guys, just a quick update.

Group forming and movement has been basically implemented, few minor issues with obstacle avoidance you could probably notice in the video.

Another major breakthrough is the dynamic shadow system which in my opinion really makes the map pop a little more.

later a day/night system will be implemented similar to the one in Warcraft 3.

Future plans are to make a larger map, camera panning, minimap and soon to have a scene building tool (map editor) because GMS2 lacks some features I want to make map creation simpler and prettier as some things need to be solved at runtime.

Anyway, progress is smooth. I'm still working full time and I have two side projects including this one so I can only make changes so quickly.

Thanks for the support!


Cheers,
Blake
 

Attachments

Last edited by a moderator:
P

PixHil Entertainment

Guest
Alright awesome.

As a general question: which features are you most interested in.

This will allow me to focus more on features you guys care about rather than wasting effort making other things really detailed.
 

Smiechu

Member
It would be reasonable to develop your engine the same way the RTS genre evolved.
Get your engine first to a point where fully functional Dune 2 and/or Warcraft clones could be made - release it as Beta for tests, and when you have a stable basis then add successively more advanced features.

Save/load system would be also a nice thing to have.
 
P

PixHil Entertainment

Guest
It would be reasonable to develop your engine the same way the RTS genre evolved.
Get your engine first to a point where fully functional Dune 2 and/or Warcraft clones could be made - release it as Beta for tests, and when you have a stable basis then add successively more advanced features.

Save/load system would be also a nice thing to have.
Love your suggestion for Beta testing. When I get to a state I'm happy with I'll choose a few to test.

As for the save/load system, that's a great suggestion that completely slipped my mind
 
P

PixHil Entertainment

Guest
I added some art and a video of a really early alpha build
 
M

Mionad

Guest
Looks great. An upgrade of what I was working on here on the marketplace on another account but I deleted it from the marketplace. Well, I did get two sales. But I seperated it to different feature packs for different prices. I put it up pretty cheap, but you are now miles ahead of me and I am not planning on working on that template further. Interesting to see someone doing the same that I did but further inside the development stage.
 
P

PixHil Entertainment

Guest
Looks great. An upgrade of what I was working on here on the marketplace on another account but I deleted it from the marketplace. Well, I did get two sales. But I seperated it to different feature packs for different prices. I put it up pretty cheap, but you are now miles ahead of me and I am not planning on working on that template further. Interesting to see someone doing the same that I did but further inside the development stage.
It has not been without it's challenges I can assure you haha

I'm currently working on group formations. Probably one of the toughest challenges with not a lot of material aside from a few scholar articles.
 
P

PixHil Entertainment

Guest
Group formations and path finding for groups and also for individual units that doesnt require a lot of CPU. That is the part that is the biggest problem to me.
You're not wrong there, calculating a path for individual units is very GPU intensive. I've been working on a global solution for finding paths.

Instead of each unit calculating a path, a global object assigns a space for each unit and allocates a path.

Biggest issue I'm having is finding the best position for each unit when forming to avoid the least amount of collisions.

When I've got the group forming, collisions and moving finalised, I'll add some more art and post another video. :)
 

TGHoly

Member
What about small scale rts/bs hybrid like C&c: rivals? it didn't seem to require much calculation for path fiding meanwhile it still keep many element from traditional rts such as base building,fog of war , resource gatering and suite for small team project personally I think those game has really smart design even it got PR disaster and did you have artist for the game yet?
 

BG Games

Member
Hello! Great project, I'm also busy developing an rts engine right now. Regarding the search for the path, for example in the same warcraft 1, the algorithm of the right / left hand was used, in red alert, in principle, the same thing, it works for a large number of units. What I would like to see: 1) the classic rts engine (warcraft, c & c, kknd, dark colony, etc.) All of them are united by the movement of units along the grid of paths, tile maps, well, you yourself know. 2) as we know in warcraft 1,2 units, at a certain moment the time can be in one state, i.e. either shoot or move, in c & c the same unit, for example, a tank can move and attack, the tank tower attacks enemy units on the move
 

BG Games

Member
In my opinion, $ 10 is very little for a full-fledged rts engine which may well be this promising project, having realized almost all the basic functions, all that remains is to add syudet and graphics, rts is a complex genre, there are so few good game-maker games in principle I know only two ("dark hive" and "pillage and plunder"), apparently due to the fact that the genre is complex and there are no more worthy projects
 
P

PixHil Entertainment

Guest
What about small scale rts/bs hybrid like C&c: rivals? it didn't seem to require much calculation for path fiding meanwhile it still keep many element from traditional rts such as base building,fog of war , resource gatering and suite for small team project personally I think those game has really smart design even it got PR disaster and did you have artist for the game yet?
I love the idea of creating a simple project. Honestly it's overwhelming working on a big project such at the one I have undertaken. I don't see this being release in the near future however progress is still being made!
 
P

PixHil Entertainment

Guest
In my opinion, $ 10 is very little for a full-fledged rts engine which may well be this promising project, having realized almost all the basic functions, all that remains is to add syudet and graphics, rts is a complex genre, there are so few good game-maker games in principle I know only two ("dark hive" and "pillage and plunder"), apparently due to the fact that the genre is complex and there are no more worthy projects
Sounds like you've been busy yourself. RTS is probably one of the hardest projects, especially in Gamemaker Studio. I'm leaning more towards Warcraft 3 and Age of Empires 2 as a sort of general idea. I like the hero mechanics and magic aspect of WC3 - yet I like the group formation and realism of AOE2 so we'll see what happens.

Group formation has been solved I'm working on a basic shadow casting and i've found some useful examples i'll have a look at incorporating. I've also found a nice way of outlining units when behind structures using shaders and surfaces which is a nice addition.

I've been a little distracted with a side product i've also been developing. It's helpful for the RTS project because a lot of the stuff moves across such as a UI implementation and so on.
The side project is focused on a randomly generated 'galaxy' which is very cool and challenging at the same time.

Here is the vid if you're interested:
 

BG Games

Member
Handling collisions with a large number of objects in Game Maker is probably possible if you implement it by splitting the space into squares that look something like quadtree and bsp. Yes, a great idea to combine WC3 with AOE2! Are you planning to move units with reference to the center of the tile or free movement? But what about the movement of vehicle?
In the video, my old project
 
Last edited:
P

PixHil Entertainment

Guest
Handling collisions with a large number of objects in Game Maker is probably possible if you implement it by splitting the space into squares that look something like quadtree and bsp. Yes, a great idea to combine WC3 with AOE2! Are you planning to move units with reference to the center of the tile or free movement? But what about the movement of technology?
In the video, my old project

Ah it's sort of a mix, don't know how to explain it. My method uses a grid to plan the path and the 'group object' roughly follows it maintinng a grid shape.

I'll show you all soon
 

gmx0

Member
Definitely interested in this. I have an full featured RTS asset in Marketplace myself, but that is actually an old/stripped down version of what I have currently that is a decade old. Pathfinding is still a challenge.
 
P

PixHil Entertainment

Guest
Definitely interested in this. I have an full featured RTS asset in Marketplace myself, but that is actually an old/stripped down version of what I have currently that is a decade old. Pathfinding is still a challenge.
Pathfinding especially group pathfinding is a horribly complex problem. my current system isn't perfect but it's working at the moment so i'm happy! Combat looks like it'll be a breeze in comparison :D
 

BG Games

Member
What do you use to determine the overview of your units, the cycle of filling the array around the circle, or simply compare each cell point_distance with the coordinates of the unit?
 
P

PixHil Entertainment

Guest
What do you use to determine the overview of your units, the cycle of filling the array around the circle, or simply compare each cell point_distance with the coordinates of the unit?
I'm not sure I fully understand the question. I assume you're talking about how I position each unit in a group?

In that case it's determined by an offset calculated by the size of the group.

The group is basically a pseudo object with a width and height with a not so simple algorithm given to each unit as a position.

The position of each unit when moving is calculated the same but for each point along a path. So the group moves along a path and sets the points the units should move along. If that makes much sense.

It's better to see the code rather then explain. But this method is subject to change as the project grows.
 

BG Games

Member
I am sorry for my English! I meant the field of view algorithm used to retrieve the visible cells of a war of a unit. You use a brezenham circle algorithm or simply compare the cells with the position of the unit and if the distance> unitSightRange cell is invisible ... I am now at the stage of finding a solution to this issue, since I plan to search for the enemy through a round-up view, meaning the unit standing in the idle mode scans the ds_grid in a circle and if the cell has an enemy unit id, then it is the closest enemy, so there is no need in the point_distanse check, since the ds_grid scan spirals the beginning of which lies in the x, y cell of the unit. The problem is that I either can not implement this algorithm
 
P

PixHil Entertainment

Guest
I am sorry for my English! I meant the field of view algorithm used to retrieve the visible cells of a war of a unit. You use a brezenham circle algorithm or simply compare the cells with the position of the unit and if the distance> unitSightRange cell is invisible ... I am now at the stage of finding a solution to this issue, since I plan to search for the enemy through a round-up view, meaning the unit standing in the idle mode scans the ds_grid in a circle and if the cell has an enemy unit id, then it is the closest enemy, so there is no need in the point_distanse check, since the ds_grid scan spirals the beginning of which lies in the x, y cell of the unit. The problem is that I either can not implement this algorithm

That's okay I'll answer the question as best I can.

It sounds to me like you're over complicating the solution. In terms of a fog of war, I simply using a point distance for each fog cell to any player unit definition.

In terms of an enemy distance, I used instance_nearest and point_distance based on if the unit is visible inside the fog of war. Otherwise the unit is simply not visible and likewise to the player unit, they won't be able to see each other so no action needs to be taken.

I haven't researched a Brezenham circle although I can guess how it works. In my opinion save your ds_grid for path finding and don't use too many of them as they suck a lot of performance.
 

mtski

Member
Just wondering if this thread was still active. I have been looking into trying to get an engine going myself.
 
Top