Unity3d vs WebGL, langfristige Entwicklung?

Ich weiß, dass hier niemand eine Glaskugel hat, aber von Leuten, die beide Technologien kennen, würde mich mal ihre Einschätzung interessieren, wie sich Unity3d und WebGL in 5 bis 10 Jahren entwickeln könnten.

Der Punkt ist der: Wenn ich mich etwas tiefgehender befasse, dann möchte ich nicht irgendwann so schnell vor Auslaufware stehen. Eine Garantie gibt es natürlich nirgends.

Meine Punkte sind bisher folgende:

Pro WebGL

  • Open Source, ausnahmenslos kostenlos und alle möglichen Features verfügbar
  • Echte Plattformunabhängigkeit
  • Updates zumeist unauffällig im Hintergrund (Aktualisierung einer Webseite)
  • Mit three.js und babylon.js starke Frameworks
  • Kein Plugin notwendig, aber kann auch Nachteil sein
  • Seit 2011 in sämtlichen Browsers etabliert und verbessert (hat sich zwar nicht etabliert, aber stets gehalten)

Pro Unity

  • Eingeschränkte Basisversion kostenlos, jedoch nur für den kleinen Betrieb
  • Regelmäßige Weiterentwicklung und Verbesserung da Profit, im Gegensatz zu WebGL, was Non-Profit ist und sich lansamer entwickelt
  • Semi-Plattformunabhängigkeit, Umwandlungsmaßnahmen können je nach Plattform gewaltigen Overhead erzeugen
  • Im Gegensatz zu WebGL hat sich Unity im App-Store mit unzähligen Spielen etabliert
  • Leistungsfähiger und reicher an Features
  • Plugin bietet Unity eine abgeschlossene Umgebung und stellt damit besser sicher, dass alle Produkte auf allen Plattformen gleich laufen

Kritik an obigen Punkten gerne gesehen.

unity3d WebGL
1 Antwort
Als Spieleentwickler kaum Chancen?

Hallöchen :) Bin 20 Jahre alt und mit meinem Abitur(Mit Schwerpunkt auf Elektrotechnik, volles Abi) bald fertig und stehe vor einem Problem.

Ich bin schon seit Jahren begeistert für die Spieleentwicklung und habe sau viel Erfahrung gesammelt in zB C#, Unity3D, gml und diverse andere programmiersprachen (zB auch html), da ich sehr oft und lange in meiner Freizeit programmiert habe, was mir auch recht viel Spaß macht, habe hier und da auch mal an kleineren Projekten mitgemacht.

Bald muss ich allerdings wissen, ob ich als Spieleentwickler in irgendeinem Unterbereich eine Ausbildung anfange, oder doch eher in Richtung Elektrotechnik, Ingenieurswesen oder Informatik eingehe. Das sind Themengebiete wo ich die Möglichkeiten dazu habe dort reinzusteigen und letzendlich hat man dort ziemlich gute Aussichten auf die Zukunft durch die wichtige Rolle der Technik.

Nur leider begeistert mich am meisten einfach das Programmieren, gerade was Spiele angeht. Mir ist bewusst wie die Anforderungen sind, habe jedoch auch ein sehr gutes Händchen dafür und bin schon sau weit was die eine oder andere Programmiersprache angeht.

Die Zwickmühle für mich entsteht durch die eher schlechteren Erfolgschancen als SE in Europa, oder auch gerade in Deutschald, was auf den Gehalt und die Arbeitsplätze bezogen ist was das Arbeiten in Studios/Unternehmen angeht die in Deutschland/EU sitzen. Natürlich kann man versuchen sein Geld als Indie-Entwickler zu verdienen, nur das scheint eine noch schlechtere Wahl zu sein und lohnt sich wohl eher als Nebenbeschäftigung. Ganz anders sieht es zB in den USA oder anderen Orten aus, wo man mit genug Wissen/Können bei den dort vorhandenen größeren Firmen letzendlich auch mehr erreichen kann.

Mir steht nur zur Wahl wendern in Deutschland als SE mein Glück zu versuchen, einen anderen Beruf anzusteuern oder echt auszuwandern.

Klar könnte man sagen, dass ich was das Programmieren angeht auch einfach Hobbymäßig erledigen kann, allerdings sehe ich dort aus persönlichen Gründen kaum Interesse.

Von daher frage ich nach, ob jemand mir sagen kann wie es vllt wirklich aussieht (zB durch Erfahrung), wenn man als SE/Indie in Deutschland/ausserhalb tätig ist, wie die Arbeit/Chancen aussehen oder welche Möglichkeiten mir da noch offen stehen würden, Danke :)

Beruf Ausbildung Programmierung auswandern Spieleentwicklung unity3d
6 Antworten
Wie erstelle ich für ein Unity-Projekt einen simplen "cool down" in C#, damit der Player nicht unendlich oft die "Fire1"-Taste drücken kann?

using UnityEngine; using System.Collections;

public class Playercontroller01 : MonoBehaviour {

//floats
public float maxSpeed = 3;
public float speed = 50f;
public float jumpPower = 150f;

//boolians
public bool grounded;
public bool canDoubleJump;

//Angriff
private bool attackieren = false;
public bool lookingRightplayer01;
public GameObject LaserPrefab;
public Transform SpawnPunkt;
public float Schussgeschw = 500;
public float attackierenTimer = 0;
private float attackierenCoolDown = 2f;

//Stats(Leben)
public int aktuellesLeben;
public int maxLeben = 100;

//Referenzen
private Rigidbody2D rb2d;
private Animator anim;


// Use this for initialization
void Start () 
{
    rb2d = gameObject.GetComponent<Rigidbody2D> (); //Skript verbindet sich mit Rigitbody aus Unity
    anim = gameObject.GetComponent<Animator> (); // Skript verbindet sich mit dem Animator aus Unity

    aktuellesLeben = maxLeben;

}

// Update is called once per frame
void Update () 
{
    anim.SetBool("Grounded", grounded);
    anim.SetFloat ("Speed", Mathf.Abs (rb2d.velocity.x));


    if (Input.GetAxis ("Horizontal") < -0.1f && !lookingRightplayer01) 
    {
        Flip ();

    }
    if (Input.GetAxis ("Horizontal") > 0.1f && lookingRightplayer01) 
    {
        Flip ();
    }

    if (Input.GetButtonDown ("Fire1") && !attackieren && Time.time > attackierenCoolDown) 
    {
        attackierenTimer = Time.time + attackierenCoolDown;
        attackieren = true;

        if(attackieren)
        {

            anim.SetTrigger("isAttackinga");

            GameObject Schuss01 = (GameObject) Instantiate (LaserPrefab, SpawnPunkt.position, Quaternion.identity);

            if(lookingRightplayer01)
            {
                Schuss01.GetComponent<Rigidbody2D >().AddForce (Vector3.left * Schussgeschw);
            }
            else
            {
                Schuss01.GetComponent<Rigidbody2D >().AddForce (Vector3.right * Schussgeschw);
            }
        
        }
        attackieren = false;

    }

    if (Input.GetButtonDown ("Jump")) //Sprung und Doppelsprung
    {
        if(grounded) //Wenn der Player grounded ist, sind beide Sprungarten möglich
        {
            rb2d.AddForce(Vector2.up * jumpPower);
            canDoubleJump = true;
        }
        else //also, wenn der Player in der Luft ist(!grounded)
        {
            if(canDoubleJump)
            {
                canDoubleJump = false;
                rb2d.velocity = new Vector2(rb2d.velocity.x,0); //Links/Rechts ist unbeinflusst und ein weiterer Sprung nicht möglich
                rb2d.AddForce(Vector2.up * jumpPower / 1.75f); //Die nächste Kraft(Add.Force) macht den Doppelsprung und /1.75 mach ihn weniger stark als den 1sten!
            }
        }
    }

    if (aktuellesLeben > maxLeben) 
    {
        aktuellesLeben = maxLeben;
    }
    if (aktuellesLeben <= 0) 
    {
        Tod();
    }


}

void FixedUpdate()
{
    Vector3 beruhigenVelocity = rb2d.velocity;
    beruhigenVelocity.y = rb2d.velocity.y; // y, also Höhe(Sprung) soll nicht beeinflusst werden
    beruhigenVelocity.z = 0.0f; // z = 0, weil das Spiel 2D ist(keine z Richtung)
    beruhigenVelocity.x *= 0.75f; // x-Richtung(Links, Rechts) * 0.75f wird sie Geschw. redu
Computer Computerspiele Software programmieren Java MacBook Code CSharp unity3d
1 Antwort
Unity3D - Spieler bewegt sich plötzlich nicht mehr

Hallo liebe Community,

Ich habe in meinem kleinen Spiel in Unity3D letztens Animationen zum Schießen und Nachladen hinzugefügt. Als ich das Spiel dann getestet habe, hat alles gut funktioniert. Als ich das Projekt allerdings heute wieder geöffnet habe und es nochmal getestet habe, konnte ich meinen Spieler plötzlich nicht mehr bewegen. Ich kann noch schießen und nachladen, allerdings werden die Animationen auch nicht mehr ausgeführt. Springen kann ich auch nicht mehr... Außer meinem Mouselook- und PlayerMovementskript beeinflusst ja auch nichts den Spieler. Wenn es hilft, schreibe ich sie in diese Frage, obwohl sie bei einem neuen Projekt genau so, wie auch in diesem sind...

PlayerMovement

var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;
var cameraObject : GameObject;

private var moveDirection : Vector3 = Vector3.zero;
function Update() {
    var controller : CharacterController = GetComponent(CharacterController);
    if (controller.isGrounded)
    {
        moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;
    
        transform.rotation = Quaternion.Euler(0, cameraObject.GetComponent(Mouselook).yRotation, 0);
    
    if (Input.GetButton ("Jump"))
    {
        moveDirection.y = jumpSpeed;
    }
}
moveDirection.y -= gravity * Time.deltaTime;

controller.Move(moveDirection * Time.deltaTime);
}

Mouselook

var yRotation : float;
var xRotation : float;
var yRotationV : float;
var xRotationV : float;
var lookSensitivity : float = 5;

function Start () {
    Screen.lockCursor = true;
}

function Update () {
yRotation += Input.GetAxis("Mouse X") * lookSensitivity;
xRotation -= Input.GetAxis("Mouse Y") * lookSensitivity;

xRotation = Mathf.Clamp(xRotation, -90, 90);

transform.rotation = Quaternion.Euler(xRotation, yRotation, 0);
}
Spiele unity3d
1 Antwort

Meistgelesene Fragen zum Thema Unity3d

Unity3D Dateien öffnen und bearbeiten

2 Antworten

welche programmierersprache brauche ich für unity3d?

2 Antworten

Unity3D Entfernung zwischen zwei Objekten messen?

3 Antworten

Wo kann ich Objekte für unity3d Downloaden?

3 Antworten

Unity 3d spielfigur soll dem mauszeiger folgen?

1 Antwort

Wie kann man in Unity3D ein Objekt bewegen, mit Berücksichtigung der Rotation?

1 Antwort

Wie kann ich Blender files in unity importieren?

1 Antwort

Unity3d Treppensteigen

4 Antworten

Unity3D Drehpunkt einer Tür verschieben?

1 Antwort

Unity3d - Neue und gute Antworten