Techious
http://www.techious.com/forums/

Brainstorming ideas for a game
http://www.techious.com/forums/viewtopic.php?f=8&t=7275
Page 1 of 2

Author:  azcn2503 [ Thu Apr 05, 2012 10:38 pm ]
Post subject:  Brainstorming ideas for a game

So, making a game, and asking myself these questions...

A player casts an ability on another player. What is calculated?

This would depend on certain items they are wearing - the items may be modifying stats that affect damage output. They may be wearing special gear that improves certain damage types, or a specific ability. They may be wearing a set of gear that provides them with a set bonus that might affect these things also.

Perhaps the ability cannot be cast at all because of an effect on your player, cast by someone else, is preventing you from casting abilities. Are you dead?

What effects are part of that ability? Does the ability trigger other effects? Does it heal you, others around you, etc.

Does the receiving player have special effects that reflect or absorb damage? What items are they wearing? What special set bonuses do they have? What are their mitigation values and other raw statistics? Are they already dead or are they alive?

Does the ability land effects on the target player? Is the target player immune to certain types of effects? Can they still receive the ability but not receive a lasting effect or debuff or buff?

Does the ability queue additional abilities, on timers, for damage over time, heal over time? etc.

How does this all go in to code? ;)

Most of the code is on players.
Players contain their own player abilities, effects, items, stats, etc.

Some code is on equipment.
Some code is on equipment sets.

Interested in working on a project like this? Interested in seeing what I can do?

Author:  Lord Metritutus [ Thu Apr 05, 2012 10:46 pm ]
Post subject:  Re: Brainstorming ideas for a game

I'm interested in helping with this if I can!

As for effects and so on, I believe the most important thing to do before diving into code is design. Work out what the base effects you want to have in the game. ie damage, heal, etc, and then maybe break those down, ie damage might have fire, cold, physical, psionic, etc.

Statistics, what type of weapon - close combat, ranged, physical or magical, (or enchanted, which could do a magic type damage with a physical attack, whereas a purely magical thing does something else entirely).

Author:  azcn2503 [ Fri Apr 06, 2012 10:30 am ]
Post subject:  Re: Brainstorming ideas for a game

I figured all of this out last night.

I was trying to just code something in a very flat way, but everything is completely, 100% event driven. Therefore I'm making functions for everything, like creating players, assigning equipment, using abilities, processing triggers, etc.

I'll paste up what I can some time.

Author:  Hawke [ Fri Apr 06, 2012 5:35 pm ]
Post subject:  Re: Brainstorming ideas for a game

So when you cast a spell on a girl... all her clothes fall off and you can see her naked. Of course she'll then be scrambling to cover herself up but you've seen everything. And then when you talk to a girl there's an option to see her naked so all her clothes fall off. She'll then try to be modest but you've seen everything.

Author:  Lord Metritutus [ Fri Apr 06, 2012 5:45 pm ]
Post subject:  Re: Brainstorming ideas for a game

Hawke wrote:
So when you cast a spell on a girl... all her clothes fall off and you can see her naked. Of course she'll then be scrambling to cover herself up but you've seen everything. And then when you talk to a girl there's an option to see her naked so all her clothes fall off. She'll then try to be modest but you've seen everything.


Instantly.

Author:  azcn2503 [ Fri Apr 06, 2012 10:49 pm ]
Post subject:  Re: Brainstorming ideas for a game

She casts reflect. Suddenly you are naked.

Author:  azcn2503 [ Wed Apr 11, 2012 9:18 am ]
Post subject:  Re: Brainstorming ideas for a game

I've got players and assigning abilities sorted for the most part. Now to work out what is calculated when a player casts an ability...

Imagine 2 players, Aaron and Simon...
Aaron has a damage ability that deals instant damage and also deals a small amount of damage over time for 5 ticks.
Simon has an effect on him that heals him for a fixed amount when any damage is received, for 3 triggers.

Think of the data required for the ability effects...
The abilities themselves needs a name, description, array of effects, ability type (spell, melee, etc.), target type and cast time
Damage needs: 1 effect to describe the instant damage, 1 effect to describe the damage over time.
Instant damage needs an amount to damage for, and a send tag of damage.
Damage over time requires a tick counter, a tick delay, and a tick limit. It also needs to send tag damage.

Reactive heal needs: 1 effect. This effect needs: duration (set to expire in 30s), tick counter, tick limit, match tag of damage, target of self

Aaron casts ability Damage on Simon (wait cast time)
Damage effect Instant Damage lands on Simon for 100 damage (tag: damage)
Simon receives match of (tag: damage) on his effect Reactive Heal
Reactive Heal heals Simon for 100, tick increase from 0 to 1 (limit is 3)
1s later... Damage effect Damage Over Time lands on Simon for 10 damage (tag: damage), tick increase from 0 to 1 (limit is 5)
Simon receives new effect Damage Over Time as a player effect
Simon receives match of (tag: damage) on his effect Reactive Heal
Reactive Heal heals Simon for 100, tick increase from 1 to 2 (limit is 3)
1s later... Damage effect Damage Over Time lands on Simon for 10 damage (tag: damage), tick increase from 1 to 2 (limit is 5)
Simon receives match of (tag: damage) on his effect Reactive Heal
Reactive Heal heals Simon for 100, tick increase from 2 to 3 (limit is 3)
Reactive Heal effect expires (remove effect from Simon)
1s later... Damage effect Damage Over Time lands on Simon for 10 damage (tag: damage), tick increase from 2 to 3 (limit is 5)
1s later... Damage effect Damage Over Time lands on Simon for 10 damage (tag: damage), tick increase from 3 to 4 (limit is 5)
1s later... Damage effect Damage Over Time lands on Simon for 10 damage (tag: damage), tick increase from 4 to 5 (limit is 5)
Damage Over Time effect expires (remove effect from Simon)
(If Aaron dies while Damage Over Time is active, remove effect from Simon)

Just an example... very simple right now...

Needs a function to...
use abilities and effects
queue abilities and effects
remove abilities and effects

If anything has an effects array, it will be treated as an ability. This could in theory allow for recursive effects... and infinite loops (like before, reflecting reflect damage) -- it is because of this that the same function that uses and queues abilities will be used to process player effects - as they are basically abilities too, as they contain effect arrays.

Question: Should an ability effect be calculated against a target players resistances, or should the ability itself be calculated? Think of it like this:
{ Ability [ Effect, Effect, Effect ] }
I'm thinking I should just calculate against the ability to keep things simple and understandable from a players perspective. So if an ability is cast and it resists - none of its effects are processed.

I've been asking about on other forums to find out if people are interested in this project and a question that gets brought up a lot is: will it work on mobile devices? I have got to say - I have no intention whatsoever of supporting mobile devices personally, as it does not interest me. Flame me down because I know, I should be, and I should realise its potential, but I'm really not a mobile app developer, and I don't believe for one minute that a game on the scale of what I'm thinking here can possibly be condensed/simplified in to a mobile 'app'. Sorry!

Author:  Harry [ Wed Apr 11, 2012 12:35 pm ]
Post subject:  Re: Brainstorming ideas for a game

Surely for the effort that will go into the project, making it work on mobile devices using standard browsers should be easy? (Since imo, the backend is gonna be the difficult bit, not so much the drawing of pictures). The only thing that changes between desktop and mobile would be the way things are drawn (You know, different interface/scale of images etc).
Obviously I don't know the knitty gritty, so I could be wrong (and quite often am!).

Author:  azcn2503 [ Wed Apr 11, 2012 2:09 pm ]
Post subject:  Re: Brainstorming ideas for a game

You could be right. However, you did just put 'standard' and 'browsers' in the same sentence while referring to a game that will almost be made entirely in JavaScript :O

Touch support works differently on different devices. It would need a lot of testing but it can be done. It would be by no means standard or one code to suit all.

Author:  Harry [ Wed Apr 11, 2012 2:29 pm ]
Post subject:  Re: Brainstorming ideas for a game

Nope, but it would support the GalaxyS2 :D
I suppose it would be reasonably easy to develop for the iPhone, but 'dat developer license!

Author:  azcn2503 [ Wed Apr 11, 2012 2:33 pm ]
Post subject:  Re: Brainstorming ideas for a game

Sorry.. I was stuck thinking of browsers for phones, when you're talking about actual applications. I'm a noob. I shall leave this in your capable hands lol, as this is an area I know nothing about.

Author:  Harry [ Wed Apr 11, 2012 2:36 pm ]
Post subject:  Re: Brainstorming ideas for a game

I was thinking of both to be honest :P
I just presumed that Apple would try and take you up the ass at some point :P

Author:  azcn2503 [ Wed Apr 11, 2012 2:41 pm ]
Post subject:  Re: Brainstorming ideas for a game

Well that's something we can all look forward to :)

Author:  Harry [ Wed Apr 11, 2012 2:43 pm ]
Post subject:  Re: Brainstorming ideas for a game

IOS doesn't deserve an app though :/
(It's $99/year)

Author:  azcn2503 [ Thu Apr 12, 2012 10:24 am ]
Post subject:  Re: Brainstorming ideas for a game

http://dl.dropbox.com/u/35700837/test/test.html

How to make yourself epic:
Code:
var p=game.d.players[game.f.createPlayer(prompt("Your name please"))]; for(var i in p.slots){ if(typeof(p.slots[i])==="object"){ game.f.equipItem(p,game.d.items[2],i); } } test();

Author:  Harry [ Thu Apr 12, 2012 12:23 pm ]
Post subject:  Re: Brainstorming ideas for a game

I read that through. So it makes a new character with whatever name, and I'm guessing it equips the Gloucester Sausage in each slot? :3

I remember reading somewhere that you weren't going to incorporate factions?

Author:  azcn2503 [ Thu Apr 12, 2012 12:29 pm ]
Post subject:  Re: Brainstorming ideas for a game

Hmm, I don't think I said that, but maybe I did.

Author:  Lord Metritutus [ Thu Apr 12, 2012 12:32 pm ]
Post subject:  Re: Brainstorming ideas for a game

Player-created factions!

Author:  Harry [ Thu Apr 12, 2012 12:35 pm ]
Post subject:  Re: Brainstorming ideas for a game

Check the revisions on the doc, and you should be able to see where I put the comment.
Alternatively, do a ctrl+f and search for Faction, it's the first one :)

Quote:
Factions


There will be no good/evil players. For the sake of argument, we will all be neutral.

Author:  azcn2503 [ Thu Apr 12, 2012 12:43 pm ]
Post subject:  Re: Brainstorming ideas for a game

Thanks, revised to say there will be lots of factions.

As a side note, I'm kind of deviating from the original game document I was working on, as I'm using EQ as a base model.

I also think I'm getting confused between factions and good/evil. Factions in EQ are like favour, but factions in other games are good/evil. I guess I mean factions like favour. Good/evil will be up to the player to decide what they are. I think this will be super cool.

Author:  azcn2503 [ Tue Apr 17, 2012 8:40 am ]
Post subject:  Re: Brainstorming ideas for a game

Let's think about conversations.

How would conversations result in game data changing, like a quest updating, or being provided with an item, or changing from one speaker to another speaker?

What do you think would be the best way for the code to be structured?

Author:  Lord Metritutus [ Tue Apr 17, 2012 11:06 am ]
Post subject:  Re: Brainstorming ideas for a game

Dialogue trees!

Author:  azcn2503 [ Tue Apr 17, 2012 11:23 am ]
Post subject:  Re: Brainstorming ideas for a game

Sometimes it might be necessary to have dialogue between multiple people. How would these tie in? ;)

Author:  Lord Metritutus [ Tue Apr 17, 2012 11:29 am ]
Post subject:  Re: Brainstorming ideas for a game

azcn2503 wrote:
Sometimes it might be necessary to have dialogue between multiple people. How would these tie in? ;)


Do you mean quest-dialogue in some scripted conversation? Or do you mean a conversation between two (or more) NPCs, in which case it would all be prescripted anyway?

Alternatively you could go the Half-Life route and have randomly generated conversations based on pre-defined phrases. The phrases that get selected trigger other phrases in the dialogue trees for each NPC, those NPCs have particular responses for the randomly generated responses of other NPCs talking to it...etc?

Author:  azcn2503 [ Tue Apr 17, 2012 12:57 pm ]
Post subject:  Re: Brainstorming ideas for a game

I'm thinking of having conversations in an object (instead of an array) and having each piece of dialogue (like a node of conversation) in its own object, within the conversations object. Each node would contain information that would say whether the conversation can be continued, and show choices for the player to respond with. Players/entities could have certain conversations attached to their player object that could fire on triggers, like moving in to their awareness field, or something, and do some random conversation. I'm not fussed about having any automated 'intelligent' conversation between players.. that seems like too much at the moment!

But something like this:

Code:
conversations={
    "conv1":{
        speaker:npcObject1,
        target:null,
        language:"english",
        content:"Hey, how are you?",
        responses:{
            "resp1":{
                speaker:playerObject1,
                content:"I am great thanks, how are you?",
                toConv:"conv2"
            },
            "resp2":{
                speaker:playerObject1,
                level:10,
                content:"I am a battle hardened veteran, how dare you speak to me!"
                toConv:"conv3"
            }
        }
    },
    "conv2":{
        speaker:npcObject1,
        language:"english",
        content:"Great thanks! Bye!"
    },
    "conv3":{
        speaker:npcObject1,
        language:"english",
        content:"I'm sorry I asked :("
    }
};


npcObject would be the object for the person speaking, it could be someone different, nearby, or something.
playerObject would make the player speak the text back.
language would search through the players skills to see if they have the language in their skills list. Otherwise return random garbage with no response.
Target would say whether the conversation was targeted at a specific player or group of players, or if it is just said aloud then null.
Level might be a level requirement for the dialogue option to be available.
Thinking of delving in to requirements more extensively and having a requirements object within each node like: requirement:{level:2,languages:["english","froggish","ducky"]} or something.

And then perhaps attach conversation to npc's and players, instead of having them as one big global object.. makes more sense I think.

And then attach a triggers object to them so they could start conversations when certain things happen, or maybe just become hostile, or something, but this would be separate from conversations, although could start one.

Page 1 of 2 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/