Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Femtosecond
Aug 2, 2003

Is there a common strategy for dealing with all the text necessary for a text heavy game, such as an RPG or sim? Though I'm not working on anything in that area right now, for some reason the problem jumped into my head recently and thinking it over I haven't come up with a real elegant solution to how to organize everything.

A game I worked on several years ago had all the strings in the game in one text file. Which I'm sure was a horrible idea. I'm not sure how the game grabbed strings from there, but I know that for a while there was an issue where if someone added a string to the game, that file could become disorganized and every dialog box in the game would be shifted by one and the game wouldn't make any sense. Obviously organizing this stuff can be complicated.

Adbot
ADBOT LOVES YOU

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Femtosecond posted:

Is there a common strategy for dealing with all the text necessary for a text heavy game, such as an RPG or sim? Though I'm not working on anything in that area right now, for some reason the problem jumped into my head recently and thinking it over I haven't come up with a real elegant solution to how to organize everything.

A game I worked on several years ago had all the strings in the game in one text file. Which I'm sure was a horrible idea. I'm not sure how the game grabbed strings from there, but I know that for a while there was an issue where if someone added a string to the game, that file could become disorganized and every dialog box in the game would be shifted by one and the game wouldn't make any sense. Obviously organizing this stuff can be complicated.

Consider using one file per "zone" to increase modularity, and above all else, figure out what serialization support your language of choice provides and use it.

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!
Also, do not use line numbers as keys for the strings. That will only bring tears, and pretty much destroy any chance at localization.

Don't ever manually edit that file either. You should build a tool to do it for you, and only use that tool.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

PT6A posted:

Consider using one file per "zone" to increase modularity, and above all else, figure out what serialization support your language of choice provides and use it.
If you're concerned about localization then you also want to make CONVERSATIONS modular to also account for variations in the amount of dialog needed for a situation.

I can name 2 movies off the top of my head that added dialog where there was silence in the actual release to clarify some cultural quirks, and virtually every third-party translation ROM hack involves changing the number of windows displayed in a couple scenes.

Scarboy
Jan 31, 2001

Good Luck!

OneEightHundred posted:

If you're concerned about localization then you also want to make CONVERSATIONS modular to also account for variations in the amount of dialog needed for a situation.

I can name 2 movies off the top of my head that added dialog where there was silence in the actual release to clarify some cultural quirks, and virtually every third-party translation ROM hack involves changing the number of windows displayed in a couple scenes.

New windows (e.g. not a new person talking) are usually handled with a control code in the text. Doing it that way should help localization.

wlievens
Nov 26, 2006

Mayakashi posted:

... but I could see something like a node class with a list of pointers to adjacent nodes working just as well for more irregular play areas.

They're called Graphs. A rectangular grid is just a very specific case of a Graph. A* is a Graph search algorithm.

Just clarifying, not trolling.

Femtosecond
Aug 2, 2003

Scarboy posted:

New windows (e.g. not a new person talking) are usually handled with a control code in the text. Doing it that way should help localization.

That's interesting. Could you elaborate on this?

I'm curious about the sort of data structure used for conversations. I was thinking that once you get the start of the conversation, the subsequent dialog strings would be part of some list. What you're suggesting sounds like it could be a different method.

Avenging Dentist
Oct 1, 2005

oh my god is that a circular saw that does not go in my mouth aaaaagh

Femtosecond posted:

That's interesting. Could you elaborate on this?

What's to elaborate on?

code:
dialogue = "Paragraph 1\nParagraph 2"
paras = split(dialogue,'\n')
for i in paras
    display(i)

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!

Avenging Dentist posted:

What's to elaborate on?

code:
dialogue = "Paragraph 1\nParagraph 2"
paras = split(dialogue,'\n')
for i in paras
    display(i)

Newline isn't the best character to use for this, but yeah, this is the concept.

Triarii
Jun 14, 2003

BizarroAzrael posted:

This has inspired me. I want to put together a little RTS sort of thing with isometric 2D graphics, but with much of the setting in built up areas where buildings would get in the way of seeing what units are doing between them. This makes me think I can do it top down and still give it depth enough to not look assy.

If only Red Alert 3 was as easy to mod as RA2...

If you're going to do those kinds of shadows, I would suggest rendering them all to a texture (at full opacity) and then rendering the texture at 50% alpha or whatever, rather than using the stencil buffer. I experimented with them both, and rendering to a texture turned out to look a bit better and was cleaner to implement.

wlievens posted:

They're called Graphs. A rectangular grid is just a very specific case of a Graph. A* is a Graph search algorithm.

Just clarifying, not trolling.

Right; I was just saying that for the general case of a graph, you'll need a somewhat more complex data structure than the simple two-dimensional array I was using.

RoboCicero
Oct 22, 2009

"I'm sick and tired of reading these posts!"
Sorry for the minor derail, but I'm right now in the process of applying for game design internships and I was wondering whether there is a 'correct' way to structure your online portfolio.

Would it be a well-formatted and attractive list of games you have worked on/created or something more involved? Right now I have this sort of ghetto game - game description/screenshots - post-mortem (if applicable) format, but I'm not sure if that's what they're looking for.

haveblue
Aug 15, 2005



Toilet Rascal
As long as it's not a ponderous flash gallery or some hideous neon-orange-on-black geocities abortion it should be fine. Clean up any obvious design or HTML errors and make sure it can be navigated quickly.

Sex Bumbo
Aug 14, 2004
Make sure your contact info is up to date and accessable everywhere. Kind of stupid but a lot of people screw this part up. Make it really really obvious about who you are and what you're applying for.

Kire
Aug 25, 2006

Tap posted:

Hi guys, I'm thinking of starting a project that I've been wanting to begin for a while now. I'm currently in the research phase, and I need some help / suggestions.

I've got basically zero game development experience, and some programming experience (I'm a PHP - I know - programmer for a small marketing company). What My vision is a mixture of class selection and art style of Team Fortress 2, and and the gameplay and look (2d) of Soldat.

Lets assume I have the art finished for the game, now I need to pull it all together and program the thing.

What I need to know is:

  1. Language to code the game in - I was thinking of maybe learning Python and using the PyGame library and doing the netcode in Python as well. I'm assuming Python is a strong enough language to handle this type of thing (basically a 2d side-scroller).
  2. Tools to use - what are some tools for debugging, testing, creating maps, etc.. that game developers consistently use. I figure some of these will be language dependent.

Thank you gentlemen.

I know GangGarrison was already pointed out to you, you might find Super Cock Blockers relevant (or at least odd and amusing) as well. :nws: http://forums.tigsource.com/index.php?topic=6974.0 :nws:

Also, somebody mentioned needing sprites for backgrounds and things like trees. The Assemblee competition over at TGS has produced a lot of that. See http://forums.tigsource.com/index.php?topic=8822.0 specifically.

Paniolo
Oct 9, 2007

Heads will roll.
Is there a lightweight C# media library which works with both .NET and Mono? The only thing I've found is the TaoFramework and that takes way too much of a kitchen sink approach - a 33MB runtime installer for a game which will probably be under 1MB is a little excessive, especially when I only want to use about 2% of what's included.

Coffee Jones
Jul 4, 2004

16 bit? Back when we was kids we only got a single bit on Christmas, as a treat
And we had to share it!

Vandorin posted:

I just wanted to know if there was a preferred/easiest language to do this in that I could start learning. So far I only know some C++ and java.

Focus on developing the battle engine. Just make it as simple as possible with just text and no graphics.
You'll be surprised how much goes into just storing enemy/character data.

Femtosecond posted:

Is there a common strategy for dealing with all the text necessary for a text heavy game, such as an RPG or sim? Though I'm not working on anything in that area right now, for some reason the problem jumped into my head recently and thinking it over I haven't come up with a real elegant solution to how to organize everything.

Uhhhhhh, XML? You want to be able to store metadata along with the text, and there are already tools for searching and sorting by tag. You don't want to be coming up with your own rigid format.
code:
<script ID="intro01" Character="Chocobo" Culture="en-us">
   Kweh! Kweh! Kweh!
</script>

Coffee Jones fucked around with this message at 06:32 on Dec 6, 2009

Triarii
Jun 14, 2003

This might be more of a general programming issue, but I'm having a problem (not too surprisingly) sharing the game I've made on a 32-bit Windows XP machine with someone using Windows 7. I sent him the exe I compiled along with the D3D dll that worked when he was previously using XP, and the immensely helpful error it gives is "The application was unable to start correctly (0xc0000142)".

I know this is pretty vague, but any ideas on where I can start looking to figure out how to get my game working for him? I don't know much of anything about compatibility between different versions of Windows.

ynohtna
Feb 16, 2007

backwoods compatible
Illegal Hen
Get them to profile your program with Dependency Walker and report back what's missing:

http://www.dependencywalker.com/help/html/application_profiling.htm

If the program works correctly on XP but not Vista or Windows 7, then it could also be missing an appropriate manifest.

Triarii
Jun 14, 2003

ynohtna posted:

Get them to profile your program with Dependency Walker and report back what's missing:

http://www.dependencywalker.com/help/html/application_profiling.htm

If the program works correctly on XP but not Vista or Windows 7, then it could also be missing an appropriate manifest.

Thanks to DW I figured out that it didn't like my x86 d3d9.dll; he was able to grab an x64 version from his drive and replace it. Thanks for the help.

On a related note and out of curiosity, why is it that I have to include that dll when it's already present on everyone's computers? It seems to be standard practice - most of the games I have installed have the same dll included. Shouldn't there be some way to tell it to refer to a common dll in the windows system folder or whatever, thus also avoiding x86/x64 differences and the like?

Hubis
May 18, 2003

Boy, I wish we had one of those doomsday machines...
Well, in the case of DirectX, you need to have DLLs for the version of the DirectX SDK that the game is built against (which come out 2-4 times each year). Ideally, you'd just have one COM interface for DirectX and then Microsoft would just use the most up-to-date DirectX implementation installed on the system, but that's not how it ends up working in practice (partially because Microsoft inevitably breaks/fixes/changes things a game relies on to behave a certain way). Thank god graphics drivers haven't gotten to this point yet...

NadaTooma
Aug 24, 2004

The good thing is that everyone around you has more critical failures in combat, the bad thing is - so do you!

Femtosecond posted:

Is there a common strategy for dealing with all the text necessary for a text heavy game, such as an RPG or sim? Though I'm not working on anything in that area right now, for some reason the problem jumped into my head recently and thinking it over I haven't come up with a real elegant solution to how to organize everything.

Your question is a few days old, but since no one's mentioned it, have a look at SQLite: http://www.sqlite.org/. It's a relational database that's ridiculously easy to embed in an app, no matter which language you're using (C++, Java, Python, etc).

I'm recommending this since conversations with NPCs are such a good match for storing in a DB. For example, you could have different conversations with the same NPC based on which quests you've completed, what's in your inventory, the NPC's mood, the game's time of day, etc. The possibilities are endless, and a DB gives you the flexibility to not have to rewrite lots of text files by hand every time you add some new aspect to your game. It also allows you to ask quick ad-hoc questions such as "what NPCs would refuse to talk to me after finishing this quest?"

You'd probably want build a "conversation editor" tool for your game up front, but that would more than pay for itself by making things easier to manage down the road.

Evil Trout
Nov 16, 2004

The evilest trout of them all

NadaTooma posted:

I'm recommending this since conversations with NPCs are such a good match for storing in a DB. For example, you could have different conversations with the same NPC based on which quests you've completed, what's in your inventory, the NPC's mood, the game's time of day, etc. The possibilities are endless, and a DB gives you the flexibility to not have to rewrite lots of text files by hand every time you add some new aspect to your game. It also allows you to ask quick ad-hoc questions such as "what NPCs would refuse to talk to me after finishing this quest?"

You'd probably want build a "conversation editor" tool for your game up front, but that would more than pay for itself by making things easier to manage down the road.

With my RPG, I first tried storing conversations in a relational DB and had a horrible time of it. It's okay if you have really simple conversations, but what if you only want one option to show up if you are evil? Or if you have more than 50 gold, or if you asked about a previous option already. It then gets super complicated.

Not to mention that most conversations in games are hierarchical, not relational, and relational datastores are not good for hierarchical data.

Vinterstum
Jul 30, 2003

Evil Trout posted:

With my RPG, I first tried storing conversations in a relational DB and had a horrible time of it. It's okay if you have really simple conversations, but what if you only want one option to show up if you are evil? Or if you have more than 50 gold, or if you asked about a previous option already. It then gets super complicated.


There's a difference between storing the conversation data in the DB, and using the DB as a criteria system. The latter is just dumb.

For that kind of flexibility, you're into scripting territory. Just allow for small LUA snippets to determine whether or not to present a given conversation option, for example.

Evil Trout
Nov 16, 2004

The evilest trout of them all

Vinterstum posted:

There's a difference between storing the conversation data in the DB, and using the DB as a criteria system. The latter is just dumb.

For that kind of flexibility, you're into scripting territory. Just allow for small LUA snippets to determine whether or not to present a given conversation option, for example.

Well what would you be storing in the DB? If it has nothing to do with the flow of the conversation then you're not getting much of an advantage over, say, just putting the entire conversation into a LUA script in the first place.

Vinterstum
Jul 30, 2003

Evil Trout posted:

Well what would you be storing in the DB? If it has nothing to do with the flow of the conversation then you're not getting much of an advantage over, say, just putting the entire conversation into a LUA script in the first place.

You probably don't want the whole conversation just in pure LUA, due to localization issues.

As to what to store: Hard to say more about the structure without knowing more details about the dialog system in question. A dialog can typically be represented as a branching tree structure, with criterias at each node and text IDs for questions/responses. Converting that into a table structure isn't that big a deal, though as mentioned some kind of tool to edit this is probably a good idea.

Avenging Dentist
Oct 1, 2005

oh my god is that a circular saw that does not go in my mouth aaaaagh
Lua: Not an acronym.

Vinterstum
Jul 30, 2003

Avenging Dentist posted:

Lua: Not an acronym.

But it's cool, so we shout it.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
Shout about arrayshashes being indexed from 11.0

It's still pretty cool :3:

Walorski
Feb 21, 2004
I'm Polish
I was wondering how much programming I should know before I jump into a little game I want to make. I've taken college beginning programming roughly 3 times (2 high school + college) and Programming I starts in about a month, and II the semester after. If I had the free time to learn it all twice I would, but I'd rather wait till it comes up in class. The game I want to make is more focused on RPG elements, like an Animal Crossing/Harvest moon type game, and preferably I'd like to make a game mod for Half Life 2 or something, it'd be way too much work to do it all with an engine or making it from the ground up. Sorry if this all sounds retarded or idealistic, but I'll know what I'm talking about after I learn a thing or two.

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!

Walorski posted:

I was wondering how much programming I should know before I jump into a little game I want to make. I've taken college beginning programming roughly 3 times (2 high school + college) and Programming I starts in about a month, and II the semester after. If I had the free time to learn it all twice I would, but I'd rather wait till it comes up in class. The game I want to make is more focused on RPG elements, like an Animal Crossing/Harvest moon type game, and preferably I'd like to make a game mod for Half Life 2 or something, it'd be way too much work to do it all with an engine or making it from the ground up. Sorry if this all sounds retarded or idealistic, but I'll know what I'm talking about after I learn a thing or two.

This post has a lot of words, and no content.

What languages do you have experience with?
Do you want to do 2D or 3D?
Have you written any games before? (Even text based games.)

Walorski
Feb 21, 2004
I'm Polish
So far I don't know any language fluently, but have used Virtual Basic, Java, and C++. I know the basics of loops, variables, and other lovely things like that. I made a crappy battle system similar to Chrono Trigger before, but in other words I don't really know what I'm doing.

I was wondering if anyone who's recently taken college programming classes could tell me when's a good place to actually apply the knowledge I've learned. I'm not sure if I want to start now, or later(after I've taken a few classes) since I actually don't have that much free time. I'd eventually like to make a town management RPG with fps elements, possibly by making a mod for an existing game. That's what I don't know, how much time, work, and knowledge is needed to do that, but I don't expect I'll see much progress if I start something like that.

Avenging Dentist
Oct 1, 2005

oh my god is that a circular saw that does not go in my mouth aaaaagh

Walorski posted:

I was wondering if anyone who's recently taken college programming classes could tell me when's a good place to actually apply the knowledge I've learned.

Based on your experience, sometime a year or two after you graduate.

Walorski
Feb 21, 2004
I'm Polish

Avenging Dentist posted:

Based on your experience, sometime a year or two after you graduate.

poo poo. Unless that's sarcasm, I'll go back to playing with Blender 'til I know how to program. I was asking because I didn't know how much you needed to know to make game mods.

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

Walorski posted:

poo poo. Unless that's sarcasm, I'll go back to playing with Blender 'til I know how to program.
But you won't actually know how to program* until you actually start programming. :confused:

*in my personal opinion, programming is as much an art as a trade, so this term really only makes about as much sense as "knowing how to paint"

Avenging Dentist
Oct 1, 2005

oh my god is that a circular saw that does not go in my mouth aaaaagh

Walorski posted:

poo poo. Unless that's sarcasm, I'll go back to playing with Blender 'til I know how to program. I was asking because I didn't know how much you needed to know to make game mods.

That's not to say you can't/shouldn't try, but be aware that you will fail the first 2-3 times you try to make a game of any appreciable complexity (i.e. more complicated than pong).

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane
There's nothing which makes programming a simple game much different from programming anything else; it's just a series of problems to be solved. If you don't have the experience, and oftentimes at least some of the theory, you will not be able to solve the problems and you will fail. Beyond this, any game of non-trivial size will become absolutely unmaintainable and confusing if not designed according to some sort of logic -- have a rough idea of your design before you start coding, as this will minimize the scale and difficulty of the problems you will encounter later on.

In the end, no one can tell you when you have enough expertise to program a game -- it's something you figure out by doing it. I had no idea I could make a functional game until one of my class projects was to make a simple game, and lo and behold, I've programmed a simple game!

You won't know until you try, and you won't learn unless you try, so I'd give it a go, but like Avenging Dentist says, don't be very surprised if you don't get it the first time around.

Vinterstum
Jul 30, 2003

Walorski posted:

So far I don't know any language fluently, but have used Virtual Basic, Java, and C++. I know the basics of loops, variables, and other lovely things like that. I made a crappy battle system similar to Chrono Trigger before, but in other words I don't really know what I'm doing.

Start way, way smaller than what you're planning. Do something text-based, like something akin to The Legend of the Red Dragon (old BBS game) or choose-your-own-adventure stuff (most basic RPG examples I could think of). The simplest thing you can think of that you'd still find some motivation to work on and think is fun.

Having a couple of things like that under your belt first is the fastest way you're going to get to the point of being able to do the kind of game mods you're talking about.

Vinterstum fucked around with this message at 21:02 on Dec 14, 2009

GROVER CURES HOUSE
Aug 26, 2007

Go on...
In other words, grab libtcod and make a roguelike :v:

NadaTooma
Aug 24, 2004

The good thing is that everyone around you has more critical failures in combat, the bad thing is - so do you!
NM: Already been said.

Adbot
ADBOT LOVES YOU

wlievens
Nov 26, 2006

Broken Knees Club posted:

make a roguelike :v:

This is very much what you should do.

If you absolutely *must* do something graphical, make an Asteroids clone.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply