Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
TheresaJayne
Jul 1, 2011
I am working on a fairly large project, but I am new to game development having worked mainly with server side stuff,

I have large data sets, objects x y z coord facing etc.

how do i convert it to a 3D view, Java3D or C++

project is at https://www.sf.net/projects/tranq-online

Adbot
ADBOT LOVES YOU

TheresaJayne
Jul 1, 2011

Master_Odin posted:

Sorry if this seems silly, but I just can't figure out how I'd do this "efficiently". Working in XNA, I've got a Sprite class. For collision detection (it's a top-down grid game), I've got an array with a code for each square that I used for collision detection and drawing the level. While this worked while it was all one class, I've (as I said), created a Sprite class. What's the best way to approach this? Feed the level array to the Update class for Sprite? I feel like this'll end up messy as I next want to create a linked list set-up for items within the level and I don't want to pass that to the Sprite class when I want to do interaction with items as if I update some part of it, then I'd have to return it and I feel like just feeding the variables is wrong really and that there's got to be some better way to do it, but I'm just really unsure what to do.

e: is the best policy really just having a large update in the main file to deal with this stuff? I feel like that's just asking for issues if I was working on a larger project and I'm trying to learn the best practices instead of just hacking together code that works.

Don't know if this is of help as i dont know XNA but java,

With Java you would have an array/hashmap containing all the objects in a certain type (npc/player/ammo) and then have a method on them that they check if they are in collision.

ie the sprite checks to see itself if it has collided and then does whatever it does, - of course you also need quick fail so if it has not collided with anything, it returns quick.

TheresaJayne
Jul 1, 2011
reminds me of redcode, I will certainly look at it - but then i know forth from lots of playing around with tinymuck and derivatives.

TheresaJayne
Jul 1, 2011

Internet Janitor posted:


TheresaJayne: I knew several MUDs used Forth as a scripting language, but I've never worked with one myself. Would you like to share your experiences? In your opinion, are there significant advantages or disadvantages to that approach? Do you normally write code interactively from within a MUD client or is world-building an offline activity?

Well I mainly used TinyMuck which uses a scripting called MUF (Multi User Forth)
a snippet below...

code:
: ok_name?
    dup not                                 if pop 0 exit then
    dup 1 strcut pop "*" stringcmp 0 =      if pop 0 exit then
    dup 1 strcut pop "#" stringcmp 0 =      if pop 0 exit then
    dup 1 strcut pop "$" stringcmp 0 =      if pop 0 exit then  (Added by Natasha@SPR, 5 Sept 99)
    dup "=" instr                           if pop 0 exit then
    dup "&" instr                           if pop 0 exit then
    dup "|" instr                           if pop 0 exit then
    ( Check for ! at the start of each word )
    dup " !" instr                          if pop 0 exit then
    dup 1 strcut pop "!" stringcmp 0 =      if pop 0 exit then
    dup "me" stringcmp 0 =                  if pop 0 exit then
    dup "home" stringcmp 0 =                if pop 0 exit then
    dup "here" stringcmp 0 =                if pop 0 exit then
      
    pop 1 exit
;
With a Muck all the players can create rooms exits objects and you can then create scripts that are linked to actions and commands on objects or rooms.
I helped with and modified a space system which created dynamic rooms in a coordinate system so you could fly around and maybe miss the space station etc (my muck was based on Babylon 5 and had scripts to stop you entering the alien sector without breathing aparatus etc.)

TheresaJayne fucked around with this message at 12:17 on Jan 12, 2012

TheresaJayne
Jul 1, 2011
I was talking with a friend who used to work for Blizzard, I am trying to develop a MMORPG but i am a noob at 3D worlds and how to store the data in the server to represent the world.
He suggested that i use hex fractiles based on the Gosper Curve, which would mean each item/character can be in a single hex in a list ranging from 0-65535 within a larger Hex representing the world region i am in.
He hinted that this is how Bliz actually does this.
But that would mean that each region would have 65536 locations a player can be at as apparently the fractal nature of the gosper curve means you can position yourself within that larger hex by just knowing your location on the list.

Here's the crux, I dont get it, have never done A Level or advanced math so have no real understanding of how it works (and the only examples i can find are logo versions)

Can anyone point me to something to help a non advanced math person understand....

Thanks

Theresa

TheresaJayne
Jul 1, 2011

xzzy posted:

On the other hand, there's nothing wrong with aiming high. Just be aware that's what you're doing and that it's going to be a long, long climb. If you still want to keep that lofty goal, break it down into bite sized pieces. Like if you want your MMO to have real time combat, make a small single player game that implements the combat only. A procedural terrain system? Make a sandbox world generator.

Then down the road you can repurpose that code into your grand design (or more likely, you'll rewrite it from scratch because you got smarter and found a better way to do things, but at least you'll know whether the idea works).

This is exactly what i am working on, at the moment i just want to get the back end data store working as fast and smooth as i can get it - being a back end server dev that seems to be the best starting point for me, then i can expand to displaying the data in a simple front end etc.

I did do simple 3D work at college many moons ago so understand how to take a 3D location and display as a 2D image etc.

I just don't get how using a fractile makes storage of location easier or faster?

TheresaJayne
Jul 1, 2011

Mr. Crow posted:

So I write code all day and it depresses me that I'm to exhausted and burnt out at the end of the day to ever want to code poo poo in my free time (i.e. learn new and useful stuff to help me find better and more appealing jobs)

I agree with you totally there, however last night i pulled my old wildfire S out and realised I want to try Android programming....

TheresaJayne
Jul 1, 2011
I only ever use Np++ or if i am really stressed or on linux - vi

although Intellij Idea is a fine IDE

TheresaJayne
Jul 1, 2011

Baldbeard posted:

Okay, I have another question. I've hit a serious roadblock and I've wasted hours away on it now.

I made it so my 2D game levels contain the player character. To center the "camera", I made it so the level moves in the opposite direction of the character (and takes the character with it, since it is inside). Everything stays centered and peachy. Well now I want boundaries so the camera won't pan when I'm near the edge of a level. Otherwise the character is going to get half a screen of nothing(or padding I have to deal with) when they are on a level's edge.

So I made it so panning only happens when the character is within a boundary I set. After testing it, I noticed that when the character crosses a boundary and the panning starts, I lose a step in the opposite direction. So let's say panning starts when the character's X position is between 100 and 900. When I cross from 100 to 101, the map moves from 0 to -1 to compensate. So the end result is the character's x is back at 100 but now the map is -1;

What the gently caress am I doing wrong? Should I not have the character in the level, but rather have both the level and the character in a different container altogether and move that? Or move the level in the opposite direction and not move the character when I want to pan, and switch to moving the character and not the level when I don't want to pan?

That sounds about right however i think what you need to do is when you move from 100 to 101 you move the level not the player.
or if it moves him back then its move player and level.

TheresaJayne
Jul 1, 2011

Orzo posted:

If I recall correctly, the root of the issue is that the collision event gets fired on BOTH spheres, so he needs a way to *consistently* determine a winner from the perspective of either instance.

That is, the code should be
code:
if (I win the battle)
  Destroy other, make myself grow
else
  Do nothing, the other collision event will take care of business.

Isn't that wrong...

Should it not be

code:
if (i win the battle)
    Make myself Grow based on Size of Other object
else
    Destroy myself
no object should be destroying the other sphere each object deals with itself and nothing else.

TheresaJayne
Jul 1, 2011

roomforthetuna posted:

Logically that makes sense but it's a bit dangerous since you don't know what order the two calls will play out in or what information might become unavailable on destroy. So it's safer to do both things on the one call, that way you know you're always doing "grow then destroy" rather than having the order determined by some arbitrariness within the engine.

So you are saying to ignore all the best practice of the OO development environment in favour of a central monolithic game loop....

If so why use objects in the first place?

TheresaJayne
Jul 1, 2011
Your Space game idea reminds me a bit of SunDog Frozen Legacy on the Atari ST,

You flew your ship, if it got damaged there was random damage to system functions, you had to walk through the ship and repair the engines or lasers etc,

The number of times I had to disable the guns to get the engines working.....

http://en.wikipedia.org/wiki/SunDog:_Frozen_Legacy

TheresaJayne
Jul 1, 2011

Above Our Own posted:

My team has been trying to find a good virtual office setup. We've tried google hangouts which is probably the best but it's buggy and sometimes just doesn't work at all or critical pieces like screen sharing dont work. We've tried some more business oriented software, but the screen sharing is usually really low fidelity or has a terrible frame rate.

So I guess I'm just looking for some good collaborative screensharing software that can stream multiple screens at high resolutions with the framerates needed to demo portions of our game to one another. I figured some of you might have ran into a similar problem!

I tend to use TeamViewer, its good for remote desktop and they have a presentation mode as well - and includes built in voice comms.

TheresaJayne
Jul 1, 2011

Turtlicious posted:

So, I finally feel like I "understand" java to a degree. I know how to declare variables, how classes and if / or statements work. Now I'dlike to actually try making a game. So I sit down, turn on eclipse and...

-pbbbbbbbbbbt-

I don't know where to start, I guess I should pick a library, but which one? I'm thinking since I'm doing a simple "You are a @ on a boat. Go sail yarr." game, I should use Curses, or something simpler. Is there a video / site / pay-for-lessons. Thing good for what I'd like to say is an intermediate user?

Start by helping with another persons project, look at their code "learn all that is learnable then return to the creator." - No thats the storyline of Star Trek the motion picture.

But if you are wanting Java you can either search Sourceforge or Github or help with a minecraft mod, Thats how i got into games helping with the odd bug fix on a minecraft mod. Now i am helping with cleaning up the code and adding new funky stuff like radios within the game.

TheresaJayne
Jul 1, 2011

Pseudo-God posted:

If I have an arbitrary polygon defined by a list of points, how do I calculate this polygon's shadow? By shadow I mean something like this:

My polygon is the red one, I want the points of the black polygon. Red poly has 5 points, black has 7, including the ones under the red one which are not visible.
I tried writing my own algorithm to calculate this, but it's not correct. Anyone has any pointers on how I should approach this? I will be precalculating the points, and then reusing them later.

For shadows wouldn't you just redraw the initial polygon but offset down and to the right (depending on perspective) but in black. and behind the initial polygon, If i remember in the old Amiga days that's how we did shadow on Text scrolling on demos.

TheresaJayne
Jul 1, 2011

lethal trash posted:

At my office we've been having so many problems using git as our primary source control for all assets. So now we're looking at alternatives, those being Perforce and Plastic SCM. I don't think we'll be going with Perforce, so that really only leaves Plastic SCM. I tried it out a little bit last weekend for the LD30 and I was pretty pleased. It was fast, the error messages were helpful and everything worked nicely. I am wondering if anyone else has used Plastic and if they can share their experiences? If you've used it in a production environment even better. I really want to know about the gotchas that come after longer use.

I must look into plastic, i thought perforce was one of the top ones... Just stay away from ClearCase... if anyone suggests using it... Shoot them with extreme predjudice

TheresaJayne
Jul 1, 2011

xgalaxy posted:

The only git GUI clients I recommend are Sourcetree and SmartGit.

what about tortoise git?

TheresaJayne
Jul 1, 2011

Dr. Stab posted:

The best way to figure this out is to play those games with an eye for how they control level flow. Think about how they direct the player towards the goal, and how the path is blocked where they don't want them to go. Take notes.

I have seen this in Neverwinter online, the final boss is right by the entrance/exit but you have to go the whole length of the maze to get to them - then it takes seconds to get out as the door is opened once you have killed the boss

TheresaJayne
Jul 1, 2011

MockingQuantum posted:

Alright, I have a question that's 3rd grade level compared to normal thread discussion, but I'd like some experienced feedback on a situation I'm dealing with. I'm an audio guy working with a small indie dev group that's saddled with the hilarious problem of only having one competent programmer. Somehow I ended up being the cheerleader of the group, so now that they've hit a brick wall in terms of development, I've been tasked with figuring out a solution. Basically, any and all development on the game bottlenecks at our programmer, who is extremely good at what he does, but has a day job. We're working in Unity, so the other 3 gents involved can do a certain degree of level design and simple component poo poo without the programmer's involvement, but we're running out of that sort of thing. As is, I've been encouraging the other members of the team to try and learn even a tiny amount of C#, even if they aren't totally successful, but they're already committing about as much time as they're able. Is there a way to either lower the barrier to entry for these guys, or a different engine we should be using? I've considered Playmaker for Unity, which some of them seemed enthusiastic about, but I haven't seen it in action. And UE is likely way out of our reach at this point.

I know the quick and dirty answer is to scale down the game, scale down the team, or both, but if anybody has any brilliant ideas, I'd love to hear them.

Find more programmers and drop the deadwood

TheresaJayne
Jul 1, 2011

Pollyanna posted:

I could go ahead and go by an idea generator or just sit at the terminal and play around, but that won't necessarily lead me to make a good game idea. I want to make something that's fun and enjoyable, and not just something dinky that inevitably gets tossed away. :(

why buy a generator why not look through some of these and see what arises http://www.squidi.net/three/

TheresaJayne
Jul 1, 2011

Joda posted:

E: I can't read.

https://www.youtube.com/watch?v=f7cchb_F6Ps

TheresaJayne
Jul 1, 2011

Ranzear posted:

gently caress me sideways! That's what it was called!

I played that a long time ago, but it kinda got replaced in my head later on by uhhh ... that other SoE game* on the same engine as Infantry, and I was never able to remember what the prior was. (Aside: Toutat.us will someday be my Tanarus successor.)

But really, most of BeamDuel came from having a Gravitar cabinet in the living room.

Speaking of games from 1997, I'd never heard of Tibia (practically a UO clone), but apparently it's still around too and there's even private server developments. Some guy was streaming it over the weekend. Lots of very pure RPG mechanics in the midst of very pure 1990s interface clunk. They were working on a boss that required you turn his own pets back on him to kill him to match the official version..

Edit:
* Cosmic Rift

Talking of old games, the one i miss the most - Midi Maze on the Atari ST fm
I loved going down our local compucade and playing in the league they had there.

Now a multiplayer better GFX version of that would be amazing....
https://www.youtube.com/watch?v=8hSoy1S43dw

TheresaJayne
Jul 1, 2011
Ok now UE4 is free I am currently downloading, What would you people suggest as a good place to learn...

TheresaJayne
Jul 1, 2011

Daysvala posted:

Thanks very much, I've got a few places to start now at least. The way I'm doing it at the moment is each block is actually 6 separate meshes and game objects which are children of an empty block parent game object. This is probably a very Dumb approach but it was the easiest way to start.

is it feasible to find any duplicate faces and cull them all,

Get a list of all faces, if there are 2 with exactly the same coords (different facings though.) delete both.

TheresaJayne
Jul 1, 2011

FateFree posted:

Quick question, I've only worked with 2d graphics. Can anyone tell me about the graphics style for the mobile game Crossy Road? Is there a name for that style? Its almost like pixel art for 3 dimensions. Is it difficult to create assets in that style? Is it based entirely off squares or is it modeled like a sprite?


I think they use Sprites and isometric tiles.

Check out games like the original Civilisation or even on the Spectrum Ant Attack. its all 2D but with square tiles on end with transparency at the edges



This page seems to help a bit....
http://www.programming2dgames.com/chapter10.htm

TheresaJayne
Jul 1, 2011

Paniolo posted:

Oh yeah, that's what I meant. Qbasic is a much more impressive (or insane) feat.

I am so annoyed with that, Black Annex was green lighted on steam then suddenly a big software house released the same game with better graphics. (Invisible inc)

TheresaJayne
Jul 1, 2011

Thom ZombieForm posted:

Hi! Creating some sound fx for babbys 1st game. ableton is really overwhelming, but are there any keyword I can search for creating seamless looping sounds?

Audacity

The only program you really need,

TheresaJayne
Jul 1, 2011

Dr. Stab posted:

Here's the secret: All of AI is about navigating graphs.

Here's the ultra-secret: All of computer science is about navigating graphs.

For the bacteria system, you might want to represent your AI as some sort of finite state machine. For your behaviors, just try to pick the most reduced set possible. Like, maybe each entity is capable of translating itself some unit distance in any direction on a plane, and they are capable of observing the distance (but not direction) to food.

I have been toying with trying to make a virtual brain, but rather than try to specifically map stuff, let the brain grow neurons and explore its world through mapping camera pixels onto an area of neurons mic input pass through a FFT and trigger neurons with the output at a spread of frequencies etc.

The plan on the neurons is as follows, each time triggered + % on path, if path > 80 Split into 2 neurons with the same input - (not sure of how to make different outputs.though) of the 2 neurons 1 is set to 25% of the trigger value, the other on 75%.

I am just thinking should i have it that if a neuron triggers without an output neuron it will then create a child neuron when the level reaches say 75%?

I truly think that if we have the processing power to have that many neurons we could actually get a working brain, Of course motor control (robot arm etc) could also be done in the same way as the inputs, (and speech)
so the "mind" can create sounds or movement which it can observe and learn itself that if it triggers this neuron path it lifts the arm up etc.

Thoughts?

edit: hmm just thought if the new neuron randomly attaches to another neurons input?

TheresaJayne
Jul 1, 2011
Just saw a game advert with a nod to Black Annex.

Satellite Reign video trailer on steam starts by showing a street with a club called "Black Annex Club" :)

So even if everyone is doing stealth hacky games it also appears that it was all started by Black Annex :)

TheresaJayne
Jul 1, 2011

dupersaurus posted:

I've had the first edition of this for awhile now. It covers the math of almost everything, although at times I wish it had more on applications for some of the things it covers.

I have been trying to do the graphics course and missed the deadline for the code as I cannot understand the math, I haven't touched Matrix Math since 1997 when i did my BTEC

TheresaJayne
Jul 1, 2011

ModeSix posted:

Sketchup as was already said.

Blender is anything but simple. Even to do basic polygons and manipulating them feels like pulling out your own teeth with a loving hammer compared to commercial packages like 3DS. Avoid it if you can.

Try using Lightwave 3D i worked for 3 hours and couldnt work out how to make a sphere, its very convoluted in the latest compared to the original V6

TheresaJayne
Jul 1, 2011

Nude posted:

So I'm trying to wrap my head around the best way to do a turn based system in Unity. For simplicity sake image a rogue-like where you cast a spell "heal" that activates for 2 turns. So here is an idea for how to approach this problem:

One update loop that rules them all. Is this going against the flow structure of Unity? I feel like they want to discourage the use of one "game loop".
code:
 
   void Update () 
   {
      if (Player == True)
      {
        Player.ControlScript();
        return;
      }
       for(int i = 0; i < players.Length; i++)
       { 
           Actors[i].Passives();
           Actors[i].Turn = True;
	   Actors[i].AI();
       }
   }
And then on the passive spell I would have
code:
TurnVar = 5;
Passive () 
{
   TurnVar--;
}
But for the life of me I can't think of a way to make a turn based game without having to use a one loop system. Can someone point me in a direction where it's possible? Or should I not worry about it? When I looked it up people said they would use delegates and events. I'm a little confused on how that would be executed in this context?

Any help is appreciated.

That would be the usual, but you could use observer pattern,

a TurnController that sends out a signal to all observers for the next turn, and each unit knows its own stuff

so when you hit that next turn button it tell all units to move to the next turn and process pre configured instructions or wait for input,
anything waiting for input registers with an ordering Listener, which iterates through its observers processing the user input for turn commands before telling the units to do their job,

Edit: Only a simple view, obviously there are other ways of doing it. and there are already flaws i can see in the above method that need more thought.

TheresaJayne
Jul 1, 2011

Rocko Bonaparte posted:

Does anybody have an existing, nice little angle calculation helper? I'm dealing with shenanigans like testing if something is rotated to -90 degrees, and finding out instead it's rotated to 270 degrees. I'm scribbling it as a I go, but I am willing to shamelessly draw upon some helper code if there is some.

If you just want to make it turn the least distance why not calculate the angle, then if the result is >180 go the other way!!! -(360 - result)

TheresaJayne
Jul 1, 2011

Ralith posted:

It sounds like your problem is something to do with pyglet's text renderer. OpenGL has no native notion of text, and doing it right with fonts and unicode support and so forth takes quite a bit of effort. For a simple program consider just finding a bitmap font in texture atlas form that fits the size you want and rendering glyphs on quads such that each texel maps 1:1 to a pixel.

That sounds like what we used to do with the blitter on the Amiga, we would have a Large jpg/gif that had all the characters written down,


Then knowing what ascii code we were using and how many characters on each line we would blit the size of the character from the part of the large image in memory straight to the screen.

The lovely bit was to make the mirrored text underneath we used the copper to go up x lines and copy to the next line down dimming the line by y%.
and then skipping a couple lines going up, so if the character was 16 pixels high we would do
current line location -2 brightness 7/8ths
current line location -5 brightness 6/8ths
current line location -8 brightness 5/8ths
current line location -11 brightness 4/8ths
current line location -13 brightness 3/8ths
etc...

TheresaJayne
Jul 1, 2011

Zaphod42 posted:

Its called "ee-duh" well... that's probably not right. I don't know how to make the pronunciation for it, just say it like its a word, not an acronym.

Its based on the Freudian sense of Id, like Id, Ego and Superego.

The Id, if you didn't know, is the part of your brain that gets off on simple poo poo like wants and needs, especially aggression or sexuality like tits and violence, so Id games were supposed to be games where you blow poo poo up without a ton of thinking going on. That was the joke, I guess.

https://en.wikipedia.org/wiki/Id,_ego_and_super-ego

I know the difference id (ihd) is the bit that gets angry when you get pwnd.

id (eye dee) is what you (normally) have to show to buy a copy of GTA5

TheresaJayne
Jul 1, 2011
This question has probably been asked many a time,

If someone wanted to work on a game, say an MMO, what would they do and in what order to not lose interest and give up?

Most people would say the Graphics engine, some the Game Logic, some the skill trees etc,

Surely there must be a way to develop a game without weeks of stupid framework development.

And yes I am talking about rolling your own engine rather than using unity or UE4

TheresaJayne
Jul 1, 2011

Buffis posted:

Probably easiest to just give up, if thinking about making a MMO.

there speaks the voice of least resistance.

If everyone gave up we wouldnt have games like World or warcraft, or Rift,

TheresaJayne
Jul 1, 2011

OtspIII posted:

To be clear, are you talking about making/spearheading the game yourself or getting hired by a company that's already making a MMO?

I think this is one of those situations where if you need to ask a random forum for advice on how to make your own MMO, you're not in a position where you have any hope of making one. There have been a few solo devs who have tried to make MMOs, but those tend to be people who have already been working on MMOs for decades, and have generally had somewhat underwhelming results.

Have you considered making a MUD instead? It's not easy, but that's a style of MMOish game that a small team of new but ambitious and dedicated devs can actually make something pretty cool in.

I know Muds / Mucks quite well as I did a space sim inside Fuzzball muck where you travelled to a coordinate and it created the room on the fly and you would move from your ship outside etc.

just trying to work out how to go about a game.. using MMO as an example as everyone has said - its difficult./ impossible.

But people have done it, just trying to understand the game development process, what is written first? graphics, logic, framework what?

TheresaJayne
Jul 1, 2011

HaB posted:

Honestly - you seem bound and determined to ignore the "don't make an MMO by yourself" advice, but hey - who are we to stop you from doing what you want?

That being said - as already pointed out - there isn't really a rigid process for making a game. You start with something like "render to a screen" and you keep adding to it: "accept keyboard input", "render thing to screen and move with keyboard", "animate thing on screen while moving with keyboard" etc. Eventually you start to wind up with something resembling gameplay, and eventually - a game. Along the way you will start to separate code into Engine components - graphics, controls, audio, etc. After you have made several (probably abortive) attempts - then you might know enough in advance to separate things out into components from the get-go.

You also have a paradox among your requirements: "I don't want to use someone else's engine" vs. "I don't want to write boring framework". The latter is literally the thing that using someone else's engine avoids. Do you have a specific reason to avoid pre-existing engines? If it's "just to learn better" then I assure you - attempting to write an MMO by yourself will provide you with plenty of education along the way. If instead you want to learn more about low-level components and how they work/interact - then write a much simpler game. Write a Pong or a Breakout. Rewrite it super stylized. Write Space Invaders or Galaga. That will give you much more immediate working knowledge of how to write a game than standing at the bottom of Mount Everest with a chisel, which is basically what trying to write your own MMO completely from scratch is.

You are also correct in that people have made MMOs - teams of people, working for years, with a lot of money backing them. I assure you no one in this thread is trying to discourage you for any other reason than - they have been there - perhaps not that exact idea, but some lofty idea that simply turned out to be way too much work for a single person.

Otherwise. Good luck.

I was asking because every time the same question has come up, it has been answered in the same way, saying "don't" however no one has actually said how you would go about doing it if you wanted to - I am happy enough doing mods for minecraft myself, just trying to get some experienced game developers input on how you could go about making a game like an MMO. I have and friends have done lots of RPG / RTS type games in the past, just wondering what it is about MMOs that mean sole developers are told "forget it"

Adbot
ADBOT LOVES YOU

TheresaJayne
Jul 1, 2011

HaB posted:

Okay - so I can try to explain the answer a bit: the difference between an RPG and an MMO is: orders of magnitude of complexity - with regards to content, world persistence, networking, etc. Not another layer of complexity - but layers upon layers. So how you would go about it is basically the same way I said in my post, except once you get to the point where you have functioning gameplay, you have to figure out a way to write a server which maintains persistent worldstate for multiple clients at the same time. If player B updates Thing 1 in word, then Players A, C, D, and E all need to see that update. So far we're not in territory that other games haven't covered - if I fire a rocket in Quake and kill player A, then all the other players see it happen. This is still pretty complex stuff for a lone developer to tackle, however.

So next you might start thinking about how all the updatable entities in a persistent world shared by multiple players interact and coexist with each other. Do animals eat plants? Do animals eat other animals? Is there a limit to that? If a player plunders a specific area, how does it regenerate so later players don't show up and find nothing at all there? Now multiply that problem by a thousand.

Even something like Minecraft - which could be argued is a very basic MMO - has to "fudge" some of these things in order to keep everything running smoothly. This is why chunks which aren't active don't update at all. You can plant wheat, and if no one visits that chunk for 6 months, when you go back, your wheat hasn't grown an inch.

Not to mention the sheer server logistics of running an MMO. How many players are you looking to eventually support? Thousands? Tens of Thousands? Where are you going to run it? Do you have dedicated servers in some sort of NOC which has a HUGE data pipe to support that many players?

So you essentially go about it the same way you would any other game - but after you have effectively MADE a basic game - you have barely started. That's why everyone is saying "forget it" because the task is herculean.

I know you're not trying to build WoW, but this article outlines the number of team members it took for WoW. Even if you divide that effort by 10, you are still talking about a relatively large team compared to a single developer.

Thank you for the response, I also ask as a friend used to work for Blizzard and developed the Starcraft II launcher/patcher.

He isnt very forthcoming on how it all works but he has said that Blizzard have done clever stuff on scaling so that it uses less bandwidth / cpu meaning they can have more people per server without lagging too much.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply