Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411281 Posts in 69324 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 10:28:58 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsTIGS Coop. Game Dev, Now 50% More Roguelike-ish!
Pages: 1 ... 3 4 [5]
Print
Author Topic: TIGS Coop. Game Dev, Now 50% More Roguelike-ish!  (Read 12834 times)
VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #80 on: March 06, 2013, 03:22:33 AM »

We're doing a hybrid of both procedural generation and 'placed down' areas.  The current plan is to use procedural generation for the over-world. Over-world will be the same for every game (same seed each play).  This enables free roaming exploration.   There will be procedurally generated dungeons (and towers?) too, but these will be randomized each play.  The placement of the dungeons in the overworld will be the same each play, but the insides of the dungeons will be different.  If you return to a dungeon in the same play-through it'll be the same as you left it though (to encourage exploration of other areas).  Return to that same dungeon entrance on a new play-through it'll be different.

With both the over-world and the dungeons folks can decide to change the current region they're looking at by editing that part of the map, even add their own new tile-sets to the game.  That edited area becomes user created and is no longer procedurally generated.  You could decide to create some crazy stuff as the 13th floor of a dungeon -- to place quest items or boss battles, for example -- but leave all the floors surrounding that part randomized.

While you edit part of the world your edits exist only on your computer.  This is so you can design and refine the part you're working on and test it to ensure it works.  Once you're satisfied you can create a patch delta that contains your edits to the world.  These user created patches can then be shared with each other as mods, or uploaded and patched into the main game so that everyone can experience them.

That means the world will probably be mostly procedurally generated, but over time it can get more user patched stuff in it.  I'm hoping the randomized dungeons will keep the unchanging user patched parts from being too stale;  If players get bored of the static patched parts of the world they can just strike out into the endless randomly generated frontier.

That's the plan anyway; Things may change as stuff gets built but this is the goal I'm shooting for.  I think is has the potential to please the most folks.

_________

We still need to decide if the items and their effects should be randomized each play.  In some roguelikes you can find items like "a red flower bud" which turns out to heal you if you eat it, but next time you start the game over those red flowers could be poisonous, or make you go berserk and attack everything you see...
Logged

Impmaster
Level 10
*****


Scary, isn't it?


View Profile WWW
« Reply #81 on: March 06, 2013, 03:26:17 AM »

I don't know. I've always hated the concept of randomized items. It seems too much to me like the dev is punishing the player for trying out things.

By the way, how difficult would it to make the world multiplayer? Not saying that we should, just wondering.
Logged

Do I need a signature? Wait, now that I have a Twitter I do: https://twitter.com/theimpmaster
VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #82 on: March 06, 2013, 03:47:35 AM »

Yeah, the randomized items can be quite frustrating.  This is usually mitigated by having harmful potions and such not be extremely deadly.  That way you know to drink a new potion to see what it does when you have full health, in a safe environment.  Once you discover its effects though it's not so bad.  What can be bad is when you try to come back to a saved game after a while and remember what all that crap does.  If we adopt a random item system we should list the known effects in a menu somewhere.   I could go either way on randomized items.

how difficult would it to make the world multiplayer? Not saying that we should, just wondering.

I've actually made allowances for that sort of thing in the engine design, asset formats, and fetch / sync protocol.  Multiplayer would require that players synchronize their random seeds, which is very simple.  Multiplayer would also need some way of synchronizing the world changes between players, say, streaming the world deltas between players as some kind of 'patches', heh.

So, that's why the patch system works that way: It's a general purpose solution to create saved games, world mods, offline collaborative building, or to synchronize world data between players in real-time (for multiplayer).  I don't have plans to add multiplayer support to the 1st version of the game, but I'm considering local multi-player (ala Minecraft) as a feature for some future version, and making good scalable design decisions (like sharded asset storage) in case the game wants to be an MMO with collaborative world building someday.

Note that I'm not insane.  Massively multiplayer games are difficult by their nature.  I'm not attempting to create an MMO engine at the outset, that would be crazy; I'm only trying not to limit the possibilities needlessly.
Logged

Impmaster
Level 10
*****


Scary, isn't it?


View Profile WWW
« Reply #83 on: March 06, 2013, 03:52:14 AM »

To my noobish ears, you sound like a good coder.

If you drink a potion when you are in a safe area, then what is the point? You've already drunk the potion. If it heals, you are already safe. If it hurts, you are hurt. You can't really use it again.
Logged

Do I need a signature? Wait, now that I have a Twitter I do: https://twitter.com/theimpmaster
Geeze
Level 5
*****


Totally.


View Profile
« Reply #84 on: March 06, 2013, 07:26:28 AM »

The point is to identify potion type, not just a single item, if the potion was a healing potion, you now know all potions of that type. The problem of the identification relates to game lenght, if the game is quite long, eventually all types are identified and that "sub game" disappears. Only sane possibility i see, is that identifications are randomed for each dungeon, not the whole game.

Roguelike radio episode 30 is all about identification systems and might be worth checking out.

Let players use potions in multiple ways, like in nethack, where you can throw potions. That potion of acid could be quite useful. Also this would allow safer identification by throwing unknown potions on enemies and then observe the effects. Risk is buffing a monster, but that's definitely better than risking insta-death.
Logged

VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #85 on: March 06, 2013, 09:17:21 AM »

If you drink a potion when you are in a safe area, then what is the point? You've already drunk the potion. If it heals, you are already safe. If it hurts, you are hurt. You can't really use it again.

It's not that each individual potion would be random.  For example, once you discovered that eating a 'red flower' item causes Berserk status effect, then you know that for the current game all red flowers cause berserk.   With randomized items if you start out a fresh new game then it could be red flowers now heal you instead, and a 'green bubbly potion' could then cause berserk.

IMO, the point is just to keep alive that sense of exploration.  If you woke up tomorrow in wonder land, you wouldn't know what stuff to eat to make yourself big or small until you tried it (or tried it on someone else).  Roguelikes with randomized item effects foster a sense of being unsure and cautious about your potentially dangerous surroundings; As you become familiar with the strange new world you can be more sure of yourself.  Also it keeps folks from looking up what everything does on a Wiki...

The problem of the identification relates to game lenght, if the game is quite long, eventually all types are identified and that "sub game" disappears. Only sane possibility i see, is that identifications are randomed for each dungeon, not the whole game.

I agree that the "sub game" of identifying things goes away the longer you play, but that's not always a bad thing.  The player could have grown out of that identification stage of the game, and can now reduce cognitive load of identifying things to focus on higher minded stuff like combining spell and item effects, etc.

Randomized items per dungeon is an interesting idea, I'm in no way against it.  However, it introduces a few problems that would have to be worked out:  If you take some healing potions out of one dungeon and into another dungeon, do they still heal?  If they do, but newly acquired potions have a different effect, then you might wind up with two 'red flower' items in your inventory that both do different things.  Alternatively, the items in your existing inventory could be changed into the newly randomized types of items, but then what's the point of identifying items since your inventory becomes your "rosetta stone": I had 16 green potions that healed me, and 3 blue poisons, now I have 16 black salves, and 3 red flasks...  You could prevent the player from taking items with them in / out of dungeons but that doesn't seem like the thing to do if you're looking for "sane" possibilities (that won't drive players crazy).

Quote
Roguelike radio episode 30 is all about identification systems and might be worth checking out.

Thanks! I'm checking it out. Here's the aforementioned episode link if any are interested:
http://www.roguelikeradio.com/2012/04/episode-30-identification-systems.html


Quote
Let players use potions in multiple ways, like in nethack, where you can throw potions.

Excellent point.   I had just assumed folks would use items on things other than themselves, but that's another point to decide on.  Previously some sort of 'longer range' attacks were mentioned as well...
Logged

jctwood
Level 10
*****



View Profile WWW
« Reply #86 on: March 06, 2013, 10:40:11 AM »

A quick way to make the identification system useful is by making every potion do something advantageous, so harmful poisons could be thrown for splash damage!
Logged

Geeze
Level 5
*****


Totally.


View Profile
« Reply #87 on: March 06, 2013, 11:06:48 AM »

I agree that the "sub game" of identifying things goes away the longer you play, but that's not always a bad thing.  The player could have grown out of that identification stage of the game, and can now reduce cognitive load of identifying things to focus on higher minded stuff like combining spell and item effects, etc.

Randomized items per dungeon is an interesting idea, I'm in no way against it.  However, it introduces a few problems that would have to be worked out:  If you take some healing potions out of one dungeon and into another dungeon, do they still heal?  If they do, but newly acquired potions have a different effect, then you might wind up with two 'red flower' items in your inventory that both do different things.  Alternatively, the items in your existing inventory could be changed into the newly randomized types of items, but then what's the point of identifying items since your inventory becomes your "rosetta stone": I had 16 green potions that healed me, and 3 blue poisons, now I have 16 black salves, and 3 red flasks...  You could prevent the player from taking items with them in / out of dungeons but that doesn't seem like the thing to do if you're looking for "sane" possibilities (that won't drive players crazy).

I think all that is solvable quite easily. Items such as potions have description AND origin. When a player gets a new item, he knows it's origin, right? This was from that dungeon and that was from the temple. It makes even more sense with multiple different settings. Why wouldn't the player character be able to differentiate a bottle from not-too-distant future from another bottle from magical past. This way items took from earlier dungeons can be taken to others, with no effect on the identification subgame.
Logged

VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #88 on: March 08, 2013, 04:20:52 PM »

Just dropping a note here to say that I've done some more work on the graphics systems for this game, but I'll be out of commission for about a week: I'm participating in the 7 day Roguelike Challenge

This kind of hit me by surprise, and totally unprepared (esp. scheduling wise).  I initially didn't plan to participate since I have to work that week, but I just kept thinking about cool stuff I could do (too many stuffs, in fact).  So, I'm going to give the challenge my best shot, even if I'm not able to give it the full attention it deserves.

I randomly selected HTML5 as the platform for the 7DRL, so I plan to use the challenge as a chance to get the audio and graphics systems of this project into a working state.

Shortly after the challenge is over I'll have a bunch more progress to post here as well. Smiley

If any are interested in my 7 day roguelike entry you can track my progress here.
Logged

Impmaster
Level 10
*****


Scary, isn't it?


View Profile WWW
« Reply #89 on: March 08, 2013, 05:28:04 PM »

Alright. Good luck!
Logged

Do I need a signature? Wait, now that I have a Twitter I do: https://twitter.com/theimpmaster
jctwood
Level 10
*****



View Profile WWW
« Reply #90 on: March 09, 2013, 01:22:42 AM »

Good luck vortex!
Logged

soundlust
Level 0
**


View Profile
« Reply #91 on: March 09, 2013, 07:15:29 AM »

The hybrid procedural idea you guys are going for reminds me of Caves of Qud,
and it was one of my favorites for a long time, so I'm definitely all smiles hearing that.

And goodluck Vortex, I've always wanted to follow along as people made their 7drl, but it's
so hard to track down devlogs.
Logged
VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #92 on: March 10, 2013, 03:58:06 PM »

Thanks for all the well wishing folks!  I'm starting the 7DRL now, so see you in 168 hours. Smiley

I've always wanted to follow along as people made their 7drl, but it's so hard to track down devlogs.

Ah, well, if you want to follow all of the 7DRL devblogs at once there's a site for that.  The site's kind of kinda slow, so be patient; 7DRL has about 300 participants now -- over 3 times as many as last year, I'm told.

Edit:


"ASCII" Paint?  Tongue
« Last Edit: March 12, 2013, 11:08:54 AM by VortexCortex » Logged

VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #93 on: March 18, 2013, 03:23:30 PM »

I didn't complete the 7DRL challenge...  I plan to shelve that game for now and get back to it later.

In the process of working on InvadeRL I did create a bunch of engine tech that we can use for this colaborative game.

Seven 20 hour long days of coding (on both my work and game stuff) has left me in need of some serious recuperation.  So, I haven't yet cleaned up the code, or begin polishing and porting features back into the Mason Engine just yet.  I did take a bit of time and prepare to do so, though.

After I stripped out all the (vehicular) gameplay (it's not applicable in this game) I'm left with only the tile engine, the title screens, and an initial "cut-scene".

You can see the tile engine in action here.  Note: the content creation stuff is finicky, and not fit for prime time.  I also only tested on Firefox and Chrome, but will test more browsers later.

At first glance it's not immediately apparent how this ASCII game is helpful to us in any way.  However, the thing to note is that each of those "characters" is actually a two-layer graphical tile!

Imagine that every glyph is really a 9x16 pixel tile, then you'll see.  Yep, the animated smoke is actually just changing the tiles that are displayed.  The stars and the the menu texts and smoke are all separate layers of tiles, and can even have different tile-rendering modes.

For example: The animated menu selection cursors are "text-sprites" -- Imagine them as a layer of tiles that can be composited, or "patched" atop the base tile set.  The tiles can even change over time as if they were frames of a sprite.

This means you could design part of this coop game's world to have various "stages".  A City could have: Normal, Destroyed, under repair states, and the engine can select between them.  I even worked on optimizing the tile renderer so that the tiles can change many times per second. So, If you want, you can even animate the tiles changing in real time -- That's how I made the smoke and bugs and lighting effects in the InvadeRL intro -- It's 100% Tile-Based!  Also press 'B' to see the lighting visualization debug render mode.

Edit: Oh, I noticed I broke the zoom scale feature that detects your browser window size.  Just use the scroll wheel to adjust zoom in this case.
« Last Edit: April 04, 2013, 12:50:21 PM by VortexCortex » Logged

VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #94 on: April 03, 2013, 03:48:54 PM »

Just an update to let you know we're still kicking.



I got music and sound effects working, as well as rudimentary tile placement in the online version. It's not quite ready for public consumption yet, but I'm making steady progress on the code.

I'm experimenting with using marching squares to automatically stitch tiles together to speed up manual tile placement.

These metallic hole tiles are WIP, and actually not for this project -- Just using them here to see if the diagonal stitching is working.  Also the upper left corner configuration indicates we may want at least two different layers of tiles:  A base layer for the ground stuff, and another to place walls on (so we don't have to make a million base tiles each time we want one partial tile atop a background tile).

We may not end up using any diagonals for this project, but my engine will support it.
Logged

jctwood
Level 10
*****



View Profile WWW
« Reply #95 on: April 03, 2013, 09:11:13 PM »

It sounds like it is coming along well Vortex! Great to hear some more. Sorry i have been so inactive lately but I had exams which won't be over for another month or two. Looking forward to getting my teeth sunk into something after then though! Well done for keeping it going.
Logged

VortexCortex
Level 2
**


Engram Architect


View Profile WWW
« Reply #96 on: April 10, 2013, 07:00:20 PM »

Now working on the streaming tile renderer and multi-level coordinate system.


This shot shows the debug "engine coordinates" output of each 16x16 block of tiles.  Each different color 16x16 area is a section of cached tiles.  If a section of tiles has been rendered recently it's not re-drawn or recomputed: The cache is used as the screen scrolls seemlessly.  The effect is that loading time for user created patches is diminished to be unnoticeable (pre-fetching), and rendering speed is increased.

Also, tiles wrap at the edge of the world and we can scroll at sub-tile resolution, ie, don't have to scroll a full tile at a time.

The caching and coordinate systems affect gameplay indirectly: The limits of the tile coordinates, and bandwidth costs will determine how big we can make the game world.

Some more experimenting must be done, but currently I plan on supporting a game world with up to enough tiles to cover the surface of the Earth, to scale.  Eg: If each tile is 1m (~3ft) in width and height, then we'll need to support about 40 million x 40 million tiles to contain a to-scale tile based version of Earth.  A copy of Earth in tile form wouldn't be very procedural -- well, I could use OpenCV to search among the 4 billion over-world seeds to find a close match to Earth, I suppose, but that would defeat the purpose, eh?.

I'm not sure what max world size would be best from a gameplay perspective.  We may need to do a much smaller planet instead.  Scrolling 40 mil tiles at 20 screens every minute (3sec per 40 tile wide (640px) screen) would take 3.8 years to go all the way around the planet once (that's 7.2kph or 4.5 mph), and you'd need to do that over a million times to see the whole planet -- Or, it would take over a million people playing non stop for 3.8 years to explore the whole thing.  Though the engine could theoretically support a much larger world, this seems a large enough, so that'll be the upper limit I'd say.


Next I'll begin merging the tile placement code with the infiniscroller code. That means we should have something to play with soon -- After that we'll be fleshing out the details of the procedural tile placement systems.
Logged

jctwood
Level 10
*****



View Profile WWW
« Reply #97 on: April 10, 2013, 10:42:44 PM »

Great! Would be brilliant to achieve full world mapping 5 years down the line as a global goal. Haha. But i think it makes more sense to have some sort of region system with the ability to progressively move between regions instantly? Like teleportation or just a vehicle system. Or just mounts? Some way of moving through the vast landscape. Unless we had an overworld like FFI
Logged

Pages: 1 ... 3 4 [5]
Print
Jump to:  

Theme orange-lt created by panic