[Thema] MMORPG in Arbeit!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Favourstyle, 9. Mai 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Mai 2008
    AW: MMORPG in Arbeit!

    Hey!

    Du hast offensichtlich ueberhaupt keinen Plan

    1. Ist es bestimmt nicht 'simpel', Unterstuetzung fuer einen XBox360-Controller einzubauen. Ich bezweifle zwar nicht, dass ihr euch das im Laufe eines Monats oder mehreren irgendwie zusammenfrickeln oder -fragen koennt, aber 'verstehen' oder 'machen' werdet ihr das nicht koennen.
    2. Ist das Spiel auf die Xbox zu portieren das ALLERLETZTE, an was ich denken wuerde wuerde ich so ein Spiel versuchen zu programmieren. Das ist absolut sekundaer.
    3. Loest das nicht das Problem, dass irgendwer das einfach PROGRAMMIEREN muss. Es handelt sich nicht um Code a la 'Laufe_Dahin(1, 1, 0);'. Hier mal ein Stueckchen Code aus einem Hello-World-Programm von 'CrystalSpace3D':

    simple.h
    Code:
    #ifndef __SIMPLE_H__
    #define __SIMPLE_H__
    
    #include <crystalspace.h>
    
    class Simple : public csApplicationFramework, public csBaseEventHandler
    {
    private:
     csRef<iEngine> engine;
     csRef<iLoader> loader;
     csRef<iGraphics3D> g3d;
     csRef<iKeyboardDriver> kbd;
     csRef<iVirtualClock> vc;
    
     void ProcessFrame ();
     void FinishFrame ();
    
    public:
     Simple ();
     ~Simple ();
    
     void OnExit ();
     bool OnInitialize (int argc, char* argv[]);
    
     bool Application ();
    
     CS_EVENTHANDLER_NAMES("application.simple1")
     CS_EVENTHANDLER_NIL_CONSTRAINTS
    };
    
    #endif // __SIMPLE1_H__
    simple.cpp
    Code:
    #include "simple.h"
    
    CS_IMPLEMENT_APPLICATION
    
    Simple::Simple ()
    {
     SetApplicationName ("CrystalSpace.Simple1");
    }
    
    Simple::~Simple ()
    {
    }
    
    void Simple::ProcessFrame ()
    {
    }
    
    void Simple::FinishFrame ()
    {
    }
    
    bool Simple::OnInitialize(int argc, char* argv[])
    {
     if (!csInitializer::RequestPlugins(GetObjectRegistry(),
     CS_REQUEST_VFS,
     CS_REQUEST_OPENGL3D,
     CS_REQUEST_ENGINE,
     CS_REQUEST_FONTSERVER,
     CS_REQUEST_IMAGELOADER,
     CS_REQUEST_LEVELLOADER,
     CS_REQUEST_REPORTER,
     CS_REQUEST_REPORTERLISTENER,
     CS_REQUEST_END))
     return ReportError("Failed to initialize plugins!");
    
     csBaseEventHandler::Initialize(GetObjectRegistry());
     if (!RegisterQueue(GetObjectRegistry(), csevAllEvents(GetObjectRegistry())))
     return ReportError("Failed to set up event handler!");
    
     return true;
    }
    
    void Simple::OnExit()
    {
    }
    
    bool Simple::Application()
    {
     if (!OpenApplication(GetObjectRegistry()))
     return ReportError("Error opening system!");
    
     g3d = csQueryRegistry<iGraphics3D> (GetObjectRegistry());
     if (!g3d) return ReportError("Failed to locate 3D renderer!");
    
     engine = csQueryRegistry<iEngine> (GetObjectRegistry());
     if (!engine) return ReportError("Failed to locate 3D engine!");
    
     vc = csQueryRegistry<iVirtualClock> (GetObjectRegistry());
     if (!vc) return ReportError("Failed to locate Virtual Clock!");
    
     kbd = csQueryRegistry<iKeyboardDriver> (GetObjectRegistry());
     if (!kbd) return ReportError("Failed to locate Keyboard Driver!");
    
     loader = csQueryRegistry<iLoader> (GetObjectRegistry());
     if (!loader) return ReportError("Failed to locate Loader!");
    
     Run();
    
     return true;
    }
    
    /*---------------*
     * Main function
     *---------------*/
    int main (int argc, char* argv[])
    {
     return csApplicationRunner<Simple>::Run (argc, argv);
    }
    Hier etwas Code aus dem PlanetShift-Projekt:

    chatbubbles.h
    Code:
    /*
     * Author: Andrew Robberts
     *
     * Copyright (C) 2003 Atomic Blue (info@planeshift.it, http://www.atomicblue.org)
     *
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * as published by the Free Software Foundation (version 2 of the License)
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     * GNU General Public License for more details.
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     *
     */
    
    #ifndef CHAT_BUBBLES_HEADER
    #define CHAT_BUBBLES_HEADER
    //=============================================================================
    // Crystal Space Includes
    //=============================================================================
    #include <cstypes.h>
    #include <csutil/ref.h>
    #include <csutil/array.h>
    
    //=============================================================================
    // Project Includes
    //=============================================================================
    #include "net/subscriber.h"
    
    #include "effects/pseffectobjtextable.h"
    
    //=============================================================================
    // Local Includes
    //=============================================================================
    #include "psengine.h"
    
    struct BubbleChatType
    {
     int chatType; // the chat type this settings will apply to
     psEffectTextRow textSettings; // the settings
     char effectPrefix[64]; // the prefix of the effect name to apply, effects of name <prefix>longphrase, <prefix>normal, and <prefix>shortphrase should exist
    };
    
    
    class psChatBubbles : public iNetSubscriber
    {
    private:
     psEngine * psengine;
     MsgHandler * msgHandler;
    
     csArray<BubbleChatType> chatTypes;
    
     size_t bubbleMaxLineLen; // maximum number of characters per line
     size_t bubbleShortPhraseCharCount; // messages with fewer than this many characters get small bubble
     size_t bubbleLongPhraseLineCount; // messages with more than this many lines get large bubble
    
    public:
     psChatBubbles();
     virtual ~psChatBubbles();
    
     bool Initialize(psEngine * engine);
    
     /** Load the chat bubble config file.
     * @param filename The name of the file to load.
     * @param saveUserData This is used to save the file loaded in the /userdata/ folder.
     * This is normally done when the userdata config file has not 
     * been created yet.
     *
     * @return true if the file loaded correctly. false if the file was not found or could 
     * not be loaded.
     */
     bool Load(const char * filename, bool saveUserData = false);
    
     // implemented iNetSubscriber messages
     virtual bool Verify(MsgEntry * msg, unsigned int flags, Client *& client);
     virtual void HandleMessage(MsgEntry * msg, Client * client);
     
    };
    
    #endif // CHAT_BUBBLES_HEADER
    chatbubbles.c
    Code:
    /*
    * Author: Andrew Robberts
    *
    * Copyright (C) 2003 Atomic Blue (info@planeshift.it, http://www.atomicblue.org)
    *
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation (version 2 of the License)
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    *
    */
    #include <psconfig.h>
    //=============================================================================
    // Crystal Space Includes
    //=============================================================================
    #include <iengine/movable.h>
    #include <iengine/mesh.h>
    #include <imesh/objmodel.h>
    #include <imesh/object.h>
    #include <ivideo/graph2d.h>
    
    //=============================================================================
    // Project Includes
    //=============================================================================
    #include "gui/chatwindow.h"
    
    #include "effects/pseffectmanager.h"
    #include "effects/pseffect.h"
    
    //=============================================================================
    // Local Includes
    //=============================================================================
    #include "chatbubbles.h"
    #include "pscelclient.h"
    
    
    
    //#define DISABLE_CHAT_BUBBLES
    
    // Used to set default config files if the userdata ones are not found.
    #define SAVE_USER true
    #define DEFAULT_FILE "/planeshift/data/options/chatbubbles.xml"
    #define USER_FILE "/planeshift/userdata/options/chatbubbles.xml"
    
    psChatBubbles::psChatBubbles()
     : psengine(0), msgHandler(0)
    {
    }
    
    psChatBubbles::~psChatBubbles()
    {
     if (msgHandler)
     msgHandler->Unsubscribe(this, MSGTYPE_CHAT);
    }
    
    bool psChatBubbles::Initialize(psEngine * psengine)
    {
     this->psengine = psengine;
     msgHandler = psengine->GetMsgHandler();
    
     msgHandler->Subscribe(this, MSGTYPE_CHAT);
     bool result = Load(USER_FILE);
     if ( result == false )
     {
     result = Load(DEFAULT_FILE, SAVE_USER); 
     }
     
     return true;
    }
    
    bool psChatBubbles::Load(const char * filename, bool saveAgain)
    {
     csRef<iDocument> doc;
     csRef<iDocumentNode> root;
     csRef<iVFS> vfs;
     csRef<iDocumentSystem> xml;
     const char* error;
    
     chatTypes.DeleteAll();
    
     vfs = psengine->GetVFS();
     assert(vfs);
     csRef<iDataBuffer> buff = vfs->ReadFile(filename);
     
     if (buff == NULL)
     {
     Error2("Could not find file: %s", filename);
     return false;
     }
     
     if ( saveAgain )
     {
     vfs->WriteFile(USER_FILE, buff->GetData(), buff->GetSize());
     }
     
     xml = psengine->GetXMLParser ();
     doc = xml->CreateDocument();
     assert(doc);
     error = doc->Parse( buff );
     if ( error )
     {
     Error3("Parse error in %s: %s", filename, error);
     return false;
     }
     if (doc == NULL)
     return false;
    
     root = doc->GetRoot();
     if (root == NULL)
     {
     Error2("No root in XML %s", filename);
     return false;
     }
    
     csRef<iDocumentNode> chatBubblesNode = root->GetNode("chat_bubbles");
     if (!chatBubblesNode)
     {
     Error2("No chat_bubbles node in %s", filename);
     return false;
     }
    
     bubbleMaxLineLen = chatBubblesNode->GetAttributeValueAsInt("maxLineLen");
     bubbleShortPhraseCharCount = chatBubblesNode->GetAttributeValueAsInt("shortPhraseCharCount");
     bubbleLongPhraseLineCount = chatBubblesNode->GetAttributeValueAsInt("longPhraseLineCount");
    
     csRef<iDocumentNodeIterator> nodes = chatBubblesNode->GetNodes("chat");
     while (nodes->HasNext())
     {
     csRef<iDocumentNode> chatNode = nodes->Next();
    
     int r, g, b;
     BubbleChatType chat = { CHAT_SAY, {"", 0, false, 0, false, 0, ETA_LEFT}, "chatbubble_"};
    
     csString type = chatNode->GetAttributeValue("type");
     type.Downcase();
     if (type == "say")
     chat.chatType = CHAT_SAY;
     else if (type == "tell")
     chat.chatType = CHAT_TELL;
     else if (type == "group")
     chat.chatType = CHAT_GROUP;
     else if (type == "guild")
     chat.chatType = CHAT_GUILD;
     else if (type == "auction")
     chat.chatType = CHAT_AUCTION;
     else if (type == "shout")
     chat.chatType = CHAT_SHOUT;
     else if (type == "me")
     chat.chatType = CHAT_ME;
     else if (type == "tellself")
     chat.chatType = CHAT_TELLSELF;
     else if (type == "my")
     chat.chatType = CHAT_MY;
     else if (type == "npc")
     chat.chatType = CHAT_NPC;
     else if (type == "npc_me")
     chat.chatType = CHAT_NPC_ME;
     else if (type == "npc_my")
     chat.chatType = CHAT_NPC_MY;
     else if (type == "npc_narrate")
     chat.chatType = CHAT_NPC_NARRATE;
    
     // color
     r = chatNode->GetAttributeValueAsInt("colorR");
     g = chatNode->GetAttributeValueAsInt("colorG");
     b = chatNode->GetAttributeValueAsInt("colorB");
     chat.textSettings.colour = psengine->GetG2D()->FindRGB(r, g, b);
    
     // shadow
     chat.textSettings.hasShadow = (chatNode->GetAttribute("shadowR") != 0);
     r = chatNode->GetAttributeValueAsInt("shadowR");
     g = chatNode->GetAttributeValueAsInt("shadowG");
     b = chatNode->GetAttributeValueAsInt("shadowB");
     chat.textSettings.shadowColour = psengine->GetG2D()->FindRGB(r, g, b);
    
     // outline
     chat.textSettings.hasOutline = (chatNode->GetAttribute("outlineR") != 0);
     r = chatNode->GetAttributeValueAsInt("outlineR");
     g = chatNode->GetAttributeValueAsInt("outlineG");
     b = chatNode->GetAttributeValueAsInt("outlineB");
     chat.textSettings.outlineColour = psengine->GetG2D()->FindRGB(r, g, b);
    
     // align
     csString align = chatNode->GetAttributeValue("align");
     align.Downcase();
     if (align == "right")
     chat.textSettings.align = ETA_RIGHT;
     else if (align == "center")
     chat.textSettings.align = ETA_CENTER;
     else
     chat.textSettings.align = ETA_LEFT;
    
     // prefix
     strcpy(chat.effectPrefix, chatNode->GetAttributeValue("effectPrefix"));
    
     chatTypes.Push(chat);
     }
     return true;
    }
    
    bool psChatBubbles::Verify(MsgEntry * msg, unsigned int flags, Client *& client)
    {
     return true;
    }
    
    void psChatBubbles::HandleMessage(MsgEntry * msg, Client * client)
    {
    #ifdef DISABLE_CHAT_BUBBLES
     return;
    #endif
     
     size_t a;
     if (msg->GetType() != MSGTYPE_CHAT)
     return;
    
     psChatMessage chatMsg(msg);
     
     // Check to see if the person talking is on the ignore list. 
     pawsChatWindow* chatWindow = dynamic_cast<pawsChatWindow*>(PawsManager::GetSingleton().FindWidget("ChatWindow"));
     if (!chatWindow)
     {
     // Chat window isn't loaded yet, GUI is still loading
     return;
     }
     if (chatWindow->GetIgnoredList()->IsIgnored(chatMsg.sPerson) && chatMsg.iChatType != CHAT_TELLSELF && chatMsg.iChatType != CHAT_ADVISOR && chatMsg.iChatType != CHAT_ADVICE)
     {
     return;
     }
    
    
     // Get the first name of the person (needed for NPCs with both the first and the last name)
     csString firstName;
     if ((a = chatMsg.sPerson.FindFirst(' ')) != (size_t)-1)
     firstName = chatMsg.sPerson.Slice(0, a);
     else
     firstName = chatMsg.sPerson;
    
     GEMClientActor* actor = psengine->GetCelClient()->GetActorByName(firstName);
     if (!actor)
     return;
    
     // get the template for the chat type
     const BubbleChatType* type = 0;
     size_t len = chatTypes.GetSize();
     for (a=0; a<len; ++a)
     {
     if (chatMsg.iChatType == chatTypes[a].chatType)
     {
     type = &chatTypes[a];
     break;
     }
     }
     if (!type)
     return;
    
     static csArray<psEffectTextRow> rowBuffer;
     rowBuffer.Empty();
    
     
     // build the text rows
     const size_t textLen = chatMsg.sText.Length();
     const char * text = chatMsg.sText.GetData();
     psEffectTextRow chat = type->textSettings;
    
     // create a row character by character while calculating word wrap
     char line[256];
     int linePos = 0;
     int maxRowLen = 0;
     int lastSpace = 0;
     for (a=0; a<textLen; ++a)
     {
     if (text[a] == ' ' && linePos == 0)
     continue;
     
     if (text[a] == ' ')
     lastSpace = linePos;
    
     line[linePos] = text[a];
     ++linePos;
    
     if (linePos < (int)bubbleMaxLineLen)
     continue;
     
     if (lastSpace == 0)
     {
     line[linePos-1] = '-';
     --a;
     }
     else if (text[a] != ' ')
     {
     a -= linePos - lastSpace;
     linePos = lastSpace;
     }
    
     if (linePos > maxRowLen)
     maxRowLen = linePos;
    
     lastSpace = 0;
     line[linePos] = 0;
     linePos = 0;
     chat.text = line;
     rowBuffer.Push(chat);
     } 
     if (linePos > 0)
     {
     if (linePos > maxRowLen)
     maxRowLen = linePos;
    
     line[linePos] = 0;
     chat.text = line;
     rowBuffer.Push(chat);
     }
    
     // decide on good effect size
     csString effectName = type->effectPrefix;
     if (rowBuffer.GetSize() == 1 && maxRowLen <= (int)bubbleShortPhraseCharCount)
     effectName += "shortphrase";
     else if (rowBuffer.GetSize() > bubbleLongPhraseLineCount)
     effectName += "longphrase";
     else
     effectName += "normal";
    
     // create the effect
     psEffectManager * effectManager = psengine->GetEffectManager();
     iMeshWrapper * mesh = actor->Mesh();
     const csBox3& boundBox = mesh->GetMeshObject()->GetObjectModel()->GetObjectBoundingBox();
     unsigned int bubbleID = effectManager->RenderEffect("chatbubble", //effectName, 
     csVector3(0, boundBox.Max(1) + 0.5f, 0), mesh);
     
     // delete existing bubble if it exists
     psEffect * bubble = effectManager->FindEffect(actor->GetChatBubbleID());
     if (bubble)
     effectManager->DeleteEffect(actor->GetChatBubbleID());
     
     bubble = psengine->GetEffectManager()->FindEffect(bubbleID);
     if (!bubble)
     {
     Error2("Couldn't create effect '%s'", effectName.GetData());
     return;
     }
    
     actor->SetChatBubbleID(bubbleID);
    
     psEffectObjTextable * txt = bubble->GetMainTextObj();
     if (!txt)
     {
     Error2("Effect '%s' has no text object", effectName.GetData());
     return;
     }
     txt->SetText(rowBuffer);
    }
    Mfg,

    Kolazomai
     
  2. 25. Mai 2008
    AW: MMORPG in Arbeit!

    Ich habe nicht gesagt XBOX 360 Konsolen Unterstützung anzubieten, sondern die möglichkeit, das Spiel mit dem XBOX 360 Controler am PC zu spielen

    dass es nciht leicht wird, das ist mir durchaus bewusst, aber ich bin gewillt mir die Nächte um die Ohren zu schlagen und zu versuchen das zum laufen zu kriegen! (Aber erstmal wollen wir das Spiel fertig machen und dann den XBOX 360 Controler Support einbauen)
     
  3. 25. Mai 2008
    AW: MMORPG in Arbeit!

    komm schon, Kolazomai.... versuch nicht ihren Traum zu vernichten
    schauen wir erstmal nach, was dabei rauskommt... eventuell wirst du dann in 1-2 Monaten sehen, dass das Projekt tod ist, oder sie fleißig versuchen werden, alles mögliche zu richten...

    Wir werden sehen...
     
  4. 25. Mai 2008
    AW: MMORPG in Arbeit!

    Hey!

    Selbst ueber die Unterstuetzung fuer den XBox360 Controller nachzudenken ist schon mehr als nur verfrueht.

    Und selbst, wenn du dir 'die Naechte um die Ohren schlaegst'. Programmieren lernen ist ein Prozess, der einfach seine Zeit dauert, wie bei jeder anderen geistigen Aktivitaet auch. Ausserdem ist logisches Denken und Talent noetig.

    Naja, ich will hier auch nicht schwarzmalen, das lass ich gerne andere machen

    Ich bin gespannt, was daraus wird, und wuensch euch viel Erfolg.

    Mfg,

    Kolazomai
     
  5. 25. Mai 2008
    AW: MMORPG in Arbeit!

    eventuell
    vom Gamedesign her, werden wir vermutlich erst dann aufgeben, wenn wir 3 mal die Engine gewechselt haben, weil sie uns jedesmal einen Strich durch die Rechnung gemacht hat.

    @Kolazomai: Ich bin ja auch so gesehen kein Prgrammierneuling, PHP behersche ich ja, nur C++ ist halt neu
     
  6. 25. Mai 2008
    AW: MMORPG in Arbeit!

    Ich muss Hardwarehunger zustimmen ...
    Es ist nicht so leicht wie sich das immer alle vorstellen !!!
    Man braucht Zeit, Geld und einiges an Skills!
    Und ich kann mir nicht vorstellen das man als Schüler so viel Zeit abzwacken kann...

    Auch wenn man ne schon fertige engine verwendet...

    Aber ich wünsche euch viel Glück!!
     
  7. 25. Mai 2008
    AW: MMORPG in Arbeit!

    danke!

    aber wir sind ja nicht nur Schüler! Unsere Technikerin ist volljährig (und zz Arbeitslos => VIEL ZEIT) und wir als Schüler haben jetzt bald Sommerferien => Auch viel Zeit

    Also Zeit haben wir ATM én Masse
     
  8. 25. Mai 2008
    AW: MMORPG in Arbeit!

    was ihr braucht ist nicht nur zeit sondern auch gute programmierer und daran mangelt es im moment.

    und auch ein techniker der zur zeit arbeitslos ist zeugt nicht von qualität. wäre er super würden sich die firmen um ihn schlagen

    versteh mich jetzt nicht falsch aber man sollte er laufen lernen bevor man rennt, also fang mit 2d an.

    mfg
     
  9. 25. Mai 2008
    AW: MMORPG in Arbeit!

    Hört euch ja echt sehr motiviert an, bin echt mal gespannt auf erste Bilder oder Infos.
     
  10. 25. Mai 2008
    AW: MMORPG in Arbeit!

    Ich hab das Gefühl, ihr wollt mich alle nicht verstehen
    wenn wir die Engine wechseln, dann brauchen wir um das Spiel so zu releasen, wie wir uns das vorstellen, nicht umzuprogrammieren :]

    Wir müssen lediglich die Scriptsprache der Engine lernen, und die ist sehr einfach, so wie ich das bisher überblickt habe

    Also jetzt mla schluss mit Technikgelaber, kommen wir lieber zu schönen sachen wie dem Inhalt

    Danke Affje800
     
  11. 25. Mai 2008
    AW: MMORPG in Arbeit!

    deine technikerin hat also viel zeit, kann aber nichtmal englisch. zumindest liegt die vermutung dahe, da sie allein schon bei der beschaffung der engine gepfuscht hat.

    über die implementierung eines 360 controllers braucht ihr euch atm überhaupt garkeine sorgen machen - sowas kommt wenn überhaupt zum schluss und auch nur dann wenns rentabel ist. auch wenns freeware ist, das gesetzt der freien marktwirtschaft greift tortzdem. und nur so nebenbei erwähnt ist der 360 controller nen joystick und ist dementsprechend schon implementiert.

    um noch weiter zu greifen werdet ihr schon bei der organisation probleme haben. es gibt nichts schlimmeres als wenn sich softwareentwickler übers inet austauschen müssen. die erfahrung von engineprogrammierern zeigt, dass man sich gemeinsam in nen raum hockt und zu 80% über implementationen diskutiert - zu 10% programmiert und zu 10% was isst

    wies bei grafikern und leveldesignern aussieht kann ich dir nicht sagen, nur noch eins in die richtung: die können erst anfangen wenn die engine und die tools alle fest (also wirklich zu 100%) stehen. bis dahin sind die sommerferien rum.

    nebenbei noch ist cpp doch sehr anders als php, ok der syntax ähnelt sich ...

    und noch so nebenbei erwähnt: was kann eure technikerin eigentlich? das mit dem cpp haben wir ja schon geklärt, aber um eine engine umzuschreiben sind 5 leute nicht nur überdimensioniert sondern verlangsamen den prozess auch noch. ein guter wäre mindestens doppelt so schnell wie eure 5. um software umzuprogrammieren reicht im normalfall eine person, fast immer grundsatz - wie gesagt fast, gibt auch ausnahmen, ne engine (an sich) zählt weniger dazu, vor allem wenn sie schon fertig ist.

    in kleinen programmiererfirmen, die angepasste software herstellen geht meistens ein vertreter rum und fragt die kunden was se haben wollen "geht natürlich alles kein problem". die programmierer sehen das anders - hätt ich nicht zum ersten mal erlebt. bei euch ist das atm so ähnlich. ihr macht euch schon gedanken über die kleinsten details aber im grunde ist doch noch garnichts na, nichts absolut nichts, noch weniger als auf 0K abgekühltes vakuum.

    habt ihr euch schonmal die projekte angesehen, die mit dieser komischen engine geschrieben wurden? keines fertig, meistens eine insel oder sonstiger kram ... bezweifle zudem, dass die engine das leistet (bzw geleistet hätte) was sie sollte. stichwort netzwerk, datenbanken und cheats.

    so viel dazu, hoffentlich hatt man euch jetzt die augen geöffnet.

    macht das ganze in 2d mit nem wirklich erfahrenen mann und das bedeuted nicht paar monate php und html, nebenbei noch weng java in der schule, sondern jemand der in einer passenden sprache ausreichend (5 jahre hobby oder 2 jahre professionell) erfahrung hat, die auch in die richtung geht.
     
  12. 26. Mai 2008
    AW: MMORPG in Arbeit!

    ich schreibe seit einem jahr c++ und java. meiner meinung nach kannst du dein mmoprg wieder vergessen und beginne lieber c++ richtig zu lernen. wenn du dein erstes interface für einen taschenrechner hast kannst du mal an 2d denken, aber jetzt seit ihr noch mindestens 6jahre von einem 3d mmoprg entfernt.
     
  13. 26. Mai 2008
    AW: MMORPG in Arbeit!

    Hört sich super an. Kenne mich mit der Programmierung bzw. Umprogrammierung von Grafik Engines nicht as deshalb kann ich auf eure Kritiken nicht näher eingehen. Kann mir aber gut vorstellen, dass wenn dein Projekt scheitert, dass du eine Menge dazugelernt hast also ich würd mich von keinem abhalten lassen.

    lg
     
  14. 26. Mai 2008
    AW: MMORPG in Arbeit!

    Ich frage mich ernsthaft, was du unter "seit einem Jahr C++" meinst. Denn wenn man sich 1 Jahr mit C++ beschäftigt hat, kann man sich Problemlos mal der 2D Programierung beschäftigen. Ist ja sinnlos, sich weiterhin mit Konsolenprogrammen zu beschäftigen.
     
  15. 26. Mai 2008
    AW: MMORPG in Arbeit!

    ich habe selber etwas ähnlich großes angefangen, unter umständen sogar noch komplexer. es überfordert in der tat und ist sehr sehr langwierig. das ganze team muss 100% geben, die ganze zeit!! sonst wird das nichts.

    wichtig ist noch, dass ihr plant und eure ressourcen sinnvoll einsetzt. in gewisser weiße solltet ihr auch etwas UML ähnliches verwenden. planung ist das a&o und wird euch den ***** retten. die planung habe ich auser acht gelassen jetzt liegt das projekt brach und keiner hat mehr zeit und lust den chaos code zu verbessern.

    so als kleiner einblick: Lost-Signal - Defend yourself!

    wenn ihr unterstützung in sachen planung braucht. helfe ich gerne
     
  16. 26. Mai 2008
    AW: MMORPG in Arbeit!

    sry falls es irgendwie als beleidigend aufgefasst wird, aber ich kann net anders als =)=). Schon nur die zitierte aussage zeugt von seeehr wenig fachkompetenz, da du php nicht mit c++ vergleichen kannst. und ausserdem kann ich mich den meisten hier drin nur anschliessen, mit einem 16 jährigen neuling als chef findet ihr nie nen investor für das ganze, und ohne geld komt ihr keinen meter weit.

    mfg
     
  17. 26. Mai 2008
    AW: MMORPG in Arbeit!

    Hab ich das? wäre mir neu!
    diese Aussage bezog sich auf die Aussage, desjenigen, der meinte, dass Programmieren erstmal gelernt werden sollte, bevor man sowas macht. Das habe ich dementiert, indem ich gesagt habe, dass ich Programmieren kann, nur halt nicht in C++

    Also ich weiß nicht was ihr habt? Wir haben einen Investor, der uns Sponsert und an unsere Fähigkeiten glaubt (was ich übrigens gar nicht mal so abwegig finde, denn unsere Ideen sind genial, wie er selbst sagt und ebenfalls das Feedback aus anderen Foren zeigt.)

    Und selbst wenn wir an der Technik scheitern WÜRDEN, HÄTTEN wir ein riesen Archiv an Ideen und Vorschlägen, auf die bei einem erneuten Anlauf zurückgegriffen KÖNNTE.

    Also wartet mal ab
     
  18. 26. Mai 2008
    AW: MMORPG in Arbeit!

    ich progge jetzt ca 3 jahre php, 1 jahr davon profissionell und taste mich jetzt langsam an java und c++ ran.

    die aussage "c++ is halt neu" brachte mich zum lachen.
    wenn ich alkoholfreies bier trinke hab ich naher ned den selben effekt wie bei normalem bier, auch wenn sie gleich ausschauen.

    dir is klar das php auf c basiert?
    ich wette das du noch nie auf PEAR - PHP Extension and Application Repository oder PECL :: The PHP Extension Community Library warst.

    mit seinen aufgaben wächst man, aber ohne skill ein 3d-game zu proggen is lächerlich.

    //btw
    wie kommt man eigentlich von php auf c++? also nach php kam bei mir javascript (webtechnik). oder hast du php-cmd-applikationen geschrieben?

    aber gut, ich bin mal gespannt auf dein game! und immer schön alle pointer schließen
     
  19. 26. Mai 2008
    AW: MMORPG in Arbeit!

    1. meinte ich damit, dass C++ für mich neu ist
    2. Bier ist Bier
    3. Das ist mir sehr wohl klar
    4. Wer sagt denn, dass wir was proggen?

    Langsam glaube ich, ihr wollt einfach nicht verstehen
     
  20. 26. Mai 2008
    AW: MMORPG in Arbeit!

    was? dass das projekt zun scheitern verurteilt ist?
     
  21. 26. Mai 2008
    AW: MMORPG in Arbeit!

    jetz bin ich verwirrt....
    wolltest du nicht ein game erstellen? dazu muss man auch programmieren, oder hast du gemeint man kann sich da alles zamklicken?

    weißt du was ein event-handler is?
    ein framework bietet dir lediglich eine grundlage...
     
  22. 26. Mai 2008
    AW: MMORPG in Arbeit!

    Hm, ich glaube du verstehst es nicht
    Wenn du nur eine Game-Engine hast, dann musst du etwas programmieren ^^

    Es gibt da nich einfach nen Editor wo man mal hier ein Haus hinpflanzen kann und mal nen Baum da.. Sondern den Editor darfst du dann erst selber programmieren Mit so bissel Quests scripten (das meinst du wohl) isses nich getan..
     
  23. 26. Mai 2008
    AW: MMORPG in Arbeit!

    was meinst du, warum wir uns eine Engine ausgesucht haben, die dieses Feature bietet

    wir wollen Kreativ sein und nicht Quellcode geschädigt werden

    Das ganze ist sehr gut Vergleichbar mit Morrowind/Oblivion und dem Construction Set ^^
     
  24. 26. Mai 2008
    AW: MMORPG in Arbeit!

    Wozu braucht ihr dann C++-Programmierer, wenn ihr eh nix programmiert?

    Und glaubt ihr, dass ihr mit dem Editor alle eure 'tollen Ideen' verwirklichen könnt?
     
  25. 26. Mai 2008
    AW: MMORPG in Arbeit!

    lol wird ja immer besser. weisst du, dasmit nen neues spiel mit sonem construction editor geschaffen werden kann muss das spiel zuerst mal existieren, und da müsst ihr programmieren. oder wollt ihr nur nen existierendes spiel nehmen und mit dem construction set eine eigene map oder so machen?

    mfg

    ps: construction sets sind auf spiele zugeschnitten und fallen nicht einfach so vom himmer, von dem her...
     
  26. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.