RPGDXThe center of Indie-RPG gaming
Not logged in. [log in] [register]
 
 
Post new topic Reply to topic Goto page 1, 2  Next 
View previous topic - View next topic  
Author Message
Scrim
Mandrake's Little Slap Bitch


Joined: 05 Apr 2007
Posts: 69
Location: Canada

PostPosted: Sat Aug 02, 2008 4:17 am    Post subject: Making games is too hard [quote]

(With apologies to the guy in the other thread.) =)

I haven't been doing much work on game projects for the last few months but lately I have been thinking about what my next project should be. I've only done one RPG, and it was the small one I made for the compo last year. One thing that really surprised me was how much time and effort it took to produce the content (art, maps, dialog, scripted events, etc) and integrate it into the game.

So, I'm looking for advice on how to make that part of game creation go more smoothly. One thing I know would speed up the process is having a really good map editor. The one we used for the competition was a fairly awkward program I hacked together myself. It supported basic placement of tiles in different layers and had an undo stack, but that was about as fancy as it got. Adding combat encounters was a matter of placing a "trigger" on the map and then writing some text by hand to integrate it.

It's obvious to me that this can be improved, and I hope to find/make a better map editor for the next time around. I'm looking for suggestions about what other things I can do to help with "building" the game.

Do you guys have any advice on how to make the content creation and integration process easier?
Back to top  
DeveloperX
202192397


Joined: 04 May 2003
Posts: 1626
Location: Decatur, IL, USA

PostPosted: Sat Aug 02, 2008 6:48 am    Post subject: [quote]

Mappy is good. so is Tile Studio.

I know you use Mac OS, and those are windows programs.
I think that there is a windows emulation layer for a mac somewhere..

I use linux, and use Wine to run all my windows software.
_________________
Principal Software Architect
Rambling Indie Games, LLC

See my professional portfolio
Back to top  
Ninkazu
Demon Hunter


Joined: 08 Aug 2002
Posts: 945
Location: Location:

PostPosted: Sat Aug 02, 2008 6:57 am    Post subject: [quote]

Content creation can get extremely complex if you use some weird binary format you come up with. If you work more with LUA or another scripting language, you can make simple hooks into your engine that will load in content you write into the script.
You can also go the XML route. There are probably a bunch of good XML editors out there for free.

The key is making your engine as open to extensibility as you can make it without introducing complexity. This allows you to make last minute changes or additions without having to rewrite the whole game.

Making maps is really a tricky situation. Tiled allows you to write your own plugins so if you want to add an xml attribute to a tile such as "run this script", it's fairly straightforward. You should take a look.
Back to top  
Scrim
Mandrake's Little Slap Bitch


Joined: 05 Apr 2007
Posts: 69
Location: Canada

PostPosted: Sun Aug 03, 2008 4:22 pm    Post subject: [quote]

Thanks guys. I guess the key, as you guys said, is flexibility, and you really need to plan for it from the start. When I wrote my RPG engine I didn't put much thought into how content integration would work - hence, the difficulties I ran into. Next time I'll make sure scripting support is part of the initial design.

I'll take a look at the map editors you mentioned.
Back to top  
Mattias Gustavsson
Mage


Joined: 10 Nov 2007
Posts: 457
Location: Royal Leamington Spa, UK

PostPosted: Sun Aug 03, 2008 7:50 pm    Post subject: Re: Making games is too hard [quote]

Scrim wrote:
Do you guys have any advice on how to make the content creation and integration process easier?


Some things (like mentioned by the others in this thread) can make it a little bit easier, but there's nothing that can be done to make it a lot easier.

It IS hard, and there's no real way around. It's also the reason so many games are abandoned before they are released... In the end, you just need to buckle down and do it :-)
_________________
www.mattiasgustavsson.com - My blog
www.rivtind.com - My Fantasy world and isometric RPG engine
www.pixieuniversity.com - Software 2D Game Engine
Back to top  
DeveloperX
202192397


Joined: 04 May 2003
Posts: 1626
Location: Decatur, IL, USA

PostPosted: Mon Aug 04, 2008 1:07 am    Post subject: [quote]

well there is _one_ way to make it a lot easier as far as getting the content for your game; and that is to use existing content that is in the public domain. But yeah focus on planning out your game prior to starting writing any code for it and things should go smoother.

Another thing that I like to do is to create test-modules for each feature that I am working on. So lets say that I need to test the player animation system, instead of adding the code for that to my main game code, I just toss together a simple test demo of the animation system and once its all working how I want, then I know that I can integrate it into the main code without too much trouble.

Always build things modular so that you can easily add and remove different components as needed.

Depending on what language you are using (I'm assuming Python since you used that last) this can be a simple trivial task(Python, Ruby, Lua) or complicated (C++)

Think about what makes a game a game, think about what all games have in common, think about what basic elements you need to have for your game, think about how those elements will need to be controlled, and how they interact. All this thinking will help you to create a structure for your game that is easily maintained, easily extended, and if you work it out enough, you might be able to build a system that you can reuse for several games.

Goodluck, and as I said before, if you have any questions regarding Python, Pygame, or any other languages, just let me know and I'd be more than happy to help you out.
_________________
Principal Software Architect
Rambling Indie Games, LLC

See my professional portfolio
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Mon Aug 04, 2008 8:46 am    Post subject: Re: Making games is too hard [quote]

Scrim wrote:

Do you guys have any advice on how to make the content creation and integration process easier?


I'm under the impression that it's often a matter of the right tools. Sometimes of the process. I face the same problems, though - currently I'm looking for a tool to graphically display a dialog tree, and to laod/save that in a format that I can easily convert to/from what my project will use.

But it seems chances to find such a tool are low ...

I really think most problem come down to the lack of tools, or missing interoperability between them.

The big question is, if it makes sense to develop tools by oneself, or of the development time needed for the tools is about what the content creation would need without the tools?

At least if there are tools available, try to find them, and use them.
Back to top  
DeveloperX
202192397


Joined: 04 May 2003
Posts: 1626
Location: Decatur, IL, USA

PostPosted: Mon Aug 04, 2008 1:32 pm    Post subject: Re: Making games is too hard [quote]

Hajo wrote:
I'm looking for a tool to graphically display a dialog tree, and to laod/save that in a format that I can easily convert to/from what my project will use.

But it seems chances to find such a tool are low ...


I'm not sure what you are looking for, but if you give me more details maybe I can create the tool for you, if not locate an existing tool that would do the job.
_________________
Principal Software Architect
Rambling Indie Games, LLC

See my professional portfolio
Back to top  
Verious
Mage


Joined: 06 Jan 2004
Posts: 409
Location: Online

PostPosted: Mon Aug 04, 2008 1:34 pm    Post subject: [quote]

Here's a link to Tiled, the map editor Ninkazu mentioned.

Description of Tiled from the website:

Quote:
Tiled is a general purpose tile map editor. It's built to be easy to use, yet capable of catering to a host of varying game engines, whether your game is an RPG, platformer or Breakout clone. Tiled supports plugins to read and write map formats, in addition to its map format, to support map formats in use by engines. Tiled is free software and is written in Java.


Since Tiled is written in Java, you should have no trouble running it on a Mac.
Back to top  
RedSlash
Mage


Joined: 12 May 2005
Posts: 331

PostPosted: Mon Aug 04, 2008 7:00 pm    Post subject: [quote]

I think the above mentioned tiled was a pretty good one and does run on Mac. Its quite good for general tile based games.
Back to top  
valderman
Mage


Joined: 29 Aug 2002
Posts: 334
Location: Gothenburg, Sweden

PostPosted: Tue Aug 05, 2008 7:35 am    Post subject: Re: Making games is too hard [quote]

DeveloperX wrote:
Hajo wrote:
I'm looking for a tool to graphically display a dialog tree, and to laod/save that in a format that I can easily convert to/from what my project will use.

But it seems chances to find such a tool are low ...


I'm not sure what you are looking for, but if you give me more details maybe I can create the tool for you, if not locate an existing tool that would do the job.
I imagine he's after something that lets you write a dialogue in a fancy GUI and then outputs something like:
Code:
<dialogue>
   <line>Hello there adventurer, welcome to the tavern!</line>
   <line>So what'll it be, a bed, some food, or the latest news?</line>

   <dialogue_choice>
      <choice value="Someplace to sleep">
         <line>A bed it is then! That'll be 10G, please.</line>
         <script>
            player.pay(10)
         </script>
      </choice>

      <choice value="Some food">
         <line>Certainly. Well then, what yould you like?</line>
         <script>
            do_shop("Tom's Bar")
         </script>
      </choice>

      <choice value="What's the word on the street?">
         <pool>
            <pool_item>
               <line>This is a boring town. Nothing ever happens.</line>
            </pool_item>

            <pool_item>
               <line>There is a rumor that people are mysteriously dying from boredom.</line>
               <dialogue_choice>
                  <choice value="That's boring" />
                  <choice value="Interesting, tell me more.">
                     <script>
                        player.start_quest("Boredom Overdose")
                     </script>
                  </choice>
               </dialogue_choice>
            </pool_item>

            <pool_item>
               <line>Bagu is my name. Show my note to river man.</line>
            </pool_item>
         </pool>
      </choice>
   </dialogue_choice>
</dialogue>
At least that's what I came to think of when reading his post.

Having a static dialogue tree like this might result in some difficulties in updating the dialogue as the player completes quests or new rumors become available though, but it looks pretty neat.

EDIT: damn board software, quit touching my XML!
_________________
http://www.weeaboo.se
Back to top  
Rainer Deyke
Demon Hunter


Joined: 05 Jun 2002
Posts: 672

PostPosted: Tue Aug 05, 2008 8:37 am    Post subject: [quote]

That XML looks painful.

Really, what you want isn't a GUI tool but a reasonable scripting language. Writing dialogue in a GUI tool is as painful as coding any other game logic in a GUI tool. Here's what that XML mess would look like in Ren'Py:

Code:

barkeep "Hello there adventurer, welcome to the tavern!"
barkeep "So what'll it be, a bed, some food, or the latest news?"

menu:
  "Someplace to sleep":
    barkeep "A bed it is then! That'll be 10G, please."
    $ player.pay(10)
  "Some food":
    barkeep "Certainly. Well then, what yould you like?"
    $ do_shop("Tom's Bar")
  "What's the word on the street?":
    if rand(3):
      barkeep "This is a boring town. Nothing ever happens."
    elif rand(2):
      barkeep "There is a rumor that people are mysteriously dying from boredom."
      menu:
         "That's boring": pass
         "Interesting, tell me more.":
           $ player.start_quest("Boredom Overdose")
     else:
       barkeep "Bagu is my name. Show my note to river man."


(The 'rand' calls are fudged because I can't recall the right way to to random choices in Ren'Py. Sequential rather than random options are slightly more work. The 'barkeep' identifier identifies which character speaks, and can be omitted. Dynamic menu choices made possible by adding an 'if' clause to the choice. Ren'Py is not actually suitable as a plug-in scripting language. Void where prohibited.)
Back to top  
Mattias Gustavsson
Mage


Joined: 10 Nov 2007
Posts: 457
Location: Royal Leamington Spa, UK

PostPosted: Tue Aug 05, 2008 8:46 am    Post subject: [quote]

Rainer Deyke wrote:
That XML looks painful.

Really, what you want isn't a GUI tool but a reasonable scripting language.


Absolutely, and it should be a custom scripting language specifically for coding dialogs. Rainers example looks pretty sweet, so something like that, but adapted to your needs.

I've worked on developing GUI tools for dialog editing (for this game) and it's a lot of work to make it nice, and every time you need to do something you hadn't thought about, you need to rework bits of the tool.

If I would do something like that now, I would definitely go for a specialized scripting language. It's amazing how fast you can work with those, once you get used to it. Or, you could just hard-code everything, just make some nice helper functions and write it all in C++. Unless you'll be needing non-programmers to modify or add dialogs, it's not actually that bad an idea.
_________________
www.mattiasgustavsson.com - My blog
www.rivtind.com - My Fantasy world and isometric RPG engine
www.pixieuniversity.com - Software 2D Game Engine
Back to top  
Verious
Mage


Joined: 06 Jan 2004
Posts: 409
Location: Online

PostPosted: Tue Aug 05, 2008 12:46 pm    Post subject: Re: Making games is too hard [quote]

valderman wrote:
Having a static dialogue tree like this might result in some difficulties in updating the dialogue as the player completes quests or new rumors become available though, but it looks pretty neat.


If you have an embedded scripting language, you could include boolean conditions for the choices to make the dialog more dynamic:

Code:
<choice value="Some food" condition="money > 1">


I think the XML version would be easier to edit and maintain in the long run.
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Tue Aug 05, 2008 3:47 pm    Post subject: [quote]

Each "dialog" would be a description of the situation (aka some NPC talk) and a list of responses to it.

For each of the responses there'd be a link to another "dialolg".

If you have a dialog sequence with many steps and branches, I find it very difficult to get an idea of the whole tree if the dialogs are kept in text files. To see which paths are possible. Thus I'm looking for a tool to visualize the dialog tree (or graph if it allows circles).

The XML files are great to keep the data. But I wouldn't want to create dialog trees on this base. At least my memory is too weak to have like 30 "dialogs" with all their links in my head to check if all paths make sense and if they are complete. I hope a visual representation will help to edit such trees or graphs more easily.

I've once created a kind of "mind map" display for articles (needs Java browser plugin):

http://library.simugraph.com/relview/index.html

If you now imagine each box containing an NPC talk (or situational description), and each link to another box as PC response (or action), it will shape a dialog graph.

To me this is a much more comprehensible visualization than an XML file. If I cannot find a better tool for the dialogs, I'll try to dig out the old source code and expand this applet for editing dialogs (while on the webpage there is a read-only version, the code was meant to edit such graphs interactively - edit boxes contents, add links, move boxes around)

Edit: Rainer's example is nice, but it's only 1 level of talk and response. Imagine that script with 4 or 5 nested levels of dialog. While it looks good with this one level, it will be quite difficult to read with 3 or more levels.

If you then decide a nested form is difficult to read and put every 1-level dialog in a new file/place, it's hard again to get an overview.
Back to top  
Post new topic Reply to topic Page 1 of 2 All times are GMT
Goto page 1, 2  Next 



Display posts from previous:   
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum