Hey everyone...

So, it's been exactly one year since I formally announced Skyrim CE, a BASIC adaptation of Bethesda's fantastic RPG title. As you may notice after perusing this thread, I presented some lofty goals for myself and plenty of dates that kept getting pushed back. Alpha in January! No, March! Ack, uh, August! Uh, now October...?

Well, October is just about done too, and what do I have to show for it? Basically nothing of tangible value, I'm afraid; I can't even reproduce some of my old screenshots now given that I've reworked the entire engine (and still am). Progress is mostly under-the-hood engine and processing design, which amounts to designing Python scripts and spreadsheets for compiling and managing the heaps of data comprising each quest and NPC and region of the map.


Binary compression? Try decimal compression. Thanks TI-Basic lists for being needlessly weird.
That's a basic idea of how I'm keeping track of everything; those with some experience with BASIC data compression can probably guess what the above formats mean.

But this stuff is boring! Tedious! Of little use to you, fellow Cemetechian who at least has passing interest in this project. I need to get you guys something real, something to play with, or gawk at, or at the very least critique (and no, criticizing my work ethic doesn't count; I'll good enough at doing that myself).

So, what can I give you? After one year of college taking-up far more of my free time than expected, the scope of the project being redone at least six times, and my ability to procrastinate ascending to ludicrous levels, what can I provide?

Well, I'll tell you what: firstly, the GitHub page for Skyrim CE. I've updated it with all kinds of relevant documentation, progress, and a log of everyone here who has helped so far, no matter how small. This will most likely be the best place to get a handle on my behind-the-scenes work, and I'll do my best to keep it updated since it is a nice reference even for me as I work. The page will eventually be where I host downloads and some content creation guides.

Secondly, a date for that darn Alpha: late December or early January. I want it to be a bit of a Christmas present to you all, and I believe it to be attainable at this point. At the very least, I'll have the engine done, though the Alpha may be lacking in the amount of content to actually interact with. I'll plan to make a "trailer" of the first few minutes of gameplay around that time too (akin to the iconic first scenes of Skyrim).

And darn it, hold me to it! I've said it before and totally didn't listen. Get angry! Maybe you don't even care much about this project, but some fake enthusiasm would keep me, well, enthused. Because, to be frank, my discipline for working on personal projects is terrible, but my fear of missing deadlines is intense (and I mean real deadlines, so make them real for me).

I'll close this off with a real apology: I'm sorry guys. I've slacked hard at your expense. I need to step it up.
Oh, and a bit of sheepish apology for posting certain updates in other threads; it was confusing and pointless. Everything relating to mainstream progress on Skyrim CE will remain in this thread from now on for your convenience.

Special shout-out to Argus for resuming this thread, and everyone else for keeping touch.
I've been really excited about this project ever since it was announced, I loved playing huge text-based RPGs on my old 84+ and was sad there were none of any similar scale for the CE yet. This sounds incredible, can't wait for the alpha Smile.
Oh thank goodness this is still in progress! This is one of the most anticipated projects I've had for a while now, maybe the most anticipated. I really wanna see the alpha and check out some neat gameplay. The trailer sounds like a great idea, especially with using iconic scenes from the original.
If the lists you are trying to compress contain a lot of repetitive data, I'd recommend run-length encoding. It's a simple compression scheme to understand and implement, but it's still reasonably fast and can provide great compression given suitable data. Unfortunately I can't help you if this algorithm is not suitable, as it's the only one I understand well enough to implement or explain.

Compression:
Count the consecutive occurrences of each number in the list, and store this count next to the number.
Extraction:
Repeat each number the specified number of times.
Example:
Uncompressed: 5,5,5,3,2,7,7,0,0,0,0,0,2,2,2,4,4,4,4,4,4,4,4,...
Compressed: 3,5,1,3,1,2,2,7,5,0,3,2,8,4,... (Three 5's, one 3, one 2, etc.)

If you don't want to implement it from scratch, I have a version here that you can adapt, although it has some room for improvement.
Argus wrote:
Oh thank goodness this is still in progress! This is one of the most anticipated projects I've had for a while now, maybe the most anticipated. I really wanna see the alpha and check out some neat gameplay. The trailer sounds like a great idea, especially with using iconic scenes from the original.


Wow, that is probably the most lofty praise I've ever heard for this game (especially given that it's a game of mine).
Thanks. I'll be sure to not disappoint.

Coding Enthusiast wrote:
If the lists you are trying to compress contain a lot of repetitive data, I'd recommend run-length encoding. It's a simple compression scheme to understand and implement, but it's still reasonably fast and can provide great compression given suitable data. Unfortunately I can't help you if this algorithm is not suitable, as it's the only one I understand well enough to implement or explain.

Compression:
Count the consecutive occurrences of each number in the list, and store this count next to the number.
Extraction:
Repeat each number the specified number of times.
Example:
Uncompressed: 5,5,5,3,2,7,7,0,0,0,0,0,2,2,2,4,4,4,4,4,4,4,4,...
Compressed: 3,5,1,3,1,2,2,7,5,0,3,2,8,4,... (Three 5's, one 3, one 2, etc.)

If you don't want to implement it from scratch, I have a version here that you can adapt, although it has some room for improvement.


I appreciate the advice, though I can safely say that I have spent literally hours working out the compression schemes I'm using for the various parts of the game. RLE is indeed a very nice method, though I was unable to find a particularly good place for it; NPC data is relatively short (so compression is just digit assignment), while text often lacks repeated digits (so RLE is literally worse than, say, LZSS compression, which is roughly what I'm using).

There might be use for it in region data, since there can be a lot of empty space (i.e. air), but it would likely hurt the load time in exchange for minimal space saved. I'll look into it.
You know, I haven't been working on many projects lately, and I feel like helping with your engine could be something to keep me motivated. I would call myself a pretty decent coder at TI-BASIC, but I haven't handled any assembly. If you want some help, you could pm me the source code and I could check it out. If you're doing fine, then it's ok. Just let me know if I can contribute in any way!
Argus wrote:
You know, I haven't been working on many projects lately, and I feel like helping with your engine could be something to keep me motivated. I would call myself a pretty decent coder at TI-BASIC, but I haven't handled any assembly. If you want some help, you could pm me the source code and I could check it out. If you're doing fine, then it's ok. Just let me know if I can contribute in any way!


You're too kind, Argus. I appreciate the offer, though I don't think now is the best phase in the project to ask for your help. It's a bit tough to work on the engine collaboratively, especially given how much of its design is just in my head or scrawled in poorly-organized notes and diagrams.

But, as I approach completion of the Alpha and beyond, I would greatly appreciate having someone with a deeper know-how of the source code to help with bug fixing; the game would be fully open-source in its own right, of course, but I would look to communicate more detailed docs with other programmers such as yourself. It would speed up development immensely to have somebody else to address issues on GitHub or elsewhere, so when the time comes I'll definitely keep you in the loop for how to help.
That sounds great. I look forward to when I can help out!
Merry Christmas (eve) and Happy Holidays, my fellow Cemetechians. My time is short given the season, but to honor my promise from the last big update it's time to recap some progress.

My university finals and weeks preceding turned out to be far more toiling than I had anticipated, so coding during late November and early December was very slow. But, once those pesky tests were out of the way, I managed to really make some progress: the dialogue interface is almost complete, the crime system is actually working, and many objects got some much-needed compression (read: I dropped a bunch of stats/components that exist in the base game but are way to subtle for me to bother with).

The most notable changes, though, arise in two places: player saves & content creation. It took me far too long for me to come to terms with the fact that TI-BASIC doesn't let you save data to arbitrary lists; you can extract arbitrary data via expr(, but saving is impossible. This deals a bit of a blow to the efficiency and capabilities of the game engine, but it provides an unexpected addition: actual saves. Instead of modifying NPC data as the game is played (and resetting it with a new game), the engine must keep a log of the relevant NPC changes (notably position and dialogue progress) in a known location (read: a save file), relying on the actual data for everything else that doesn't Currently there's only one save file, but given sufficient RAM you could have multiple.

None of this is particularly interesting, and may seem entirely trivial to a different designer, but I like to list out my process and celebrate whenever I think I've come up with something clever. Further improvements are sure to come, of course, and the current state of affairs can always be found on the SkyrimCE GitHub page.



To the second notable source of progress: content creation. That's right, I've actually started designing NPC's. Crazy, right? I've been putting off for so long since a) the engine wasn't done, but more so because b) I didn't yet have an efficient way of actually doing it. That is until I sat myself down and came up with one, thanks in part to Adriweb's TIVars C++ library. Basically, I've got some JSON formats designed that make NPC, item, dialogue, etc. creation pretty smooth; the files are converted into .8xl files via Adriweb's library and my own programs, then shipped off to the calc.



As you can probably infer from the progress I am describing though, I don't have an Alpha for everyone to enjoy right now. January is looking to be the time of release, but given what I've discussed and else has been accomplished, I think I'm still on track. In my head, this project is a much larger monster than it actually is, and while I've got a lot of wonderful TI-BASIC code written it can still feel like wading in the deep end. Or I'm just making a big fuss and the only person I have to blame for this taking so long is myself. Who knows.

Thanks to everyone for their interest in the project so far, and I'll see you all next decade (or, does the decade start in 2021? Discuss in SAX/IRC).
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 2 of 2
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement