Posts by zfoxfire

    I really don't see why modal is a problem. Think of the current ESC key functionality: mouse and keyboard control is released from the controlling the player within the 3d portion of the game, the gameplay is paused (single player only), and then a guipaneel with buttons is drawn. These are all seperate calls but the mouse and keyboard release event is what we need access to.


    Lets say you wanted to build an ATM application. So you walk into the First Bank of Rising World, click the ATM (custom 3d model) which listens for the F key. The mouse control is released and a guipanel with graphics, buttons, and a text readout are drawn. This does not pause the game like ESC does but it still carries out most of the other tasks that that game is already carrying out when ESC is pressed. When your transaction is complete, mouse control is returned to player control.


    This does not seem too hard to accomplish, we just need to access the mouse via the API.


    As for modeless, I can't imagine anyone would want to be moving their head around in-game while interacting with something else. I already have this problem when I ALT-TAB to another Window before pausing the game ;)


    Are you sure you don't have your definitions reversed? Modal is locking out the interface that launched the interface you are creating. Modeless allows interaction with both such as detatchable toolbars.

    Red51,


    Per our chat, I'm posting this in public as a reminder that eventually this needs to be improved. I can add guiLabels directly to the screen which will suit my immediate needs.


    I'm imagine that in the future, a guiPanel will behave much like a jPanel where various elements can be added and organized such as buttons, drop downs, canvas, maybe even a remoteCamera feed from my other suggestion ^^




    red51: hmm... actually this is something the API doesn't take into account yet. our gui works this way (basically even elements like the chat are nothing but several labels and panels), but the API has no methods to add child elements (or to set an element as parent). that's definitely something that needs to be changed. I don't think we get that ready for the first release, maybe post a topic about that in the feature suggestion forum, so it does not fall into oblivion ^^


    but yeah, you can just add a GuiLabel to the screen directly. a "GuiLabel" is a text element (it can also have a background color if desired).

    If I could run my 7D2D sever, I'd love to play with you. Unfortunately the final A14 release broke the linux server. So I have no way of hosting a game :( I hear a variety of rumors about A15 coming out in the next month but other rumors state early next year so I have no idea what is going on. :(

    If the console is relative in size then that works even better. So if I know the console won't be more than 20% the height of the screen then I'll make sure my window is never larger than 80%.


    What I was envisioning is that any custom services offered should be migrated out of chat window and into console. I'm not even sure why everyone is using the chat window for commands in the first place. For my idea, the console would be below the panel and the panel would be the output device wheras the console just shows keyboard input, kinda like if you were sitting in front of a computer terminal :)


    The only issue I have with the console and chat window right now is that both of those and the F3 text overlap so it is difficult to use them all effectively at the same time.


    I'm not sure what you mean by move-in animation. Anyways, this is just a suggestion. Low priority. :)

    That's one I still have some trouble dealing with. Jumping into the river helps a lot but it still can be not good enough. The best way is to find shelter. I ducked under a bridge and solved the problem. I probably could have kept some wood frames on me and built a shelter. Would be nice if we could get a tarp and just duck under that for protection from the sun.

    Thankyou! So the yell is also like a "message of the day"


    Also I was wondering if the sizes of the chat window and command console are absolute or relative to the screen size? Is it currently possible to position the console to the bottom of the screen?

    I was just curious if there is a default behavior in the chat window for beginning a message with / and also what other built in functionality for parsing the input might be.


    Is there a whisper function or is that handled by mod? For example, on the Freaks server I can type "/OtherPlayer Hello" to say "hello" to OtherPlayer and the message does not show in my chat window. Is this also default behavior?


    Also, what is the difference between a "text" and "yell" message type?

    So I was thinking about how in the game Myst, you open the book and there is a video of the place you are going to warp to. it would be nice to be able to create a viewport in a GUIPanel that plays a video (pre-recorded or live) of a remote location.


    The camera could be fixed or have a programmable flight path. E.g. We program it to rotate, and translate along certain axis across a period of time. A fixed camera would be great for security monitoring wheras the flight path could be used for the Myst book or anything really such as a flyover of a golf course.


    camera object could extend net.risingworld.api.worldelements.WorldElement

    • newCamera(fps, resolution) -- the rest of the graphical details can inherit from the player's settings


    the current set/get methods for Position and Rotation in WorldElement are fine however the we need more move options...


    • moveTo only allows us to set destination position at a given speed
    • we need to be able to smoothly change to the new position and Quanterion smoothly over a period of time or at a set speed
    • the return is a video or actual game rendering within the game that is visible in the gui panel


    I don't know how you do complex flight paths in 3d animation software but I imagine its a series of translation and rotation steps with start and stop points along a line. So the motion could complex and smooth or as simple and rough as you want it to be.


    If there's a flight path object in 3dsmax or blender that could be exported then maybe a option to import a complicated flight path would be an opton too. he API would make the various calls to rotate and translate over time for each point on the flight path line.

    @'Jacob' they are more ideas right now. I have set up the projects in Netbeans and have started writing a few classes but nothing too serious yet. I'm still not completely sure how to accomplish certain tasks. When the API is activated then I will be able to really play around.

    Miwarre,


    Thankyou for clarifying B3. Yes, i did not consider the possibility of excessive downloads or even DOS attacks. I was originally considering authentication on downloads to only apply to snapshots (pre-release builds).


    And English is my primary and only language but If I become relaxed and use too much technical jargon, a translator will not work as well. I also rush my posts a little because on complex issues like this, I could spend hours writing and re-writing one post and I'm usually too busy to be doing that. But I will try to be a bit more strict on my grammar in the future. It is especially important in a international community like this.


    For the most part I think we are on the same page with everything we've discussed in the past, maybe just not completely understanding on some of the finer details but that's ok :)

    I personally want to develop the following:


    1. A chess game that can be placed in the world. Would require two players to join the game and interact by clicking on the square to move the piece from and to. I just need someone to provide models or maybe I can find some low-poly model set on the Internet for free


    2. A simple map program which reads your current chunk and recursively reads in surface textures of surrounding chunks, builds a 2d array of texture ID values which could then be converted into a bitmap to display in a GUI panel


    3. A more advanced map that would work underground. basically it would detect open space and solid rock. Then it would have to read out and down in all directions from the player's position to determine if the terrain drops significantly enough to register as a hole in the ground or essentially draw it as a black spot or maybe just a darker spot ( ground is below you).


    4. Something to let you place invisible objects which play sound events in the game such as adding a SFX to play the sound of water flowing. This could be placed on-top of any body of water so it will seem more real. Also want to add a randomizer to randomly play sounds like gusts of wind.


    5. A console command to interface with any other plugin I write. The console command would allow me to essentially spawn one of my objects and manage it.

    hmm.. a tabletop chess set could be a good idea for a two player game in RW. It could be set in parks. Without AI, the programming would be easier and would work with the suported object translations such as sliding.. not sure if the API supports mouse events however. Need to look deeper.

    correct. The API was released to us as a preview to allow us to start developing plugins but the plugins will not yet work in the game. Red51 recently announced that the first releasable version is done so basicaly what is documented now will be what is released. He made an announcement yesterday that he would be updating the sever software and it should be ready "very very soon". I am speculating that the client will be updated as well to allow you to run plugins as single player. So stay tuned, its gonna get interesting :)

    Miware,


    I should have responded in-line but was lazy. Let me clarify..
    Maven would address only these following points you brought up.


    • A1) a repository where to store published plug-ins (plenty of examples/resources for this, but a selection has to be made)
    • A2) a protocol to access data / files from the repo (again, plenty of existing choices and a selection has to be made)
    • A3) a way for plug-in authors to publish/upload their plug-ins into the repo


    A plugin manager/UI is the last part of the puzzle. I I think we are just using our terminology differenty a "gui" is something launched from a desktop interface such as Windows that is graphical. A UI is the "gui" of Rising World where you play normally. A gui like you launch from a desktop is out of the question since not all servers offer a gui. Windows always has a gui but dedicated Linux servers offer only a command line.


    Like you said, some rented game servers do not offer a console option. This immediately rules out the option of a command-line tool


    It seems like RCON is the way to go. I tried it just now on my personal server and I like the tool However it needs a few improvements.
    [*]Offer a standard RW console in RCON to run any console command remotely
    [*]Offer option to runas <player> the above
    [*]Add a panel to implement the plugin manager

    • The panel should have a tool to point to a specified repo and list plugins available and select available version numbers.

    [*]Assuming loading/unloading plugins is dangerous while users are logged in and world is modifiable, offer a "maintenance mode" which will ensure game is read-only and any outstanding database calls are completed, prevent any user change from saving.
    [/list]I still like the idea of implementing a tool in the UI of RW itself. The maiin reason is that players in single-player mode may want to mod too. So a UI should be available which can actually benefit single and multi games.
    [*]Single Player - a config screen can be placed under Settings to manage plugins for the client only
    [*]In multiplayer - a console command to launch the same UI as above but this version only manages the server plugins only
    [/list]

    B) Also, a number of policy decisions are required:


    B1) If the publishing / uploading is open to anyone and/or if some registration / authentication is required
    B2) If the "system" (i.e. ultimately JIW staff) enforces some kind of quality control or not
    B3) If there are controls on who is downloading what or not (and, in case, which kinds of controls)
    B4) If the plug-in manager is the only supported/documented way of installing plug-ins (restricting manual addition of files to a well-known directory will be difficult, but installation might require additional steps than simply dropping files; or not!)

    Here is one section I should address a bit clearer:


    B1)
    Whoever manages the repo must decide who is allowed to upload to it. I was thinking the well known modders here would specifically request it (or they can host their mods on their own which is why the plugin manager has to allow for manually installing into the plugins folder).
    I do not know how RW authenticates internally but if it should be interfaced by some kind of standard protocol such as LDAP. The Administrator of the repository is given access to look up users via LDAP and grant write access accordingly.


    B2)
    So regarding quality control, I would assume that JIW is not going to offer quality control. Otherwise we would need to add a build system to grab the source code from a developer's source repository, build it, scan for bugs and malicious code and then upload the build into the repo.
    The Maven repos act as mirrors to other repos. They accumulate jars from many different companies they mirror. There is no assumption of QA on the person running that repo. Only the original author who built and deployed the jar is the one who is assumed to have done QA.
    Same thing over in the minecraft world we also assume the authors of plugins are not writing malicious code but without looking at source code we cannot be sure.
    However, there's also the Steam Workshop which would in a way offer something similar to the plugin manager we are talking about. Now does the Steam Workshop ensure that players are safe from malicious plugins? This is also a consideration because Steam Workshop support has been requested in the past. I do not know enough about how this works or how its supposed to work.


    B3)
    I'm not following you on this. I interpret it to mean we should limit who the mods are distributed to. My believe is that the limitation is only on who can upload, not who can download.


    B4)
    I think that the plugin manager is just a tool to automate the manual process. I may want to test various versions of a plugin or test different combinations and for me it might be simpler just to manipulate a few files on the command line on my server then restart RW. I see no benefit to limiting manual intervention. The plugin will read the configuration of the plugins installed by reading each jar and the Manfiest file in each jar.

    Whatever plugin manager comes to RW must have an option to run from the command line for. Commands from the game console is fine too but many of us running servers do management by shutting down the server and manipulating files from command line.


    I stand by my last posts about using Maven as a the best repo option for distributing plugins. It provides a simply web-based directory view that is easy to use browse or grab plugins via text-based web browser or curl or wget commands. It offers version control as well.
    Maven is browsable via HTTP and easy to view in a console web-browser which does not support graphics, flash, css, and other fancy stuff that is not text-based friendly. With maven, we could easily use the lynx browser or curl or wget to grab whatever plugin we need from the repository and install it ourselves. A plugin manager would automate all this but at minum if we have a Maven repo we atleast centralize and simplify access to the plugins


    If you havent yet looked at Maven, check out this link below. It drops you into the namespace com. All .com companies offering java programs to the public are found here. Ours would be greatly simplified but these public maven repos are used for application developers that develop EVERYTHING so literlly everything you can imagine is out there. Ours would be much much smaller (plugins only). So we can have our net/jiw/rising-world path along with others like my us/zork-foxden for my plugins and then namespaces for any other developer contributing, com/miwware or com/yahgiggle among others... All this can also be easily browsed by command line.


    https://repo1.maven.org/maven2/com/


    for a specific example... here's a library for android development. You can how each artifact is organized by: toplevel/company/artifactName/version.... Several past versions are available and each version contains only one jar file.


    https://repo1.maven.org/maven2…/aws-android-sdk-cognito/


    You can also see how javadoc (like our new API documentation) is distributed easily this way. You can also make any additional README text file and distribute that too if you want that to be dropped in to the directory too. Maven is not limited to jar files only. Javadocs and various xml files are also optionally distributed along with the jar.


    I'd love to know what other repositories are out there that are useful for distributing java applications and java libraries. I can't think of anything better to use than Maven which is pretty much the defacto standard

    I think the old character model or atleast the option to make the new character model look like the old one: bald head, beer belly, and the same clothing. I mean, Mr. Potato Head has been with us for two years now, it would be nice to pay homeage.