Jump to content
  • Advertisement
Sign in to follow this  
Tizios

So I want to make a game making tool but...

This topic is 697 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm new, nice to meet you all.

I'm seeking advice for this one idea I had in mind. Actually, I don't know where to start.

Some days ago I started to think on making a tool that would allow a user to create a Trading Card Game (and later Board Games). But unlike all other programs available, I want it to follow independently the game rules. And then allow to set up an A.I. to play against the player. Long story short, a sort of RPG Maker for CCGs. I know that even to set up the structure and cover all the possibilities is going to be a very difficult task, but if I wanted to start making a tool like this, where should I begin? Making a game engine from scratch is too far from my reach (I'm poor at coding, I can always improve but well... that could mean several more years of work even if I became good at it), so are there any "shortcuts" to develop this project? Any advice you could give is gold for me.

Share this post


Link to post
Share on other sites
Advertisement

Hi Tizios, welcome!

There are similar programs like vassal. Maybe you could look into it, before deciding to undertake a huge project. I'm saying it is huge, because frankly for a software like this you are going to need to do some serious programming and I don't think there are real "shortcuts" (usually this never is the case regarding the realization of a demanding project and not a good mindset).

First and foremost, you need to create a shell. By a shell I mean an engine, which has all the capabilities of running a game like your target (in your case a CCG or a board game), like drawing cards, managing players and turns, and executing game rules and this shell has to be fully data-driven (and preferably script-able) tailored to the games you are trying to build with it. This way you can create a stand-alone game by packaging up the rules, content and scripts with this shell.

The other aspect is the editor which provides a friendly user interface for editing the various rules and scripts of the game and helps to import user-define content (e.g.: card graphics) and allows to package & publish the game project as a stand-alone application.

That is the core of these kinds of game making applications, and they are not an easy task. Of course the effort heavily depends on the scope you are trying to achieve! You could cut down on features by not supporting too much or "too" customizable rules (e.g.: no scripting, or some pre-defined CCG rules can not be changed), or maybe you could build-it on top of existing frameworks or engines as an extension/library/plugin, but still it is going to require some serious programming to pull it off. If you just want to dive in and try it out to get a sense for the scope/size you could build it as a Unity3D plugin (unity allows extending it's editor) as a proof-of-concept.

Vassal as an example pre-defines a lot of existing pieces of data and logic, like: pieces (sort of like tokens or cards with possible actions and rules), boards with various shapes as tiles (rectangular like in chess or hexagonal like in settlers of catan), counters (like mana in a CCG or money in monopoly) and pre-built actions and rules for these components (what and where can be put on a board, configurable events which modify counters etc...). If these built-in features are not enough to build XY game in it, vassal has a "script" interface and plugins in the java programming language can be written to further customize rules and events in your vassal "module" (a.k.a. board game running on top and made using vassal).

I hope, I did not discourage you. My intentions were to draw your attention to the difficulties of this project before you jump into it!
Br.

Share this post


Link to post
Share on other sites

so are there any "shortcuts" to develop this project?

No.

 

If short shortcuts existed, then obviously everybody would not take the long and complicated route they follow now.

 

In other words, current practice is the most optimal route that we know.

 

 

I wanted to start making a tool like this, where should I begin?

Do you have programming experience? If not, that's the first step. Use the programming language you know, or pick one (I tend to suggest Python, but C# or Java work too.) and start coding.

 

 

Before you can make a tool like you want, you have to understand what it should do. Not at high level, like "a trading card game" with a lot of magic wand waving of implied functionality, but at actual code level with concrete functions that the user can call for his game.

Chances are you have no idea what that means, so that's the next step to work on.

 

Surprisingly, the best way to work on that is by making the games that your tool should produce. Make a dozen or so trading card games, each one as different from the others as possible. Different tactics, different game mechanics, different everything.

The idea is that you explore the solution space. What kind of problems have to be solved in games like this? What tools does a designer of a card game need or use to make his game?

 

Once you have made several games, you will start to see patterns. A simple pattern is the concept of a card collection. Every single game has it, so it's a problem that each game must solve. That is thus something your tool may need to provide. You get a list of things that can be useful for your tool.

 

Once you think the list is reasonable complete (a very hard decision to make), take the list, and decide what things should be delivered by your tool. Also, decide the functionality of each thing. A card collection is one, but does it have a size? Can I have different cards in the same collection with different size? Can cards be added or removed from the collection during play? Can you merge or split collections? etc etc.

Likely, some things are mostly unique to a few games, and should not be added to the tool. The other way around happens too. If you look at the things you want to be delivered by your tool, are there glaring gaps somewhere, can you think of a game that you want to make, but your tool would not deliver enough functionality for it?

 

The next job is to actually write a program that delivers the things of the list along with the functionality that you think is needed. For a card collection, the output could be a YAML or XML file with descriptions of all the cards. The program must produce that file. what do you need to enter in the program as designer, to achieve that?

Likely it needs something called "card collection editor", where a designer can enter and edit his cards, change sizes and design, enter what each card does, perhaps run some stochastic checks to check balance between game card combinations, etc.

 

Once you did that, you have version 1 of the tool.

 

Next, test it. By yourself first. Make all the previous games again, but in the tool now. Does that work? what is missing? what can be improved? etc etc.

Likely you conclude improvements are recommended, and you improve the tool, and try again.

 

Once you're happy with the tool, give it to others. Quite likely, they will hate it, and give you a lot of feedback of how things should work, and improved. More improvements on the tool to do, and try again yourself, and others.

 

 

When others also think it's a useful tool, it's mission accomplished!

One tool for making trading card games.

 

 

 

 

As you can see, a quite lengthy path. You may never get anywhere near the end. Other options are to make trading card games, and try to re-use code and work processes with each new game. In that case there is not a formal thing that is called "tool", you'd have a library of common code, and a way of working, that you could call "tool" too, except it's a more personal tool.

If this works for you, you never reach the point of being able to give someone "a tool". It's your decision whether or not that is a bad thing.

 

Anyway, whatever you decide, since in this forum, the subject is programming, I'd recommend you start with the first step, learn programming.

If designing games is more attractive to you instead, the "design" forum is a better place to ask questions.

Share this post


Link to post
Share on other sites

I'm new, nice to meet you all.

I'm seeking advice for this one idea I had in mind. Actually, I don't know where to start.

Some days ago I started to think on making a tool that would allow a user to create a Trading Card Game (and later Board Games). But unlike all other programs available, I want it to follow independently the game rules. And then allow to set up an A.I. to play against the player. Long story short, a sort of RPG Maker for CCGs. I know that even to set up the structure and cover all the possibilities is going to be a very difficult task, but if I wanted to start making a tool like this, where should I begin? Making a game engine from scratch is too far from my reach (I'm poor at coding, I can always improve but well... that could mean several more years of work even if I became good at it), so are there any "shortcuts" to develop this project? Any advice you could give is gold for me.

In addition to getting better at coding, another important question is simply:

Have you made any games like what you want your engine to be specialized towards?

 

I would argue that unless you have made several trading card/board games, you will not know enough about the implementation details of those types of games to be able to create a more general solution.

Share this post


Link to post
Share on other sites

I'm really grateful to all of you for your answers, and especially your time. I'm setting aside the board game part for now, in a second time I'll see if the work I'm doing is compatible with it.

As for card games, I know firsthand how different and creative their rules could be, since I played several of them... the challenge is to have a very open minded structure. What if I took for granted for example that players must have resources in order to play cards? Or never imagined that players could play effects of cards in their opponents side of the field? What if players are playing tag together in some other game? And I could go on forever. Making some card games first like you said could be great practice, also looking into Vassal as well could be interesting (I knew of it, but I only studied LackeyCCG until now).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!