Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - NancyGold

Pages: 1 ... 3 4 [5] 6 7 ... 13
61
Offtopic / Re: What happened to Blizzard?
« on: June 07, 2021, 05:49:41 pm »
wow

Not just WoW, but the general bureaucracy, wrong priorities and mismanagement, resulting in key talents leaving or just losing passion.


62
Offtopic / Re: What happened to Blizzard?
« on: May 16, 2021, 08:15:49 pm »
In one year, fans have patched the campaign adding some of the stuff Blizzard has originally promised.

Unfortunately there is just so much one can do without the source code available. I.e. no way to fix that broken UI layout with text covering the middle of viewport, or add proper campaign menu.

Fans also made a Warcraft 1 remake in the engine: https://www.youtube.com/watch?v=0CkG40GpUuw

Something one would have expected Blizzard itself making.


63
Offtopic / Re: Footage of real XCom ufo interception.
« on: April 16, 2021, 06:26:48 pm »
No 100 + 1, you only get ride of driver. If we assume 24/7 then at max 100+5 will be replaced by one tractor. To replace million you need "million" tractors with or without AI.
Given the auto-maintenance and manufacturing of the tractors, it will also get rid of the entire supply chain behind the tractor, and all the people servicing that chain (from hairdressers to house construction workers). That is what all these AI apocalypse movies are about. And large part of the world population is still employed in these basic easily automated jobs. I expect huge social unrest and the governments going even more nuts, before the humanity either collapses or evolves to the next stage with all the production automated.

Anyway, military publishes more UFO evidence:
https://www.huffpost.com/entry/ufo-uap-navy-pentagon-confirmed_n_607911a5e4b0bc5a3a54cac2
>Pentagon Confirms Leaked Photos, Video Of Unidentified Flying Objects


64
Offtopic / Re: Alpha Storm (1997 DOS game)
« on: April 16, 2021, 12:54:45 pm »
Very cool -looks little bit like crazy mix of Xcom, Daggerfall and Star Wars  ;D
but need to say that this fighintg with plasma swords seems very repetitive...

I guess the game is unfinished. I.e. the intro movie doesn't even have sounds.

The game was designed by British programmer Anthony Taglione, who is know for several ambitious games, like https://www.mobygames.com/game/four-crystals-of-trazere

and https://www.mobygames.com/game/bloodwych which was basically two player elder scrolls style RPG, long before people hacked in coop support into Skyrim.

No idea why, but most of these complex multi-system video games were designed by Brits, like Peter Molyneux. Americans were always like "too complicated and not tied in with a Hollywood movie. It won't sell."

65
Offtopic / Re: XCOM Inspired Fantasy Game
« on: April 14, 2021, 04:51:47 pm »
Westwood Tiberian Sun models are hollow inside and have holes in the bottom. That makes it non-trivial to properly calculate normals for them (without patching the holes manually). Yet the normals are stored inside these VXL files (in the form of indices into one of the normal tables). All that makes me believe that, that Westwood people haven't used any voxel editor to create these models, but instead rendered them from the usual 3d mesh, created with the old boring polygonal editor. There is also no existing footage of the Westwood voxel editing tool.

On the opposite side, Koen van de Sande created actual voxel editor for C&C ( https://www.tibed.net/voxel ), which modders used to draw a ton of new voxel models for the game. It is a rather tedious process, since the editor has no real 3d view, instead showing sections of the model, so modders have to set voxel individually. As I understand, that project was part of his BSc diploma: http://voxelcoloring.sourceforge.net/

Apparently that was one of the first true voxel editors in existence.


66
Offtopic / Alpha Storm (1997 DOS game)
« on: April 14, 2021, 12:30:41 am »
Really obscure late DOS game, nobody heard about.
The concept is similar to XCOM, but with its own twist:
Instead of a tactical battlescape, there is an first-person exploration of the alien ship interiors (randomly generated).
Instead of a single planet, there is a galaxy.
Instead of the martian alien base, there is an alien mother ship destroying stars.


67
Offtopic / Re: XCOM Inspired Fantasy Game
« on: April 13, 2021, 10:43:35 pm »
For some reason I believed that the original 1995 Command & Conquer had voxel sprites, because these tanks rotated rather smoothly and had voxel looking shading. It didn't. Instead it used RLE compressed sprites with a lot of angles, and in case of tanks, turrets were drawn separately. Only Tiberian Sun had voxels, and just for a few larger units and aircrafts.

68
The game punishes player for not intercepting UFOs (and especially for failing terror missions), after all that is the XCOM's stated goal. The engine does simulation, counting how many UFOs succeeded on their mission, which include infiltration and finding space for the new base. And if the "alien success" threshold gets over certain amount, countries withdraw funding, and then it is game over. I don't think it is necessary to recover the UFO - enough to just shot it down to prevent it from succeeding.

69
Offtopic / Re: XCOM Inspired Fantasy Game
« on: April 13, 2021, 03:51:42 pm »
The progress is slow, but steady. Most of the work is on the New C language, which now includes most of the C++ features and few of its own, yet in a way that makes them useful for my programming style. I.e. I want to do IntVar[bit] to test if a bit is set in particular variable, without introducing a standalone bitfield struct, and New C allows me defining [] for builtin types. I also prefer composition over inheritance and macros over templates, but C++ isn't really about it.

Anyway, I have implemented loaders for the Ken Silverman's Duke Nukem engine voxel files. His format, instead of octrees, uses RLE and has visibility mask for each voxel column, allowing to render voxels really fast on 90ies hardware, with the limitation being that voxels are axis aligned (most older games had hacks for rendering axis aligned stuff). Still very impressive. Would be cool to see a Duke Nukem mod for OXC.

Next target is refactoring the Symta lisp implementation to support JIT, and then continuing to work on the game. Without JIT, it the complexity gets out of control (I can't reuse the interpreter core for ingame data) and I can't debug the game while it is still running, having to rely on stack traces.


70
Offtopic / Re: XCOM Inspired Fantasy Game
« on: March 26, 2021, 03:36:19 pm »
MS created C++/CX or C++/WinRT that allow to interact with C# types (exactly with CLI). In theory this could work for Unity too.
At leasy you run pure C# code that simply call C++ dll using p/invoke.
In recent C++20 standers you could write something like this:
Code: [Select]
foo({.x = 5, .y = 6});

I believe Unity uses its own implementation of C#, and I'm not even sure if there is any proper FFI interface. Unity is like a walled garden, and its users expect everything to be in Unity format. Unreal Engine appears to be a much better alternative, since one can use any language with it. I think there is a need for a more general source code marketplace, like stock photo sites. No idea why none have appeared in all these years.

71
Offtopic / Re: Zodiac Legion, another fantasy Game inspired by X-COM
« on: March 25, 2021, 05:50:10 pm »
Looks like it is completely different from my attempt :D

Will it have leveling up and classes, like Final Fantasy Tactics? If yes, how are you planning to mitigate experience grinding?

72
Offtopic / Re: XCOM Inspired Fantasy Game
« on: March 25, 2021, 05:44:05 pm »
Thanks! I did play all the AoW (except 3) a lot actually. I am sorry about your refugee camp issues. It is a real disgrace that we in the West created so many, then handled the problem in such an inhuman way. I hope your situation will get sorted soon enough. In which country are you now? The Netherlands?
Yeah. I'm in NL for now. I believe Age of Wonders developers are Dutch, and Dijkstra too! :D
Fallout 1 and 2 also had hexes and rectangular walls.

Regarding selling your code, you can just call it an engine, and you should be able to do so, but with everyone using Gamemaker, Unity or Unreal Engine, it is harde to compete (the one I use, Moai, got completely destroyed by the competition of Unity, because it lacked tutorials, documentation, and things like the asset store, which come with a large user base).
Well I doubt you can use C/C++ with Unity (it is C# only) and a macroprocessor is not really a video game engine, but a general text processing utility (like a regex library), which you can use for all sorts of things.
For example, if you want unique numeric ids in your config file, you can write
Code: [Select]
    #count 0  //a variable like macro
    #next() {#<count> #<count=#[count+1]>} // define a function like macro
    next() //expands into 0
    next() //expands into 1
That can also be used to implement gensyms in C/C++

Then plain C/C++ doesn't support optional and keywords arguments, yet one can still have them using macros:
Code: [Select]
    void foo(int x, int y, int z) {...}
    #foo(x,y=123,z=abc) foo(x,y,z)
now foo macro will supply the default values for y and z,
and user can also call
Code: [Select]
foo(456,z=789) too supply argument only for z

it is a single header library, so it can be piggybacked to any text input.

73
Offtopic / Re: XCOM Inspired Fantasy Game
« on: March 25, 2021, 01:34:20 am »
Ok. Refactored the macroprocessor into standalone library around 2000 sloc. Now it can be used to preprocess say Lua code. Dunno if anybody will buy it at itch.io and I have no idea where one can sell C/C++ code, or what price to set for it. Usually people just give it free of charge for no reason or attach some crazy copyleft license like GPL. Still it is in C99, so could be used with any project, even to generate HTML pages from templates. I personally will use it to preprocess the game code and config files. Sometimes it is just so much easier to do a lexical macro, than a syntatic one - and generally they solve orthogonal problems than happen to have similar subsets.

Code: [Select]
New C macroprocessor improvements over the original C preprocessor.
- Succinct declarations: instead of `#define PI 3.14`, we now have `#PI 3.14`
  `#if #SYMBOL` instead of `#ifdef SYMBOL`
  #once, instead of `#pragma once`
- Calculate arbitrary functions!
    #fac(n,x) #if n>0 fac(#[n-1],#[x*n]) #else x #endif
    fac(10,1) //factorial of 10
- Ability to redefine punctuation, like `+` and `-`, and to do it only in the
  specific context of another macro.
- Nested macros with different scopes, just like normal C variables.
    #x 123
    x //expands into 123
    #{
      #x 456 //shadow the x defined above
      #<x=#[x+1]> //increment x by 1
      x //expands into 457
    } //interior x gets out of scope
    x //expands int 123
- No need to escape newlines with `\`:
    #foo {
      printf("hello");
      printf("world");
    }
- Much easier to use variadic args. For example:
    #last([xs],x) x
  picks the last element of the arglist.
- Macros can be defined anywhere, not just at the start of line.
  For example:
    #x 123
    #y #z{456} x z
    y
  will expand into `123 456`
- Macros can be expanded inside of strings.
- Macros arguments can be inserted into strings:
   #foo( x, y ) "#x+123+#y"
- Allows calling an external program with arguments. For example:
    #+ -
    #(echo "a+b")
  will expand into `a-b`: first external `echo` command is called with "a+b"
  Then then its stdout is being macroexpanded.
- Special builtin command #(say ...) printing to stdout. Useful for debugging.
- Nested / * * / comments.
- When a function-like macro invokation has no () arglist,
  NCM takes as the arguments everything up to the newline or the //-comment
  That would allow user the create elegant looking DSLs.
  Or use NCM to preprocess assembly files:
    #myopcode(a,b) {...}
    xor ax, ax
    myopcode bx, ax
- Available as a single header library and can be used to preprocess
  other languages, like GLSL.
- Escapable comas in arg list.
- A way to change `#` to another character, if you use the macroprocessor to
  preprocess a language where `#` is used for, say, comments.
- Auto adding extension ".h" to files without one.
- And much more!

74
Offtopic / Re: XCOM Inspired Fantasy Game
« on: March 22, 2021, 07:48:26 pm »
Hey!
That's a pretty impressive game project! I really like the Amiga/Atari aesthetics, and the flooding is impressive!



I am working on another pretty different XCOM inspired fantasy game, and I decided to go with hexes for the same reasons you recommended them, more or less.
What triggered me the most with squares was that formations don't work if both sides are not facing each other from the main directions, which should happen a lot in a game with large maps and fog of war (because you cannot have proper Zones of controls with squares).

However, it has been a huge pain to make walls and buildings, so I am still really torn about the issue. It really makes the wall tiles hard to read in term of blocking movement and LoS.


Spoiler:
The NW->SE walls don't follow the hexagonal lines which causes all sort of issues.
I should have gone with natural caves instead of constructed walls.

So I am not sure you really were wrong about picking squares.

Astonishingly good looking project! As for implementing the hex tiling, check Age of Wonders games. Especially the first AoW, which had walls for castles and dungeons.

I myself currently got dragged away with all the refugee life issues and the camp management now threatening me for filming a fight (they believe that all happening in the camp must stay in the camp). Although I have finished my own C-like language (called NewC), featuring an extended macro processor, which fixes all the issues impeding me from using the old CPP. Had to do that, since I really dislike C++, but still for the voxel editor I need custom types, like vec3 and bounded checked arrays with O(1) push. I can't do the voxel editor in Symta, since performance is really so critical. The NewC is not so much a compiler, than a very tricky rewriter (I'm not that crazy to implement my own optimizing compiler), replacing `vector.x` with `vec3_get_x(vector)` and `auto` with proper types. Obviously it is totally incompatible with C++, doing the right thing in the wrong way, breaking every single C++ textbook good practice, and encouraging the use of macroprocessor instead of templates. In fact, that is one of the reasons I had to re-implement the macroprocessor, because the C's one, while turing complete, is just too clunky to use for anything beyond basic `#define PI`

Anyway, I have rewrote the core voxel format several times, implemented the OBJ importer/exporter, developed a few voxel editing techniques, and got some insight into deforming the voxel models without SDF. Which I could use maybe for Spell of Mastery 2, since it really requires GPU.

TLDR: parsing C using C is much easier than writing a voxel editor, which is much easier than implementing a video game. Like an order of magnitude easier.


75
Offtopic / Re: XCOM Inspired Fantasy Game
« on: December 31, 2020, 08:07:05 pm »
Hi, folks!

I'm back in action. But still working on the voxel editor part. In fact, I had devise an entire new programming language based of C, but adding features from C++, because C is just unsuitable for the linear algebra stuff and refactoring, yet I don't want to use C++. I also have my own ideas on how to implement inheritance, so it will be more useful. In future I will rewrite the Symta runtime in this C extension. For now, I need to maintain several versions of the same SVO structure, which is best done with classes. It also supports `auto` and `typeof`, even for non GCC compilers, so now I can be sure these non-standard features are always available, since I control them. In fact one use of such meta-compilers is to maintain compatibility across the different compilers and the different versions of the same compiler. For example, GCC is well known to break compatibility on major version changes.

Anyway, parsing GCC-compatible C code and then patching it back was some experience. It is not a CFront-style compiler, but actually a patcher, since it doesn't generate code, but patches the expressions inside the existing C-code. I had doubts it will ever work with the recursive structures, but it worked rather smoothly, although with some hacks. Hope I will finish the voxel editor soon, or at least implement enough functionality to create some cheesy intro movie for the game :D

Here is for example the AST walker extracting declaration:
Code: [Select]
sym_t *pg_declof2(cnode_t *n) {
  if (!n) return 0;
  if (n->id == N_BLOCK) { //for GCC block expressions
    return 0;
  } else if (n->id == (IDENTIFIER|N_TERM)) {
    sym_t *s = lookup(n->text);
    if (s) {
      return s;
    } else {
      return 0;
    }
  } else if (n->id == N_EXPR) {
    return 0;
  } else if (n->id == N_BEXPR) {
    for (; n && n->id==N_BEXPR ; n = n->tail) {
      sym_t *decl = pg_declof2(n->head);
      if (decl) return decl;
    }
    if (n) {
      return pg_declof2(n);
    }
    return 0;
  } else if (n->id == N_DECL) {
    return 0;
  } else if (n->id == N_UNARY) {
    char c = n->head->text[0];
    if (c == '*') pg_declof_ptr_lv--;
    else if (c == '&') pg_declof_ptr_lv++;
    return pg_declof2(n->tail);
  } else if (n->id == N_INDEX) {
    pg_declof_ptr_lv--;
    return pg_declof2(n->head);
  } else if (n->id & N_TERM) {
    return 0;
  } else if (n->id == N_SIZEOF) {
    return lookup("_cext__int");
  } else if (n->id == N_CAST) {
    cnode_t *type = n->head->tail;
    cnode_t *decl = n->head->head;
    yyltype_t loc;
    memset(&loc, 0, sizeof(loc));
    cnode_t *ident = cnode(IDENTIFIER|N_TERM, 0, 0, &loc);
    ident->text = strdup("_cext__tmp");
    cnode_t *d = cnode(N_DECLARATOR ,ident, decl->tail, &loc);
    return push_decl(type, d);
  } else if (n->id == N_LIT) {
    if (n->head->id == (I_CONSTANT|N_TERM)) {
      return lookup("_cext__int");
    } else if (n->head->id == (F_CONSTANT|N_TERM)) {
      if (n->head->text[strlen(n->head->text)-1] == 'f') {
        return lookup("_cext__float");
      } else {
        return lookup("_cext__double");
      }
    } else if (n->head->id == (STRING_LITERAL|N_TERM)) {
      return lookup("_cext__char_ptr");
    } else if (n->head->id == N_SIZEOF) {
      return lookup("_cext__int");
    }
    return 0;
  } else if (n->id == N_DOT || n->id == N_ARROW) {
    sym_t *s = 0;
    int sptr = pg_declof_ptr_lv;
    pg_declof_ptr_lv = 0;
    sym_t *l = pg_declof2(n->head);
    int expr_plv = pg_declof_ptr_lv;
    pg_declof_ptr_lv = sptr;
    if (!l) goto dot_end;
    char *name = n->tail->text;
    char *tname = pg_typename(l->type);
    if (!tname) goto dot_end;
    char *mname;
    int plv = ptr_level(l->decl) + expr_plv;
    if ((n->id == N_DOT && plv != 1) || (n->id == N_ARROW && plv == 1)) {
      mname = sjoin3(tname, "_mf_", name); //field accessor
      s = lookup(mname);
      free(mname);
      goto dot_end;
    }
    mname = sjoin3(tname, "_m_", name);
    s = lookup(mname);
    free(mname);
dot_end:
    return s;
  } else if (n->id == N_CALL) {
    if (n->head->id != N_DOT) return pg_declof2(n->head);
    n = n->head;
    sym_t *l = pg_declof2(n->head);
    if (!l) return 0;
    pg_declof_ptr_lv += ptr_level(l->decl);
    char *name = n->tail->text;
    char *tname = pg_typename(l->type);
    if (!tname) return 0;
    char *mname;
    sym_t *s;
    mname = sjoin3(tname, "_m_", name);
    s = lookup(mname);
    free(mname);
    if (s) return s;
    return 0;
  }
  return 0;
}

Pages: 1 ... 3 4 [5] 6 7 ... 13