Colobot Forum - International Colobot Community
Compilation ok (0 errors) - Printable Version

+- Colobot Forum - International Colobot Community (https://colobot.info/forum)
+-- Forum: [Archive] New forum (2015-2019) (https://colobot.info/forum/forumdisplay.php?fid=76)
+--- Forum: Colobot: Gold Edition Development (https://colobot.info/forum/forumdisplay.php?fid=62)
+---- Forum: Game Engine & General Talk (https://colobot.info/forum/forumdisplay.php?fid=63)
+---- Thread: Compilation ok (0 errors) (/showthread.php?tid=728)



Compilation ok (0 errors) - melex750 - 02-23-2016

What's the level of interest for something like this?:

[Image: CBotInclude.png?dl=1]
Path defaults to ai/ but also uses %cat%, %chap%, and %lvl%
codes, plus two others for the players program folders.

It uses current working directory if Colobot is not there.

Includes error codes, #pragma once, and some foolproofing.

It works exactly like CBotToken::CompileTokens() + file input.

Has it's own class with a simple interface, changes to the game are minimal.


RE: Compilation ok (0 errors) - krzys_h - 02-23-2016

https://github.com/colobot/colobot/issues/238
I wanted to wait for CBot refactoring with this, as we may have a better idea on how to use functions from multiple files in CBot. Doing this now makes no sense as the editor doesn't support opening multiple files at once.


RE: Compilation ok (0 errors) - tomaszkax86 - 02-23-2016

To be honest, I don't like the idea of #include in CBot. CBot already supports public functions and classes, which provides pretty much the same needed functionality and can be easily extended in the future. There were discussion in the past about possibility of adding "program libraries" to some buildings for storage, so other robots can access functions and classes defined in them. #include would just duplicate a lot of code.


RE: Compilation ok (0 errors) - melex750 - 02-23-2016

Quote: a better idea on how to use functions from multiple files
That sounds interesting.


Yeah, a real editor that handles multiple files would be nice.
I'm using an external editor with line numbers, code navigation, and search.

The character limit was my main motivation here, 700 or so lines just aren't enough.
Loading 10 programs into the bot works, but they have to be compiled in a certain order.

I'm having so much fun with my huge code battle program, I just had to tell somebody.


RE: Compilation ok (0 errors) - krzys_h - 02-24-2016

If you want larger programs, it's a lot easier to just change the constant that defines that limit Wink


RE: Compilation ok (0 errors) - tomangelo - 02-24-2016

From the other hand, such program may won't work with official builds. Anyway, we'll have to manage something, Code Battles will have quite big files (imagine all these programs after a few years, when more and more complex AI will be implemented there) and 700 lines for whole program might be quickly a serious limit.


RE: Compilation ok (0 errors) - krzys_h - 02-24-2016

The limit is actually 20000 characters or 1000 lines


RE: Compilation ok (0 errors) - melex750 - 02-25-2016

The last time I hit the character limit at 701 lines, the editor
cut off at 20637, which I thought was strange, I knew it was set to 20000.

It made my LevelController script look like crap when I had to
strip out comments, tabs, and LF, just to finish it.
It also forced me to do some DRY clean up, so that was good.
I wanted to do more but LevelController command takes only one script, as far as I can tell.

Other motivations were:
- code re-use.
- cleaning-up the program folder.
- writing large programs that are easy to navigate.
- random bugs when using the game's editor.(might be fixed already)
- virtually no limit to program length.
- just to see if the game would accept a large program.

- it was becoming impossible to improve my code battle program.
    fix or improve one part of code(recompile 10 programs).
    add a function, works good, start a new codebattle,
    <error> <error> <error> <error> <error> <error>.

After my first failed(& ignorant) attempt at #include,
the second version, written from scratch, is way better.
I've been using it for more than a month already.

Anyway, I'm not trying to promote the idea, I'm just communicating.


RE: Compilation ok (0 errors) - tomaszkax86 - 02-25-2016

Program length limit should be removed. Static limit is not a good thing. There's no theoretical limit defined in CBot itself so the editor and CBot compiler should be able to process big files if necessary. Still, very large programs are not a good idea.


RE: Compilation ok (0 errors) - melex750 - 02-25-2016

For reference, my codebattle program + shooter program are currently 46kb, & 9719 tokens.
I broke it into separate programs to be organized and avoid editor bugs(probably fixed already).

That comes with the strict limitation of only referencing functions and classes
compiled previously in program storage, in other words:

If I wanted to share my codebattle program, I'd have to number the files
and provide stupid instructions on how to make sure it works.

This puts your main program at the bottom of program storage.(a minor inconvenience)

I suspect that most codebattle programs wouldn't reach 80kb, including mine.