
Mar 26, 2003 by Javantea
Update: AS3D Collision Works works! I spent eight hours today trying to find the problem. I finally found that the inBox wasn't working. Wtf? I messed with it and I did this:
Okie dokie. I've been really weird about Making of JF lately. I have been writing these huge monologues but not posting them. I just posted two in one day and I'm writing this now. The main reason for this is that AltSci3D is progressing very quickly. How quickly? I just compiled AS3D into a static library. It is beta as usual, but I really have faith that a person with limited ability could write a program with the AltSci3D engine. There is so little left to chance that it is really nice. But since it's C++ and I built it correctly, it's flexible enough to give the person full control over the models. I am confident that in the next year, I will be able to write a full 3D RPG (Hack Mars, if you haven't kept up with JF) with it. I have already written two programs in five days with it. It is now portable since it uses the SDL library. It is native to Linux, so people who are normally open-source will be happy. I see good things in the future for Linux Games. Native games using the robust SDL/OpenGL engines will make good sense for professional programmers. Adding a faithful following for your game in the Linux market will not only be advantageous, but vital for games in the next few years. If your game is not native Linux or ported side-by-side, it should at least be compatible with Wine. AltSci3D will be one of the many pioneering engines of this shift.
But let's not forget the role that Manga Director will play in Linux development. Being native, it will be a tool that allows artists to pick their platform freely. While Blender or another Linux modeller has still yet to take form, it will not be long until AS3D will support it. Since Manga Director like AS3D Engine will be free and open-source, it will give a boost to 3D Manga. Why am I open-sourcing both of my products? Because I have a third and a fourth product. In fact, I have a fifth and a twenty-eighth product, too. Remember that Javantea's Fate and Hack Mars are the reason why I wrote AS3D and Manga Director. Neither of those will be completely free, sorry to say (JF is free for now since it's new and not popular yet, but when I have a following (~Scene 7), expect a small charge ($5 per 128 pages) for the high quality version). Ayn Rand would say that I should definately charge cash (or rather gold) for Manga Director, since it is a product of my suffering. However, I feel that my needs will be met better if I don't have to spend time on the business side of AS3D and to spend more time on the development side. I'm a programmer and a physicist, after all... If I can get help from other open-source developers working on it, it will pay for itself by making JF and Hack Mars better. If JF and Hack Mars are better, more people will like it better (better for you), and they will be willing to pay (better for me).
Enough wishful thinking. What did I get done today? I got quite a bit done for Collision prediction/detection/response. It actually works 10% of the time at this point, so with some more work it'll be done. 10%? Yeah, it's really acting weird. That's how it goes, I guess. That's always how it works. Some of the toughest problems only took an hour each. Usually they take days that turn into weeks, so an hour per problem is no sweat. But having ten of them makes my day long. I did my laundry and my Electromagnetism homework on top of that, so my day has lasted 10 hours and will last four more. Yesterday lasted about 20 hours. Amazing, really. I believe that I have actually pulled off 160 hours in two weeks, 80 hours per week. 160 hours is a month's work. Don't you wish I worked for your company? It's interesting to hear programmers talk about the man month (which I what I did in the last two weeks). It is simply 4 weeks*40 hours/week = 160 hours. I worked average of 16 hours per day for 7 days straight. Last week was a bit more relaxed due to classes. Some act like working every waking hour is beyond the limits of human possibility. Of course, it may be beyond the limits of computer possibility, since one of my two-week man-months this summer destroyed two computers (which were orginally in working order, the cpu popped). To achieve this, I used: ~80 hours of techno/alternative music, headphones, two liters of water per day (no caffeine), 256 up/down DSL, noodles, tofu, rice, frozen vegis, 8 hours of DVDs (I watched during meals and while I worked), alarm clock, 2 reboots (thanks to Linux stability), and most important of all: 160 hours of fun c++ programming to do. I know that many programmers do 50-60 hours per week, but I don't know many that do 80 more than once per year (or per impossible deadline ^_^). My father works all day and much of the night and has a huge wage. He still can't retire yet after 14 years. He spends only 10% of his income on entertainment. What is the problem? Quarter million dollar house, suv and van = 35% of his income. 50% of his income goes to the government. That leaves 5% of 175k = 8750 per year for his Microsoft stock. And you wonder? How much does a person need for retirement? It's getting up to $2m for him. I decided when I was 13 that I would not follow in his footsteps: working 10-12 hours per day for money that doesn't pay the bills. I would use my knowledge of science and a low budget (no car, no house, no kids) to ensure that I will never have to work when/where I don't want to and I would be happy and comfortable doing it. I've been living that three and a half years only due to loans from the gov't which I hate and from credit cards (which I don't hate) that want to skin me. It's everything I wanted it to be. I can't ask for more. I'm going to get a job when I graduate and I'll pay my debts and I will continue my dream.
Two and a half years ago I wrote JF as an idea of what I would become in 15 years. I added aspects of myself and whatever adventure was on my mind. My mind changed months after I wrote it, but I'm sticking with the plot because it's a good story even though it's a bit rough around the edges. But when I finish JF, I can start whatever else I want*.
*Unless my fans write death threats saying they want me to write more JF. Watching the comments on Evangelion was interesting, it told about how Death and Rebirth is to appease fans who sent Anno Hideki death threats. Sheesh, Evangelion was good, but extreme, no?
I messed around with a wavelet compressor just now. Getting it to compile to linux was as easy as switching all the stricmp() to strcasecmp(). Silly, huh? I compressed JFMo259 to wavelet and back and it came back correctly. My one wish is that it could input an actual file format rather than raw. It's kinda rough to make raw bmp files, huh? You just have to strip the first 54+256 bytes off a greyscale BMP using a hex editor. I used KHexEdit for KDE 3.1. ^_^ The greyscale of that image compressed losslessly to 32.5 kB with wavelet, not bad. Compared to the same image in PNG (not apples and oranges, really) which is 20.9 kB. It's not that bad, right? How would it do on an RGB or a gourand shaded model? That's what I want to know. And how would the high-quality lossy compare to similar size JPG? And how would the low-quality lossy compare to similar size JPG? And how would the size of the low-quality lossy compare to similar quality JPG? These are the things I look for. When I test out the speex codec, I look for what it would be best used for. I compare it to 8 kbps 8kHz mp3, log coding, and ogg. The things that low-quality vbr Speex is bad for are: anything with a non-human sound (explosion, door close, beep, etc), mumbling, and screaming. The wideband is pretty good at these things and is pretty good at compressing them also.
Why am I messing around with Speex? I have two purposes. The first is dubious. You see, the most secure form of encryption is obscurity (obsecurity). If the NSA doesn't download the open-source speex codec and manually open it up and listen to it (their voice detectors don't work with terribly low quality stuff, so humans are used). If I wanted better encryption, I'd make my own format that was unknown and undocumented, extremely hard to understand and use. Or I could just encode it in an early beta of speex that is unsupported by the release candidates. I wouldn't publish the source and I would encode it right from the sound card (perhaps even bypassing RAM). I could publish as much as I wanted of the encoded audio and no one would ever be able to hear it but me. PGP, ha! But what use do I have for audio that I have to speak into my mic to be strong encrypted? Wouldn't you like to know. ^_^ Funny that I'm saying all this on an open channel, right? The reason is quite odd: I have nothing to hide as long as my voice is free.
The second reason I'm using Speex is because it is perfect for Hack Mars. Hack Mars will not be about bombing, shooting, punching, kicking, or even ordering soldiers to do such. While most games are about exactly these things, Hack Mars will be about talking and doing. The player will create, talk, work, and do positive things because the player will be a hacker. My friends' eyes went buggy when I said that there isn't any shooting. The idea of a game that lacks large-scale murder is not in their normal taste. But DDR lacks murder and is a hit. Flight sims lack murder even if you pull a sep 11. Race car sims lack murder even if you crash into your opponent at over 200 MPH. Even though many people feel sports are violent, sport games lack violence entirely. Many adventure games lack murder, too. But if you lack murder you need some other quality. You need a story line or puzzles or action. Hack Mars will have a story line and a bit of action. It will have goals that are kinda like puzzles. It will hopefully have have five to ten hours of audio in the form of electronic music and speech. The plan right now is to have it be downloadable. If I use speex for 8 hours of speech at ~4-8 kbps, it will be... (8/8)*60*60*8=14-28MB. Of course, it's 8 hours, so if I can do something like a content on demand thing, it will work perfectly for low-bandwidth people.
You're probably thinking: get the engine done first. Well, that's true, but with the introduction of a stable collision system (~5 hours), Hack Mars' program is 60% done. When I finish full tar.gz support (~2 hours), I can call it a stable, functioning engine. When I add character control, scripting and simple AI (~5 days), it will be a robust 3D engine. When I compile it under Win32 (~2 hours since the code uses libSDL), it will be a portable engine. When I add Speex and Ogg sound support (~2 days), I will have everything for a simple game. I'm thinking that adding python scripting is the next logical step after that to make Hack Mars, since it will be story-based with missions (but also gives the player free reign on what to do). That will take about a month, I suppose. When the engine is done, I just need data. I have the JF models and adding to that would be good, but really they all just needs animation for a decent beta. Then I can write the script (still not even a 1/4 done since it's a huge project and is behind the engine in priority). Then I add sound and speech. I'll need to hire someone for voice-overs, so that will be a task. If I can actually use my summer wisely while I have a well-paying job, I can do it. Of course, that's what I said about JF last summer, but I used it very poorly (mainly looking for a job... grumble, grumble). *shrug* So Hack Mars is taking off. The collision system has nothing to do with Manga Director, so I'm officially working on Hack Mars starting 02/19/2003 with only 10-20 hours spent on it before this time. Of course, if I count that, I am counting having spent thousands of hours on JF, which isn't a spectacular use of time. Permalink
-
Leave a Reply
Comments: 0
Leave a reply »