-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCatengineNotes.txt
More file actions
53 lines (41 loc) · 1.69 KB
/
CatengineNotes.txt
File metadata and controls
53 lines (41 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
GameInfo.meta data:
ConfigItem slot count
Default scene to load (retail build)
Scene count and names
Music count and info...? I'm not sure, might be easier to just keep it separate
CARC v2 improvements:
hashed filenames (figure out if this can be done on compile time over on the engine)
LZMA or such compression for the file data
CatWad idea:
struct Archive
{
uint32_t Filemagic; //CATB
uint16_t Version;
char[15] ProjectName;
char[12] BuildDate;
uint32_t SectorCount;
Sector* FileSectors;
//in the file, the sector offset and size come after this
}
struct Sector
{
char[4] SectorName;
uint64_t Offset;
uint64_t Size;
uint32_t FileCount;
File* SectorFiles;
}
struct File;
{
//filename, hashed - faster!
uint32_t FileHash;
uint64_t Offset;
uint64_t Size;
}
CatEngine v2 should get a reavily rehauled tool, made using QT
CatEngine v2 should also support data folders in debug builds, for faster testing
For BeepScript v2, I want to:
- Get rid of hashing. I want the index-based fields back, and I want to do that by adding a linker stage - the entity fields are mapped out first, and then linked into actual code on the compilation stage.
- Get rid of the stupid map system for entity memory. Types would instead contain the offset in memory and a size, or alternatively just a type identifier. Arrays and everything would work the same.
- Add typecasting! Implicit casts from float to int and vice versa should be removed from the VM. I want to add instructions that do that instead.
- Globalvars shouldn't be a part of the Game class anymore, and should not be accessed throuhg functions. I need to add a global memory pool for the VM itself, which the entities would access with global->varname