peedeeboy

Members
  • Content Count

    82
  • Joined

  • Last visited

  • Days Won

    2

peedeeboy last won the day on January 14 2013

peedeeboy had the most liked content!

Community Reputation

23 Jedi Padawan

About peedeeboy

  • Rank
    Jedi Padawan

Recent Profile Visitors

5,037 profile views
  1. I wonder if the X-Wing Virtual Machine will be hit next?
  2. Another teeny-tiny update: Project properties now allow user to select location of Fred Tetra's nwnnsscomp.exe Ant build script + action to compile .nss files to .ncs using nwnnsscomp.exe (right-click on .nss file -> Compile file) Added control flow snippets to Palette of .nss editor (drag and drop into code to insert snippet .nss files now open in CP1252 (Windows) encoding, so now more warning when Netbeans implicitly tries to convert to UTF-8
  3. Very small update to Project Support: Added basic Versioning support (Git, Mercurial, SVN) inc. undelete Implemented Copy, Move & Rename of Projects
  4. Amazing work, @Blue. Simply amazing :D
  5. Had a free afternoon, so added basic Netbeans Project support: Project Support Create a new OENS project with skeleton structure (working directory and target folders) Netbeans recognizes project folder and creates appropriate logical view complete with custom icon Basic actions skeleton added (new file, copy project, delete project) Project preferences skeleton ready to be extended with user preferences To Do Implement project action (copy project, rename project, delete project etc.) Extend New Project Wizard to capture KOTOR & TSL installation locations, 3rd party tools etc (nwnnsscomp et al) Add KOTOR & TSL installation locations to Netbeans favourites when new OENS project created, and open favourites window so users can drag/drop files from KOTOR/TSL to their project and vice versa Add preferences for installation location of 3rd party tools (nwnnsscomp etc.), syntax highlighting colours and so on
  6. Just finished reading the Marvel comic Thrawn #6, and noticed a little nod to the Ebon Hawk in there. The ship in the comic is just really in the background, and it isn't a perfect replica (its symmetrical) , but it seems clearly based on the Ebon Hawk design - but I thought it was a nice Easter Egg if it was planned. I wouldn't be surprised if it is deliberate, given the comic is a prequel to the Rebels cartoon, which featured the Hammerhead Corvettes On page #17 when an insurgent fleet drops out of lightspeed, we see the back of what looks like the Ebon Hawk, flying next to what looks like a YT-2000: Then on page 20, we get frontal views of the ship (there are actually two ships of this class on the page): Anyways, I thought I would share as somebody else might also get a kick out of this
  7. OENS (pronounced like the Welsh name Owens), the Odyssey Engine Netbeans Solution is/was something I've been working on. There are already a lot of great tools other authors have put a lot of hard work into - so I thought I would try and create something that has the full 'rich-client' experience that would run multi-platform, and the best way I could think to do that was to create a plugin for an existing IDE. OENS is a plugin for Netbeans 8.2 w/ Java8 designed for editing Odyssey Engine files. Sadly, it may not go much further - I'd hoped my current job would be a lot quieter than previous jobs and I would have a lot more time for my own fun projects, but sadly not Here's where I've got to (not that far): 2DA Editor Open, edit and save binary 2DA files Full Undo/Redo support! Add/remove rows and columns Move rows/columns up,down,left & right Auto-resize column width for content Rename row and column headers To Do Text 2DA support Maybe add a descriptive box at the bottom for known 2DA columns à la TlkEdit NWScript Editor Open/edit/save .nss NWScript files Full undo/redo support Basic (not 100% perfect) syntax highlighting based on the deprecated Netbeans language specification (basically regular expressions..) The palette (can) contain code snippets that can be dragged & dropped into the code (working - but I only have #Include at the moment. Suggestions?) To Do Write real lexer and parser Syntax checking Intellisense/code completion Code folding Allow user to specify location of nwnnsscomp and compile scripts or PIPE DREAM implement a Java based compiler At this rate it may be done in oooooh, I dunno, ten years??? 😂
  8. peedeeboy

    Saving Star Wars

    I think the success of Marvel really is part of the problem, sadly Every major studio is looking at their big IPs are saying "how can we make a cinematic universe out of this and crank out a Box Office hit year on year? And rake in tons of money like Marvel?!". Shareholders love guaranteed future income. Warner tried it with DC comics, Universal tried it with revitalizing their "monsters" back catalog into the "Dark Universe", and Disney are trying it with Star Wars - announcing a whole new trilogy before they have even finished the current one! Sadly, none of them seem to understand why Marvel have been able to crank out hit after hit. And IMO it's because Marvel have people like Kevin Feige at the top who know the lore/source material, care about the lore/source material, and for whom those films are an absolute labour of love that they wouldn't release if they weren't absolutely happy with. I mean it really shouldn't have been hard for Disney/Lucasfilm to find somebody already in their ranks that was that was as passionate/knowledgeable about Star Wars (erm.. George? George?? GEORGE?!!) as Kevin Feige is about Marvel comics. They could have had different directors for each film in the new trilogy, but there should have been ONE person, whose job was oversight of all those films (and R1, Solo, Kenobi etc.) with final say on creative decisions to ensure consistency and continuity.
  9. Fair point and thanks for correcting my mistake I did say that Rey's sometimes inexplicable character motivations were one of the things I thought really bad in the film. I guess the point I was trying to make (clearly very badly), is that I can see why critics loved TLJ (its a bit "arty" for a SW film) and a lot of people hated it (half naked Adam Driver with his trousers bizarrely pulled up round his chest being just one reason out of many... I mean really, does he go outside like that?). And that it is very easy to find both good and bad in the film, and discuss it objectively, without anybody criticising anybody else personally. Play the ball, not the man as they say. I don't for a minute believe so many people disliked TLJ out of some kind of prejudice. For starters, maybe I'm naive and have too much faith in humanity, but I don't believe there are as many prejudiced people in the world as disliked the TLJ. From my experience the numbers don't tally at all.
  10. I'm going to go out on a limb and say that I liked TLJ.... just! There is both good and bad in this film, so anybody's opinion either way is perfectly valid. For me, the good just.. just, ebbed out the bad. I went in wanting to love this film. I was super stoked when I heard Rian Johnson was writing and directing TLJ. Brick is one of my all time favourite films. I didn't care much for The Brothers Bloom, but I did really enjoy (apart from a massive plot hole), Looper. One thing I've thought Rian's films have been good at is world building, and I really expected his film to expand and explore interesting corners of the Star Wars universe, rather than just retread the same beats the way TFA did.. The good I liked that TLJ had some recurring themes: Learning from failure - Obi Wan's first Padawan falls to the dark side and becomes Vader. But then he has success much later in Luke. Luke fails at first in teaching Kylo, but then finds success with Rey. Yoda explains "failure is our greatest teacher", having failed himself with Dooku. Po learns from leading a bunch of people to their deaths so that he can become a true leader. Conflict - The conflict between the Resistance and the First Order. The ongoing conflict between light and dark, always rising up to meet each other. The conflict within the main characters: Luke is disillusioned with the Jedi, yet when Yoda actually sets fire to the tree, he tries to run in to save the books. Rey is falling in love with Kylo, yet knows he's a wrong-un. Holdo hates Poe's insubordination, yet hugely admires his passion. Letting go of the past to build a better future - Luke wants to burn down the last artefacts of the Jedi so that something better might rise from the ashes. Kylo wants to tear down both the Resistance and First Order for the same reason. Kylo smashes his mask and gives up his Vader fetish. I felt like this was a direct message to the audience "if you want truly great new Star Wars films, that tell new exciting stories, you have to be prepared to let go of the old characters you hold so dear". Yoda says "We are what they grow beyond. That is the burden of all masters." Sacrifice - Po sacrifices his flight group to destroy the dreadnought and is angry with Holdo for what he perceives as a lack of action, yet Holdo doesn't hesitate in sacrificing herself to save others. Rose sacrifices herself to prevent Finn's sacrifice. Luke sacrifices himself to allow everyone to escape. I liked that I left the cinema asking myself questions: If you have the power / ability to stand up for others, are you morally obliged to? When is the time to stand and fight, and when is discretion the better part of valour? When is it acceptable to order/encourage others to their deaths? Should a teacher / parent / mentor be held responsible for the actions of their charges? (One of the reasons I *vastly* prefer TSL to K1 is because it asks some interesting questions: is it acceptable to do bad things (Malachor V) if your overall intention is good? (ending a bloody war) - see Luke considering murdering Kylo..) I liked that the callbacks to previous films are much more subtle than the plot retreads of TFA: When I twigged Luke wasn't really fighting Kylo, all I could hear in my head was Alec Guinness saying "You can't win. But there are alternatives to fighting". Rey doesn't finish her training before leaving (she only had two of the three lessons Luke promised her, right?) to help her friends. Anybody can be a hero, you don't have to be of noble birth - Rey is a nobody with the power to save the galaxy, just as Luke did as a former farmhand (before Empire made him Vader's son). Luke's line about not being the Last Jedi just made me think of Yoda saying "there is another". I liked that TLJ head-on answered a lot of my criticisms of TFA: Luke mentions that there has been 30 years of peace (so the whole original trilogy conflict wasn't completely for nothing - I once joked with somebody that the First Order is called the First Order so that in the next trilogy the heros can fight the Second Order and so on), Snoke mocks Kylo for Rey matching him in combat, Snoke mocks Kylo for the mask and wanting to be Vader. I liked that there were new ship designs like the bombers, as a direct counter to the giant Dreadnoughts. (X-Wings and TIE Fighters being the only ships in TFA 30 years after ROTJ really annoyed me). I like that they allude to the old tech being due to the Resistance having to sometimes scavenge old Rebel Alliance bases. I really liked that Kylo actually has some philosophy to his actions, and isn't just Emo Kylo Ren from TFA. I thought Adam Driver's performance vastly improved. I thought some scenes were just beautifully shot. All the being said... The bad The humour is way off. In the original and prequel trilogy, the humans are playing it mostly straight, with most of the humour between them being quippy / sarcasm, as you imagine it might be in the middle of a conflict - with the slapstick comedy left to the droids. Rogue One absolutely nailed this (and now that I think about it, so did TSL). Some of the callbacks just don't work very well. I'm sure Rian thought the super-fans would freak out with delight at his references, and imaged conversations like this: Regular Fan: 'pfft. Luke milks a space cow? WTF?' Superfan 'Dood! Luke loves blue milk! It's in A New Hope!' Regular Fan: 'pffft. cloaking tech in Star Wars. That's not a thing!' Superfan: 'Dood! Captain Needa?! "No ship that small has a cloaking device"!' Only the superfans hated those references too. I just couldn't get why Rey was so mad with Luke for *thinking* about killing Kylo, but absolutely fine with Kylo *actually* killing a bunch of children. I would have been fine with her wanting to redeem Kylo, if she hadn't got so pissy with Luke. Also, Finn saying the word 'cops' really, really jarred me. Overall though, I do want to see TLJ again, just as I wanted to see Rogue One again. So I guess I liked it. I don't ever feel the need to see TFA again, not because it was a terrible film, but because I don't feel I'll get any more out of it than I did the first time...
  11. I humbly retract my spurious, slanderous allegations against KOTORTool! In my defense, your honour, I did state that I couldn't exactly remember if it was KOTORTool I was thinking of that did a 1:1 ratio... I started looking into the 2da format 2 years ago, then got distracted... and I'm getting on a bit, and my memory isn't what it used to be... I would be very interested and grateful if you would be willing to share your knowledge of the file formats. It would be really useful for my own project - it's really difficult to find information on the Odyssey file formats, especially if there are cases where they digress subtlety from the equivalent Aurora format. Cheers!
  12. When I wrote those classes, it a quick and dirty solution whilst I was still trying to figure the .2da file type out properly. I didn't really think about the GUI - conceptually, I needed a two-dimensional array, so I used Object[][]. Also, one can construct a JTable by passing it a two dimensional Array. Using Collections (such as ArrayList) one has to extend AbstractTableModel and write implement some of the methods (such as how to set data in a particular cell) oneself. And as arrays take up consecutive space in the heap memory, its a pain to add rows in the middle... Of course - you might not want to add that functionality, as for editing the existing .2da files, I believe its generally considered best to leave the existing order of rows as is, and add any new rows to the end of the file. But if you want people to be able to create .2da files from scratch - Collections will probably be the way to go EDIT: I also stored row headings in a seprate list, as that is conceptually how they are stored in a 2da file. But in the Netbeans plugin I'm working on at the moment, I will probably add them into the first column of the table model, so the user can edit them as if they were part of the data (a la the way KOTORTool does it). Again - stylistic choice based on GUI! Its a stylistic choice on your part - but most programmers think that functions/methods should have one simple purpose. It makes code eaiser to read / maintain in the long run over monolithic scripts. E.g. in this instance, you might have a public write() method that accepts the table model, headers etc. But that method will then call several private methods for each stage writeHeader() writeOffsets() writeData() etc. This means your write() method reads more like a recipe, and you can skip to the other methods as you need. Code that reads like a recipe is easy to maintain - so the theory goes. Its a stylistic choice against for consistency in this script. I copied the hex for "2DA V2.b" from opening actions.2sa in a hex editor, (because I couldn't be bothered to look the characters up in an ASCII table) so everywhere else I referred to a byte I used the hex code, rather than an integer too. Again, I could have stored "2DA V2.b" as a string, and converted it to bytes and written it out, but it was quick and easy to store the bytes as a constant because they would always be the same writing any binary 2da.... There's no write or wrong answer there, only preference! Good luck with the project!
  13. Here's a dirty big monolithic Java script to write a binary 2da file I just bashed together. It is based on the first three rows of Actions.2da and uses a Map to ensure there is one unique entry for each string in the data section - as ndix UR suggested. Obviously, you would want to split each part of the process out into a separate function... There's no real error checking or data validation either (I think spaces/whitespace would need to be stripped from user input?) - and I'm using a List of Lists of Strings for the 2da model - I don't know much about Android UI components, but for most desktop Java GUI components you need to use Collections rather than Arrays for the TableModel if you want to add / remove rows etc. Here is the resulting file opened in KOTORTool. Hopefully you find this useful - feel free to pinch any bits of code anywhere you get stuck