View previous topic - View next topic |
Author |
Message |
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Wed Nov 24, 2010 10:37 pm Post subject: Eternal Bickering (2D Isometric Turn-based RPG) |
[quote] |
|
Greetings.
This is my first post, but since this is my, oh, I don't know, fifteenth? RPG project, I can relate to a lot of the posts I've read so far.
So, yeah, I've started quite some RPG projects, and I've tried to figure out why these have failed to come upon completion and this are some of the conclusions I've come to:
* Complexity. Often, I find myself designing overly complex systems, worlds and gameplay elements which are very hard to actually create and/or make fit with each other. Like in my last RPG project, the AI systems of the humanoid characters made them have life-time wishes, desires and needs. This made for an interesting world, but very hard to control (oh, the village leader realized he could actually move all the villagers to a location better suited for his wish to become a powerful trader, most of the quests related to that village now became invalid). Or the project before that, which had a rather complex combat system which could switch on the fly from turn-based to real-time, where every attack etc was as effective in either system. Spawned some headaches...
* Content. RPGs are usually filled with them, and most projects I've started have had these wonderful ideas backing them. Most of them included some grandeur world with loads of things in them. I've found that working in a (non-paid) team often brings trouble, but it's hard to create a lot of content alone.
* Choice. This is somewhat related to the two points above, since I love RPGs where you actually have choices and your decisions change the world. However, this isn't easy to make.
So, I've decided to start a new project, where I try to tackle these issues. For starters, I am planning to use D. Gervais graphics, if he allows me, so I will probably not need a lot of new graphical content. Also, I have stuck a post-it with "Keep it simple" on the monitor, and I've had it as a mantra while writing the design documents. The game's basic systems (character creation, combat, conversation etc) are rather simple.
I've just started on this, so I haven't gotten very far, but I am trying to not loose momentum. So far, I've created the basic isometric engine, and I am working hard on content creation tools. I am trying to make it as easy as possible to create areas, characters, conversations etc. If it's easy to create content, there is a much higher probability that someone does it :)
Setting: The game takes place in an underground world, consisting of huge caverns inhabited by weird lifeforms, desolate wastes, maze like tunnels, odd folks and ancient ruins touched by magic. Explore these ancient ruins, learn their secrets, experience the ancient culture that once resided there. Figure out what it's all about while avoiding traps, grinding monsters to fine paste, interacting with absurd lifeforms, sneaking past aggressive beings, completing quests, meeting peculiar characters, saving villagers, dooming villagers and more.
Plus: become insanely powerful.
Changed name to Eternal Bickering
Website: Brainswitch Machina
Last edited by Agent on Sun Mar 06, 2011 2:11 pm; edited 5 times in total
|
|
Back to top |
|
|
tcaudilllg Dragonmaster
Joined: 20 Jun 2002 Posts: 1731 Location: Cedar Bluff, VA
|
Posted: Thu Nov 25, 2010 2:08 am Post subject: |
[quote] |
|
Sounds like Spiderweb Software's Exile. But Exile is an interesting game (for a while). Looking forward to it, if you can add a dash of creativity in there somewhere.
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Thu Nov 25, 2010 12:37 pm Post subject: |
[quote] |
|
tcaudilllg wrote: | Sounds like Spiderweb Software's Exile. But Exile is an interesting game (for a while). Looking forward to it, if you can add a dash of creativity in there somewhere. |
Ah, Exile, I remember I played it a bit, but that was probably over 10 years ago. Yes, the underground world cut off from the surface thing is the same (if I remember correctly, that's Exiles premise) but I think there will be quite a lot that set them apart. I have quite a few ideas which I hope to implement, ideas that will make this project different from many RPGs. Then again, some of them are probably quite hard to implement, so many of them are in the maybe file. One of the goals of this project is to actually release something :)
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Fri Nov 26, 2010 7:47 am Post subject: |
[quote] |
|
I have been working hard, and have most of character creation (and leveling up), basic combat system, basic enemy system (AI, dropping loot, using items), items (different types, trading, containers) and the content creation tools are improving. Now I am working on saving and loading savegames, which is turning out slightly trickier than I first thought.
Perhaps Ill put up a screenshot soon.
|
|
Back to top |
|
|
tcaudilllg Dragonmaster
Joined: 20 Jun 2002 Posts: 1731 Location: Cedar Bluff, VA
|
Posted: Sat Nov 27, 2010 8:16 am Post subject: |
[quote] |
|
You'll want to use key-value pairs and a basic scripting system for that. You'll want to dump maybe all the variables/values in the local scope, or you could give each variable a special flag, "saved" vs "not saved", and dump only the variables that have the property "saved". Then you'd parse these key-value pairs when you wanted to read the save, and put them back into memory using a simple interpreter.
If you do it the binary way, you're just going to end up tossing your system sooner or later as you chafe under the restrictions.
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Sat Nov 27, 2010 12:00 pm Post subject: |
[quote] |
|
tcaudilllg wrote: | You'll want to use key-value pairs and a basic scripting system for that. You'll want to dump maybe all the variables/values in the local scope, or you could give each variable a special flag, "saved" vs "not saved", and dump only the variables that have the property "saved". Then you'd parse these key-value pairs when you wanted to read the save, and put them back into memory using a simple interpreter.
If you do it the binary way, you're just going to end up tossing your system sooner or later as you chafe under the restrictions. |
Since my map editor is currently tied to my game engine (the map editor exists within the game application), I am currently using the same save code and saving everything. This works, but the saves take up quite some unnecessary space and it makes using old save games with new data a bit tricky. So now I am working on something similar to what you describe, so that it only saves what needs to be saved.
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Sat Nov 27, 2010 6:09 pm Post subject: |
[quote] |
|
OK, I have more or less finished the saving and loading, and implemented A* pathfinding (seems slower than I expected though, still a lot faster than breadth first, will look into it later but optimization is not a priority now). Working on the conversation system, wondering if any have some tips. It is currently implemented as a simple scripting system, with a few commands like AddText, AddResponse, GetResponse, SetVariable, GetVariable, Run (which runs another part of the conversation script), Exit etc...
An example might look like:
AddText( "Ah, there you are! The unsatisfiable is waiting for you beyond the door, go now." )
AddResponse( "The unsatisfiable?" )
AddResponse( "I shall." )
WaitForResponse
If GetResponse = "I shall"
Exit
elseIf GetResponse = "The unsatisfiable?"
Run( "Unsatisfiable" )
endif
This seems to work, but I fear it will become overly complicated with longer conversations.
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Sun Nov 28, 2010 1:13 am Post subject: |
[quote] |
|
Decided to put the conversation system on hold, working on other stuff (quickbar for items, abilities and spells) and thought I might just as well put up a screenshot (although, no quickbar yet).
Very much a work in progress :)
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Tue Nov 30, 2010 1:57 pm Post subject: |
[quote] |
|
OK, more or less finished the quickbar and I have fixed quite a few bugs. Next up is a redesign of the data editor (for editing items, characters etc, all the stuff not done in the map editor).
Thinking of creating a blog and post my updates there instead of 'spamming' this forum. I mean, I like to post updates (as it is a way for me to know what I've been up to, and it also makes me more interested in making actual progress and if I also can get some help or just a comment that is nice too) but if people find it annoying I could create a blog (but at this time I'd rather not spend time doing that).
|
|
Back to top |
|
|
tcaudilllg Dragonmaster
Joined: 20 Jun 2002 Posts: 1731 Location: Cedar Bluff, VA
|
Posted: Tue Nov 30, 2010 10:03 pm Post subject: |
[quote] |
|
Projects/Screenshots IS a blog forum. You can make this topic as long as you like... people have made worse use of this site's space, lol.
As for your scripting system, try this:
Code: |
AddText( "Ah, there you are! The unsatisfiable is waiting for you beyond the door, go now." )
AddResponse( "The unsatisfiable?" ) as Question
AddResponse( "I shall." ) as Obey
WaitForResponse
If Question
Exit
elseIf Obey
Run( "Unsatisfiable" )
endif
|
Here, AddResponse both produces a response and produces a named placeholder (called a "response flag") called "Question". WaitForResponse polls for input and sets the response flags based on it.
You'll have to add an "as" keyword to equate the response with the flag, but that shouldn't be too difficult.
|
|
Back to top |
|
|
Jinroh Scholar
Joined: 30 May 2008 Posts: 173 Location: U.S.A.
|
Posted: Wed Dec 01, 2010 3:49 am Post subject: |
[quote] |
|
Screenshot looks pretty rad man. The spritework looks especially nice. ^^ _________________ Mao Mao Games
The wolf and his mate howl, taking solace in the silver moon. Pressing ever foreward to see what the future holds.
|
|
Back to top |
|
|
BadMrBox Bringer of Apocalypse
Joined: 26 Jun 2002 Posts: 1022 Location: Dark Forest's of Sweden
|
Posted: Wed Dec 01, 2010 2:03 pm Post subject: |
[quote] |
|
That's a nice screenshot :). _________________
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Thu Dec 02, 2010 6:31 am Post subject: |
[quote] |
|
tcaudilllg wrote: | Projects/Screenshots IS a blog forum. You can make this topic as long as you like... people have made worse use of this site's space, lol.
As for your scripting system, try this:
Code: |
AddText( "Ah, there you are! The unsatisfiable is waiting for you beyond the door, go now." )
AddResponse( "The unsatisfiable?" ) as Question
AddResponse( "I shall." ) as Obey
WaitForResponse
If Question
Exit
elseIf Obey
Run( "Unsatisfiable" )
endif
|
Here, AddResponse both produces a response and produces a named placeholder (called a "response flag") called "Question". WaitForResponse polls for input and sets the response flags based on it.
You'll have to add an "as" keyword to equate the response with the flag, but that shouldn't be too difficult. |
Good idea, I've been trying to figure out what I need from my scripting system and I realized that I was trying to oversimplify it. Reworking it is on the big to-do heap :)
I've been working on a new graphics drawing system, a system that is hopefully more modular, and easy to work with. This has allowed me to add damage display "animations" and weird funky lights (it also seemed to have done something funky to my wall drawing code)
Jinroh and BadMrBox, thanks for the comments. Most of the sprites aren't mine, but created by David Gervais (mainly for angband) and licensed under Creative Commons 3. I am not sure if I am going to keep using his sprites (and expanding them myself) or if I am going to use a more hand-drawn style (with the help of others). The main advantage of Gervais tiles is that a lot of the graphics that I need are already created, but it's a bit boring since the graphics are used in other projects.
My current plan is to keep using Gervais tiles, and convince my artist friends to draw images for cutscenes and the like.
This project never had graphics as one of it's priorities, and I doubt I will change that anytime soon.
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Sun Dec 05, 2010 7:11 pm Post subject: |
[quote] |
|
I have been working on several things, the largest being the redesign of the data editor, which made me redesign parts of my data structure (it is now a lot easier for me to add new/remove old properties to my classes, so they are automatically saved, loaded and added to the editor). This new system made it easy to add loading and saving games. I also added temporary effects (so now I can have poisoned weapons, or healing over time by eating something etc), damage types and player sleeping.
Here's a screenshot of the new character editor:
|
|
Back to top |
|
|
Agent I wanna be a ballerina!
Joined: 24 Nov 2010 Posts: 28
|
Posted: Mon Dec 06, 2010 8:21 pm Post subject: |
[quote] |
|
Currently working on a complete redesign of the scripting language, which will be more versatile, powerful and faster but not as sandboxed (so, yeah, you can create trouble, possibly crashing trouble) and will require some initialization time (at startup of game). I am almost finished, and after some more testing and tweaking I will start working on the scripting editor (with syntax coloring and autocomplete, unless it turns out too painful to do).
Also, changed the project title to: Spelaeus
|
|
Back to top |
|
|
|
Page 1 of 3 |
All times are GMT Goto page 1, 2, 3 Next
|
|
|
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
|
|