At the beginning I must note that I'm still not sure if this forum is actually a good place to ask this question, but as (so far) I can't find a better place, I decided to give it a try. Due to the fact, that this is a forum about creating adventure games, somebody may have the answer. My question is not AGS-specific, it concerns programming an adventure game in general, so forgive me if I got to the wrong place.
I was wondering whether anyone of you had, by any chance, come across some articles about adventure game programming techniques (for instance implementing game saving, location management, inventory and object using mechanism, dialogues control etc)? I would be grateful for any links. I'm interested in 2D point'n'click game, not text-adventure application.
I've been thinking, if (since those mechanisms are particularly the same in different games) there is some "general convention" or "good parctice" in implementing this. I believe there's no need to reinvent the wheel. Although I have got some ideas how to make it, I would like to see how these things are created by people who write adventure games.
To be honest, I don't demand tutorials. Maybe there's a source code of some game available to see?
I'm not a genius, I have taken up programming simply as a hobby. That's why I would be pleased to have a model solution to look at.
Thanks for each reply.
Since AGS is a pretty complete solution for a 2D point and click you are really just reinventing the wheel if you make your own engine.
However if you're really set on it then I suggest you take a look at the way the AGS engine works and how its entities are structured.
In terms of the actual programming its really rather simple... the biggest problem you'll have is implementing some kind of scripting language but if you use a language with built in reflection and you dont need the engine to be used by a third party then even that shouldnt be too hard.
Good luck
So are you making an actual engine with a toolkit etc or just an ad hoc piece of code for one game? If you are talking about the whole deal, I don't think it's worth it. The only reason I could think of doing that is for some kind of portfolio or such and apparantly that's not the case here. 2D engines have been done before and it would take enourmous effort to catch up with projects like AGS. For a single game the same principles apply than for most other games, so you could just read books and articles on game programming in general.
SLUDGE (http://www.hungrysoftware.com/tools/sludge/) and Wintermute (http://dead-code.org/home/) are both open sourced adventure game engines, so you can check out their coding solutions.
Quote from: Calin Leafshade on Wed 24/11/2010 20:26:49
Since AGS is a pretty complete solution for a 2D point and click you are really just reinventing the wheel if you make your own engine.
I'll admit that creating my own adventure game without using an engine would definitely be an interesting idea and something I've been thinking about lately. There are so many nuisances with AGS when you start programming advanced features, that I would honestly rather make a game manually.
Things like music and sound effect stuttering during room loads really take away the ability to have cutscenes or quick room changes - also having to carry the player character back and forth is also a pain; obviously there are several workarounds, one being a dummy player character.
I could name off more than a dozen issues I have with programming in AGS since I started programming for Journey of Iesir. I love AGS but when it comes to advanced programming, you're almost better off doing it manually IF you have strong programming skills and only then. It would also be designed to how each game you're creating would work and not how 'other' games might work.
I would make a basic template for starting other adventure games, but keeping the custom features for that particular game as custom add ons. It would definitely take me ages to do since I'm only starting to learn C#.
If I understood you correctly, your point wasn't so much about programming an adventure game engine, as programming the game itself?
There certainly IS a lot of information - however - "unfortunately" :D, AGS is updated so often, that the information gets outdated pretty quickly. Places you could try are the AGS Wiki (http://www.americangirlscouts.org/agswiki/Main_Page), The Demo Game project, and searching the Technical and Beginner's Help forum for people who may have asked how to implement those things before.
As for non-AGS specific information, if you're not planning on going with another specific adventure-game-like game programming application, you're unlikely to find many tutorials or code-snippets particularly geared towards adventure games, but there are several hundreds of books and articles all over the web on topics like saving and loading in games, inventory, location/map management, etc. using languages like C/C++, C#, and so on.
Quote from: Griffin on Wed 24/11/2010 20:14:52
To be honest, I don't demand tutorials. Maybe there's a source code of some game available to see?
I'm not a genius, I have taken up programming simply as a hobby. That's why I would be pleased to have a model solution to look at.
I released the source code of one of my AGS games (http://ben304.blogspot.com/2010/05/sauce.html) once, if that helps at all :)
Quote from: Ryan Timothy on Thu 25/11/2010 01:54:36
There are so many nuisances with AGS when you start programming advanced features, that I would honestly rather make a game manually.
I doubt this to be true.
The amount of work you would essentially have to recycle would be absurd just to avoid a few quirks of the engine.
An engine like this is not particularly *difficult* to make but it's still a fairly mammoth task considering its already been done for you.
While I will agree that the audio system needs fixing it would be quicker to recode the entire audio system via a plugin (which is perfectly possible and needs doing.. anyone?) than it would be to recode the entire engine.
And besides, wintermute's audio system is perfectly fluid and stable. Just switch to that.
and be spurned forever!
Edit: WME1 is also open source.
Quote from: Calin Leafshade on Thu 25/11/2010 06:26:57
An engine like this is not particularly *difficult* to make but it's still a fairly mammoth task considering its already been done for you.
Like I said though, I wouldn't be creating an engine. It would be mostly hard code scripting to make my own custom adventure game.
I would enjoy the challenge of doing it manually more than I would the convenience and user friendliness of AGS, as odd as that may sound.
If you want specific info on the best way to program adventure games from scratch, I think I can tell you all there is to know:
It's almost exactly the same as programming any other kind of game, except you needn't worry about physics, and you'll probably want good support for game media, i.e. a good setup for sound and animation, as those are the things that are used to define an adventure game.
Quote from: Ben304 on Thu 25/11/2010 06:01:05
Quote from: Griffin on Wed 24/11/2010 20:14:52
To be honest, I don't demand tutorials. Maybe there's a source code of some game available to see?
I'm not a genius, I have taken up programming simply as a hobby. That's why I would be pleased to have a model solution to look at.
I released the source code of one of my AGS games (http://ben304.blogspot.com/2010/05/sauce.html) once, if that helps at all :)
Oh, I just noticed that article... :o. I'm wondering why I never got the rss feed notification!! >:(
Regardless, and to stay on-topic this once, the best way to test an engine would be to make a test game. Occasionally, the tutorials aren't exactly responding to what you're looking for.