afritz1 / OpenTESArena

Open-source re-implementation of The Elder Scrolls: Arena.
MIT License
988 stars 68 forks source link

I can't launch the game #71

Closed ghost closed 7 years ago

ghost commented 7 years ago

My game path is C:/Games/OpenTESArena and there is the installed 1.06 ARENA folder in the data folder as well as the eatpaws. The path seems to be the same as written in the options txt file too.

Console: Game: Initializing (Platform: Windows). KVP Text Map error: Boolean "false" must be either True or False.

Pressing enter closes the console so it doesn't seem like I could type anything.

afritz1 commented 7 years ago

Hi,

My options.txt reader is pretty strict, so you'll need to make sure all the boolean values in it are uppercase (True/False). I should make the error messages more informative sometime since I can't tell which key value pair in your options.txt is causing the problem.

afritz1 commented 7 years ago

I relaxed the requirement for boolean naming in commit 34c2f9d0eb5b5e666acbfe670943c63d63e78bdc, so fewer users should encounter this problem in the future. You can use "true" and "false" in options.txt now.

ghost commented 7 years ago

Thanks! it worked. Wow the game looks very nice and slick. What engine are you using? do you plan on using Unity?

afritz1 commented 7 years ago

I'm glad you can run it! I'm actually writing my own engine from scratch in C++11. The renderer is currently a 2.5D software ray caster based on Lode Vandevenne's tutorials. I decided not to use Unity because I wanted the experience of building something big from the ground up, and it's going pretty well so far.

ghost commented 7 years ago

A little unfortunate for the limited customization but I am curious to see the final result.

afritz1 commented 7 years ago

There won't be much in the way of customization for a while yet, but I just thought I should keep the scope manageable for my first real game project. I'm putting off mod support until more of the actual components of the game are written (for good reason). I am surprised though that we were able to implement something difficult like the PKLITE executable unpacker, so I'm optimistic that we'll be able to figure out most if not all of Arena's mysterious formats if we keep chipping away at them. Once there's a solid foundation, we'll be able to think more about other features like modding and customization.

Unity definitely makes modding easier, but there are many other game engines that can be easily modified as well (like OpenMW). I'm excited to see where my project ends up, too, but I would expect there to be several more iterations of the code along the way first.

abelsromero commented 7 years ago

I am surprised though that we were able to implement something difficult like the PKLITE executable unpacker, so I'm optimistic that we'll be able to figure out most if not all of Arena's mysterious formats if we keep chipping away at them.

:+1: Btw, just in case you don't know, some googling shows that others have done similar work. Maybe you can reuse some (with proper permissions of course). For instance, https://github.com/Dysperia/ArenaToolBox-BSATool

ghost commented 7 years ago

.voc files can be modified with GoldWave, its free. Direct Download BSATool link: http://www.projet-french-arena.org/files/ArenaToolBox_win32bit.zip

Would it be possible to do scripting mods with your engine? Is it possible to just use OpenMW's engine or port this to Unity?

afritz1 commented 7 years ago

@abelsromero, yeah, I know of that tool and WinArena. I'm pretty sure we can already load all of Arena's textures (.CFA, .CIF, .DFA, .IMG, .RCI, and .SET). We still need some data formats like .INF and .MIF for generating the cities and dungeons. The wilderness generation (.RMD format) is still a mystery, but I think it's at least partially chunk-based, kind of like if Minecraft was flat everywhere. I've been adapting some existing open-source code to C++11 when I can.

@Valen4, .VOC files are on the to-do list, and libsndfile is the only open-source library I know of that can decode it, so I'm not sure if we would be using GoldWave.

I don't think we want to use OpenMW's scripting engine because it's tailored to that specific project. This has been brought up on the OpenMW forums before and it usually doesn't go anywhere because of how different the specifications for the two games are. I don't have any experience with writing a scripting engine yet, either.

I don't plan on porting this project to Unity mostly because I want to keep control over all the libraries and low-level details, but also because a project cannot be completely FOSS if it depends on Unity (it's not a huge gripe of mine but it was pointed out to me by various Linux users). So in that respect, I want to lean towards the OpenMW way of doing things instead of the Daggerfall Unity way.