Jump to content
Unity Insider Forum

AgentCodeMonk

Members
  • Gesamte Inhalte

    1.106
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    63

Alle erstellten Inhalte von AgentCodeMonk

  1. Ist zwar mit Kanonen auf Spatzen, aber anderseits... man KÖNNTE das ganze direkt auf einen eigenen Logger umbauen. Ähnlich dem hier: https://www.assetstore.unity3d.com/en/#!/content/3496 beim loggen des Scripts + Zeile hilft dir dann die StackFrame Klasse aus dem System.Diagnostics namespace [CODE] StackFrame stackFrame = new StackFrame(1, true); string fileName = stackFrame.GetFileName(); string method = stackFrame.GetMethod().ToString(); int line = stackFrame.GetFileLineNumber(); Debug.Log(fileName + " : " + line + " : " + method); [/CODE] Einfach in die aufgerufene CustomLogger Methode packen und was auch immer damit tun.
  2. Etwas konstruktive Kritik: 1. Die Collision des Speeres könnte etwas großzügiger sein. 2. Zusätzlich könnte man eine Zielscheibe auf die Brust der Barbaren machen, die mit zunehmender Zeit kleiner wird...oder sowas ähnliches - das wäre eine Möglichkeit den Schwierigkeits grad ebenfalls zu erhöhen, ohne nur auf Masse der Babaren zu setzen. 3. Die Barbarenwelle sollte definitiv zu Beginn geringer sein. Dann hat man etwas mehr Zeit um in die Steuerung reinzukommen (Ja, auch wenn diese relativ einfach ist, muss man doch erst das Gefühl entwickeln). Nach gefühlten 10 Sekunden sterben motiviert nicht so richtig, das ist dann etwas ZUUU schwer 4. Ein Special wäre nicht schlecht -> hast du x Barbaren gestoppt, kann man eine Speersalve oä. abfeuern, das ist cool wenn es brenzlig wird. -> das "Puh, gerade noch so geschafft!"-Gefühl wecken, Belohnung für´s Gehirn Es wäre gut, wenn x dann nicht zu niedrig ist, um so ein klein wenig taktiktische Elemente in das Spiel zu bekommen. Andere Möglichkeiten wie Powerups wäre auch interessant... Unverwundbarkeit und Erhöhen der Spielgeschwindigkeit, um mehr Barbaren zu killen, wäre auch noch was... ist alles relativ klassisch, eignet sich aber alles sicher gut um mehr aus dem Spiel zu machen Denke daran: "easy to learn, hard to master" - eine goldene Regel, die man beachten sollte und der diese Vorschläge mehr oder weniger folgen. Da kann man gut bei alten Super Mario- oder Sonic -Titeln lernen
  3. ...wird bald mal zeit für eine projektvorstellung und einen dev blog. wir konzepten, modeln, texturieren und coden da seit einigen monaten heftig vor uns hin ...und langsam könnte man die ersten sachen zeigen...hmmm

    1. Vorherige Kommentare anzeigen  %s mehr
    2. malzbie

      malzbie

      Wer ist denn "wir" ?

      Plural Majestatis? ^^

    3. AgentCodeMonk

      AgentCodeMonk

      @schoen08

      jupp^^

      ist viel passiert in der letzten zeit :)

       

      das "wir" ist ein 2er team ;) ...aber an den plural majestatis könnte wir uns gewöhnen ;)

    4. Ingo

      Ingo

      loooos :D Wills sehen! Wann stellt ihr es vor?

  4. ...hmpf...das ist dann der moment, bei dem ich denke: "schick! ...oh, gekaufte assets...hmmmmmpf" ...damit werde ich einfach nie warm werden, wenn es um gekauftes design geht. lieber schlecht selber gemacht... dafür eigenes zeug am start.
  5. Ich finde die Idee und die Motivation zum Projekt auch gut und unterstützenswert. Wobei mir aber eine Frage durch den Kopf geht... 1. wenn die fallenden Objekte die Ängste darstellen... 2. und das weiße Quadrat der Spieler ist... 3. und es normalerweise von Level zu Level schwieriger wird... muss man dann immer mehr Ängsten ausweichen? Führt das nicht zu der Assoziation, dass die Ängste/Probleme immer größer werden, obwohl man doch das Gegenteil erreichen will? Das scheint mir noch ein Logikproblem zu sein oder aber ich mißverstehe deinen Ansatz. Wie auch immer, fühl dich frei Fragen zu stellen, dafür ist das Forum da - auch wenn viele Fragen schon mehrmals beantwortet wurden Ein paar kleine Tipps direkt am Anfang, den das bleibt oft auf der Strecke, wenn Leute einfach so drauf los coden wollen und erst anfangen. Alles basierend auf: "lernen durch Schmerz" 1. nutze C# denn: UniScript = pfui bäh^10 (gut, das ist eher persönlicher Geschmack...die meisten Coder nutzen allerdings mittlerweile C#) 2. setze dich unbedingt mit den "Basistypen" auseinander (was ist ein float, ein int..ein string, ein uint oder long etc pp) und wie sie verwendet werden. 3. trenne Logik (Also Scripte, die irgendwas be- oder verrechnen etc pp) von Interface-Scripten (die etwas anzeigen) 4. schaue dir Schleifen an: for, foreach, while - wobei letztere mit Vorischt zu genießen ist, wenn man noch nicht weiß wie man sie verwendet. 5. nutze enums, wann immer du kannst 6. nutze switch case wann immer du kannst 7. schaue dir an, wie man Methoden überladen kann und mit ihnen Werte "return-en" kann 8. nutze Prefabs - immer 9. sei konsequent und benenne Variablen vernünftig(am besten englisch - dann können Menschen aus aller Welt dir besser helfen, wenn du deinen Code irgendwo postest, weil sie eher verstehen was du erreichen willst) - Abkürzungen sind für Leute, die gerne aufs Gesicht fallen und gerne dreimal lesen. 10. sei noch konsequenter und kommentiere ausführlich, denn Variablen einen tollen Namen zu geben reicht manchmal nicht aus, auch wenn das Kommentieren extrem nervig ist. Mögliche Konsequenz: du weißt in 4 Wochen nicht mehr was Methode XY eigentlich macht. 11. schau dir an wie man Spiele, bzw. Software im Allgemeinen, versioniert und somit auch gleich Backups erzeugt. Glaube mir...nichts ist übler als Wochen und Monate an etwas gearbeitet zu haben und es durch einen Festplattencrash zu verlieren, weil man die paar Sekunden für die Backups nicht investiert hat. Das ist nicht nur übel, sondern (ab einem gewisse Level) ziemlich dämlich. ...to be continued
  6. Das ganze hat aber ein Problem, denn mal schnell von der Console zur entsprechenden Zeile im Script springen ist damit nicht möglich. Klar kann man Scripname und Zeile auslesen lassen... Ich habe dazu mal sowas gebastelt. [url="http://forum.unity-community.de/topic/8463-combatlog-ein-simpler-combatlogger/"]http://forum.unity-c...r-combatlogger/[/url] Hat das gleiche Problem. Lässt sich aber sich auch irgendwie lösen, wenn man sich damit beschäftigt. Allerdings lässt sich ein slcher Logger auch gleich super als Anlaufstelle nutzen, um Dinge wie GameAnalytics einzubinden.
  7. Für eine Aufnahmeprüfung eine solche Aufgabe?! Direkt mit Interaktion? Das ist hart... Ich meine, ich kenne ja deine Sachen, daher war klar, dass das klappen wird und du eh vorne dabei sein wirst! Mich hätten jetzt aber die anderen Projekte auch interessiert... im Vergleich. Die Prüfer müssen eindeutig gesehen haben, dass du definitiv auf einem Niveau unterwegs bist, auf dem du faktisch locker am Grundstudium (heißt ja heute wohl ncht mehr so) vorbeiziehen kannst. So genug des Lobes... nicht, dass du dich auf den Lorbeeren ausrust!
  8. was ich bestätigen kann. deshalb muss man es trotzdem nicht lassen man kann eben wie immer klein anfangen. die systeme zum laufen bringen (und das kann eben dauern;) ). wenn alles klappt, dann kommt der nächste harte part: content generieren. das kilngt zwar gut, wenn man sagen kann: jetzt muss man nur noch hochskalieren... aber das muss alles erstmal gemacht werden. man muss sich nur mal die items, nur die waffen, in rpgs ansehen. und da nehme man sich gleich das beispiel WoW. wer kann, solle sich mal mit dem modelviewer anschauen, wieviele waffen (neben vielen anderen rüstungsteilen..helme, schilde, gürtel...) es dort gibt. interessant ist dabei die entwicklung dieser dinge, die einsetzte. ja, ich bin ehemaliger wow-spieler ...irgendwann kamen die beschwerden auf, dass verschiedene klassen ähnlich aussahen. nämlich die, die sich eine rüstungsklasse teilten. nun, warum ist das so? iteration, wiederverwendung! man nehme dieses spiel und schaue sich die klassen an. es müssten 11 sein, denke ich. fast jede klasse kann verschiedene waffen klassen nutzen (zweihänder(axt, schwert, stange), einhänder(dolch, schwert, zauberstab)...) für jede charakterstufe müssen für jede klasse verschiedene items angeboten werden. das heißt: geometrie erstellt, stats hinzugefügt und balanciert werden... da kommt schnell was zusammen. und das nur bei den waffen... wer langeweile hat, kann das mal ausrechnen. und dann hochrechnen, wieviel zeit man pro mesh und textur benötigt. ...nochmal: und das nur bei den waffen... jetzt muss ich allerdings zynisch werden: schön sind dann die scriptkids, die nach mitstreitern für ein mmo suchen und null plan haben. ...schön sind auch die, die sagen: ja, das ist von einem durchaus schaffbar... das sind wahrscheinlich 0,000x % der entwickler, die in der lage sind sowas auch nur halbwegs stabil zum laufen zu bringen. dann bleibt die frage nach der qualität des spiels... etc pp wenn man unbedingt ein rpg machen will, dann vielleicht erstmal ein spiel, dass ganz oldschool und zelda-esk (mein favorit: zalda links awakening aufm game boy - kennen hier wohl nicht mehr soviele ) daherkommt. 3-4 waffen... wenig stats... stats management... da bin ich schon beim nächsten thema... oder AI... es gibt dort sooooviele baustellen, selbst mit 3rd p tools für AI und co bleibt das ganze noch ein dicker brocken. also immer den ball flach halten... klein anfangen und nicht das next gen mmorpg planen. es gibt auch einfache rpgs, die spass machen können, wenn die story (ja, genau! STORY!!! nicht grafik!) spannend ist. ....wo wir beim nächsten thema sind... story... also... ach, ich höre jetzt besser auf
  9. Oh... war hier eine Weile inaktiv und habe die Machergreifung Romans nicht mitbekommen Es gibt jetzt einen Stammtisch? Die gc Idee finde ich übrigens gut! Werde aber keine Zeit haben.
    1. Neoxit

      Neoxit

      Bei einigen punkten musste ich schmunzeln da das irgendwo eigentlich zum "normalen" coding verhalten gehört. Einige punkte waren allerdings interessant. :)

  10. Der Umstieg von einem alten Graphire auf ein Intuos ist echt abgefahren... auch wenn es nicht die neuste Generation von Wacom ist. Das "alte" Intuos 3 A5 wide ist echt ein tiptop Teil. ...bevor jemand ein "besseres" Bamboo oder so kauft, sollte man lieber nach einem gebrauchten Intuos gucken ;) Die sind günstiger, haben mehr Funktionlität und halten ewig. ;)

    1. Vorherige Kommentare anzeigen  %s mehr
    2. AgentCodeMonk

      AgentCodeMonk

      @ light

      touchh gedöns hat da sintuos 3 ja auch, nur ohne den ring, dafür 2 touch strips...und das a5 wide ist echt riesig...da fehlen nach unten vlt 3 cm, dann wäre es schon a4 :D

       

    3. .x-tra

      .x-tra

      ebay kleinanzeigen...hier in einer kleinstadt...grins...aber ich schau mal.vllt. gibts ja was in der näheren umgebung.

      oder will einer hier seins günstig verkaufen?das schreit förmlich nach einer börse

    4. Sleepy
  11. Ich weiß nicht wer sowas aus welchen Gründen behauptet... sicher Internettrolle, die sich in ihrer unendlichen Weisheit wichtig und groß machen müssen. Man sollte eben nicht alles glauben, was solche Deppen im Netz so von sich geben. Jedes Tool hat seine Tücken und einarbeiten muss man sich nunmal. Zeig mir ein komplexes Tool, bei dem alles immer von Anfang an klappt... Was soll man sagen: andere Tutorials angucken und lernen... oder zurück zu den anderen Engines.
  12. Ist jemand an einer Roccat Lua interresiert? Ist erst 4 Tage in Benutzung, also nagelneu mit Rechung. das ist ne schöne Maus, hab aber ne andere Maus, die mir besser in der Hand liegt.

  13. using System; using System.Collections.Generic; using UnityEngine; using Object = UnityEngine.Object; public class MetricsManager { private static MetricsManager _instance; private GameMetrics _gameMetrics; public static MetricsManager Instance { get { if (_instance != null) return _instance; _instance = new MetricsManager(); return _instance; } } public Dictionary<string, float> Metrics = new Dictionary<string, float>(); public void Reset() { Metrics.Clear(); } public void SetToHighest(string name, float amount) { float value; if (Metrics.TryGetValue(name, out value)) { if (amount > Metrics[name]) Metrics[name] = amount; return; } Metrics.Add(name, amount); } public void Set(string name, float amount) { float value; if (Metrics.TryGetValue(name, out value)) { Metrics[name] = amount; return; } Metrics.Add(name, amount); } public void Add(string name, float amount) { float value; if (Metrics.TryGetValue(name, out value)) { Metrics[name] += amount; return; } Metrics.Add(name, amount); } public string GetPlayedTime() { float value; if (Metrics.TryGetValue("Playtime", out value)) { var t = TimeSpan.FromSeconds(Metrics["Playtime"]); //string timerFormatted = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", t.Hours, t.Minutes, t.Seconds, t.Milliseconds); return string.Format("{0:D2}h:{1:D2}m:{2:D2}s", t.Hours, t.Minutes, t.Seconds); } Metrics.Add("Playtime", 0); return "0"; } } Test UI: void OnGUI() { GUILayout.BeginArea(StatsRect); GUILayout.Box("", GUILayout.Width(200), GUILayout.Height(180)); GUILayout.EndArea(); GUILayout.BeginArea(StatsRect); GUILayout.BeginVertical(); GUILayout.Label("GameMetrics", GUILayout.Width(500)); GUILayout.Space(-10); GUILayout.Label("Playtime " + MetricsManager.Instance.GetPlayedTime(), GUILayout.Width(500)); foreach (var stat in MetricsManager.Instance.Metrics) { if (stat.Key == "Playtime") continue; GUILayout.Space(-10); GUILayout.Label(stat.Key + " " + stat.Value, GUILayout.Width(500)); } GUILayout.EndVertical(); GUILayout.EndArea(); } Verwendung: void Start() { MetricsManager.Instance.Set("Playtime", PlayerPrefs.GetFloat("Playtime")); } void Update() { MetricsManager.Instance.Add("Playtime", Time.deltaTime); } public void ApplyDamage(Character attacker, Character defender, float damage) { // ... if (attacker.IsPlayer) { MetricsManager.Instance.SetToHighest("Highest Damage Dealt", damage); } if (defender.IsPlayer) { MetricsManager.Instance.SetToHighest("Highest Damage Taken", damage); } } void KillPlayer() { MetricsManager.Instance.Add("Deaths", 1); } void BuyItem(Item item, int itemCount) { MetricsManager.Instance.Add("Items Bought", itemCount); } etc...
  14. Der letzte Satz war ein Überbleibsel^^ Sry - ist editiert
  15. Aufgabenstellungen halte ich nicht für gut. Wenn deine Zuschauer etwas nicht hinbekommen fragen sie dich... wenn das 3 sind mag das gehen, wenn es 30 sind, wirds nervig... außerdem verbrätst du Zeit und verscheuchst eventuell die, die es nicht hinbekommen und gefrustet was anderes suchen. Ich empfinde es nicht als gut Anfängern gleich Aufgaben zu geben, sondern erstmal wirklich alles detailiert erklären. Vorallem ist der Effekt nicht der Beste den Lernenden mit etwas stehen zu lassen, was er vlt nicht bewältigen kann oder nach deiner Auflösung erkennt, dass die Arbeit umsonst war, weil er/sie alles korrigieren muss, aber vlt mit dem Code schon irgendwo anderes herumexperiementiert. Das machen faule Dozenten gerne und wundern sich warum Leute nicht mitkommen oder gefrustet aus dem Kurs gehen. Ich habe Unity auch besser im Selbststudium erlernt als in meinen Kursen... allerdings habe ich auch während meiner Tutortätigkeit gemerkt, dass es auch nicht einfach ist einen ganzen Kurs am gleichen Punkt zu haben. Eine gute und effektive Lernstrategie ist immernoch das Kopieren/Nachahmen von Dingen/Abläufen/Irgendwas... das funktioniert nicht nur bei uns Menschen, sondern auch im Tierreich Und immer die best practise kurz, auf den Punkt und richtig erklärt! Nun mag jemand sagen: abschreiben? Davon lernt man doch nicht! ---> Falsch! Grundlagen sind gut! Da gibt es zwar schon einige ganz brauchbare Dinge... ich erinnere mich an eine Tutorialreihe in Java (nein nicht JavaScript.... Java wegen der engen Verwandtschaft zu C#) in der zB. Programming Pattern erklärt wurden. Die war gut und auf den Punkt. ABER es gibt sie nunmal schon... wozu die Redundanz?! Vorallem: bau das Projekt, bzw die Aufgaben erstmal wasserdicht zusammen. Ich weiß noch, als ich selber angefangen habe... es hat genervt, wenn dann von einem zum nächsten Teil des Tutorials irgendwas verändert wurde, weil der Tutorial-Ersteller selber gemerkt hat, dass da irgendwas Mist war... aber für einen selbst war das dann nicht nachvollziehbar was geändert wurde, weil das Tutorial einfach mit dem veränderten Code weiterlief... Dann wäre da noch der Fakt, dass es schlechte Anfängertutorials wie Sand am Meer gibt... da wird es auch mit Anspruch nicht einfach sich von der Masse abzuheben. Ich würde es an deiner Stelle nicht machen und die Zeit lieber nutzen um selber fitter zu werden und dann später sowas anzuigehen und dabei genau zu wissen was man da macht. Mit Konzept im Vorfeld um genau die ganzen Fehler der 0-8-15 Tutorials zu vermeiden. Dazu kommt dann die Aufmachung... was billig aussieht... du weißt schon... das Auge isst mit Schlließlich vermittelst du zum größten Teil visuell. Wenn du es angehen willst, nimm dir Zeit für ein vernünftiges Konzept. Plane alles durch. Erkläre am Anfang das Ziel und zeige das fertige Beispiel. Sage was benötigt wird und welche Schritte der Lernenden durchlaufen wird. Halte die Einheiten kurz - max. 15 Minuten eher weniger, wenn möglich. Beende die Tutorials immer mit etwas Funktionierendem, quasi pro Einheit ein neues Feature.
  16. ...ich verstehe nicht, warum Unity diesen Quark macht anstatt einfach nur FBX zu unterstützen, damit können eh so gut wie alle relevanten Programme umgehen... und intern wird es eh zu FBX konvertiert ...aber was soll´s - das wäre jetzt ne Endlosdiskussion und Einfluss hat dat nur Unity selber darauf... Um deine Frage zu beantworten: kann ich spontan nicht sagen, könnte aber sein, habe ich nicht probiert. Bei mir kommt Geometrie nur als FBX ins Projekt. Eiserne Regel -> keine Probleme.
  17. Im Forum gibt es ein Tutorial, dass ich dringend überarbeiten müsste Wer suchet, der findet, sag ich mal.
×
×
  • Neu erstellen...