BROKE PROTOCOL: Online City RPG - NongBenz

Medical Update Official Launch
The biggest update since the World Builder and Modding is coming to Broke Protocol today. The new Medical Update v1.05 features the start of a completely reworked damage and injury system. Characters are not simple health pools anymore. Players can now sustain a variety of injuries with punishing effects. Risk management and medical role-playing are brought to focus in v1.05.

New Injury Modeling

Gunshots, falls, auto collisions, and even drugs can cause debilitating injuries to your character. Many injuries are slow to heal, or in the case of fractures, won’t remedy at all without proper medical treatment. Bloodloss needs bandages or blood bags, fractures need a splint, and pain medication or drugs can heal other injuries. Medical items have a vital importance in the game meta now.

Detailed Damage Effects

It’s not only important to consider the types of injuries but where exactly they occur now. Players can be crippled depending on the specific body part that’s been hurt. A head injury obscures vision and hearing. Chest injuries will cause energy loss that might leave players unable to sprint. Abdominal hits cause dehydration and hunger. Arm injuries cause difficulties in aiming and leg injuries limit mobility. Proper triage is now vital to survive in v1.05.

New Medical Update Items

With all of the health related changes, the Paramedic job is about to get a bit more intense. New medical items are available at the hospital and Paramedic rank up loot has been tweaked to accommodate the latest additions. Remember to hover over the inventory tool tips to see what each item will cure. Note that paramedics are the only job class that can inspect everyone’s health status in order to provide suitable triage and treatment.

Food and Consumables Reworked

All other consumable items have been tweaked and balanced as well. Now every medical item, food, drink, bandage, etc can either be consumed yourself or equipped and used on others. Again, inventory tool tips are your friend to find out what are the best meals to boost your stats. And don’t underestimate the ability of booze as a low-cost painkiller.

Other Improvements and Additions

Other major changes include the ability to block against melee while holding nearly any item, health regen if stats are > 75%, drug effect stacking and the removal of addiction. Big networking fixes and optimizations made it into 1.05 for a smoother experience. And finally, and big thanks to all the medical workers around the world combating the current epidemic. Keep kickin’ ass.

Android version of the game should update (roughly) around the same time as PC today.

Here’s the full v1.05 changelog:

v1.05 Medical Update
  • Added locational damage (limb injuries do less damage)
  • Added Health Menu to view all injuries and status
  • Paramedics can view other players’ injuries
  • Added HUD visual for locational damage
  • Added different effects for different injuries
  • -Head: Vision/hearing loss
  • -Chest: Energy loss
  • -Abdomen: Hunger/dehydration
  • -Arms: Weapon sway/inaccuracy
  • -Legs: Loss of mobility
  • Drug effects now stack
  • Added new Splint item to heal fractures
  • New usable medical items: HealthPack and Bloodbag
  • Changed hospital merchant items and values
  • Changed Paramedic rank up items
  • Item tooltips show cure abilities
  • Tooptips show heal stats by color
  • Player regen health if stats >75%
  • Limited mobility if no energy
  • Added cooldown limit for healing
  • Added different sounds for minor heal/damage effects
  • Crime Witnesses are fully saved on Disconnect
  • Fixed syncing health with others on healing
  • Removed Addiction stat for now
  • Fewer heap allocations for memory savings
  • Fixed network packet handling
  • All foods/drinks/medical items can be consumed or used on others
  • AI have the same stats depletion as Players now
  • AI will randomly consume items to replenish stats
  • Can directly consume world items without collecting first
  • Minor food/drink mesh fixes
  • Boosted drug and alcohol stats
  • Public access to Plugins list in API
  • Faster permission lookups
  • Separate StopCounter packet for modding
  • Mobile: left/right stick will now turn aircraft
  • Shader setting now affects clouds/sea
  • Shader optimizations
  • Changed player name/HP color grading
  • Fixed delivery job target selection
  • Added Restrain/Handcuff event to GameSource
  • Added /godmode command to prevent damage and cuffing
  • Added some more announcements
  • Added game message showing player who started the vote
  • Serverbrowser pinging cleanup
  • Workshop image preview error handling and cleanup
  • Correctly refund all apartment storage and furniture values on map change
  • Fixed World Builder transforms being reset to 0
  • Fixed frozen player rotations on chairs and mounted guns
  • Fixed mounted weapon hit registration and tunneling through walls
  • Can now block with any item that doesn’t occupy both hands
  • Changed some packet types for optimization and reliable transfer
  • Fixed crouch desync on server
  • Fixed missing water shader in Builder on Min setting
  • Fixed resetting vehicle brakes/steering on exit
  • Update Engine to 2019.3.7
  • Update to latest SteamWorks library
  • Update to latest networking library

See you!

-Benz
BROKE PROTOCOL: Online City RPG - NongBenz

Ballistic Update Official Release
Big update incoming to Broke Protocol on PC and mobile today. The Ballistic Update features reworked gunplay, sights, projectiles, and reloads. But that’s not all – a big change is allowing modding for both Mobile users and non-Steam servers too. And even more modding options are on the way.
New Bullet Physics

Guns now fire actual projectile bullets. No more dated raytracing and questionable hit registration. The bullet scanning has been re-written to be physically accurate with little additional overhead. Make sure to adjust for bullet drop and target movement with long range engagements. This is just the first step on an engine overhaul I’ll be doing from the ground up.
Incremental Reloads

Gun reloading has also been moved completely serverside to prevent hacking and desync issues. While working on this, I was also able to add incremental reloads for shotguns and bolt-action rifles. Bullets are loaded individually and can be interrupted at any time by firing. Some animation cleanup was also done.
Mobile Modding

Full AssetBundle creation is now supported on mobile as well non-Steam servers. A new AssetBundle export format (*.bpa) was created to handle any platform. Mod makers will have to re-import the new BPResources.unitypackage into their projects and export their mods with the new format. I’ve seen some amazing work including uniforms, shops, and vehicles. Will showcase more creations as they turn up.
Server UI and Classic Auth

Non-Steam servers can now take advantage of an updated UI renderer based on Chromium Embedded Framework (CEF). It’s an incredibly powerful solution to allow HTML, CSS, and JavaScript to render and execute modding and UIs on clients. More details on BP’s GitHub Pages. An alternative lightweight Server UI solution is also coming later that aims to be cross-platform and fast.
Other Improvements and Additions

BP has gotten some international attention on both Mobile and PC. So we’ve added a Thai language option for players in the Land of Smiles. Also, many optimizations have been made for a smoother gameplay experience and less laggy servers overall. Look forward to feed back on that front.
Android version of the game should update (roughly) around the same time as PC but apologies in advance for any hiccups along the way.

Here’s the full v1.04 changelog:
v1.04 Ballistic Update
  • Projectile Bullets and re-worked hit registration
  • New tracer effects (different bullet types later)
  • Incremental reloads for Shotguns and Winchester
  • Assetbundles supported on Mobile and PC
  • Added Thai Language setting
  • New multi-platform AssetBundle/mod format (*.bpa)
  • Mods must be rebuilt using new BPResources (Unity 2019.3.3)
  • Asynchronous World Builder loading with cancel option
  • Boosted file transfer rates
  • More accurate ironsights
  • Winchester scope tweaks
  • Crimes can be witnessed at close range regardless of line-of-sight
  • General memory cleanup and fewer heap allocations
  • Some entity activation optimizations
  • Fixed disappearing equipment from menus
  • Detonator held properly
  • Added inventory desync fixes
  • Animation transition fixes
  • Fixed crouch animation corruption
  • Fixed binoculars zoom
  • Fixed bazooka grip during sprint
  • Added SvManager.DrawLine() for client rendering (debugging)
  • ‘jobIndex’ moved into ‘JobInfo’ class
  • Job ‘==’ and ‘!=’ overrides for Job class
  • String sanitization moved strictly server-side
  • Message color parsing done all on the client (server must sanitize)
  • Updated CleanMessage() to filter color delimiter
  • BPResources Audio and Particle references added
  • Added Car and Gun example meshes to BPResources
  • Update Unity Engine 2019.3.3
  • CEF library update and minor fixes
  • Added CEF (Server UI) option in client settings
  • CEF allowed on classic auth servers (though only for PC users)
  • EventHandler has 2 calling functions now: Exec() and Get<>()
  • Added new GameSource events for modding:
  • See BrokeProtocol.API.GameSourceEvents
  • -ManagerUpdate
  • -ManagerFixedUpdate
  • -PlayerBuyApartment
  • -PlayerInvite
  • -PlayerKickOut
  • -PlayerSave
  • -EntityInitialize
  • -EntityDestroy
https://broke-protocol.github.io/docs/ for API changes

See you!
-Benz
BROKE PROTOCOL: Online City RPG - NongBenz

Garages Update Official Release

A major Broke Protocol Update shipping on Steam today, introducing the long-awaited Garages and a bunch of other upgrades and fixes. Explore new areas, try some useful new interactions, a new weapon, and most importantly - you can now save your personal vehicle. Permanently. Well, as long as you don't accidentally torch it. Now, let's dig into this update.

Private Garages

The biggest update in v1.03 is that now players can store any vehicles (bought or 'borrowed') in their own private garage. The first vehicle storage space can be found at the Garage map marker and is sold for a budget-friendly $4,000. It's quite cramped though so larger vehicles might not make the squeeze. But further map updates will expand player options. We're thinking aircraft hangars too.

New Silenced Weapon

Bond's famous silenced PPK32 made it into the 1.03 - thanks Tentacle_Boss! Although limited in damage output and magazine capacity, The Walther's stealth capabilities and accuracy is unmatched. The game's fisrst silenced pistol is a welcome addition to the arsenal, and is only the first step towards fully modular weapons coming later. But the Walther won't be found in an ordinary gun shop. Read on..

Map Expansion

TB has been working on expanding the DefaultV2 map with some tucked away interiors. You might find tools of the trade for covert operations in a hidden cave. Some preventative measures were put into place to make simple looting a bit more complicated - but if you have the coin, desert merchant has the wares.

Explosive Disarming

Another update is the ability to disarm pesky traps and explosives. Before this update, if you tried to collect an explodyboi, well, it wouldn't go over so well. Now satchels, mines, and other explosives can be disarmed for safe collection or repositioning. Or if you're old-fashioned, you can just shoot the damn things.

Various Bug Fixes

Many other fixes and upgrades made their way into Garages Update 1.03. You'll find fixes for processing drugs, confirmation prompts before selling apartments/garages, more robust custom asset support, and more.

Don't forget the full mobile release is still slated for this week so keep updated on the Official Discord Server for further info.

Here's the full v1.03 changelog:

v1.03 Garages Update
  • Added working garages for storing persistent vehicles
  • Silenced PPK added to game and gun merchants
  • Explosives can be disarmed and safely collected
  • Removed object outline due to shader incompatibilities
  • Mobile UI customization
  • Added confirmation prompt before selling apartments
  • Game now correctly prioritizes custom assets
  • Many OS specific path fixes
  • Fixed Progress coroutine exception
  • World Builder focus fixes
  • World Builder invisible selection highlight fix
  • Credential menu sizing fixes
  • Credential menu forgetting passwords fixed
  • Inventory management tweaks and better ammo syncing
  • Command Handler Item parsing fixed
  • Minor code re-organization
  • Custom assets better support different material types
  • DefaultV2 map updates (Cave) - thanks Tentacle_Boss
  • Fixed weapon unbinding on Mobile
  • Added prison key to Rank 3 Police
  • Asynchronous asset preview loading
  • Several crash fixes
  • Update to Unity Engine 2019.2.19
  • Refactored code: Properties for easier debugging
  • -https://broke-protocol.github.io/docs/ for changes

See you!

-Benz
BROKE PROTOCOL: Online City RPG - NongBenz

Control Update Official Release
Welcome back to another BP Update! Keeping on schedule with regular releases brings us this mish-mash of good stuff called 1.02 - The Control Update. The content for this update is kind of all over the place but aims to improve both Admin controls and the literal game controls, physics, and animations of a lot of stuff. Yea, I know.. bear with me and let's dive into the details.
Classic Login Option

So Steam Authentication has been received with praise and scorn from 2 different camps. So why not allow both? Servers can decide whether to use Steam Authentication for more secure banning and account management. Or use a classic username/password login like before. Just set "steam" to true or false in your settings.json and that's it! The server browser will show what servers use Steam vs Classic so you can decide what kind of 'experience' you prefer :)
Updated Controls

All aircraft in the Control Update have received a control overhaul. The keyboard controls are similar to before though handling might feel a bit looser. But the big change is now mouse controls are supported. Simply look where you want to go and the aircraft will follow. All this depends on preference - so fly the way you want. If you need mouse look in the aircraft now, just hit the new Look key 'X.'
Physics Updates

Boats have gotten a much needed physics update. They actually follow proper dynamics for more realistic motion. Bring a barf bag. Underwater cameras have a new fog effect for now. This isn't exactly Update Aquatic but an improvement for sure. Sidenote, using the Look key outside of vehicles allows you to point at stuff like in the image above.
Desert Rats

Tentacle_Boss has been hard at work with a huge desert expansion for the default map. I won't spoil too much but it's best if players explore this region on their own. With that said, you might find some fun uses for different areas of this wasteland - and its remote nature means your deeds stay private. If modding like this peaks your interest, be sure to check out our Official Discord Server, and the BP Modding Resources at https://broke-protocol.github.io/docs/.
Chat Commands Redux

Chat commands have been a long-requested feature for admins on the vanilla server. Now a ton of default commands have been added directly accessible via chat. These include basic admin duties like kicking and banning, as well as fun stuff like changing world colors and weather. The Official GameSource repo contains examples on how to add your own custom commands. And note, each new command has its own permission you can assign. See the updated groups.json.default file for the new stuff
Here's the full v1.02 changelog:
v1.02 Control Update
  • Steam Auth disabled by default (enable in settings.json)
  • All references to SteamID in code and configs changed to AccountID
  • GroupType.UserSteamID -> GroupType.AccountID
  • Added Ban records menu and Unban option
  • Updated aircraft physics and seating
  • Aircraft now have mouse control, (X to mouse look)
  • Added ‘look’ key (X) for pointing
  • Boat physics overhaul and extra parameter (turnFactor)
  • Tweaked player physics for less random damage
  • Added basic underwater rendering mode
  • AI won’t be knocked out anymore to fix exploits
  • AI will whistle and point when attempting robberies
  • CommandHandler Rewrite – Added many BP commands (chat /help)
  • Movement animation smoothing
  • Medic heals refill all stats to min 40% (prevent heal spamming)
  • Added stricter server hitchecking
  • New startMoney option in settings.json
  • Really fixed stuck action menus
  • Increased stats boost for many consumables
  • Don’t close chat menu on death/respawn
  • Optimized tooltip generation
  • Chat and connection records reduced to stop errors
  • Briefcase lifetime increased to 60s
  • Better error handling on item spawning
  • SvPlayer.SvEnterDoor() <- new forceEnter parameter to skip checks
  • SvPlayer.Horn() -> SvPlayer.Alert()
  • Removed some duplicated inventory functions
  • Some apartment cleanup fixes
  • Added more verbose connect/disconnect logging
  • Removed holiday lights
  • Minor menu changes
  • Some house mesh fixes
  • Some cleanup for mobile: Removed Discord SDK, Client Console
Thanks everyone and Happy New Year!

-Benz
BROKE PROTOCOL: Online City RPG - NongBenz


Official 1.01 Admin Update Release

It's been one week since the big 1.0 launch and it actually went smoother than expected! It's a blast playing alongside the fans and seeing the ideas brewing for potential mods in the near future. We can't say the release was completely without issues so we're back for a quick turnaround with update v1.01. This release contains tons of fixes but most importantly, we wanted to give admins more options to control their server. And so we present: The Admin Update 1.01.

View Records



So Steam Authentication is a big deal in 1.0. No more fumbling with passwords or dealing with ban evasions. Everything is seamless and logins are tied to SteamIDs now. But what if you want to ban a reported player, but he's left the server and you don't have his SteamID. Now Admins can be granted access to the Player Records menu. Here you can see the last 500 connections made to the server, and view Player Info and submit bans even after they've left.

Advanced Groups Manager



In 1.0, you can set admin permissions by group, selecting members by SteamID and granting permissions collectively. In this new update, you're no longer limited to giving permissions by group. Instead admins can give permissions by filtering any number of different selectors. This includes current job, IP address, currently located trigger, and more. These dynamic selectors not only give more admin control, but immense scripting power on the server.

New and Improved Workshop Uploader



A much requested gift is just in-time for Christmas. The previous Steam Workshop Uploader was clunky and unintuitive. You had to prepare directories and JSON files outside the game and then pray the upload goes through. Now everything is done in-game. Just browse to your files, set your Item name and Description, and click 'Upload.' That's it!



We're keeping a keen eye on any interesting mods being created and we've already seen some cool gun modifications and maps that will be highlighted soon. Again, players are always welcome to our Official Discord Server, where we can help you get started and give you pointers on our Modding Resources at https://broke-protocol.github.io/docs/.

Miscellaneous Fixes



Also a ton of other fixes made it into the game. Most of the focus was on vehicle damage modeling, Collision damage takes the vehicle type into account as well as a few other factors like inertia between colliding objects. Also aircraft stalling randomly mid-flight has been fixed which was quite the annoyance.

That covers it! Here's the final v1.01 changelog:

v1.01 Admin Update

  • Bump API version to 1.2.0.x
  • Can set group permissions by SteamID, Job, IP, etc
  • New Player Records Menu to view/ban offline players
  • New collision damage model, depends on vehicle type
  • Fixed aircraft stopping mid-air
  • Particle effect optimizations and tweaks
  • New Steam Uploader: Everything done in-game
  • Unity Update to 2019.2.16 (Fixes Alt-Tab crash)
  • Fixed unreactive police
  • Fixed broken Feedback Menu
  • Builder: Improved Translate and Rotate tools
  • Builder: Handle missing custom assets better
  • Builder: Fixed UI button animations
  • Memory leak fixes with texture handling
  • Better logging on Authentication errors
  • Removed some C#7 language constructs
  • Engine naming collisions fixed to stop warnings
  • AI stuck less frequently around jail
  • Fixed map marker cleanup after job changes
  • Discord SDK Update
  • Fixed coffee cup texture error
  • Reduced zoom on all non-weapons
  • AI pathfinding around Jail improved
  • Fixed Fire and Deathzone damage values set to 0
  • More Authentication failure logging

Thanks for following along and more updates soon

-Benz and UserR00T
BROKE PROTOCOL: Online City RPG - NongBenz

Official 1.0 Modding Update Release
After months of work, testing, and feedback since v0.97, the Modding Update v1.0 is finally here. This update presents the biggest evolution of Broke Protocol since its launch. Introducing full modability, server/client scripting, and a slew of improvements and fixes. v1.0 allows servers to edit nearly all gameplay elements, add custom content, and create a whole new experience altogether.
Modding Support
One of the biggest features of v1.0 is complete modding support. World objects, items, vehicles, skins and everything in between can be completely edited in this version. Not only in visuals, but all properties, physics, colliders, sound effects and more can be modified.

If servers want to just edit existing objects, that’s certainly possible too. Edit vehicle top speeds, weapon damage outputs, or edit building textures to transform a map into a custom style or theme. This is done through the modding guide posted here. Custom content will be streamed and cached on connecting clients automatically.
Server and Client Scripting
Broke Protocol is one of fewer and fewer games that encourage 3rd-party servers to foster communities rather than faceless matchmaking. And serverside scripting will only add to the ways in which server communities can create something completely unique and carve a niche to grow their audience.

The server scripting model is supported by external plugins. You can see the basic GameSource.dll supported at the Official GitHub Repo. Edit basic game hooks here and also see examples of how custom EventHandler callbacks can be created. Just build your own plugins and place into the Game Plugins/ directory for automatic loading. A full API reference will be maintained here with documentation at our Official GitHub Pages site.
Updates Since Last Devlog
Server and Player Info Screens

You can now view what mods, maps, and other custom stuff servers are running from the Server browser window. Just click on the server and select ‘View Server Info.’ And likewise for Player Info from the Players (Tab) Menu. There you’ll find SteamID, player ID, as well as a link to their steam profile to either add friends from in-game and prevent identity spoofing.
Database Saves and Apartments
Some back-end database support now allows for saving of multiple apartments instead of just one. This means players can take over all the apartments on a map without having to sell their previous flat. This was done in preparation for garage support which will allow players to save their vehicles post-1.0. Also if a server changes map, all of your apartment items and purchase values will be refunded back into your bank account reliably and automatically.

The database is also accessible from the server API. A field for CustomData is present to track and save anything related to custom modding that won’t fit anywhere else.
Exploit Fixes
Tons of exploits are fixed in v1.0 which means easy money is harder to come by. Using SteamIDs now prevents multi-boxing. Exploits related to AI suicides or second-hand deaths are now fixed to prevent free item farming – deaths without any attacker now won’t drop items at all.
Also added a few more server-side checks and AI insta-jailing to prevent combat logging. These changes should mitigate many abuses and establish more sustainable server economies. If you do discover any more exploits, please message us in private on the Official Discord.
Steam Web API
We’ve switched to using the Steam Web API to validate player logins since this doesn’t require any Steam client to be present on the server and it works across Linux and Windows platforms.
This does however require you to request a web api key from Steam here. Note you don’t need a custom domain, you can just input your public server IP address which can be found using https://api.ipify.org/. Then you enter your key into your server settings.json under ‘webkey.’
Affiliate Program

Finally, we do have an affiliate program open now. This program allows anyone to get a 30% commission for any sales from https://brokeprotocol.com/. When you sign up, you’ll be given a custom referral link that offers a 10% discount on the game.
You can post your referral link on social media to your followers and anyone who follows through with a purchase on the website (a cookie will track them for 30 days) will have the purchase tracked and recorded on their dashboard. Payout each month with $20 minimum in account.
Changelog
That’s it! We worked really hard for about half a year on this modding update and can’t wait to see what custom content comes out of it. Post anything you’d like to share on the Steam Workshop and our Discord bot will stream what’s new. From there, we’ll highlight outstanding mods over the coming weeks. Here’s the final v1.0 changelog:
  • Added support for custom server Assets / Items / Objects and syncing with clients
  • Added custom CEF rendering using server-side HTML
BROKE PROTOCOL: Online City RPG - NongBenz
Hello everyone. We’ve been hard at work preparing our big 1.0 milestone update and we’re keen to update you on our final steps before release. Today marks the 2 year anniversary of our Steam release so what better day to release our 3rd (and likely final 1.0 milestone) devlog. And they say the perfect trilogy doesn’t exist.

We’re marching towards a release over the coming weeks so much work has been put into cleaning up a lot of legacy code and focusing on more advanced modding capabilities like asset bundles, client compiler, syncing mods and more.

Now let’s break down our progress for you:

Asset Bundles
Custom Asset Bundles support is one of the biggest modding changes we’ve implemented. Using the free Unity Engine and a special package provided with Broke Protocol, modders can completely customize game and world objects.

Servers can modify existing or create all new weapons, props, skins, vehicles, and more. Custom meshes, textures, and sounds are supported. And it will all be synced with players joining your server automatically.
We’ll be adding separate Workshop tags and in-game support for the different types of mods players will be making including maps, scripts, and modded asset bundles.

Caching
Aren’t custom assets pretty huge to sync with all players in addition to custom maps? What about server load?
Luckily asset bundles are compressed on exporting (we’ll add a wiki on how to build custom asset bundles properly). Also for example, if you want to just change the damage output or fire rate of the AK47, you don’t need to link the model/audio/texture files and the game will fall back on the default assets without the need to transfer heavy meshes or textures.

But the biggest part of reducing server load is caching. Once you get an asset from the server, it’s cached on your system. Next time you join any server with the same map/asset (by comparing file hashes), it’ll be an instant load without straining the server.

Custom UIs and HTTP Server
CEF (Chromium Embedded Framework) is a rendering engine for web content. It’s basically an embedded browser and an essential part of our custom UI support.
You can make full server-side UIs with it and have it communicate with your C# code in both directions. The web content is overlayed on top of every players HUD and has input support, mouse focus controls, and can interface with the game’s central EventHandler for custom scripting.

All files for CEF will be hosted from a lightweight HTTP server players will connect to. If all this sounds complicated, fear not. Almost all of our solutions from database support to the HTTP server are embedded into our game server itself. So just open port 80 (which can be changed), get your web files in the correct directory, and it should be good to go. No assembly required.

Discord RPC Library Update
Before we were using a pretty big library for Discord RPC. It provides cool updates for friends as to what you’re doing in Broke Protocol but it was heavy and spamming our logs a bit much So we jumped ship to something better.

Note: Joining friends could be implemented some time after 1.0
Now we’re using the official native C++ wrappers for Discord. This has decreased the overhead of the library by at least 30MB with better performance as well.

Client Compiler
The client compiler is basically magic that allows servers to run client-side code on players. Usually reserved for more advanced mods or rendering things that would require too frequent network updates, it’s another tool for modders to leverage.

In order to prevent servers abusing this power, the compiler is sandboxed to cut off any filesystem access and players will have the option to accept or deny compiler access on servers using this functionality. Do note if you disallow this on joining, the server may not work correctly or kick you.

API Decisions
After a lot of discussion we’ve finally decided how we’re going to implement the API framework and foundation. We were going for a wrapper design at first, but that would mean the codebase would grow by at least a factor of 2 since every type would require a wrapper. So our final decision came down to the following:
  • Use Asset Bundles to modify static fields that define entities (like their firerate, damage output, or max speed) by exporting their properties in an asset bundle.
  • Change fields we do not wish to be modified to private or internal. We will try to open up as much as possible but to prevent possible bugs some fields will be made private/internal.
  • Change fields we *do* want to be modified to properties, which then can be used to auto-sync these values with clients to prevent the modder from having to do it themselves.

Cleanup and Organization
A very important part of the API was a global namespace cleanup. Before files were stored in “global::“ which may cause naming conflicts in such a large project and clutters auto-suggestions in our editors as we’re coding. But now we’ve moved away from that and are finally putting our files in their related namespaces. This will make it way easier to find specific types and is way more organized.
Another thing we’ve done which is very small but very helpful was cleaning up the server.bat and start.sh scripts. Someone also informed us a while back that the line breaks in start.sh were windows ones (\r\n) instead of the traditional Unix ones (\n), so we’ve fixed those too.

Legacy Mobile Code
All these advancements mean the Mobile BP version will be deprecated. SteamID, CEF, and client compiler support is either limited, or not supported at all on Android (or iOS for that matter). This decision let’s us clean up a lot of legacy mobile code and make things easier to maintain for our 2-man team.

Other Fixes And Features
Volume sliders
We’ve finally added volume sliders per audio stream to the game! You can now mute the main menu music while keeping the sounds of screaming children in the voice chat at 100%. You’re welcome.

.txt files to .json files
Some existing JSON files had the .txt extension which we’ve now changed to .json. Also, admin_list.txt and ban_list.txt will be replaced by group/role management within the database.

That’s about it, we hope this will be the **final** devlog before the update. We can’t be sure of course but if everything goes according to the plan another devlog shouldn’t be required. Be sure to follow our development progress on our Trello Roadmap.

Happy anniversary to Broke Protocol and thanks for following along <3
@NongBenz and @UserR00T
BROKE PROTOCOL: Online City RPG - NongBenz

Hello everyone, this is the second installment of our ongoing devlog series. These news posts will highlight key elements of our development process and decision making towards the upcoming milestone update: 1.0. Much of the focus over the past couple of weeks has been on improving usability with some cool new features and back-end changes.
So, what exactly have we been working on?

New Master Server code
So one of the first things we worked on was a new master server handler. This one has been created from the ground up again using .NET Core for improved stability and efficiency along with cutting dependence on the bloated Unity runtime.
We made it future-proof by using JSON for serialization and deserialization. This will allow us to add new properties without breaking third party API’s relying on the master list (such as the handy BP-ServerList)

Entity Database
Previously, all in-game items, buildings, players, vehicles and their associated parameters, textures, meshes, and audio effects were locked away within inaccessible engine resource files. Now, we’re finally exporting entity data into an external LiteDB database.

This new entity handling will offer API level access to entity fields and methods (in the BrokeProtocol namespace). And another cool thing is that (post 1.0) it can eventually allow easier client-side and server-side modding of new and existing objects and items. We’re re-designing our systems to be as flexible as possible with the API and modding in mind.

End-User License Agreement
Now that the API is nearing, we need to set some base rules about what’s allowed and what’s prohibited. That’s why we created the EULA. The goals were to protect our copyright, but also protect users from aggressive or unethical monetization from servers.

As a game that thrives on 3rd-party community support, we can’t directly control everything. However, we can have a license that protects users against abusive or offensive practices outlined below.

Hosting
Servers may create communities and provide custom content in the form of different mods, settings, rulesets, and gameplay elements. In order to protect players, Servers must not:
  • Sell privileges or content for an exorbitant fee
  • Charge for anything resembling administrator powers
  • Circumvent any anti-piracy measures nor enable access to stolen Intellectual Property
  • Undermine or attempt to circumvent any provisions of this license

User-Generated Content
If you’ve bought the Program, you may create or run modifications, maps, plugins, or tools. Mods are welcome but may not be distributed nor hosted on Servers if they are:
  • Unoriginal, stolen, or contain a substantial part of copyrightable code or content
  • Offensive, racist, homophobic, sexist, slanderous, or otherwise illegal
  • Charged for an exorbitant fee
  • Provide an unfair advantage to users
The license is still permissive about monetizing your server in a reasonable way to account for server costs. It just protects against abuse that could harm the game and community in the long-run. You will have to agree to this to download the game and once more to host a server.

Console Window
We’ve used BP-ConsoleMonitor since almost always. But this was just a log tail program with no input functionality. coloring, cursor position, etc were all extremely limited due to it being a log tail program in the end just reading output_log.txt or Player.log in newer versions line by line.
So now when you start the server using the Server.bat file it will attach to an existing console window if the parent is a cmd window, if not allocate and attach to the newly created cmd window. This allows the server to close when you press the close button now too, instead of going to task manager.

Because this supports input too now, you can register server console commands using the API as well. There are two already existing: “exit” and “save”. Both are pretty self-explanatory: “exit” is now the preferred exit method as it saves the server as well before safely exiting. Note that when you terminate the process using task manager the process being terminated cannot respond to said action, which results in data loss.


Project Repository Migration
Before we were using BitBucket, but we’ve decided to switch to GitHub. At first, this didn’t work due to the 100MB upload limit at GitHub. Fortunately, Git-LFS exists and after installing that we bypassed that problem.

Damn you libcef.dll for being 104.82MB!
Since our Issue Tracker and Wiki are on GitHub, it just made sense to migrate there. And GitHub also features more tools and even the possibility to integrate code commits with our Trello roadmap.

API
So now onto the API part. We’ve added a ColorParser so you can use the Minecraft color codes which automatically get parsed to unity RichText. This will be handy for color-coded string because for example:
&6Hello &cWorld&1!
looks a lot better than
<color=#D9A334>Hello</color> <color=#FE3F3F>World</color><color=#0000BE>!</color>
Which is how it looks under the hood.

We also added back function key support so you can now detect when a client presses a function key as well as open or close the function key menu, with your custom text.
Resources can also target specific versions now if you have a resource that targets a very specific version of the game, or if compatibility breaks in a future update.

GunGame Example Resource
Yes, one of the example resources will be a GunGame game mode. For the people who do not know what this is:
You start with a weapon, for example, a pistol and after a set amount of kills using that weapon you get the next weapon in the list. You keep doing this until you get the last weapon and make a kill with it, which results in a game. This is in most cases a knife, but that can easily be changed.
The config file will look something like this.
(This game mode will be released along with the docs and other examples next update.)

General Bug-Fixing and Improvements
As a reminder, we’ve archived our #bugs and #suggestions channels on the Official Discord in favor of our GitHub Issue Tracker. And we’ve been knocking bugs and issues off this list regularly. We’ve cleaned up the unneeded code and improved existing code. Optimization in packet handling, leveraging better libraries, and cleaner connection and authentication handling allows for faster and easier to maintain code on our end and a smoother experience for end-users.

That’s about it, we hope to release another dev log soon(ish) and be sure to follow our development progress on our Trello Roadmap.

Thanks for following along,
@NongBenz and @UserR00T
BROKE PROTOCOL: Online City RPG - NongBenz

The progress on Broke Protocol over the past few weeks has been encouraging. In fact, it’s enough to warrant bumping the major version to 1.0 on the next update. BP will still be in Early Access to sort out any teething problems but it looks like we can confirm the following for the next major release: an API Foundation for server scripting, SteamID authentication, and Custom web-based UI support. Big news indeed.

Here’s the current project status related to the API and modding (more details here). The components here are all bulwark for an API foundation that will allow modders to create custom gamemodes and entirely new functionality. Edit world parameters including weather, time, and sky/sea/cloud colors. Create groups with varying permission levels. Render custom UI’s for clients using HTML & JavaScript. Even create map triggers to run code on players entering or exiting areas.

The centerpeice for the server API is the EventsHandler. Almost everything related to server scripting runs through here. Define your own custom functions and register on the handler with “EventsHandler.Add(…).” Now that Event can be invoked via callbacks on Players, Entities, Triggers, or even via custom UI inputs though JavaScript calls. Full examples will be provided for modders to build on.

In addition to the API Foundation, plenty of other base game changes are being made as well. SteamID Authentication is a long-requested feature that’s finally been implemented. No more fumbling with passwords or security risks with storing them – everything is connected to player SteamID now. This means more effective bans, and fewer multi-boxing exploits.
https://hastebin.com/afiqudubej.json
A new player save system has been added too. The new format is cleaner and places all player saves into a single database instead of thousands of separate files. Some new serializers will make player data easier to read and manage. The database and player saves may also be leveraged by the server API for storing data for more persistent custom gamemodes or mods.

Also coming in the 1.0 are a slew of fixes and convenience updates. First is a scrollable chat history for looking up old messages, Discord Rich Presence has been added for sharing current game status and server with friends, overlay support, and possibly invites. Admins will be treated to better server management in regards to roles (if you joined our discord guild you can click that link, banning, whitelists, and admin settings. Bugfixes have been added too but be sure to use our new public Issue Tracker if you want to request anything be changed before release.

1.0 has been designed with the end-user in mind. And we want to make sure It Just Works on release so stay tuned for updates as we close in on an open beta. Track our progress in real-time on our new Trello Board and get involved on our Official Discord if you want your voice heard for updates to 1.0 and beyond.

Thanks for following along,

@NongBenz
BROKE PROTOCOL: Online City RPG - NongBenz

In preparation for a race tournament over the coming weeks, Broke Protocol is releasing a big update focusing on racing and track assets. You’ll find 2 new types of drivable vehicles: dirtbikes and go-karts for competitive racing or general hooliganism. Check around the military base and Ferris wheel on the Default map for the new rides.

In addition to the new vehicles, a bunch of new racing gear was adding in this update. You’ll find 3 new types of helmets, and racing suits in over 10 different styles. And also tons of new props in the map editor to build your own tracks. We’ll be looking for track creations for an upcoming race tournament so be sure to stop by our Discord for submissions.

The Racer Update also brings a new mission to the catalog called ‘Street Race.’ First grab some wheels of your choice, join a race mission, and be on your way to a $3,000 first place prize. The races are generated randomly, and you have to hit 25 checkpoints before all your competitors to claim your victory.

New Developer and Future of BP

Broke Protocol welcomes UserR00T as an additional developer. Working together, we’ll get input from the community as to what you all want next and what we should prioritize. This will start with better communication with our playerbase and getting more feedback. BP now ships with a random feedback form after playing so we can get anonymous input.

One of our first goals in BP is adding more ability to mod it out. First it’ll start off with scripting ability through an API, later the goal is to have a full UI framework, and even client-side mods and asset streaming. Big changes won’t be immediate, but the end goal is making BP the best and most versatile city RP game on the market.

Also mobile. This week. That is all :)

Racer Update Patch Notes
  • Added many new track objects and props
  • Added new Street Race mission with a random circuit
  • Added drivable dirtbikes and go-karts
  • Added 3 new helmet types and tracksuits
  • Added new enhanced lighting shaders
  • 3 new shader rendering options in Settings menu
  • Player movement speed slightly increased
  • Player walk/run animations better tuned to speed
  • Fixed static clothing item rendering
  • Increased number of supported Audio Sources
  • Added random feedback form after playing
  • Fixed server map marker cleanup after player disconnects
  • Fixed server memory leaks and exceptions after long uptime
  • More accurate player input updates and fewer desync resets
  • Fixed FastTrig errors after long uptime
  • Don’t show inventory change messages for firing bullets
  • Fixed binocular animation and now sold at pawn shop
  • Reduced knockdown chance from melee hits
  • Added placement crosshairs to World Builder
  • Some Default map vehicle spawn changes and waypoint cleanup
  • Update to latest Unity Engine 2019.1.3
  • Fixed attacking ragdolls and zombie players
  • Fixed serverside input handling

Regards
@nongbenz
...

Search news
Archive
2020
Apr   Mar   Feb   Jan  
Archives By Year
2020   2019   2018   2017   2016  
2015   2014   2013   2012   2011  
2010   2009   2008   2007   2006  
2005   2004   2003   2002