A tool for creating strategy games

Discussion in 'Game Design' started by Ryan1729, Aug 25, 2016.

  1. Ryan1729

    Ryan1729 Well-Known Member

    I've decided I want to write a software tool that people can use to make strategy video games.

    The seed of this idea happened in the Design and build a game right here? thread, but
    I was recently reminded of it by the Grow tread and while writing my post in the Your Life in Videogames thread. In the Grow tread I remarked that some games are likely the way they are because they were made in Adobe Flash. In the Your Life in Videogames thread I wrote about playing games made with Adventure Game Studio and RPG Maker. I realized that the existence of those two programs have lead to the creation of 1000s of Point and click adventure games and RPGs respectively. And that's not counting the knock-on effect of people who made similar games using another method because they liked games made with these systems.

    If I want more strategy games to exist, then making a tool that helps people create them seems like a good use of my time.

    I'm posting this here because I want some ideas about what things this tool should make easy in order to encourage strategy games and not just puzzles, and because if I'm making a tool to make strategy games I'll need people who are or would like to make strategy games, to test it on, and finally, because if I tell other people about it I'm more likely to create something more than a list of ideas.

    Examples of other editors:
    • Lunar Magic, a tool for modifying the Super Mario World SNES ROM. Have a look at this list of rom hacks, (as they're called) most if not all of which would not exist without Lunar Magic.
    • PuzzleScript, this is probably the closest thing to what I want to make for a couple reasons: HTML5 runs as close to everywhere as anything ever has. PuzzleScript itself is very simple and clearly influences the way the games in it are made, which is the main point of this project.

    Edit: I started working on this. Demo. Source code.
    Last edited: Sep 12, 2016
    donderper, -Y-, Eji1700 and 4 others like this.
  2. Redless

    Redless Well-Known Member

    Very important: make it easy to randomly generate stuff. In my exp. this is one of the bafflingest things to set up in like unity for example. Most game-making-stuff is just not equipped to support random generation, and it's crucial that yours does.

    Another important thing: you have to do very little in the frame of making things that work in "real time" since that's not something strategy games should do. Though timers seems useful.
    keithburgun and Ryan1729 like this.
  3. Ryan1729

    Ryan1729 Well-Known Member

    Can you give an example of how you would like the random generation interface to work, in a perfect world?
    Last edited: Aug 25, 2016
  4. Kdansky

    Kdansky Well-Known Member


    Unity insists that I start with a level, where I put my doodads. Not doing that is a major hurdle, as @Redless points out. But we usually don't want that. We want the engine to ask us for a level generator. From there it's fairly straight-forward: Use different generators for different game types (easy example: A file-loader to load a static level). A generator should produce a generic "world", which should be the equivalent of a full game session (promoting short games). It could be sub-grouped in stages, which you can jump in between (if you for example want a rogue-like with stairs).

    I find it relevant that the game should offer relatively high-quality "menus". Think of Dwarf Fortress or a Hearthstone, where most of your inputs are in reality "menu entries".

    A way to plug in an AI instead of a player can be very useful.
    Ryan1729 likes this.
  5. Toad_Racer

    Toad_Racer Well-Known Member

    Quick idea before class, but you could make it support hex grids really well.
  6. Toad_Racer

    Toad_Racer Well-Known Member

    Also, tile based gameplay and movement in general.
    Senator likes this.
  7. BrickRoadDX

    BrickRoadDX Well-Known Member

    Options to create and track "resources" would be great (VPs, Wood, Vespene Gas, whatever)
    Ryan1729 likes this.
  8. Toad_Racer

    Toad_Racer Well-Known Member

    Along these lines, restricting the use of continuous space could go a long way towards pushing users of this tool to make strategy games. Perhaps you could make it so that the user only ever deals with x,y screen positions when placing grids/tiles/nodes and then from then on can only place things on, or move things to existing tiles/nodes. If they want things to slide between nodes then perhaps that could be done by setting a flag in a movement function call or something.
    Ryan1729 likes this.
  9. RyanRothweiler

    RyanRothweiler Well-Known Member

    I think the key here is to recognize the difference between designing a game and programming software that just happens to be a game. All 'game' making tools today are really just software / programming tools. They're terrible for iterating on game designs.
    I think a strategy game designer tool is something closer to excel than it is to unity. A proper strategy game design tool shouldn't even require programming knowledge imo.
    Kdansky and Ryan1729 like this.
  10. hamvvar

    hamvvar Active Member

    This sounds super useful! Make sure we can have double blind and simultaneous action selection.
    Ryan1729 likes this.
  11. Akkete

    Akkete Member

    Normally when I read about a game's random generator, they explain a process (something like: "first create 6 rooms in random positions, then connect the rooms, then determine which room is furthest from the start point, then..." ). I think it's better if we can just focus on the end result like in the above example. So instead of defining a process we should just have to define the possible results.

    Also 100% agree that time should be measured in turns and space in tiles.
    Ryan1729 likes this.
  12. GSGBen

    GSGBen Well-Known Member

    This. You'd be better off creating this as a wrapper over an existing engine. Acting as the interface between the designer's mind and the programmer's tools.
  13. Ryan1729

    Ryan1729 Well-Known Member

    Lots of great suggestions! I think it will be important to avoid scope creep in this project. So, at least at the start I'm going to try and focus on things that are absolutely necessary. I'd rather have something that makes it easy to make only a particular sub-genre of strategy games than something that you can do anything with but it's a chore, (we already have plenty of examples of that!)

    That's an interesting idea, making a random generator the default, and making implementing a constant "generator" extra work. I like how it nudges the user towards procedural generation.

    I'm of two minds about this, one the one hand I can imagine people wanting good menus, on the other hand I'm not sure I want to encourage games that have layers upon layers of sub-menus. Having a good way to select from several options seems sensible though.

    I've seen stuff like this in use before and I agree it's useful.

    I like this restriction. It also has the nice benefit of making things easier to implement! In fact, at least at the start I might even restrict what kinds of grids can be created to some small amount of presets. I obviously have to support hexes though.

    I definitely want to try and make this accessible to non-programmers. Hopefully keeping the range of things you can do limited will help with that.

    This is another place where I think a small set of presets might be the best thing to make at the start. For example, writing a function that generates a two-colour map where (x1,y1) is reachable from (x2, y2) seems a lot easier than implementing a system where users can define that constraint themselves!

    Given that part of my premise with this project is that tools influence what is created with them, I don't think trying to wedge this into another non-general purpose tool is a good idea during the experimentation and design phase of the project. That might make more sense to do after what this tool actually is, has been defined a bit better.
    vivafringe, valavir, hamvvar and 2 others like this.
  14. keithburgun

    keithburgun Administrator, Lead Designer Staff Member

    Just want to say, I think this is a phenomenal idea and I would totally help test this and get the word out about it.
    valavir, hamvvar and Ryan1729 like this.
  15. liltiger

    liltiger Member

    This is a great idea and something I've been wishing existed for a while now. I don't have any technical skills to offer in this endeavor, unfortunately, but I agree that it could lead to some great things.

    The tools you mentioned generally take a basic version of the genre/game they're trying to emulate and work to provide to tools to basically just "mod" that title. I think a good first goal would be to pick what that base game vision would be. The tools could expand, but I think just making a "Advanced Wars Maker" (or whatever sort of strategy game wants to be the base template) is a solid start.
  16. vivafringe

    vivafringe Well-Known Member Staff Member

    My biggest feature requests would revolve around the type of game I'd like to personally create:

    - Cards (a deck, hand), that can be played to the board and mouse-overed to read. Stats that can be adjusted on the card.
    - Single player only. If you're not willing to program netcode (and who is, really), then who cares about multiplayer anyway, haha. If you want to support multiplayer then netcode (and the ability for designers to host a server)
    - As others mentioned, a grid of squares (or maybe hexes) that I can randomly populate with two layers (a hex type and then a thing on top of it)
    - Resource tracking, with a place in the UI devoted to tracking it.
    - Some trigger system that somehow wasn't a nightmare, haha.
  17. Eji1700

    Eji1700 Well-Known Member

    I should easily be able to create and modify version of the game of life. A lot of puzzle interactions are based on simple rulesets based on cells and checking surrounding cells and then executing actions based on that data.

    Redless likes this.
  18. liltiger

    liltiger Member

    I would break it out like:

    1. Cards, with a focus on tying them to an event/trigger system. Cards are differentiated from pawns/actors because they typically do not occupy a physical space in the game. In a game like Hearthstone the minions are pawns/actors and things like spells are "cards", even though they all share the form of a card.

    2. Pawn/Actor: Occupies a physical space on the board/grid of squares or hexes. Has easy access to edit its internal resources/properties. Should be tied in to the board/grid so that it's easy to determine when an actor is "occupying" a physical space.

    3. Resource tracking and UI. Tied in to both the card/event system and the pawn/actor system.

    4. The trigger/event system. Main focus would be on relation between cards, actors, and the internal/external resource systems, as well as movement along the board/grid/game space.

    5. Turn system should be solid and easy to edit/implement the variety of possible turn formats. Essentially tied in to the trigger/event system I suppose.
  19. Ryan1729

    Ryan1729 Well-Known Member

    More good ideas!

    But for the first little while I plan to focus on the absolute essentials, which by my reckoning would be tile-based movement with simple pawn-to-pawn interactions. Cards and resources will have to wait until later, but I definitely want to get to those at some point!

    To that end, I hope to have something semi-presentable where you can tweak the generation of a board with some movable pawns on it, fairly soon. Maybe by the end of this weekend, but no promises!
    Erenan, Toad_Racer and liltiger like this.
  20. GSGBen

    GSGBen Well-Known Member

    Probably because it's easier to carve that up into turns and discrete spaces than it is to go in the other direction.

Share This Page