Showing posts with label game design. Show all posts
Showing posts with label game design. Show all posts

Monday, February 12, 2018

Arma 3, Loot Spawn System (Building Position Manual)


After many requests over the years, and another one most recently, I have now decided to release my loot spawner for Arma 3. The code is old as it was coded back in 2015 whilst I was learning how to code for Arma 3, but it still functions as intended.

With releasing my loot spawner to the public, I am also releasing the loot 'building position manual' portion... what is BPM you ask? Let me explain...

My BPM (building position manual) functions/mission lets you place building positions manually for any building, so if a building model has none or very few building positions you are able to add them manually with ease.

In order to gather the building positions from a building model, walk up to a building and press 'G'. If the building has no manually placed positions, and you want to add some, walk exactly where you want one, and press 'F' to add it (a yellow arrow will appear). Repeat this wherever you would like an extra position, once happy with it, paste the clipboard contents in to the buildingPosManual.sqf config file, save the file, then re-press 'G' within Arma 3 EDEN, and it will show you that there is an existing config entry for that building, it will remark all the yellow arrows with red, and then mark all the same type of buildings on the map with green markers (so you don't go to the same one twice).

vanilla (green) and manual placed (yellow) building positions
config entry saved, vanilla (green) and manual placed (red)
all the same building models marked as green (has config entry already)
Want to also do building positions for 'ruins'? You can do that also... walk up to a building, press 'T' to destroy it, press 'G' to gather the building positions... if there is no config entry for manually placed positions, add them with 'F', paste the clipboard contents in to the config file (buildingPosManual.sqf), save, press 'G' again in Arma 3 EDEN... and repeat the process for another building.

gathering building positions of a building ruins (vanilla positions shown as green arrows)
after adding in manually placed positions (manual positions shown as yellow arrows)
after pasting and saving the config entry (buildingPosManual.sqf) and re-pressing 'G'

I have created this to make it MUCH easier to add in manual building positions to just-about-any building within Arma 3.

A config entry looks like...

_buildingPos_Land_Shop_02_V1_ruins_F = [[4.03613,-2.86426,-0.550273],[5.79248,-0.078125,-0.517672],[0.841797,4.18164,1.41129],[-3.61621,4.36719,3.29467],[-1.95508,4.28516,3.29019],[0.131836,2.4707,3.29724],[-1.25391,1.12305,3.29914],[-3.521,1.20898,3.29933],[-5.19238,0.385742,3.29933],[-5.28711,1.77637,3.29933],[-5.55273,-2.78809,-0.733989],[-3.47412,0.875977,-0.55027],[-3.44727,3.69922,-0.55027],[-1.07324,4.38965,-0.550275],[5.2793,4.00195,-0.0608864],[-0.0263672,-2.97363,-0.55028]];

So where can you use all these manually placed building positions via the config file? Well, included with the 'lootSpawnerBPM' files are the actual loot spawner script/function/code that I created back in 2015.

Once you have your configuration file exactly how you want it, you can then spawn the loot... and this is how to do so...

First up, locate and open the lootSpawnerConfig.sqf and configure it how you would like the loot spawner to behave. Once complete and saved, go back in to Arma 3 EDEN whilst in-game (SP or MP), open the debug console and paste in...

[position player,250] execVM "lootSpawner\lootSpawner.sqf";
...then execute the code.

This will make the loot spawner spawn loot around the position of the player at a radius of up to 250 meters (500 meter diameter). It will/can damage buildings, open doors on buildings (config entries), find ALL building positions (vanilla AND what is contained within the 'buildingPosManual.sqf' config file)... then calculate and spawn random loot at these positions.

This lootSpawnerBPM loot spawn code can be adapted for use in any mission you choose. Update the config entries for manual building positions, update the lootSpawnerConfig.sqf, place the directory structure within your own mission, and execute the script as you need. The scripts are very plug, execute and play... it's just up to you how you want them to function.

I hope I have explained well enough what the loot spawner BPM is about and how to use it, along with the actual loot spawner. Download it and check it out for yourself.

Where to get this code? You can check it out and download it on my github 

DISCLAIMER... This 'lootSpawnerBPM' code release will have very little to no support from me... so if you intend on using it and don't know a lot about Arma 3 scripting/coding/functioning, or how to place/configure/execute this code within your own mission... then I suggest you learn.

Until next time...

-soul.



Friday, November 10, 2017

Arma 3 - RELOADED (An Invade & Annex PvE Clone)

Yup, that's right an 'Invade & Annex' clone (of sorts), but RELOADED!


Since June 2017 I have been creating my own version/take on the PvE Arma 3 mission which is similar to the basic I&A that is known in and around Arma 3.

Why? Well... after getting back in to Arma 3 earlier this year after a short break, I and a few friends started playing I&A... it was ok to begin with, but grew boring as it was the same thing over and over and over again, but at different locations on the map (of Tanoa).

The 'Area Of Operations' gets chosen, a 'HQ' task is spawned, a 'radio-tower' task is spawned, and a 'take over' task is spawned. Needless to say, I rather enjoyed the PvE aspect and the teamwork that others provided... but that's as far as it went. The game play was boring/mediocre at best... as we had to literally hunt down AI to kill, and some times didn't encounter any for twenty minutes or more.

After being frustrated with the I&A server(s) that I and friends played on, I thought 'how hard would it be to make my own... dynamic version', so I got to it. I planned out roughly how I wanted it all to piece together and have it be as dynamic as possible. Without knowing if I was actually capable of creating what I had in my mind, I proceeded anyway and jumped in the deep end (so-to-speak).

What makes my version different to the original I&A? Pretty much everything within the back-end.

The mission principals are very similar to I&A in what you are to achieve for each AO (attack and hold the Contingency Operating Base, secure sub tasks successfully, secure simple tasks successfully and such). Each sub task completed successfully will increase the capture progress meter as well as increase an AO multiplier. If tasks are failed, the progress meter and AO multiplier works in reverse. The AO multiplier is a per-unit/per-vehicle weight which either speeds up or slows down overall AO progress.

NATO base at Tanoa Air Field
The NATO base is at Tanoa Air Field (where players will respawn upon death), which hosts the player arsenal for custom loadouts, as well as NATO helicopters/planes, land/water vehicles and UAV/UGV. Each player slot is role specific, so players can group up (default U key) and attack the AO any way they choose. There are also specific helicopter and jet pilot roles for the transportation of units and objects, as well as armed air support.

I have designed and coded it all from scratch... by myself. I have coded, tested, fixed bugs, tested, played, etc, etc over and over since June 2017. I have since then got a few friends involved to help me test, as well as doing a small wave of invites over Discord... and even at a pre-alpha stage it was more enjoyable (their words) than what already exists within the Arma 3 I&A realms. I have tried to code in a very dynamic way, so that each and every AO is different (which it is).

Each AO position is randomly chosen on the map (no AO will spawn in the same or close position twice), and then a sub position from that is the final starting center point of the AO. It then randomly chooses what diameter the AO will be, along with the randomly chosen number of tasks (main/sub/simple) that will be within the AO. It then scans the AO terrain for bridges/forest/land/paths/railway/road/runway/shorelines/water and compiles positions based off of specific criteria within the configuration files (maximum land grade, min/max depth of water, etc). It then randomly chooses a position from those compiled terrain positions then randomly chooses a task to propagate for the terrain structure (water/land/forest/road/etc), it then randomly chooses a base composition to spawn for the given task, all whilst the positional scripts error check that tasks are not on top of each other. (I hope I explained that proper).

This method and structure of how each AO is presented and put together is extremely random and is unpredictable to what each AO will consist of each time... aka dynamic.

All the patrolling AI that spawn within the AO are created unequal, as each one will have their own skill levels, so it matches more to a PvP environment skill-set (as every player has their own skill-set), yet they are AI. I find this method more diverse than to set all AI at the exact same skill levels. The AI use a custom patrol script (third party, modified) which makes them act and react as any player would, eg use cover before shooting, move from cover to cover, peek around corners, give intel on other close by AI to your exact location, flank you when you least expect it, and call in heavy land/air vehicles for armored backup, if you (try to) run and hide, they WILL hunt you down!

This game mode I am creating is not suppose to be easy (which it certainly is not) as the amount of immersion makes you concentrate on your surroundings, and with the AI being more skilled (in balance to human players) it leads to more/proper teamwork within the NATO side (you'll have a hard time going solo!).
AI being redeployed by landed helicopter
The AI spawn and respawn systems are all custom and dynamically coded also, which has an effect on immersion. AI are re-delivered to the AO (and tasks) on foot (ground troop) by helicopter (paradrop/landing), by truck (chauffeured), by quad bike (self driven), by unarmed vehicles (self driven)... so there is always something to be aware of within the AO, as you (and your team) move around you will hear vehicles driving past, helicopters fly over, see paratroop jump out of said helicopters, hear distant explosions (self clean up of abandoned vehicles) as well as the shots and snaps of bullets as the AI hunt you down to attack and also defend their tasks. There are also enemy patrol vehicles that roam around the AO, from armed off-roads to quilins to tanks... their redeployment is all chosen and spawned in randomly, as well as the patrolling helicopters and armed jets that give intel on spotted enemy... so best keep out-of-sight when you hear them above.

The amount of tasks within the AO are also chosen randomly (fitting within the AO diameter) and each one will be different and have a different task roles applied. One task could be a 'secure' mission one AO, and then a 'destroy' mission the next. The task roles can be easily expanded upon, so any role can be created and inserted to the mission with ease... which may spark interest for mission builders to code their own task roles. At current (November 2017) the task roles that are functional are secure, destroy, repair and steal.

Simple Task Base Composition (destroy communication tower)
The base compositions that are used for tasks are all custom made either by myself or community contributors that were excited to help out with the mission creation (which has been greatly appreciated). The system to incorporate new base compositions in to the mission for use with tasks is extremely easy to achieve. Base compositions are created within the Arma 3 3DEN Editor on the VR environment map with [0,0,0] as the center point. A custom export script (included with the mission) is used to export to a script, which is then saved within the mission file structure in the corresponding base directory (land/water/road/etc), then the task configuration files are either added to or adjusted to allow the new base composition to spawn in (if randomly chosen).

It's really as simple as that... I created this mission with the intentions of having it easily expandable by literally anyone that chooses to (and yes I plan to release this mission to the public to host on their own servers).

The 'RELOADED' mission has come along extremely well, the systems that are in place for mission structure and (re)playability, spawning, de-spawning of AI and objects, timing and schedules, etc have all been quite the challenge to plan and actually code, but I am quite proud of what I have accomplished to this point (and also surprised that I was capable of actually doing it). I and fellow testers have had much fun playing and testing the mission, even at this early alpha stage.

We currently have a playable server on the West Coast of the USA which hosts the development 'RELOADED' mission. The current mission is still in 'alpha' stage (as of November 2017)... although it is 100% playable and re-playable currently. There are minimal bugs (and newly found bugs are always fixed promptly), but the main progress timing loop has not been coded as of yet so each AO is manually triggered and spawned via a laptop at the NATO base. Debug mode is also turned on so there is a LOT of system chat spam for system functioning and information as well as map marker spam whilst the AO spawn does all its calculations (visual terrain debug information).

Does this mission spark your interest and...

Are you interested in helping out (code/create)?
Would you like to alpha test (play/test/give feedback and suggestions)?

If you answered yes to any of the above questions, you are welcome to join our Discord community (blackSheep) at -> https://discord.gg/sEPK9Ta and have a read of the #details, #rules and other informative channels for the mission (as well as the blackSheep #about and #codeofconduct channels).

Here are some screen shots of in-game play (whilst in spectator mode)...











Click here for more screen shots!

I hope I've explained the mission I am/have created properly in this post... think Arma 3 I&A, but redone, more random, more dynamic, more immersive, more teamwork oriented and more enjoyable for all. It's not the same thing, different location over and over and over like the vanilla I&A (and most I&A servers around), it's how I envisioned and wanted I&A to be... but RELOADED, so I created (am still creating) what I have.

It's really hard to explain everything, to give users the big-picture on what this mission is... but in order to really know what the mission is about... is to actually play it.

TL:DR, I created an 'Invade & Annex' style mission (clone) within Arma 3 from scratch, which is a LOT more diverse/random/immersive/enjoyable/replayable/expandable. Want to know more? Join our Discord server and have a read about the mission, chat to others and actually play/test the mission yourself. -> https://discord.gg/sEPK9Ta

Got questions about it? Feel free to hit me up on Discord (the link is in this post).

I also posted about the mission over on the BI Studio forum which you can find here -> https://forums.bistudio.com/forums/topic/211716-wip-reloaded-an-ia-pve-clone/

-soul.

Tuesday, August 23, 2016

Atomatron, Mobile Game Graphics

In the recent weeks, I have collaborated with AurynSky with his new mobile game named 'ATOMATRON'.

I offered to help out with the GUI (Graphic User Interface), since the original one he was using looked... mediocre/unappealing. I started designing and based it on the shape within the main world he used, which was triangles.

After a few revisions and color changes, AurynSky was happy with the look, and put them into the game. You can see the example icons I created below.


Final revision of the 'ATOMATRON' game icons and text logo.
Final revision of power and health icons, various others not used.

The final look of the game all-fits-together as it should, simplistic but appealing to the eye (as seen in the screen shot below).

The final 'look' of the mobile game 'ATOMATRON' by AurynSky

This was a nice little project to work on, so I thank AurynSky for allowing me to contribute to his work (which is my first GUI for a mobile game)... and something to add to my portfolio.

ATOMATRON a fun 'endless' mobile game to get addicted to, whilst you navigate each small world, collecting atomic power to level up whilst avoiding the asteroids that rotate around each world and ones that also impact from outside. What level can you get up to...?

You can also check out AurynSky's other games on the Google Play Store as well as the iOS Store (sorry, I don't have the link for iOS).

AurynSky is also an avid twitch.tv streamer where you can check out his game development work, whether live or via one of his vod's. Check him out at http://twitch.tv/aurynsky (you'll find me lurking in the background at times also).

Until next time...

-soul.


Tuesday, June 14, 2016

GitHub, Arma 3 Scripting And More...

So I signed up for GitHub last year, but haven't used it... until now.

As my last blog post shows, I was working on building up the map of Stratis for use within A3Wasteland, as I found that the vanilla mission had lacking buildings/towns/bases, or were just awkwardly placed on the landscape. In doing so, I have also changed a lot of things within my own build of A3Wasteland, to which I shall also be uploading to my GitHub in due time. The changes consist of the in-game feel (more towns/bases, changed territories, new missions and such), as well as a heap of scripting tweaks within the mission file itself.

You can also find 'stand alone' (or add-on) scripts of mine that I wrote for ArmA 3, as well as various game related code/code snippets and scripts on my GitHub.

At current there are only a few of my custom scripts up on GitHub, but expect this to expand over time.

GitHub will be the place to check for my future code and code updates.

You can find my GitHub linked on my social icons, or you can check it out here.

-soul.

Tuesday, April 19, 2016

Arma 3, Stratis + EDEN Editor (Enhancements)

When BIS introduced EDEN 3D Editor (3DEN) for Arma 3 recently, I thought I'd jump at the opportunity to become creative in the 3D editor and add to the lacking map of Stratis for towns and bases.

The learning process of placing and manipulating objects was relatively easy due to the fact that I have used M3Editor in the past for creating within Arma 3 in a 3D environment (props to the author Maca134).

It didn't take me long to adjust to 3DEN, and get creating. Over the last month or so, in my spare time I have been designing and creating bases and towns on the map Stratis. I had the intentions of releasing it all for use within A3Wasteland (custom addition for a gaming community). I have recently approached AgentRev from A3Wasteland to offer what I have created to them to put any or all of what I have created into the 'stock' mission file (though I'm still yet to get a response at the time of this blog post).

As you can see from the screenshots of what I have created below... these are not just 'thrown together', as a lot of planning, thought and adjustments were made to make them appear as if they were 'stock/vanilla' map objects that BIS had designed.

Check out some of the screen shots below, or you can view the full album on imgur here.

 









If you have interest in using any or all of what I have created in your mission/mod for Arma 3 map Stratis, feel free to send me a private message on Twitter or Reddit.

In due time I have plans of releasing each created part (individually) or as a whole to either my blog as downloads or on the Steam Workshop... but no ETA for when that will be.

Creating these additions to the map Stratis is no easy feat, as they took quite a lot of time to create, and then fine-tune. Haven't checked out the 3DEN editor yet? Give it a go.

I will create more generic 'bases' in the future within the virtual environment, so I can then export to a script that can be run dynamically (relative positions) to place a base anywhere on a map, facing any direction (scripts already coded), so that any mission makers can easily run the command in their mission (init.sqf or manually) and the base(s) will appear before them.

Anyway... just thought I'd show what I have been upto within the Arma 3 EDEN editor since it's launch.

-soul.