Droid Engineer Archive

Thread: The droid programming language (first draft)

JediYak
Wed Sep 24, 2003 8:40 am
#66

Let's keep this thread productive...


Here's what I think (I'm a programmer and a military fighter guy in real-life, so I understand both of the points made):


Cons:
- Text programming language would require a huge amount of server storage requirements (remember that database storage isn't just storing the text, you'd have to store all the backups and control structures, and names of builders, and times modified, and other stuff)
- On-the-fly running of programs would add to server load
- Supporting a programming language would be extrememly painful on the CSRs
- Testing and debugging the code would take a LONG time for the developers
- Learning a complicated language would be hard for some community members
- Many people do not want to have to program for fun
- Potential hacks and security concerns must be addressed
- How do you build skill-progression into this?


Pros:
- A droid programming language would quiet down those unruly and noisy DEs...
- Everyone would now want a specifically tailored, uniquedroid
- DEs would be the most in-demand profession
- This would solve the problem of adding droid functionality
- This could solve the ineffective personality chip problem
- This could add a much more "star-warsy" feel to the game
- Yak would make millions (well, millions more) credits with his specail yak-bot chips
- There are answers to all the above-mentioned cons


Possible solutions to cons listed above:
- First, I LOVE the idea of a droid programming language, so please don't take these as criticism...
- To address the storage concerns, there must be limits built in...
--Disks (or even data modules) that have code would be limited on what they could hold: (ex) Level 1 module:60 characters, Level 2: 120 characters,Level 6:1000 characters of text. Maybe usenumber of commands rather than charactres - Level 1: 5 commands, Level 2: 10 commands, Level 6: 100 commands.
-- If you have disks, they should be stored in data modules, not inventory -- and should take up a corresponding amount of storage - Level 1:3 data size, Level 2: 6 Data Size, Level 6: 20 Data size
-- Maybe use only pre-defined commands and variables, that you gain when progressing through DE tree (or even make a seperate Droid Programmer elite-elite class, or part of a Droid Handler class). If commands are tokenized and not nameable by players, you could save a lot on database space. Special text strings could be added for "conversation text"


- To address the server programming load, events are the way to go...
-- Everything should respond to an event (this appears to be how the game works now)... All the programming should fit within when_attacked, when_arrive, when_spokento, when_called events...
-- Programming speed could be linked to experimentation on brain modules... whether code is checekd every 1 sec, every 2, etc...

- Testing and debugging would take a long time, security is an issue:
-- Hire another artisan developer.
-- Build this as a profession to be added to the Space Expansion
-- Hire me -- I'm available in February.


- Users don't want to learn a programming language or don't want to program for fun:
-- Make everything a pull-down GUI... it's worked before (aka Lego MindStorms)
-- Allow people to use programs or disk or data modules made by others
-- Allow people to build simple custom programs that stack together


- How do you build skill-progression?
-- Add new commands at each skill level
-- Add new events at each skill level
-- Add a conversation text ability at the Master level
-- This could conceivable be a new class that compliments DE


Thoughts?




--Masta DE Yak's Star Wars guides: http://www.crossler.com/swg/
--Yak the Avian @ Naboo @ Chilastra -- Factory crates of Adv Probots for Sale!
Mabinogi
Wed Sep 24, 2003 8:48 am
#67

Oooo, Yak, love the completeness of your argument.


CapnSteve, any chance of you going through all these suggestions to compile a (second draft)?




Ariac
Master Artisan
Novice Merchant 2.01%
Novice Droid Engineer 0.91%
Novice Pikeman 0.25%

Glutton for Punishment
PWT
Wed Sep 24, 2003 9:30 am
#68

Hehe, back to the constructive posts

I do think in order for this to work we would have to make it less free form and basically lego mindstormy (http://mindstorms.lego.com/ check it out, its really cool, especially if you have kids).

Basically you would attach predefined actions to predefined events and you could mix and match as needed.

Pros and cons of a method like this:

Pros:
- No text storage, more db friendly
- Better performance wise (all compiled in to the server code).
- Easier support wise, everything is predefined, and you know what every action actually does and when every event is fired.
- Easier to control skill progression, get different events and different actions at each level in some tree (refinement maybe?)

Cons:
- not as much freedom as the scripted programming, less droid individuality
- um, thats the only con I came up with



Siake Vace - BH / Master Ranger - Chilastra
Segavo Ire - Master Artisan / DE - Chilastra
C-type
Wed Sep 24, 2003 10:05 am
#69

so, basicly macros. Perhaps even a bunch of droid-only ones.




[_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-]

Please excuse my cynical, somewhat grumpy posts sometimes. I'm a DE.
Therearentan
Wed Sep 24, 2003 10:51 am
#70

Pros:
- A droid programming language would quiet down those unruly and noisy DEs...


* And create a whole new class of unruly and noisy DEs as a large number of people suddenly find themselves excluded from participating effectively in the profession. With this act alone you've excluded a very, very, large number of Players from being able to participate based upon Real World Knowledge.- Everyone would now want a specifically tailored, uniquedroid


*Which would add significantly to the time necessary to make one, reducing the amount of Droids that could be built by a huge amount.
- DEs would be the most in-demand profession


*Pure hypothesis. Truth be told, the whole thing would confuse the hell out of the better part of the Player Base, and make the "Stupid Questions I've Gotten" thread 300 pages long in a week.
- This would solve the problem of adding droid functionality


*Not really. I don't know about you, but 99% of the questions I get are something along the lines of "What's the best combat droid do?" or "Can you make Droideka?" I receive very, very, few people interested in any other function. Nor does this add any functionality other than spammed chat. Droids still would suck at fighting, still couldn't access harvesters, BLL would still be useless. The only things it'd do is allow Power bots and Repair bots to function. But as there's no real need to power bots as even with this idea they still aren't terribly reliant on power, and no combat droids worth repairing, it's kind of a moot point.
- This could solve the ineffective personality chip problem


*At the cost of significantly increased time on the part of the DE. No way I'm spending hours coding up responses to actions.
- This could add a much more "star-warsy" feel to the game


*How? It wouldn't increase the number of combat droids, nor would it increase the functionality of Droids. All it would do is allow for a wider variety of responses when talking to droids, and allow them to say things in chat. Outside of the chat window flying at 8,000,000 mph as 300 Crafters droids spammed the window, it wouldn't add anything to the game at all.
- Yak would make millions (well, millions more) credits with his specail yak-bot chips


*Again, pure hypothesis. Truth is, it'd drive players away, as towns would be completely useless due to the speed at which the chat window flys. If anyof you ever played AC, remember what Subway was like, and multiply it since people wouldn't have to be physically present. Think of how many people would leave themselves logged in 24/7 to leave their droids in town spamming.
- There are answers to all the above-mentioned cons


*But not to the most important one, accessibility. As well as a significant number of cons to the pros.



- Users don't want to learn a programming language or don't want to program for fun:
-- Make everything a pull-down GUI... it's worked before (aka Lego MindStorms)


*Which then leads to the question, "Why bother?". Just add it to the radial dial for programing a droid and be done with it. Much easier,more elegant, and accessible way of doing it, without adding another interface to perform what would be the same functionality.
-- Allow people to use programs or disk or data modules made by others


*Again, pointless. If a programming language wasimplemented. Within a week it'd beexactly like AC's3rd party apps community. A group of people who would create the scripts, and everyone would just copy them. Thus, completely bypassing the entire point of this idea, and putting it back at square 1 with extra work involved.If Cut & Pasteis blocked, then you're right backto creating Have's and Have Not's based entirely upon real world experience.
-- Allow people to build simple custom programs that stack together


*Right back to square 1. Accessibility. What does the 16 year old do if he wants to play a DE? How about the 30 year old father who doesn't have hours to spare to code up a single droid? Or the 20 something Buisness Major? You assume there's a large number of people able to code, there isn't. Segragating the population this way will destroy the profession. Because it'll not only be confusing, it'll generate actual Hatred from the people who want to play a DE but suddenly wouldn't be able to due to not being programmers.


This is the exact same thing as suddenly changing the Medical Proffessions to require them to know the names of, uses of,and methods of administration of all drugs in the Real Worldand to use them appropriately on all patients. Can I do it? Yes. I've been working in the field for a decade. How many of the people on this thread can do it? Does it seem fair to you that I could be a Doctor in game but you couldn't?


And yes, I am learning to program as I'm in school to change professions. But I definitely have no desire to do it just to play a game, and I doubt I'm alone.




Ignore the handle, I am Gatt on Vnboards.
CapnSteve
Fri Sep 26, 2003 10:27 pm
#71

Anyone? Or is it a lost cause?



--------------------------------------------------------------------------------

(Kauri) Indur Dawndeath - Master Droid Engineer / Smuggler (0,4,1,0)
(Chilastra) Indur Dawndeath - Creature Handler (3,3,1,1) / Smuggler (0,0,3,0)

"Next thing you know it's going to require a Droid Brain in order to make an Electronics GP Module. Sheesh." --Kollos
XCman
Sat Sep 27, 2003 2:24 am
#72

I have been proclaiming about such a programming language for quite some time. But the shear guniness of doing a data disk which you can insert and change is awesome and I never thought of that!


I would add one thing to the disks though! you shoudl be able to buy disks in different sizes. where one can hold 1 instruction, antoher 2 and the other 3.


Maybe even very the length of code (but this would be very restrictive to being creative and prolley shouldn't be added anyway!)


This would be absolutely great, but we should develop the droids more before adding something like this!


Because it would be a royal pain in the bupkus, if we had to add new lines of code for ever new module we added to the Droid system! I mean I would like to see thigns like


Droid hologram's
defense mechanisms
(like tazers, knock down attacks, and fire extinguishers etc...)
scramblers for radar tracking
enhanced surveying
flight navigation
analyzing creatures

threat indicator
(either a exclamation mark in colors above head or done by sounds the droid makes) kinda like /con where it will tell you the likley hood of survival but more vocally!
programming your own personality chip
language translator





Craig (XCman)
Or'ab Ibo
Server: Starsider
Current Location: Tiberius Lok
-=BSL=-
/\
[TLC][BSA]
Leedon
Sat Sep 27, 2003 4:24 pm
#73

Quote from CapnSteve: I, for one, would probably give up most of my droid crafting skills and sell programs. I'm sure there are other people who would, too, and the droid crafters could buy programs from us. Maybe it should be a seperate profession. Even if we did force programming on the masses, I really think it's not that hard to learn.


You're 100% right droid crafters that don't program would have to buy them from one that did.The problem that your idea proposes brings up the fact that it doesn't fix DE, only droids. People would spend hours programming their hearts out to make a perfect droid for a customer. Simple fact is, a lot of players don't have hours to program, much less learn how to do it first. If they don't spend the time, then there products are worthless. It's bad enough that we have to be a Master Artisan or have a friend who is one to make most our best items.


If there are Software Engineers, we'd have to to them for for sure or be one myself... Master Droid Eng, Master Artisan, AND Master Software Eng is a lot of points, my friend. Most of us Mastered Artisan to be able to make our own droids and if we want to continue to do sothen we'd have to drop what little we have left to grind up yet another skill tree. Assuming that SE comes off the Engineering line of Artisan, then we're left with 47 points. To get a single other base class it's another 15 points. That leaves 32 points forthe branches of thoseskill trees, not much to work with. Once again, it still only fixes droids, but this may actually break DE worse.


You also mention that it's it's okay, people can learn to do it and it isn't hard. The words left out of all these sentences you wroteare "for me". Different people are good at different things. You can say that you can sell programs, and that sounds fine on your end. On my end, I have to tell a customer that my creation is worthless and to find someone else.


I haven't programmed in years andI fully intend to keep it that way. I also intend to stick with DE until we're fixed just because I love droids. That's why each and every one of us come in here and read, propose ideas, and rant to let off steam. Even most of the ones who post they are leaving are doing it because they tried hard to lastuntil they got sick of it. I don'tthink I'd stay if I had to program(and I'm sure there's others like mewho think the same way) then I would have to leave. It would be a shame tomake a change that alienates a largeportion of a dying profession because they stopped having fun making things they liked.I'd like to see us fixed and I honestly believe that this isn't the way.I do give you credit, though, your ideasin this threadare really good. It just they aim at too specific an audience for a game that's massively multiplayer.


-Lee


CapnSteve
Sat Sep 27, 2003 8:59 pm
#74

I agree, although I still think that people who didn't want to program would be perfectly capable of getting programs from other sources. Almost everyone agrees that this is a cool idea in theory, the question is: how do we implement it without hurting people who don't want to program? I think it's perfectly viable to have more strict limits on program complexity and size, have some default programs craftable by all droid engineers, and even have some more complex ones as loot. It might take away some of the functionality for the people who want to make the ultimate droid program, but I think it could work in the end.



--------------------------------------------------------------------------------

(Kauri) Indur Dawndeath - Master Droid Engineer / Smuggler (0,4,1,0)
(Chilastra) Indur Dawndeath - Creature Handler (3,3,1,1) / Smuggler (0,0,3,0)

"Next thing you know it's going to require a Droid Brain in order to make an Electronics GP Module. Sheesh." --Kollos
XCman
Sat Sep 27, 2003 11:18 pm
#75

I have always thought that anybody can program. My gosh, if most ppl can't then there is an awful lot of ppl making macro's! That is still programming! But when they look at the archaic text of:


if $x=1 then
#
# do something
#
end if


they say what the? no way man!


So we must dummy it down like Windows dummied down DOS for computer users. Make it a friendly as a Mac and as intuitive breathing.


I suggest making a set of actions made for Droids to do. and every action is represented by queues. Alot like the combat system.


So you can click on the picture commands (just like Ctrl+A does for macroing!) and use statements like and, if, goto, =, <, >,(math quotes are there to do some more advance quotes like calculating lol imagine your Droid doing crafting math for you to tell you what to sell your items for!)


Then you get a string that looks like this.


goto [waypoint icon];pause 2;[find icon] (type a name/item); [allow access icon]; [deny access icon]; goto [waypoint icon]


Now I know it looks like a mess right now since I can't do pictures but it would layout in the same fashion as macroing is right now. And everybody will learn macroing to make their lives easier! Have you noticed the cantina's filling with AFK'ers?


ppl will learn, and it's their own fault that they aren't getting the XP that others are getting for nothing!


my only comment that I think they should add is enable looping
plus sharing code is always nice




Craig (XCman)
Or'ab Ibo
Server: Starsider
Current Location: Tiberius Lok
-=BSL=-
/\
[TLC][BSA]
Leedon
Sun Sep 28, 2003 2:26 am
#76

The point that I think I messed up trying to make is :


This is a game, we log in to become something we're not. My character is, in a way, a programmer. I am(very gladly) no longer a programmer. I see most all of what youpeople are saying and can say, "why don't they just add it as a module?" I do think they could add a few selectableoptions that DE's anddroid ownerscan change in these modules.


It would help if you actually told those of us who don't know, what this does. I understand it goes to a waypoint and waits, finds a person or item(?), allows or denies access and then goes somewhere else.


goto [waypoint icon];pause 2;[find icon] (type a name/item); [allow access icon]; [deny access icon]; goto [waypoint icon]


I imagine that it delivers something... I'd like to say that if this is, it's almost twice as long as it needs to be...


goto [waypoint icon];pause 2;[allow access icon]<personto deliver to>;goto [waypoint icon]


It goes to the waypoint, it waits a set amount of time(2 units). The devs would never make a droid find anyone or any objects, it may say something like some of the delivery mission NPCs do but that would be about it and all it would need. All droids either beep or talk according to personality chips, so the person who's allowed access has a message set for him and the sameforsomeone who doesn't have access. Unless you want the mouse droid doing the delivering to self destruct to keep the item out of the wrong hands I see no reason to even include anything for denied accesses. So how does it work, if the owner wanted something delivered that is(and that's what it is)?


I think the devs could probably makethe function in the form of amodule. The module holdstwo waypoints and object(s). Then on the radial dial under "Program" the "Deliver" option shows up to be set to anything the user wants to set it to(assuming it isn't a convervsive droid. Thenthe other radial options there can be the 2 waypoint storage and the item container, all drag and drop, of course.


The user places 2 waypoints in the Datapad and the item(s) in the item storage. Maybe s/he sets the length of time that it waits, maybe it's the same length of time no matter what. When the command is said, a "(to whom?)" pops up over the droids head(or it just asks if it can talk). The user says the name of the person allowed access. The droid goes to the waypoint, waits and turns toward the next waypoint. If the right person accesses the droid then they can take the item(s). Why should I have to type anything to program it at all? Its a simple task that I would have to type out commands for that could just be put in the game. The fact that they would need to write a language(which most likely won't work) for us to learn(which I shouldn't have to) to make me waste timetyping(and possibly forgetting something, forcing me to take back the droid for reprogramming). It's a game, not rocket science.


So we must dummy it down like Windows dummied down DOS for computer users. Make it a friendly as a Mac and as intuitive breathing.


There's a reason that things are made simple : People are morons.(myself included, it would be arrogant to think otherwise)


-Lee

CapnSteve
Sun Sep 28, 2003 2:40 pm
#77

How about this idea? We get a schematic for a Droid Programming Tool. Anyone can use it, but it has a limited number of charges. When used, it opens the droid programming window, which is a simple code editor. The trick would be to have it guide you through the process with icons and simple questions. I'd compare it to one of the "wizards" in Windows. It's a simple way to do something, but those who don't mind the complexity could just skip it and do it by hand. I think this way would have little to no impact on the droid engineer profession itself, but would make droids much more interesting for everyone.




--------------------------------------------------------------------------------

(Kauri) Indur Dawndeath - Master Droid Engineer / Smuggler (0,4,1,0)
(Chilastra) Indur Dawndeath - Creature Handler (3,3,1,1) / Smuggler (0,0,3,0)

"Next thing you know it's going to require a Droid Brain in order to make an Electronics GP Module. Sheesh." --Kollos
XCman
Sun Sep 28, 2003 11:50 pm
#78

Just so you know leedon I really didn't put to much thought into that program example. But the main point I was trying to make is. If it makes life easier ppl will learn to program to make their lives easier. Even if they get the program script from a website or another person taught them.


Again I am refering to macroing. Macroing is the best already applied example of programming in the game!
If they just add a few more commands/actions and develop the droids a little more. utilize the program disc theory and have the disc just save a macro inside it. It would be a fairly easy addition to the game. Albiet some work on the Dev's part but it would make Droid building a limitless profession and almost every Droid will be unique.


Leedon: you do have a good point though. making these commands have drag and drop properties would be great. and have the icons prompt the information needed. it was what I was trying to get at but it didn't come across very well. Needless to say, I don't expect ppl to learn and make the game more difficult.


But consider this, the game is already quite a chore to learn as it is! Consider programming droids more of an enriching experience. That needs an intuitive interface to really make this work.


Which brings us back to the reason we are discussing in the first place. To find the best way to implement this


Key ideas that are good:


1. data disc storage system that is tradeable and sellable
2. a macro like programming language
3. commands that have queue icons just like the combat system that would make functions for droids to do
4. Did I forget something?.....


About all I can think of that really needs to be brainstormed about is a list of actions/commands that our droids can perform.


I would like to see the ability to create custom beeps for R type droids and words for the protocol droids to say to customize our droids further So you could possibly make signature sounds or sayings for all your droids




Craig (XCman)
Or'ab Ibo
Server: Starsider
Current Location: Tiberius Lok
-=BSL=-
/\
[TLC][BSA]
Page 6 of 7