These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Issues, Workarounds & Localization

 
  • Topic is locked indefinitely.
 

A Question About In Game Modeling Performance - 2D to 3D

Author
DrysonBennington
Eagle's Talon's
#1 - 2015-10-24 06:08:56 UTC
Working on my own 2 D side scroller using the Unity game engine I have come to understand a thing or two about performance issues as well as animation.

http://cdn1.eveonline.com/EVEHistory/2000.10_Sputnik_selectCharacter.jpg

In a 2D Scroller a side view is only needed where the animations of the character walking is then built using Frames that generates the desired motion animation.

If you want the character to turn towards the player you create an animation that slowly reduces the side view of the character until the front view has been achieved. It might seem like the character is 3D but the frame is really 2D.

The question I have is would it be possible to make 2D blocks or Sprites of the ship in the image below of the left, right, front, rear, top and bottom and then through Animated Camera positioning make it appear as though the 2D ship is turning but instead the 2D Sprite is simply changing to the angle of the sprite that the camera is looking at?

If so then I think that more detailed ships could be rendered in this manner which would reduce the load on the server.



Kal'Han
Kador Trade Company
#2 - 2015-10-24 15:25:07 UTC  |  Edited by: Kal'Han
how to even start


first a question, you are talking about "reducing the load" for EVE server right? so we, player, could have better looking ship on screen


ok, let's take a few step back and consider this simple facts :
NO server in world of MMO, or any gaming ever, is making any graphical computing. ever.

this is a non debatable fact.

What a server does is : compute stuff, store data in database, run scheduled command, and of course exchange data with your client.

data looks like
CLIENT "hey server, my human master made a move, activated a module and tageted a ship"
Server "Roger, wait while processing
C : OK
S : done you have move and the target is targeted, go ahead you can shoot
etc...
but there is nothin more, or the occasionnal tag/protrait download from another server


HOW does a 3D engine work, or even a 2D engine for that matter, it's simple : ALL the graphic resources are on the computer
EVE weighs 20GB that"s mesh, texture and sound... text is a few Kilo
GTA5 is 50+GB
Clash of clan on your phone it 50MB

so the engine is connecting to the server, iniate dialog, request info and fires up 3D rendering loading environment and placing thing in space, or movind them, according to math equation on YOUR computer
the rendering process is made by your graphic card
and the load on the server is the SAME wether you play in low setting, or maximum detail with a cherry on top. your graphic card may melt in the process, but the server don't care.



now that's established, let's look at your rendering idea.
let me tell you one thing your idea has merit, did you know that's exactly how DOOM in 92 worked!

now however a 3D engine is not using sprite anymore. to summarize 20 years of 3D evolution, from pure software, then 3DFX rendering, OpenGL vs Direct3D war, and nividia/ati rise to power

Carmack from iD software back around quake II was a leader of idea on how to improve engine, and his speeched are still around in YouTube, some of what he said is still the basis for most nvidia and ati, and also directx
(doom 3 introduced stencil shadowing and normal mapping)
what you want to understand is that the computation to do 3D stuff is so intensive that you need a dedicated processor
this dedicated processor have a way of working, and you talk to them using D3D or OGL, and this is talling only in vertex, and texture (i'm simplifying), and a recent stuff : shaders (light fine management)

what eve did recently : increase the number of vertex on a ship, increased texture resoluton, droped a nice new shader on this to get a nice lighting and realistic effect

now to come back to your idea and why it's a good one : Normal Map, that does this "higher" quality thing almost automaticaly
take a really high quality model of the ship, make normal map of it (it assign "height" value to each pixel of the object)
then make a low quality object and apply the normal map, then use the engine to render lighting throuhg the map (look it up)
this then give an illusion of the original.

so using sprite is not the way anymore, but pre render stuff is used in a way.

try http://www.ogre3d.org/ , that's not unity, but that's a real 3D engine usable for gaming is you want to try



edit : some wiki reading material about some 3D technique
https://en.wikipedia.org/wiki/Normal_mapping (look at the equations, and imagine doiing that for 1920x1080 pixel 60 times per seconds, that's 124.410.000 pixel to compute, just for lighting through the normal map, you have ALL the other computation to do also, and dont go there it gets confusing)
https://en.wikipedia.org/wiki/Category:Texture_mapping (texture techniques)
https://en.wikipedia.org/wiki/Category:Shading (shader technique)