room101
|
|
« 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
|
|
« 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 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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
|
|
« 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 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
|
|
« 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
|
|
|
Logged
|
|
|
|
Mete
|
|
« 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
|
|
« 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 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
|
|
|
Logged
|
|
|
|
room101
|
|
« 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
|
|
« 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
|
|
|
|
|