http://gamingtrend.com
October 26, 2014, 09:58:54 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Calendar Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: My idea for an epic single player RPG  (Read 3805 times)
0 Members and 1 Guest are viewing this topic.
Orgull
Gaming Trend Senior Member

Offline Offline

Posts: 615


View Profile
« on: September 23, 2008, 07:31:55 PM »

I've been working on an idea for a single player epic RPG. I've made a list of the top twenty things I'd like to see in my game. Here they are:


The Must Haves:

1) A huge, full and detailed gameworld that is different every time you play (procedural generation)

2) Freeform, non-linear gameplay. Complete the main quest at your own pace, or ignore it entirely

3) Open skill tree for maximum character customization

4) Materials-based item crafting. If it can drop, it can be crafted

5) Quests are different every time you play (dynamic, scripted procedural quests)


The Wants:

6) Dynamic gameworld that changes based on the player's actions

7) Emergent quests (unscripted quests, see #6)

Cool Guilds

9) Crafting mini-game that's short but fun

10) Mutiple main quest endings

11) Potion Crafting

12) Scroll Crafting

13) Pets

14) Allies

15) Diplomacy

16) Mounts and mounted combat

17) Player owned houses and ships

18) Player owned businesses

19) Other 'heroes' that complete quests, sometimes joining you; sometimes fighting you

20) Paperdoll


That's it. I've thought about it for a while and there isn't really anything else I want in a single player RPG.

What about you? What would you want in your dream RPG?
Logged

CrayolaSmoker
Gaming Trend Senior Member

Offline Offline

Posts: 3614

Sponge Bath Slut


View Profile WWW
« Reply #1 on: September 23, 2008, 11:26:52 PM »

Very nice list. But, I think it'd be easier to find a unicorn. I hear they poop rainbows.
Logged

Wii: 1429 3414 0674 4114 | 360: CrayolaSmokerGT
smokingcrayolas.net | surrogacy blog
Turtle
Gaming Trend Senior Member

Offline Offline

Posts: 9425



View Profile WWW
« Reply #2 on: September 23, 2008, 11:31:26 PM »

Actually, it's more doable if you go for a highly stylized art direction.  This way, the memory and processor power saved on simpler art assets goes towards more gameplay elements.  This is partly how a game like Dwarven Fortress has gotten so big.  Sadly that errs on the side of stylization to a fault.
Logged
CeeKay
Gaming Trend Staff
Gaming Trend Senior Member

Offline Offline

Posts: 71766


La-bibbida-bibba-dum! La-bibbida-bibba-do!


View Profile
« Reply #3 on: September 24, 2008, 05:45:49 AM »

Realistic Weather and NPC's who follow a schedule that may change for 'off' days.
Logged

Because I can,
also because I don't care what you want.
XBL: OriginalCeeKay
Wii U: CeeKay
TiLT
Gaming Trend Senior Member

Online Online

Posts: 6620


Preaching to the choir


View Profile WWW
« Reply #4 on: September 29, 2008, 11:33:49 AM »

Orgull, with all due respect, no serious game developer would touch that list with a ten-foot pole. It's quite frankly absurd, and I don't think you'll EVER see a game in your lifetime that will come anywhere near your lofty goals. You'll see games that use some of your concepts, but adding all of them would just be like throwing money out of the window. Perhaps if some halfway insane multimillionaire got around to it, he could go into it with the attitude that he'd want to make a great game while losing a heck of a lot of money while doing it. Of course, there's also the very real risk that the adding of that many components would make each of them less fun, resulting in a less than stellar game.

Have you played The Elder Scrolls: Daggerfall? I think that is the closest game I've seen to your ideas, and it works reasonably well. It's also one of the last relics of a time long past when you could make huge worlds with decent graphics without spending a fortune doing so, and some of its systems are not really all that fun.

I realize you've sorted your list into Must Haves and Wants, but even points 1 and 5 in your Must Have list are extremely complex, if not virtually impossible. There have been many games with dynamically generated quests, but the common thread they all share is that the quests were uninteresting and repetitive. I myself have thought up the beginnings of an algorithm that could generate somewhat interesting quests, both small adventures and epic campaigns, using parameters such as Drama and Action (for instance), but I quickly came to realize that the system would be all but impossible to implement well in anything but an ASCII game (such as a roguelike, which is what I'm planning to implement the system for).

Btw, your thread title seems to imply that you've written a small design document for this game. Is that the case, or is the list in the first post everything?
Logged
Larraque
Gaming Trend Senior Member

Offline Offline

Posts: 2392


View Profile
« Reply #5 on: September 29, 2008, 12:24:35 PM »

I think you could hit #1, 2, 6 and 19 all at the same time.

Imagine you have a sidequest. Any sidequest - whatever. When you first talk to the person it's January 15th, and you complete it and return January 16th. You meet Jim a little later - an adventurer looking for work. He's a few levels lower than you and you let him join the party.

Now imagine on the second playthrough you skip that sidequest. You come back and it's January 25th - and the quest has changed. It's now 'I sent another adventurer to do it but he never returned'. That other adventurer? Jim. You happen to go do the side quest, and when you get to the area, the monsters are no longer there, as they've gone to work for a different boss - who will now be slightly harder to beat because you didn't do a previous quest - but not much harder because the monsters haven't gotten more difficult. And you find the corpse of Jim. He'll no longer be joining the party.

Eventually, if you ignore that boss or too many quests, that boss becomes too powerful, leaves his lair with his new army, and lays siege to the local town.

So you've got quests that you can do at your own pace. But if you wait too long they're no longer available. So the world is ever changing. The heroes can join, compete for you on the same quest for the same rewards...

It would be a challenge to implement, because there would be an unprecedented number of events to script and paths to script, but it would be interesting.
Logged
Orgull
Gaming Trend Senior Member

Offline Offline

Posts: 615


View Profile
« Reply #6 on: September 29, 2008, 02:36:48 PM »

Quote from: TiLT on September 29, 2008, 11:33:49 AM

...Have you played The Elder Scrolls: Daggerfall? I think that is the closest game I've seen to your ideas, and it works reasonably well. It's also one of the last relics of a time long past when you could make huge worlds with decent graphics without spending a fortune doing so, and some of its systems are not really all that fun...

....the system would be all but impossible to implement well in anything but an ASCII game...

...your thread title seems to imply that you've written a small design document for this game. Is that the case, or is the list in the first post everything?

Daggerfall is my favorite and most played game ever. I still play it to this day. (Thanks to DosBox)

My plan was to prototype each idea separately in an ASCII-type environment. A simple prototype would be the best way to determine which ideas are viable with current technology and which ideas have to wait until we have quantum computing. But I think some things that are currently believed to be impossible are merely very difficult; sometimes you don't really know until you try.

Re: design document - not really. I have a ton of notes for a PnP RPG that I developed and realized was to complex to work anywhere but on a computer. I thought to combine the gameplay elements of that design with my above wish list.

As it stands, I am currently pushing my way through John Sharp's book "Visual C# Step by Step". When I am comfortable with the language (so far it's way better than C++) I'm going to give some of these ideas a try. Thanks to everyone for your insightful comments.
Logged

Semaj
Gaming Trend Senior Member

Offline Offline

Posts: 1946


View Profile
« Reply #7 on: October 01, 2008, 09:17:40 PM »

I cant wait to see how you decide to do most of these...

It's going to be quite the labor of love smile
Logged

WoW:
Venerable
Skywarden
Eagerly awaiting Drakes Fortune 2...
TiLT
Gaming Trend Senior Member

Online Online

Posts: 6620


Preaching to the choir


View Profile WWW
« Reply #8 on: October 02, 2008, 07:24:47 PM »

Quote from: Orgull on September 29, 2008, 02:36:48 PM

A simple prototype would be the best way to determine which ideas are viable with current technology and which ideas have to wait until we have quantum computing. But I think some things that are currently believed to be impossible are merely very difficult; sometimes you don't really know until you try.

Computing power isn't really the issue here. There's more than enough CPU power in most computers to do the things you describe as long as you're careful with the optimizing. The issue is implementation and testing, as you'll soon find out when you attempt to use your new programming skills in actual projects. You're in for a rude awakening, I think. slywink

You may find that C# isn't fast enough for some of your ideas though. You might need to use C++ instead for the more intensive tasks like world generation and AI. This will further hamper your productivity and increase the amount of potential errors and bugs you'll get.

Feel free to ask for advice though. I'm familiar with both C# and C++, and I find this kind of thing (game design) fascinating. smile
Logged
Farscry
Gaming Trend Senior Member

Offline Offline

Posts: 4004



View Profile
« Reply #9 on: October 07, 2008, 10:37:13 PM »

Quote from: DragonFyre on September 29, 2008, 12:24:35 PM

I think you could hit #1, 2, 6 and 19 all at the same time.

Imagine you have a sidequest. Any sidequest - whatever. When you first talk to the person it's January 15th, and you complete it and return January 16th. You meet Jim a little later - an adventurer looking for work. He's a few levels lower than you and you let him join the party.

Now imagine on the second playthrough you skip that sidequest. You come back and it's January 25th - and the quest has changed. It's now 'I sent another adventurer to do it but he never returned'. That other adventurer? Jim. You happen to go do the side quest, and when you get to the area, the monsters are no longer there, as they've gone to work for a different boss - who will now be slightly harder to beat because you didn't do a previous quest - but not much harder because the monsters haven't gotten more difficult. And you find the corpse of Jim. He'll no longer be joining the party.

Eventually, if you ignore that boss or too many quests, that boss becomes too powerful, leaves his lair with his new army, and lays siege to the local town.

So you've got quests that you can do at your own pace. But if you wait too long they're no longer available. So the world is ever changing. The heroes can join, compete for you on the same quest for the same rewards...

It would be a challenge to implement, because there would be an unprecedented number of events to script and paths to script, but it would be interesting.

You, sir, need to play Depths of Peril. nod
Logged

Purge - You have unlocked an Achievement!
You are now of the rank reprobate
Orgull
Gaming Trend Senior Member

Offline Offline

Posts: 615


View Profile
« Reply #10 on: October 07, 2008, 10:59:36 PM »

Quote from: TiLT on October 02, 2008, 07:24:47 PM

Computing power isn't really the issue here. There's more than enough CPU power in most computers to do the things you describe as long as you're careful with the optimizing. The issue is implementation and testing, as you'll soon find out when you attempt to use your new programming skills in actual projects. You're in for a rude awakening, I think. slywink

You may find that C# isn't fast enough for some of your ideas though. You might need to use C++ instead for the more intensive tasks like world generation and AI. This will further hamper your productivity and increase the amount of potential errors and bugs you'll get.

Holy cow you were right about one thing. There is more than enough power. I just finished creating my own class called Entity and made a loop that creates an array of Entity instances, constructs them, then initializes them. I kept the number of Entity instances down to 100 while doing this, just because I was afraid of how long it would take. For a lark, I just set the maxEntities number to 10,000 and let the method run. It took less than one frame to initialize all 10,000 instances. Took up a bit of memory though. 4 megs. Oh boy.

So far C# is fast enough. One trick I'm doing as a holdover from the old days is using only integers rather than time & memory consuming strings as fields within my entities. eg. Entity Bob's field 'idJob' = 1, and I just have to know that 1 = 'peasant'. Even with a hundred fields my entities only take up take up 400 bytes and are lightning fast to access.

Man this C# is cooler than I expected.  icon_cool
Logged

EngineNo9
Gaming Trend Senior Member

Offline Offline

Posts: 11175


I said good day, sir!


View Profile WWW
« Reply #11 on: October 08, 2008, 02:56:49 AM »

Quote from: Orgull on October 07, 2008, 10:59:36 PM

Quote from: TiLT on October 02, 2008, 07:24:47 PM

Computing power isn't really the issue here. There's more than enough CPU power in most computers to do the things you describe as long as you're careful with the optimizing. The issue is implementation and testing, as you'll soon find out when you attempt to use your new programming skills in actual projects. You're in for a rude awakening, I think. slywink

You may find that C# isn't fast enough for some of your ideas though. You might need to use C++ instead for the more intensive tasks like world generation and AI. This will further hamper your productivity and increase the amount of potential errors and bugs you'll get.

Holy cow you were right about one thing. There is more than enough power. I just finished creating my own class called Entity and made a loop that creates an array of Entity instances, constructs them, then initializes them. I kept the number of Entity instances down to 100 while doing this, just because I was afraid of how long it would take. For a lark, I just set the maxEntities number to 10,000 and let the method run. It took less than one frame to initialize all 10,000 instances. Took up a bit of memory though. 4 megs. Oh boy.

Well of course it took less than one frame to initialize all of them, they are being done in a loop.  Unless you were doing some frame-limiting amount of processing or doing it in a seperate thread the basic linear design of it means that everything will run in one frame, or game loop.  It's how long that frame took that matters (although in this case I'm sure it was quite acceptable...CPUs can do billions of complex calculations a second).

Quote
So far C# is fast enough. One trick I'm doing as a holdover from the old days is using only integers rather than time & memory consuming strings as fields within my entities. eg. Entity Bob's field 'idJob' = 1, and I just have to know that 1 = 'peasant'. Even with a hundred fields my entities only take up take up 400 bytes and are lightning fast to access.

That would probably be a good place to just use defines or enums instead of "just have to know". 

Best of luck in your endeavor, but I would urge you to drastically trim back your expectations for a first project.  Set a reasonable goal that you can achieve and learn something from, even if it's not the bee's knees (because it won't be). 
« Last Edit: October 08, 2008, 02:58:37 AM by EngineNo9 » Logged

Sandwiches do fix everything.
Orgull
Gaming Trend Senior Member

Offline Offline

Posts: 615


View Profile
« Reply #12 on: October 08, 2008, 06:36:51 PM »

Quote from: EngineNo9 on October 08, 2008, 02:56:49 AM

Best of luck in your endeavor, but I would urge you to drastically trim back your expectations for a first project.  Set a reasonable goal that you can achieve and learn something from, even if it's not the bee's knees (because it won't be). 

Thanks for the advice, and the encouragement. Believe me, I've already scaled down my goals for this project massively. At this point I'm merely experimenting with different aspects of my idea in a very simple prototype program (it's not even a game) to see what works and what doesn't. When I see what works, what turns out to not be fun, and what my personal limits are, I will re-evaluate my ideas.
Logged

Turtle
Gaming Trend Senior Member

Offline Offline

Posts: 9425



View Profile WWW
« Reply #13 on: October 08, 2008, 09:24:02 PM »

What kind of graphics were you looking for in your project?  I'm building my 3D and 2D portfolio and can model and animate some stuff for you to use while you're prototyping.
Logged
Orgull
Gaming Trend Senior Member

Offline Offline

Posts: 615


View Profile
« Reply #14 on: October 08, 2008, 10:11:24 PM »

Quote from: Turtle on October 08, 2008, 09:24:02 PM

What kind of graphics were you looking for in your project?  I'm building my 3D and 2D portfolio and can model and animate some stuff for you to use while you're prototyping.
For this first attempt, I'm currently working on a four-layer 2D tile based engine. (Terrain, terrain overlay, features, items.) Eventually I had planned to simply render as sprites (from 4 angles N,E,S,W) 3D objects for characters. Since I have no skill at all as a 3D artist and only mediocre skill as a 2D artist, any help you're willing to add Turtle would be greatly appreciated. For now I'm just going to use placeholder graphics until I get the game engine actually working. Once I know what size tiles I'll be working with and what kind of animation frame rates the engine will use, I'll let you know. Thanks!

To give you an example of the angle I'm looking for with characters and mobs, I was hoping to use the Warlords 3 style, pictured here.


Logged

Turtle
Gaming Trend Senior Member

Offline Offline

Posts: 9425



View Profile WWW
« Reply #15 on: October 11, 2008, 09:57:05 AM »

Do you have any objection to using stylized 3D models?  What's the world like, cartoony or gritty?
Logged
Orgull
Gaming Trend Senior Member

Offline Offline

Posts: 615


View Profile
« Reply #16 on: October 11, 2008, 05:08:58 PM »

Quote from: Turtle on October 11, 2008, 09:57:05 AM

Do you have any objection to using stylized 3D models?  What's the world like, cartoony or gritty?

No objections at all (beggars can't be choosers).

In an ideal world, I would prefer a specific visual style. I will try to explain. Terrain tiles should be present but softened, no hard edges, no cartoony colours, but clearly 'game' tiles rather than realistic. Terrain should stay where it is, in the background. Terrain features (trees, houses, dungeon entrances) should be a bit more 'present' than terrain. Broader colour palette, slight exaggeration. Items (sword, grain sack, treasure chest) should be defined, broadest colour palette, sharpest edges. Items should stand out. Entities (Jim the Peasant, Angry Elephant, Goblin Marksman) should have the same broad colour palette as items, be slightly exaggerated in scale (but not JRPG or cartoon) and should stand out because of animation.

Since the number of different entity types may be very large, the animations and poses should be kept to a minimum. Idle, Walking, Attacking, Dead and Job. eg. an animals 'job' animation would be eating, a blacksmiths 'job' animation would be hammering etc. Walking and Idle would be rendered in four directions N,E,S,W. Since combat is fairly complex, I think the best way to handle combat is if all mobs have one simple default attack animation and successful attacks appear as overlays on the target. eg. Slash appears briefly as a red streak across the target, Cold snows on the target, etc.

Since the 3D models would be rendered to fairly small tiles (most likely 64x64-ish) model complexity and texturing could be kept to a minimum. The goal would be to create a lot of simple, easily re-textured models rather than a few high-poly masterpieces.

Does that help clarify the direction I'd like to take?

P.S. Thanks very much for your interest Turtle, I really appreciate it.
Logged

TiLT
Gaming Trend Senior Member

Online Online

Posts: 6620


Preaching to the choir


View Profile WWW
« Reply #17 on: October 14, 2008, 07:16:02 AM »

Quote from: Orgull on October 07, 2008, 10:59:36 PM

Holy cow you were right about one thing. There is more than enough power. I just finished creating my own class called Entity and made a loop that creates an array of Entity instances, constructs them, then initializes them. I kept the number of Entity instances down to 100 while doing this, just because I was afraid of how long it would take. For a lark, I just set the maxEntities number to 10,000 and let the method run. It took less than one frame to initialize all 10,000 instances. Took up a bit of memory though. 4 megs. Oh boy.

As mentioned above, a frame is worthless as a way of measuring execution time, for many many reasons. If you want to measure how long it takes you to do something during debugging (and you should, as this will help remove headaches later on), save the system time before and after a series of operations, and compare the results.

Quote
So far C# is fast enough. One trick I'm doing as a holdover from the old days is using only integers rather than time & memory consuming strings as fields within my entities. eg. Entity Bob's field 'idJob' = 1, and I just have to know that 1 = 'peasant'. Even with a hundred fields my entities only take up take up 400 bytes and are lightning fast to access.

Whether you use an int or a long or a string isn't really important (as long as you don't do string comparisons all over the place. That's a big no-no). C# should be good at optimizing this stuff for you. You need to think in terms of readability and flexibility instead. The system you're describing above is a common way of avoiding string comparisons, and is a good start. However, the numbers you find easy to read now will be HELL when you return to them in a few months and try to figure out what you were thinking at the time. Use enums.
 
As an aside, and speaking as a C++ programmer, if you're REALLY concerned about speed and size of your variables, you'll save as much info as you can in each variable, then extract that information using bitwise operators (^, &, | and ~). Using this method, you can for example store 8 separate booleans in one single byte. Very handy, especially when you need to transfer stuff over an internet connection.

I think you might want to read up on general optimization techniques for games before you code any further. It's better if you know as much as you can about this before you design your entire system, instead of having to retrofit the techniques later. Some things you learn are going to surprise you.

Quote
Man this C# is cooler than I expected.  icon_cool

It is. I started learning it about 6 months ago, and I'm already about to get a job where I'll be making C# code all day. Can't wait. smile
Logged
Turtle
Gaming Trend Senior Member

Offline Offline

Posts: 9425



View Profile WWW
« Reply #18 on: October 14, 2008, 10:32:24 PM »

What's the difference between C++ and C#?  I only have very basic programming ability from college classes.  I understand computer language and can still program the basics, but I haven't kept up with all the latest language improvements.

Heh, C++ was just becoming the widespread standard when I was studying it.
Logged
TiLT
Gaming Trend Senior Member

Online Online

Posts: 6620


Preaching to the choir


View Profile WWW
« Reply #19 on: October 15, 2008, 01:55:56 PM »

Quote from: Turtle on October 14, 2008, 10:32:24 PM

What's the difference between C++ and C#?  I only have very basic programming ability from college classes.  I understand computer language and can still program the basics, but I haven't kept up with all the latest language improvements.

Heh, C++ was just becoming the widespread standard when I was studying it.

C# and C++ both share the C approach to syntax, but they are very different in how they approach programming. C++ gives you control over practically EVERYTHING, which means that most things take ages to code and are very vulnerable to subtle bugs that may take months to surface. Unless you install custom libraries like Boost, you're stuck having to do a lot of basic things from scratch. C++ is fast and effective once its code is compiled and run, but getting there can be a chore.

C# hides most of the advanced stuff from you, instead giving you access to what you need through standard libraries (and .NET). You don't have to spend ages coding stuff to get results, and even a beginning programmer should be able to make relatively bug-free code. On the other hand, C# isn't even in the same ballpark as C++ when it comes to execution speed, which makes C++ the only realistic alternative when making commercial games.

You can learn C# in a matter of weeks, while learning C++ properly takes years.
Logged
Turtle
Gaming Trend Senior Member

Offline Offline

Posts: 9425



View Profile WWW
« Reply #20 on: October 15, 2008, 08:41:31 PM »

Ah, nice.  Although I'm still glad I decided not to go into computer science.

Well, back to painting. Tongue
Logged
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines
Valid XHTML 1.0! Valid CSS!
Page created in 0.878 seconds with 65 queries. (Pretty URLs adds 0.082s, 2q)