|
|
View previous topic - View next topic |
Author |
Message |
Flawe Slightly Deformed Faerie Princess
Joined: 29 Nov 2007 Posts: 32 Location: London
|
Posted: Tue Jun 30, 2009 6:14 pm Post subject: Seamless worlds |
[quote] |
|
So I'm thinking of trying something out. I'm thinking of making a test project inspired by old SquareSoft RPGs, early FF games, Chrono Trigger, etc. Combat style should be like Secret of Mana, no random encounters that teleports you to another screen.
However, instead of following the same pattern and having the topdown view for villages and dungeons and the pseudo 3D mode-7 for the "world map", I want to make the entire game in a topdown view.
I'm sure you all know what I mean but in case you don't, imagine playing FF3 and leaving the bounds of a village. You would get teleported to the world map where you can walk around, get random monster encounters and find another village/dungeon to enter. Now in my project there would be no village bounds. If you leave the village you would just continue in the same kind of environment, fighting like Secret of Mana by swinging your sword at stuff.
The reason why I want to do this is because I think the old way breaks the game flow. You're in the world map, looking for dungeons and fighting enemies and then suddenly you're in a village where nothing bad can happen and everything else is different. Doing it the other way you could have new gameplay elements likes monsters entering villages and scripted events inside dungeons like larger battles and so on. Another pretty cool thing you could easily implement is scripted travel. Say you'd want an NPC to walk from one village to the other. Instead of teleporting him or faking it some other way, you could actually let him walk the road and let player wait for the NPC's arrival or something in that direction.
Oh..oh! The number one reason for trying to implement this is because of the streaming. We stream in parts of the map all the time so you never have to switch screens. This will also enable huge, theoretically infinite, maps. You could even use predictable random numbers to create really large worlds.
In older games you would get the impression that the map was huge since the world map was sort of a zoomed out view of the entire world. But in this case everything is the same scale, it would need a nasty amount of tiles to not make the game world feel tiny.
Second problem is that the old way lets you load stuff on demand. You exit a village, you load the world map. You enter a dungeon, you load the dungeon map. My way, you can't do that, it's all seamless. However, I have a pretty good streaming system which I played around with a while ago that can handle this.
Third big problem I can see is how you could handle things like NPC A in village 1 delivers something to NPC B in village 2. If you are in village 1 and fire off the sequence of these events, village 2 might not be loaded in memory because of the streaming system. How would you set the correct flag on NPC B that he got the delivery if the object is not loaded in memory? I guess you could have a pool with global data to handle things like these but I haven't thought much about a solution.
Do you guys have any ideas? What do you think about this? _________________ www.flaviusalecu.com
www.moddb.com/mods/airborn
www.splashdamage.com
www.brinkthegame.com
|
|
Back to top |
|
|
DeveloperX 202192397
Joined: 04 May 2003 Posts: 1626 Location: Decatur, IL, USA
|
Posted: Tue Jun 30, 2009 6:38 pm Post subject: |
[quote] |
|
This sounds really cool.
Good luck with the implementation.
I don't have time to detail any other thoughts about it right now, sorry.
*returns to job searching* _________________ Principal Software Architect
Rambling Indie Games, LLC
See my professional portfolio
|
|
Back to top |
|
|
tcaudilllg Dragonmaster
Joined: 20 Jun 2002 Posts: 1731 Location: Cedar Bluff, VA
|
Posted: Tue Jun 30, 2009 8:44 pm Post subject: Re: Seamless worlds |
[quote] |
|
I like your ideas. So what you're proposing is to remove the "barrier" around towns, and let monsters in? You could actually do that nowadays: the barrier is a relic from the days when memory was scarce.
|
|
Back to top |
|
|
Rainer Deyke Demon Hunter
Joined: 05 Jun 2002 Posts: 672
|
Posted: Tue Jun 30, 2009 9:21 pm Post subject: |
[quote] |
|
It's a nice idea, but hardly novel. The Ultima series has done this since Ultima 6, and a couple of my unfinished unreleased projects used the same technique.
From a technical perspective, the thing to watch out for is the boundary to of the active zone. Consider this scenario:
- The player moves near a village, so part of the village is activated.
- This triggers a spawn point, causing an npc to spawn in the village.
- The npc's script tells it to move to some other part of the village, outside the active zone.
- The npc leaves the active zone and is removed from the game.
- When the player reaches the village, the npc is missing.
There are a couple ways of dealing with this issue, all with their own drawbacks.
|
|
Back to top |
|
|
Flawe Slightly Deformed Faerie Princess
Joined: 29 Nov 2007 Posts: 32 Location: London
|
Posted: Tue Jun 30, 2009 9:44 pm Post subject: |
[quote] |
|
Yeah, Ultima didn't have the boundaries, but if I remember correctly they didn't utilize it very much did they? I mean, you can have scripted village raids or large battles or even wars between different villages, etc. It's not really anything new, I know that, but I don't think it's been used to the full extent.
Also, what I'd like to experiment with more is the predictable random numbers concept. Streaming in the world will create the opportunity to have huge maps. Together with predictable random numbers, you can create infinite maps. I like the idea but RPGs are story based so I'm not sure how well it will work. _________________ www.flaviusalecu.com
www.moddb.com/mods/airborn
www.splashdamage.com
www.brinkthegame.com
|
|
Back to top |
|
|
tcaudilllg Dragonmaster
Joined: 20 Jun 2002 Posts: 1731 Location: Cedar Bluff, VA
|
Posted: Wed Jul 01, 2009 12:32 am Post subject: |
[quote] |
|
Why not have random stories? It's been done in The Sims. Give "people" motivation and watch them go. :)
|
|
Back to top |
|
|
Jon Alma Monkey-Butler
Joined: 09 May 2005 Posts: 50 Location: The Sunny South of France
|
Posted: Wed Jul 08, 2009 9:08 am Post subject: Re: Seamless worlds |
[quote] |
|
Flawe wrote: | Third big problem I can see is how you could handle things like NPC A in village 1 delivers something to NPC B in village 2. If you are in village 1 and fire off the sequence of these events, village 2 might not be loaded in memory because of the streaming system. How would you set the correct flag on NPC B that he got the delivery if the object is not loaded in memory? I guess you could have a pool with global data to handle things like these but I haven't thought much about a solution.
Do you guys have any ideas? What do you think about this? |
I've managed to create (after a bit of pain) a seamless world system where map sections are loaded on the fly - the Legends world has gone up from a maximum of 5km by 5km to in theory 15000 square km ... just need to fill this space now! The thing that helped me most with getting started was this Dungeon Siege Development Diary which had some useful ideas (even if I didn't need such a free form world in the end)
As for the scenario you outlined above (village 2 not existing in memory) well there is an easy solution - as soon as an NPC moves outside the section of map loaded the NPC is disabled and will stop trying to deliver the package - as soon as the player moves close enough to the NPC the NPC is reactivated and the delivery continues. This has the advantage of keeping processing to reasonable limits (no processing for NPCs and objects when they are not close to the player) and it is not obvious that the NPCs are disabled as the distance to the loaded map edge is far enough beyond the viewing distance the player) to make things look natural. It even rubber bands NPCs actions to the players progress (if you have an NPC bounty hunter chasing the same fugitive as the player then his progress is matched to that of the player because every time he gets too far ahead the NPC is disabled). Only big problem is if you want long distance events to take place (vilage being burnt down, NPCs attack each other out of sight, etc) when the player is nowhere near. This doesn't work with the above system, but could be handled through some careful scripting.
The biggest headache is managing persistent objects when map sections can be deleted from memory. Basically what I have done is to firstly link all NPCs and objects to a map section so they are only created when the map section is first loaded. From that point on all NPCs are persistent (although I only keep the minimum of persistent data per NPC in memory - anything that can be deleted is deleted when the NPC is not active). For objects they only become persistent when they are 'touched' by the player or an NPC. With this in place it is just a matter of managing the saving/loading of persistent objects to and from save files, overwriting any non-persistent data. Of course save files grow as the game goes on but with Legends the size is acceptable, a lot less than for many commerical games and it definitely won't be the case that the game world all ends up in the save files as ultimately most of the game world is just ... scenery.
Finally, don't forget that a seamless world only feels seamless if the streaming code is fast (less than 1-2 seconds per load), at least for exterior movement (you can get away with changing from the interior to the exterior taking a few more seconds). For instance with Morrowind loading new sections of the map on my computer took 15+ seconds - enough to nearly ruin an otherwise fantastic game.
Jon. _________________ Legends from the Lost Realms
|
|
Back to top |
|
|
|
Page 1 of 1 |
All times are GMT
|
|
|
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
|
|