Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411715 Posts in 69402 Topics- by 58450 Members - Latest Member: FezzikTheGiant

May 21, 2024, 03:02:17 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsStar Wars KOTOR online
Pages: [1] 2
Print
Author Topic: Star Wars KOTOR online  (Read 5348 times)
room101
Level 0
**


View Profile
« on: November 23, 2013, 08:38:48 PM »

as I mentioned already in the obligatory introduction and in the announcing the project topic, my body is a piece of crap.

In the few moments during the day when I'm not in the hospital or I don't have difficulties concentrating because of the chronic pain, I'm trying to keep myself sane and keep my mind occupied.

On one hand I can meditate about the relationship between Godel's theory of incompleteness and teleology, for example, which I tried but very soon ended up in a divided by 0 situation, so I decided it's time for plan B: messing with a Turing machine.

And by accident I ended up finding a way to render somewhat correctly a 3-D model of a lightsaber in real-time in a browser. Thus the idea of a KOTOR online came to be…

I'm not a programmer or an artist, but the survival instinct is still strong, and considering the statistical reality of people in my situation, the alternative is somewhat more appealing, than being one of the majority ( depression, substance abuse,  etc.)

 the advantage of being in chronic pain, if I can call it an advantage, is that eventually I stopped caring about rules and regulations, and keeping my mind occupied even through unorthodox means, is more important than fear over cease-and-desist letter, which eventually can turn into a PR issue, with the big faceless wealthy company picking on the crippled who is just trying to do something useful. Something useful like staying sane for a change…

 truth is, I can work on this project by myself without advertising it, but keep in mind that everything I do for this project I do with my voice via a microphone, and it's very very cumbersome and slow, and I can totally use some help.  Help not really in terms of budget, but other  professional people joining in helping out…

 anyways, here is a very early alpha footage, that shows a 3-D model of a Jedi along with its light saber rendered in real-time in a browser

http://dhkgames.com/games/ko

 of course it's not much for now, but it should be enough to prove the concept and the possibility of such game. Use the left and right keys to rotate, use the SPACE key  to hide/unhide the light saber ( along with its hilt for now), and use the backslash key \ to change the color of the blade

 as a quick update: as of last night, but not finished or uploaded online yet, I found the way to render a background Starling layer for the map, on top of which I have a middle 3-D layer where the Jedi is part of. Creating the map was reversed engineered from Dragon age journeys, and I just added the code to make it the Starling background

 things to work on in the near future
-finish the Starling background
-add some sound of the light saber
-add some more animation sequences, like walking or slashing

 and that's it. I can use some help, like professionals joining this project. If anyone knows how to contact EA or Disney to greenlight or support my project, we can also try and talk to them…

 edit: 20% complete
« Last Edit: November 17, 2014, 06:45:26 PM by room101 » Logged
room101
Level 0
**


View Profile
« Reply #1 on: November 25, 2013, 05:50:59 PM »

here is an example of how the Starling background looks together with the middle 3-D layer


http://dhkgames.com/stuff/Starling_background_example.jpg

 as I mentioned, the background layer was reversed engineered from Dragon age journeys, I just added the code to turn it  into a Starling Sprite. Keep in mind that my main intention is to prove functionality of such project, my main focus is not how beautiful it looks, which I can't really do because I'm not an artist, but instead I want to prove how it works, and once functionality is done, beautiful and/or original content can be added. Until then, I would have to resort to using others people's content, but I'll do my best to give them credit

on a side note, I hit a little bit of a snag, I'm in the middle of writing some code to move the  Starling background in the opposite direction of where the Jedi  is facing  when the up and down keys are pressed, and I just realized that is a Sisyphus job to press the up and down keys with a microphone, so again I'll take this opportunity to ask for help, because in the end this project is unique in its own niche, so I guess it should have some sort of appeal to some people in the community to join and participate.

 if anybody's interested, below is the code to unserialize the Dragon age journeys map format, but because I'm not a programmer, I bet there is a better way to do it, anyway the code below work for me

Code:
package
{
import flash.display.Sprite;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.net.*;
import flash.utils.ByteArray;

import packages.file.*;

public class unserialize extends Sprite
{
public static const NUM_HEXES_X:int=40;
public static const NUM_HEXES_Y:int=40;

public function unserialize()
{
flash.net.registerClassAlias("FMapData", packages.file.FMapData);
flash.net.registerClassAlias("FMapEncounter", packages.file.FMapEncounter);
flash.net.registerClassAlias("FMapHex", packages.file.FMapHex);

    var inBytes:ByteArray = new ByteArray();
readFile("TUT_AREA2", inBytes);

inBytes.position = 0; // reset position to beginning
inBytes.uncompress();
inBytes.position = 0; // reset position to beginning

var  data:* = inBytes.readObject() as FMapData;
trace(  data.checksum, data.hex_list.length);
for (var i:uint = 0; i < data.hex_list.length; i++)
{
if (data.hex_list[i].special_tile != null || data.hex_list[i].special_id != null || data.hex_list[i].special_type != 0 || data.hex_list[i].encounter_id != -1)
trace(i + " | " + data.hex_list[i].xc +  " + " + data.hex_list[i].yc + " + status " + data.hex_list[i].status + " +  ground_tile " + data.hex_list[i].ground_tile + " +  detail_tile " + data.hex_list[i].detail_tile + " +  detail_tile2 " + data.hex_list[i].detail_tile2 + " +  detail_tile3 " + data.hex_list[i].detail_tile3 + " +  special_tile " + data.hex_list[i].special_tile + " +  special_type " + data.hex_list[i].special_type + " +  special_ID " + data.hex_list[i].special_id + " + encounter_ID " + data.hex_list[i].encounter_id + " +  obstructed " + data.hex_list[i].obstructed);
}

trace(data.encounter_list.length);
var _encounter:*=null;
for each (_encounter in  data.encounter_list)
{
trace("ID " + _encounter.ID + " + m1 " + _encounter.m1  + " + m2 " + _encounter.m2 + " + m3 " + _encounter.m3 + " + m4 " + _encounter.m4 + " + aggro_radius " + _encounter.aggro_radius + " hex_ID " + _encounter.hex_id);
}
}

function readFile(fileName:String, data:ByteArray) {
var inFile:File = File.desktopDirectory; // source folder is desktop
inFile = inFile.resolvePath(fileName);  // name of file to read
var inStream:FileStream = new FileStream();
inStream.open(inFile, FileMode.READ);
inStream.readBytes(data, 0, data.length);
inStream.close();
}

}
}
Logged
room101
Level 0
**


View Profile
« Reply #2 on: December 09, 2013, 08:34:55 AM »

I have an update. I finally managed to put together my  first A* script! YAY! now my Jedi walks on the map and around the obstacles if it finds any. By  "put together" I mean reverse engineered from DAJ and modify it to fit in my code.

 Which reminds me, I contacted one of the lead software engineers that worked on Dragon Age Journeys, to ask for permission to use parts of the code. He seemed to be okay with it, but he also mentioned that the code belongs to EA not to him. from my point of view the people that wrote that code deserve the credit, so he should get the credit for the A* script

 anyways, figuring out this pathfinding script was a very good learning experience for me, with my mind focused on a good thing and away from less than good things that usually lurk around my mind as byproducts of my current condition

 here you can find the latest tests
http://dhkgames.com/games/ko

 also, as I mentioned in the previous entry, keyboard pressed events are not getting captured correctly when I press a key via a microphone, so I dropped most of the code to interact with the Jedi via keys, and instead now you can navigate by clicking the mouse left button, and if the destination is not obstructed, the Jedi moves, including the animation, but if it's obstructed nothing happens

 on the topic of additional animations, I added idle with no light saber, idle with light saber, press SPACE bar to switch. I also added run animation, and a slashing animation, you can see it if you press COMMA key

 back to the topic of pathfinding, my first A* script taught me a lot, and I think I want to rewrite it from scratch to make the vector path more smooth in its transition, currently because I'm using 250 pixels hexes, the path from source hex to destination hex looks imperfect, to say to least :-)

 so I'm planning to use 50 pixel squares for a better overall look and feel, stay tuned for an update
Logged
room101
Level 0
**


View Profile
« Reply #3 on: December 10, 2013, 07:21:27 AM »

ah, I'm a total geek. Star Wars rules! :-)

Joking aside, why Star Wars? Well, I found a way to render a 3-D model of a light saber in real-time in a browser. This accomplishment appears to me to be unique so far, but I don't know the reason why no one else with more talent than I, attempted this before. There may be several explanations for this that I can think of off the top of my head:

1. No one else is as geeky as me, and they just don't care about Star Wars :-)
2. Up until recently, there were no available frameworks to allow rendering of a correct light saber material in a browser, and I'm the lucky one who stumbled on it first
3. Star Wars is a very protected copyright, and fear trumped creativity and innovation of other indie developers

in my case, my working assumption is 2. And I'm curious to see what such novelty can become.

As for being taken seriously, well, according to a personal interpretation of the "principle of excluded third", and I'm going to use a personal inside joke, which may not find its audience as it's out of context, there is a 50-50 chance that I would be taken seriously. That is, I would either be taken seriously or not. there also is a 50-50 chance that I would be successful with this project. That is, I would either be successful or not. There is also 50-50 chance that I would get the cease and desist letter. That is, I would either get it or not. And so on and so on. I hope my joking tone is also transparent in this last paragraph, it is not my intention to offend in any way.
Logged
room101
Level 0
**


View Profile
« Reply #4 on: December 21, 2013, 10:14:08 PM »

I have good news and bad news, well at least they are good and bad from my perspective :-)

 let's start with the good news  first:
 I played some more with various ways to move my character on the map, I actually refined the original A* script, and it turned out pretty nice, but I eventually settled for getPixel, and I made an imaginary path made of pure green color, and I put this path on top of the actual visual map, which I reversed engineered from Kings Road. It's not perfect, but for the purpose of a proof of concept it should be enough



 if you want to play with the proof of concept I got so far, you can do so here
http://dhkgames.com/games/ko

 now with the bad news: if you recall my body is a true lemon :-). Now on top of the already dysfunctional body parts, my eyes, in particular my right eye, is doing the funky chicken and I can't look at the screen without pain anymore. So it seems that I would need to take some break, days weeks months, I don't know, but I write this with one eye closed and with the other one squinted, which is not very practical.

 So again, I'm asking for help, because even though my spirit is willing, my body is unable to keep up, so without help at this point I'm out of options, because I can't work at all anymore, which is for lack of a better word, depressing.

 Anyways, on the next steps to do list I was planning to work on character rotation to face where the mouse is clicking, and maybe put a dark Jedi in the scene and attempt some sort of interaction. But it looks like this will have to wait
Logged
kamac
Level 10
*****


Notoriously edits his posts


View Profile
« Reply #5 on: December 25, 2013, 12:38:03 PM »

I'm sorry to say that ( even though you might know ), but I doubt any programmer / developer would be willing to spend his time on a non-paid project, that is set in a commercial universe. ( Simply put: a fangame )

I thought I'd share my point of view, just to make sure you knew why nobody's volunteering.

Besides that, it's still pretty amazing what can you put together being ( kind of? I don't know how do you actually "steer the computer" ) disabled. I hope you can, by any chance, cure yourself, atleast to some degree.

I hope you are able to keep on developing, and doing what you love? Like?
Logged

Gregg Williams
Level 10
*****


Retromite code daemon


View Profile WWW
« Reply #6 on: December 25, 2013, 03:45:15 PM »

Looks awesome, keep up the good work. There's certainly people interested in this type of thing just look at swgemu.
Logged

room101
Level 0
**


View Profile
« Reply #7 on: June 05, 2014, 03:19:04 PM »

it's been a while, but here is an update, it's an example for a main menu and an intro crawl.
The intro is rendered in the browser in real-time. At least in the tests in my lab. :-)

 YouTube movie




 Image
Logged
room101
Level 0
**


View Profile
« Reply #8 on: August 06, 2014, 06:09:30 PM »

Okay, due to stubbornness issues, I kept on working on this Sisyphus job, and I came up with an example for Character Creation screen



 it's actually interactive, so if you go to http://dhkgames.com/games/ko/ you can start clicking on those icons and the model changes based on the race or the class buttons you press

  of course, this is just an example, and if I may be so bold to refresh everyone's memory, my arms and eyes are not working very well, so I'm not really using them,  except the eyes every once in a while. so for healthy and talented person my work may be just average, but in my case, the lack of access to traditional resources, like healthy hands/eyes may possibly be an above average achievement.

    I wouldn't mind if  my tale would become inspirational for some, I mean, how often you get someone with dysfunctional  eyes and arms to work with 3 DS Max, Photoshop, Flash Builder, and so on. I mean, I can see  at the best of my abilities maximum of 10 lines of code at the time on the screen, and I'm using 3 DS Max with voice recognition software only

 also at this point I would also appreciate some positive feedback, I know the reason I'm working on this project, which is to stay away from insanity that comes from an active mind trapped in a broken body, but some positive feedback may potentially be nice.
Logged
jamiebell
Guest
« Reply #9 on: August 06, 2014, 07:12:16 PM »

Man, this is actually completely awesome. I'm really interested in hearing how you work your software with voice recognition! This is certainly far more than I would be accomplishing in your state, so loads of kudos and thanks for the inspired admiration you've brought out of me!

Crawl looks great, all the UI stuff is put together wonderfully, and I'm excited to see what comes next.
Logged
room101
Level 0
**


View Profile
« Reply #10 on: August 07, 2014, 09:38:45 AM »





 well, I put together a real-time video of me using briefly 3 DS Max, Photoshop, and Flash Builder, as a proof/example. The video is unedited, and it should be enough for you to have a glimpse of how boring is to do things my way, but I don't have any alternative unless my body revive itself or something. :-)
Logged
room101
Level 0
**


View Profile
« Reply #11 on: September 03, 2014, 12:18:12 PM »

A quick update: I randomized the character displayed at the main menu screen, so every time you get there a different random character is being displayed, in the current design approach, the head are related to the character race, and the body are related to the character class, so basically I randomly combine a random head with a random  body, making sure they match their respective gender, so a female head doesn't end up with a male body and vice a versa. :-)

also, I'm considering more and more to actually turn this into an open source framework, because at this point it's pretty obvious to me that most of my work is focused on functionality, and the current content is really just a placeholder, so it would make sense to have a framework ready that anyone can add their custom content, technically, nothing stops you to replace the current Star Wars KOTOR content with anything else, be that your own custom content or if you're planning a fan base game, you can use Mass Effect 3-D resources, or Borderlands, or whatever…
Logged
room101
Level 0
**


View Profile
« Reply #12 on: September 04, 2014, 06:52:23 AM »

Reporting another milestone: considering that  this engine I'm working on consists of  2-D background and 3-D models, one thing I had to learn was how to map the 2-D coordinates from the starling background to the 3-D coordinates where the meshes are located. In my case, my approach was
1. use an orthographic camera
2. make the camera a Front camera, so basically I don't need to move the characters on the Z axis
3. figure out the way so that it gives the player the illusion of motion of 3-D/2-D layers in a consistent way.
 Step 3 above was the missing ingredient, it may be trivial to professional programmers, but it took me a while to figure it out, and now if the player clicks on the road, which is  2-D, if there are 3-D   idle NPCs, you get the illusion of a consistent 2-D/3-D coordinates update.that is the 2-D coordinates X=720,Y=155 show up on the screen in the same location with 3-D coordinates X=720,Y=155,Z=0
 
 the illusion is that the player 3-D character never moves from the 0,0,0 3-D coordinates in the middle of the screen, what actually moves  is the 2-D background, it moves under the player in the opposite direction of the 2-D Point from the mouse click. And also the 3-D idle NPCs 3-D coordinates update only on the X and Y  axis
 
 I apologize if I'm not clear, it may be just easier to see it for yourselves at http://dhkgames.com/games/ko
 
 below some pictures
Logged
akoluthic
Level 0
***



View Profile WWW
« Reply #13 on: September 04, 2014, 12:20:42 PM »

Very impressive to see what you've accomplished so far, and it was interesting seeing your workflow with voice commands.
Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
room101
Level 0
**


View Profile
« Reply #14 on: September 05, 2014, 07:00:34 AM »

Very impressive to see what you've accomplished so far, and it was interesting seeing your workflow with voice commands.

 thank you! "interesting" is one way to put it Cheesy

Another milestone report that I am particularly very, very proud of!. :-)
 In the past couple of days I worked on a dialogue system. For the way it looks I opted on the Mass Effect  dialog wheel.
  For the way it works, I opted in reverse engineering the one used in KOTOR1/2 games
by reverse engineering I mean that I'm using the GUI interface created by TK102 years ago for the original games, export the dialogue, convert it to XML, and I wrote my own XML parser.I'm using  TK102 GUI interface because it's an awesome piece of software, and easy to use, and works perfect for my dialogues, as I don't have to edit XML in plaintext. The current dialogue example is actually a  stripped version of an actual kotor2 dialogue, that I used as a placeholder for illustration purposes

 one of the  novelty that I'm proud of is actually opting for using voice over for the  NPC replies. My design choice was to use online MP3 streaming directly from the online server, it may not work super perfect for everyone because it happens that my online server is hosted in Singapore, and of course it's faster on my local testing lab. also the XML for dialogue entries/replies and their associated  strings are also located on the online server and downloaded and parsed in real-time, well, sort of. :-)
 
 Regardless, I would very much appreciate if you guys give it a try, and see what I mean
http://dhkgames.com/games/ko

 another thing that I implemented is parsing the conditions for the dialogue nodes. In the current example, if you press the comma key, it switches a condition ATTON_JOIN from false to true and vice a versa. If you click on Atton, by default, this condition is false, so the dialogue lines refer to the player as itself, i.e. "I'll be going now.".
  But try this, after you exit the dialogue, press the comma key, the condition will turn to true, so now when initiated again the dialogue will show as "let's get moving.", Because now the dialogue parser sees the conditions and evaluates atton as being part of the party now.
  
 still to do is how to handle enabling quests based on which dialogue node is selected
 
  another thing that was fun to figure out was how to handle and align dynamic text length and width, and I'm hoping my implementation is correct and functional. :-)
  
 Please let me know if you would like to see some samples of the XML files, or the dialogue logic class
 
  below some pictures
« Last Edit: September 25, 2014, 01:54:19 PM by room101 » Logged
room101
Level 0
**


View Profile
« Reply #15 on: September 25, 2014, 01:41:28 PM »

 in the past few weeks I worked on a simple quick bar



 for the way it looks, I borrowed the already existing images from SWTOR, and I did some cropping

 for the way it works, originally I was planning to use Dragon  Age Journeys libraries,which I reverse engineered last summer, but I ended up writing my own libraries, mainly because I use starling and touch, and Dragon  Age Journeys uses old-fashioned mouse events, so I decided to reverse engineer the way it works from SWTOR using trial and error, so to speak. :-)
 as of now, the way it works is very very similar to SWTOR in terms of talents drag-and-drop on the quick bar, the way quick bar slots behave when they have already existing icon or when our empty, etc.

But I still used some libraries from Dragon Age Journeys related to the way talents are assigned to the character based on class/race/origin. This is FYI, and the team behind this game deserves the credits

 for the next milestone, I'm considering  working on a skill tree, And for the way it looks I'm considering Something related to Dragon age 2, rather than Dragon age journeys or SWTOR…

 On a side note, I was honestly expecting more feedback about the dialogue system, I didn't get any at all, and in my personal opinion, it's a really good one, and I would appreciate some sing-alongs that echoe my personal opinion  Grin
Logged
Mete
Level 0
**


View Profile
« Reply #16 on: September 25, 2014, 02:31:42 PM »

hey, I tried to run your game but nothing shows up, Im on firefox on ubuntu, I have flash installed...

Also, what software do you use to recognize your voice? I worked once for a university developing their website, we tried to make the site accessible to everyone, but I could not find softwares to test the site, Orca was one (its for blind people), but we tried to make the software easy for everyone, even people who cant use a mouse and a keyboard, usually developers think that accessibility is something only for blind people..

Also, good job. I hope you get well, brother!
Logged
room101
Level 0
**


View Profile
« Reply #17 on: September 26, 2014, 08:56:36 AM »

hey, I tried to run your game but nothing shows up, Im on firefox on ubuntu, I have flash installed...
I use Firefox on Windows 7 with flash 13  and swf version 16. I don't have the means to test it on any other platform, so I have no idea why it's not working for you  Sad

Also, what software do you use to recognize your voice?
I use Dragon NaturallySpeaking 12, it works pretty well, albeit it's targeted for email writing, not programming or using it with 3-D software, but it is what it is, and I don't really have a choice, and is still helps to move forward with this project, at a snail speed of course  Cheesy
Logged
room101
Level 0
**


View Profile
« Reply #18 on: October 11, 2014, 07:34:05 AM »

Another update: I worked on Skill Tree/Abilities interface



for the way it looks, it ended up with a mixture in between SWTOR and Dragon Age: Inquisition
for the way it works, the current proof of concept is pretty limited in terms of content, uses several different branches( talent lines) per character base class( Jedi and Soldier),but all the branches of the same base class use the same icons in different order, which shouldn't be a problem, as the content can be easily expanded consolidating skills in branches along with their details, and for proof of concept should suffice the way it is

as of now, there is no button to click to open the Abilities window, but you can use K key as a shortcut to open the window. The window also can be dragged around and moved, also there is a close button.

There are the left and right arrows to switch between branches. Clicking on a skill will display information on the right panel, and double-clicking on a skill will unlock it, and if there is a slot available on the quick bar, it will populate with the unlocked skill (except for passive skills). As requirements to unlock a skill, at this point, while still in preproduction, the only current requirement is to unlock the skills in a branch in order, starting from the top, then going from left to right each level down. Of course, this is just a placeholder to prove a concept, can be refined later on production.you can play with it, at the beginning of the game you get  4 available points

in the current design, each skill has  a colored frame, and the color shows the skill type: INSTANT/green, TOGGLED/red, PASSIVE/blue, TARGETED/yellow.

for the next milestone, I think I'll shift back to 3-D from 2-D, and maybe work a bit on bringing some weapons into the scene, and perhaps some basic combat interaction and animation
Logged
theotherone
Level 0
*


View Profile
« Reply #19 on: October 12, 2014, 06:32:40 PM »

Hello, I wanted to let u know that I think this project is amazing. I think u are using Actionscript, and as an aspiring game developer and novice in Actionscript, may I ask if u can provide some details, i.e. what libraries or frameworks are u using, perhaps some information about the images and models used in ur project.Thank you!
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic