How hard can you push gmod? I want to expand DarkRP into a fallout-esk mod.
17 replies, posted
I'm a software engineer so one way or another it will get coded i just don't know how plausible it is.
I used to play the hell out of darkrp and after a couple of years finally jumped on gmod13, loving all the workshop fun.
How much control do you have over what the client does? I want to seriously revamp DarkRP like, requiring merchants to re-supply from NPCs (this appears really easy) and creating some kind of civilian AI life (this appears really hard, i mainly just want wild-life which would be much eaiser).
The other thing is keeping all the core gmod stuff is very vital but needs to be seriuosly limited, would it be possible to create some kind of "Fallout esk mod"? Obviously leveling and inventory would be rather easy to code, but i need to make a "massive" map that "requires" you to go out and explore to force you to find props/objects before you can use them. (it would be in like a magical toolbox, not spawning the actual props all over the place). I want to create some kind of requirement for building, not just sandbox with spawn classes. I was thinking about instead of searching for props you need to buy them from a vendor or a "build credit" giving you two currencys building and economy. And eventually i would love to add some type of quest system, but i really don't know the gmod limitations on that.
I think i just might be trying to push gmod a bit too far. I want to prototype a game idea i had.
Also (in physical space terms not hammer units) how big can you make a gmod map?
Well, GMod maps cannot be really big, load up gm_flatgrass, the largest possible map, and see for yourself.
+/- 16384 are the max for the x, y, and z coordinates for Hammer. As for Civilian API, it is possible with Nextbot
You can sorta get around map size by building maps on top of each other and teleporting players up there
[QUOTE=Exho;47429200]You can sorta get around map size by building maps on top of each other and teleporting players up there[/QUOTE]
The height is not infinite either.
Hence the "sorta"
There was talk some time ago of sorta cheating the system by scaling map props and players down to give the illusion that the map was bigger. Had the chance to dick around on a test server a friend set up with this sorta system and everything worked fantastically as far as I could tell. There were far fewer noticeable problems than anyone who tested it expected, and i remember it feeling just like you were playing on a really big map (a regular map was used during the testing so it appeared something like 4x the size). Not sure what ever happened to progress on that project...
Might be worth looking into a similar method.
I think gmod would be excellent platform for prototyping something like that, but you'll bump into Hammer & Source limitations if you try to create something that's comparable to Fallout in size.
Decent AI is surprisingly easy to make using Nextbots, but the bindings are still relatively incomplete and buggy. It's still very usable for NPCs walking around and even interacting with each other.
The map size limitation can be partially bypassed by downscaling all models and map. I think Hoffa1337 is doing exactly that with his NeuroTec project, but I wouldn't do it for something where you travel on feet because collision inaccuracies and low texture qualities are more visible then.
[QUOTE=Wyozi;47429316]I think gmod would be excellent platform for prototyping something like that, but you'll bump into Hammer & Source limitations if you try to create something that's comparable to Fallout in size.
Decent AI is surprisingly easy to make using Nextbots, but the bindings are still relatively incomplete and buggy. It's still very usable for NPCs walking around and even interacting with each other.
The map size limitation can be partially bypassed by downscaling all models and map. I think Hoffa1337 is doing exactly that with his NeuroTec project, but I wouldn't do it for something where you travel on feet because collision inaccuracies and low texture qualities are more visible then.[/QUOTE]
i think i can "Get around" the map size by just have lots of actual detail (not going to have a single "building square" except in the skybox. The re-sizing of entities actually sounds pretty ingenious, if flatgrass is the biggest map i should be able to do most of what i want, plus the map is going to have a few layers as i want to have a working subway/tram system.
how hard would it be to modify the prop system, or should i do something like how DarkRP handles anything UI related? I'm starting to like my idea of a "build currency" oh you need some of those basic wood props 2u each, want some of those cool wire gates? 5u each. My biggest concern will be placing these "build credits" across the map randomly. To force the fallout-esk survival, not just camp and build a printer safe.
For your request about a prop vendor. I already done that in my RP GameMode, it's part of the RolePlay engine I made. However it requires to remake completely the way the inventory is managed, and by the way, this would be a gamemode based on "base".
this should be very possible. for the sake of optimisation I urge you to take the base gamemode and start clean, thus removing/disabling most of the useless junk in there. don't go nuts on mysql database either because ( even though most here will disagree with me ) it will potentially slow things down compared to its lua alternative, also alowing you more freedome on when and how to use/save data.
as for the map size, you have two options. either go for a multilayer map and teleport the player between instances ( maybe even servers with different parts of the map on it ) or, scale the player down. I suggest the first option since altering player sizes will screw with collision and what not, something some sane person wouldn't even dare thinking about.
for the npcs you're planning to make, I suggest you look into nextbots.
they're unfinished and sometimes unstable but you can make them do almoost anything with some creativity and some general lua knowledge.
if you have any more questions be sure to asl them - it's always good to know what you might expect when starting such a huge project!
[QUOTE=code_gs;47429137]+/- 16384 are the max for the x, y, and z coordinates for Hammer. As for Civilian API, it is possible with Nextbot[/QUOTE]
Is it possible to set the scale of everything to maybe 1/8 normal (including physics timescale) and design the map as if it were 8 times bigger?
[QUOTE=thegrb93;47435108]Is it possible to set the scale of everything to maybe 1/8 normal (including physics timescale) and design the map as if it were 8 times bigger?[/QUOTE]
Collisions will get fucked up
[QUOTE=Robotboy655;47429215]The height is not infinite either.[/QUOTE]
of course, but I've seen plenty of maps that feel VERY big because of it
if you use up all the height you can (enough that helicoptors still have OK enough room) you could certainly make a map have the illusion of being a lot 'larger' than allowed, but you mostly have to be creative.
gm_bigcity feels big because of how imposing the buildings are, but if it layered it would feel twice as large
[QUOTE=thegrb93;47435108]Is it possible to set the scale of everything to maybe 1/8 normal (including physics timescale) and design the map as if it were 8 times bigger?[/QUOTE]
Yes, but it will mess with the physics engine and collision hulls. I believe VPhysics is working on supporting better player scaling
[editline]1st April 2015[/editline]
Ninja'd
[QUOTE=Yuri6037;47429617]For your request about a prop vendor. I already done that in my RP GameMode, it's part of the RolePlay engine I made. However it requires to remake completely the way the inventory is managed, and by the way, this would be a gamemode based on "base".[/QUOTE]
ANy pointers on how you made a "prop vendor"?
[QUOTE=robbert^^;47432198]this should be very possible. for the sake of optimisation I urge you to take the base gamemode and start clean, thus removing/disabling most of the useless junk in there. don't go nuts on mysql database either because ( even though most here will disagree with me ) it will potentially slow things down compared to its lua alternative, also alowing you more freedome on when and how to use/save data.
as for the map size, you have two options. either go for a multilayer map and teleport the player between instances ( maybe even servers with different parts of the map on it ) or, scale the player down. I suggest the first option since altering player sizes will screw with collision and what not, something some sane person wouldn't even dare thinking about.
for the npcs you're planning to make, I suggest you look into nextbots.
they're unfinished and sometimes unstable but you can make them do almoost anything with some creativity and some general lua knowledge.
if you have any more questions be sure to asl them - it's always good to know what you might expect when starting such a huge project![/QUOTE]
Yea as i was thinking the more i realized base would be so much cleaner, there is a lot of bullshit in DarkRP.
Gonna be a bitch compiling that map in hammer editor
[QUOTE=thegrb93;47435108]Is it possible to set the scale of everything to maybe 1/8 normal (including physics timescale) and design the map as if it were 8 times bigger?[/QUOTE]
It makes more sense when you look at a top-down / 2d representation of what 1/8 would actually do...
1 times size = 32k max for x and y
#
1/2 = a map 4 times the size in terms of x and y
# #
# #
1/4 = a map 16 times in size in terms of x and y
# # # #
# # # #
# # # #
# # # #
1/8 = a map 64 times in size in terms of x and y
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
1/4 is likely more than enough and you shouldn't have a lot of issues to deal with at that size. My only issue was with rescaling vehicles, a concern that seems to have been resolved by others and I do have ideas on resolving it myself ( such as rendering the vehicle as a ClientsideModel [ perks mean custom wheels, etc... ] and use a scalable physics model to represent the physics mode, or figuring out how to rescale the vehicle without using a hack [ module would be fine, but would rather not ] ); I plan on incorporating MAP_SCALE CONST into my dev_base, in the very near future, game-mode for those wanting to experiment with it; it will basically control every aspect which uses Vectors or sizes such as entity creation, vehicle creation, attachment offsets, etc....
There are many other ways to deal with max-brush limit, detail limits, etc... The main issue with hammer is you won't be able to have an object with unit size less than 1 whereby 4/3 units = 1 real-life inch. 1/4 should give the size you need without compromising on map quality.
As for bypassing the limits.. The main map file could be a low-quality map with the only thing needing to be compiled would be the physics surfaces ( traffic lights / street lamps, etc would be invisible rectangle brushes, and other physical entities could all be placed like this ), no need for detail. You can then make smaller maps, called zones, and have those zones load procedurally / as the client sees fit... So the primary map loads which are all the walls, roadways, etc... Basic. The zone maps would be full-interiors ( which can be triggered to load as you enter, or before ) and also areas of the exterior which would give detail to the exterior ( such as traffic lights, etc... or those can be controlled by Lua )...
When you load a map via Lua, the chunks aren't sorted so it'd be best to have designated zones triggered by Lua and have the maps loaded to the area. The zone maps would all need to be created the same way; ie you either pick a quadrant and have a corner start at 0, 0.. or you'd have the zones be the actual offset ( this means you'd create the main physics map, then use it to build the interiors before extracting them via deleting the main map and leaving the zone, or how-ever you'd want to do it )...
Triggering the zones by Lua would make the most sense unless you want to pre-load the zones and create a data-structure to hold the chunks and sort them to make loading / unloading more efficient.
Sorry, you need to Log In to post a reply to this thread.