Jump to content

[Read First!] A Warning About Custom Code Modifications


jcsnider

Recommended Posts

Hello Fellow GameDev,

 

If you are not a proficient programmer this thread is for you.

While developing your game you may look into incorporating custom code patches or hiring freelance developers to create custom features or changes in your game. While the unique features and options that custom code allows might be appealing there are also a lot of pain points and possibly unknown expenses that you should be aware of before getting started.

 

Custom code modifications are not a one time job or purchase, they require long term developer upkeep and maintenance.

Any time you introduce custom code into your game you are modifying the vanilla engines code in some way/shape/form. Like 2 book writers trying to revise the same paragraph of a book, when the vanilla engine next receives an update to the section of code you have modified you will be stuck with a code conflict. Code conflicts require developers in order to reconcile. This means that every time you want to update your engine while keeping your custom code changes you will likely need to enlist a developer for assistance. The larger the size or number of changes you have made the higher the chance for conflicts on any given update. Often times the bug fixes and performance updates that we make to the vanilla engine are far more important than the custom features you've added to augment your game. You do not want to be stuck in a position where you have to decide between receiving engine updates or keeping your custom features due to unanticipated maintenance expenses.

 

64f3acbfe3ba43f9d07b51c2ebfd0388.png

 

6d568a871efc434858d26c23347ce8b9.png

 

 

All code is prone to bugs and errors. You should always count in bugs and issues when introducing any new code into any project.

If you are paying for code changes, request a compiled version with your requested changes to test and verify that the function or feature works fully before paying and acquiring the actual code. Major bugs can sometimes require the whole modification to be redesigned. You cannot count on developers to fix bugs if you discover them days, weeks, or months after a transaction has occurred to take your time to test very thoroughly before completing a transaction.

13c7d3f9e804f5a9d4824081a7175153.png

 

 

Custom code modifications come at a great risk to stability, performance, and security. 

There are dozens or hundreds of different ways to implement new features or custom code changes, and not all are created equal. We go to great lengths to make sure the vanilla engine is stable, performant and secure -- the developer you hire might not have those goals in mind, or may not be experienced enough to know when their features have security flaws, or server crippling bugs when the server is finally under load. A feature might work great with 4-5 people online, but if poorly designed/programmed the server could slow to an unplayable crawl with any sort of actual load, and you will never know the problem exists until the worst time possible -- launch day.

3239ac582bfca5150ce2dc60b4cb461e.png

 

 

Finally, your game will not be made or broken by a couple custom features.

Some of the greatest games of all time consisted of nothing but some text on a screen in a tiny console window. While custom features can augment a game for the better the success of a game will far more rely on the creativity of the developer. The best features in a bland world with no engagement or story will not lead to a successful game. 

 

 

Take it from Kassie, who has been stuck between keeping his custom features and upgrading to the latest version of Intersect for years now. 

If you are going to need custom code modifications, make a great game first and then chase after those modifications as late as possible, preferably right before you're game is about to go live and can possibly bring in either some revenue or volunteer developer talent so you can maintain those features.

b0786e2ac2805a1069774e1e67454103.png

 

 

The most important thing is to have fun developing your game!

If you aren't have a good time you're project probably won't see the light of day. Stop fretting about custom features and go have fun developing!

13c79193ef7c7869e3bf975aae4710f7.png

 

 

I am going to pin this post for all to see. The goal of this post is to prevent you from getting into trouble early on. 

If you want to share similar experiences or ask questions regarding getting started and maintaining custom code modifications please feel free to do so below.

Link to comment
Share on other sites

This all all extremely valid, if I could add anything it would be to definitely have any and all custom code work peer-reviewed by a friend, or perhaps pay a fee to another skilled programmer to look through the work and have another set of eyes on it. When we first launched on Steam, we had numerous features that worked great on the front end, but under the stress of dozens of players fell apart instantly and could have led to serious and irrevocable damage to the game.

 

But also don't be afraid to completely branch out! Intersect is amazing as a base, but it's open source for a reason. If you have big aspirations and Intersect doesn't quite cut it for you, theres nothing wrong with using Intersect and branching out from it to create your own custom engine from it, just make sure you have the capital, time, resources, and motivation to keep up with it, learn from your mistakes, and keep working hard.

 

People love to trash on Intersect, even within this own community, often referencing weaknesses of the engine or "It's an intersect game it cant do this" ect, but that's the joy of Open Source projects. The **only** limit is how much time and work you're willing to invest.

Link to comment
Share on other sites

27 minutes ago, Aesthetic said:

People love to trash on Intersect, even within this own community, often referencing weaknesses of the engine or "It's an intersect game it cant do this"

 

The Intersect engine is capable to do anything if a developer working with it pushes enough effort and dedication on what they want from it :769_heart:. People trashing over like this aren't really a contribution to the community nor to the engine (is quite easy to tell who's interested to learn and work hard on their projects from who's around waiting for the rest to do the job for them).

 

 

1 hour ago, jcsnider said:

There are dozens or hundreds of different ways to implement new features or custom code changes, and not all are created equal

"All roads lead to Rome"  :79_smiley_cat:

 

 

1 hour ago, jcsnider said:

 

All code is prone to bugs and errors

 

Indeed, that's the life of a developer, trial and error, test and repeat ! the key is to be patient, don't complain and instead, try to contribute if you are really interested in the project. Even if someone doesn't know how to work with C#, reporting issues can be a great alternative to contribute to the community and the engine itself.

 

Thanks for posting this up :1312_thumbsup_tone3:

Link to comment
Share on other sites

This post hits me deep in the core. I spent a around 2k usd on custom features for my game that I thought were essential to make my game unique and stand out. Looking back I really regret doing this and do not suggest it for people who are not efficient programmers. That is unless you have a big budget which I'm assuming most do not have. 

 

When the big intersect update came out that fixed a bunch of stability and vulnerability issues I knew I had to upgrade if I ever wanted to release my game. There is no easy one click way of upgrading major releases like this. This left me with two options, try to migrate everything or start over. I obviously didn't want to start over so I went the route of hiring someone to  migrate my features. The programmer got close to fixing most things but the whole process was convoluted and painful. Some features where never truly debugged which was mostly my fault because I failed to stay in contact with the coder. I also knew that I would end up crossing the same path again one day soon and couldn't stomache the thought of it lol.

 

My suggestion is if you can't program to try and base your game idea around the current features of the stable engine. Just work long and hard on your minimal viable product. The core that makes your game your game. Worry about the fine details when your close to a real legitimate release. I say this because you could be working on your game for 2-3 more years before a real release is possible. In this time the engine could go through some huge rewrites and your plans could be spoiled multiple times. 

 

Also if you don't have a programmer on your team it's probably best that you focus more on the talents you are bringing to your game. This could be art, music, story telling ECT. Take it from someone who has restarted his game like 4 times. Just forget about custom features until much later in your games development. Build an audience, get some eyes on your game so you can justify spending some money on it. Also note that if you can't fix a bug within a custom feature yourself, it may never be fixed.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...