Making own gamemode - where to start and tips

Hello!
Not so long ago I’ve had my own server with heavily modified DarkRP.
It turned to be very popular, but I got tired of using/modifying DarkRP, so I decided to make own gamemode.

Now I want to make my own gamemode, I’ve tried that in the past but at some point I realised I don’t know what to do next.
So I would like to hear tips from more experienced developers.

FYI: I got enought lua knowledge to make a gamemode, don’t worry.

Me:

  • Current making one.
    % Experienced developer.

Alright … I haven’t released any gamemode yet. But if I have to give out a few tips:

  • Everything must be made as simple as possible, but not one bit simpler. -Einstein
  • If you go “cold” … have a few friends to back you up or take a break, it’s not something you’ll have fully don within a day.
  • >Functions … lots and lots of functions.<
  • Stay to easy projects in the first run.(Don’t chew on more you can eat)
  • Have a plan, theme, list of 'todo’s … ect

I advise making sure you have a very good organization system and make sure you use good design. I usually think out code on paper before writing it (for libraries that is ofc.)

I have a roleplay game mode in progress I have been working on. Let me know if u might be interested in helping or if u need help with your own. Mine is mainly a framework supporting money teams etc with a plugin loading system. You may find it a good jump start so you don’t have to spend time on the basics.

Yeah well, I got money/rpname/titles/inventory/unlockables system done, but I feel like it’s messy and I want to re-make it.

If you want a code review etc i can take a look or u can send me specific files. My steam name is the same as my forum name. It might help if u posted specific examples of what code you consider messy here.

I am also in the midst of creating a custom gamemode.
For tips on getting started, I would say outline and get the basic framework down. The first thing, after the files have been set up, is to ensure teams are made( At least one for testing ), and perhaps creating a Debug lua file full of cheating commands to make testing easier, but won’t be in the final version.

When it comes to making HUD, GUI, and other aesthetics, always wait last. The gamemode needs to work first, then make it look nice.

you can use trello.com to help keep you organized, I use it and it helps a lot.

I’ve made many game variations, most of them Non-Gmod or source. I’ve had a load of success with certain parts of these games.
If you’re looking for popularity, the list is simple.

One- Equilibrium. Make sure you dont have any blatantly easy way to win a game, or a incredibly hard one. So, it’s a rather good idea to weight your guns to all have ups AND downs. let the players decide what gun they like.

Two - Personalization. Players are more likely to stick around and play when they can make the game their own. A good idea for doing this is Weaponry Attachments and such. It’d be even better if you made a dynamic armor system that sticks props onto players and stuff like that. Players love to make themselves look great and work great, so hats and stuff are always a good idea.

Three - Replayability.
A game gets boring when it’s the same over and over again, Unless it’s ungodly good or somewhere in between. Even then, it will turn into a clique game (Zombie Survival, Counter Strike, Zombie Master etc) So make sure that there’s alot of dynamic gameplay.

Four - Sensory Detail.
This is a very specific one i’ve found, you wont hear it as often. The only way i can explain this is the whole feel of the game and the tools and actions of the game. For instance, when a player picks up a sniper rifle, they expect it to make a big BOOM when firing and completely tear off someones head. make sure they see and experience those kinds of things. Make sure effects are good, Guns are satisfying to fire and have fitting noises, people are worth it and satisfying to take down, etc.

Five - Control.
Players are more and more used to certain styles of gameplay nowadays. If you’re making an FPS team shooter, Make sure that the controls are more or less the same and nothing is super different. it’s good to be original, but it’s not good to confuse the player.

Six - Reward
Players nowadays are seeking instant gratification, and landing a kill is less and less fulfilling for them. It’s easy to fix that. Things like levels and progression make this very easy. COD for instance is popular due to the ability to level up and gain new stuff. They even make an obvious, animated, sound effected symbol on your screen to show you that you did something good and was rewarded with XP right then and there.

I hope this helps, and good luck!

I’d say for the actual development, get something working as fast as you can, something playable, then develop upon that. Having your gamemode being testable with friends is so much fun and gives you a big boost in interest in actually completing it. Don’t worry about optimisation untill the end, oh and, don’t create too versatile systems because you’ll just end up wasting time on that. If you feel like you want to develop further on it later, then you can do such.

The first place to start would be the framework, start off with all the server side functions, have a list of everything that you need the gamemode to do, then create functions upon functions for that, then do your client/server interaction stuff then make sure all of your stuff works before you even start on the graphical side.

That is very helpful!
I should start off with gamemode functions (Like addmoney, savestats and such).
Also, another question. Is it good to keep all your gamemode functions in one table ? Like CRP = {} ?
And is it good to use template entities ? (For example for food, all my food does the same thing but reduces different amount of thirst and hunger)