Pimla Shinks is going to be a First Person Shooter that focuses on stealth and obtaining items. I am going to focus on large areas that allow the player to explore and make his own way through the world, which consists of multiple large areas. I haven’t fully completed the design document yet, so I won’t go into the story or finer details until I am happy with them myself. I am aiming to have some multiplayer aspects to the game, and I have been loosely building a framework around this, but I’m still very much focusing on asset building and getting the general ‘feel’ for the game at the moment.
-------------------------- Dev Log 1 -------------------------------
At the moment I’m testing out how to make large scale environments. The video above is part of a 4km squared area with around 11,000 objects (most of them are duplicates at the moment). All of the objects are LibLoaded from a geospatial database that stores all the objects. At the moment the geospatial database is running on a server, which I have done to allow for team development (TODO: I’ll make a video explaining this soon). When I start the game, objects around the player are download from the geospatial database, cached on the hard drive and libloaded into the game. If the object is cached, it is loaded from the hard drive.
The reason I have done this is it allows multiple developers to work on levels at the same time. Since everything is being loaded from a central server, all the developers are kept ‘in sync’ with each other. As new assets are added to the level, they become available to all the developers and if they don’t have them on their hard drive, as I mentioned above, the files are automatically downloaded to their hard drive. Since its running on a server, I have also made a simple front end for it, which you can access from your browser. This is really nice as it allows you to add team members, manage all the assets, view maps of the world and manage tasks which eases the pains of building large scale environments and/or working in teams.
Basically I’ve made a framework that loads the world in from a server, allowing me to separate asset management and loading the world from blender. The geospatial database stores every thing in latitude and longitude, which allows for very widespread environments, I’ve not tested how far yet. One thing I’ve really focused on is allowing you to develop the world while in the game engine. So adding, moving and removing objects is done in realtime (Again I’ll show this in the next video). So if there’s another developer in the same area as you, you will see the objects he adds load into the world automatically. This is what I really wanted, as I don’t have to worry about manually downloading files, keeping in sync with other people and it means I don’t have to worry about keeping files in the correct folders as everything is automatically structured as it’s downloaded. (hope this doesn’t sound like gobbledygook, it’ll make sense when I make a video explaining it)
For deploying the game, having lots of players reading objects from a central server is not ideal, so I have began looking at dumping the objects from the database into a file that can be localy read from the users hard-drive, and will allow for geospatail lookups from their own computer. But I’m not quite there yet and have been focusing on the development side.
All credit for the terrain goes to benj for his wonderful scripts. I’ve finally figured out how to make custom maps with it now, so I’ll post a video of them once they have been more populated with assets.
Some in-game images: