Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Vapourware Zodiac Legion - X-COM and dungeons

Mustawd

Guest
Really glad you're making progress. Keep it up man!
 

Reinar

Scholar
Joined
Oct 20, 2015
Messages
145
I've read all pages just now, despite looking at the name of the topic frequently when reading this subforum. I was avoiding it because of the name. Zodiac Legion doesn't sound good to me, but I don't like the word zodiac as it is, so my opinion has little weight. The topic was very informative, really enjoyed some of your under the hood technical and mechanical stuff. Also, it was quite funny reading your (now quite old) analysis of 3D6 vs D20 here, and then going to the fresh Tyranny review topic and reading about the same damn thing there :D

I can't help myself but I have to drop by a small note regarding the problems with level building on hexes on the first page: looking how Fallout did it would help you. The basic wall tiles there are in 2 versions: one long for odd hexes and short ones for even hexes (or the other way around, depending on the axis). But it's too late now, whatever, you did it your way.

Ok, now back to the present. Art looks amazing, gameplay looks intriguing (just the fucking name, dammit :D). It may be the first kickstarter I will participate in.
 

Nathaniel3W

Rockwell Studios
Patron
Developer
Joined
Feb 5, 2015
Messages
1,226
Location
Washington, DC
Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming!
Looks great! I didn't read all 10 pages up to here, but what I've seen is pretty impressive. How big is the team working on this? Can you tell us what your budget is like? Are you paying people through profit-sharing?

For the nighttime, darkness, moonlight, firelight issue, I'd like to make a suggestion: Give your characters another sprite layer for the 2D equivalent of built-in fresnel sidelighting:

lightingprogression.jpg


Excuse the derp eyes. Not my pic.

I don't think it would be a huge amount of work. You could draw white pixels over the characters' edges, black everywhere else. And then in your levels you could have a lighting color, say orange when you're in firelight, that you multiply by the white pixels and draw over the top.

Or you could do things the RPG Maker way: When your character approaches a light, increase the contrast to wash out the highlights and darken the shadows, then multiply by the light's color.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I've read all pages just now, despite looking at the name of the topic frequently when reading this subforum. I was avoiding it because of the name. Zodiac Legion doesn't sound good to me, but I don't like the word zodiac as it is, so my opinion has little weight. The topic was very informative, really enjoyed some of your under the hood technical and mechanical stuff. Also, it was quite funny reading your (now quite old) analysis of 3D6 vs D20 here, and then going to the fresh Tyranny review topic and reading about the same damn thing there :D

I can't help myself but I have to drop by a small note regarding the problems with level building on hexes on the first page: looking how Fallout did it would help you. The basic wall tiles there are in 2 versions: one long for odd hexes and short ones for even hexes (or the other way around, depending on the axis). But it's too late now, whatever, you did it your way.

Ok, now back to the present. Art looks amazing, gameplay looks intriguing (just the fucking name, dammit :D). It may be the first kickstarter I will participate in.
For some reason, I didn't get the notification there was an answer to the thread, then got stuck on horrible holiday connection.
Thanks for your encouraging message!
I am open to a new name for the game. I am quite bad at naming, and I have been unconvinced by my daughter's suggestions so far, so any outside help would be appreciated :)
It was supposed to be some kind of homage to Saint Seiya (Knights of the Zodiac in French), because this anime was both cheesy and awesomely cool back in the day, but it was only popular in France (and Japan/Brazil), so it might not be so good a start.

I need to add an article on why I went to 32 D32, but I might change it to a raw distribution if I find it easier to compute for the AI.
Regarding the solution for hexagons, it works well perspective wise, but it might make things harder for the AI as rooms won't be symmetrical (so you cannot just apply a rotation to have 4 less situations to worry about). Next time, I'll design the AI first :D

Looks great! I didn't read all 10 pages up to here, but what I've seen is pretty impressive. How big is the team working on this? Can you tell us what your budget is like? Are you paying people through profit-sharing?

I am working alone on this, but I had very talented freelancers working with me for the sprites:
Cyangmou, then Wolfenoctis and Thu.
For the music, I am in contact with a French composer, but not much have been done yet.
For the writing/mission design, I worked with Maciej Bogucki.
I am paying and surviving with my savings, then unemployment benefits and my wife's income. But both my savings and unemployment benefits have run dry, so I will investigate state grants (for machine learning in video games), or freelancing if I can get something in the field of AI (developing other peoples' game as a freelancer would not be very sensible given how badly paid game devs usually are, and AI is a more interesting programming topic anyway).

For the nighttime, darkness, moonlight, firelight issue, I'd like to make a suggestion: Give your characters another sprite layer for the 2D equivalent of built-in fresnel sidelighting:

lightingprogression.jpg


Excuse the derp eyes. Not my pic.

I don't think it would be a huge amount of work. You could draw white pixels over the characters' edges, black everywhere else. And then in your levels you could have a lighting color, say orange when you're in firelight, that you multiply by the white pixels and draw over the top.

Or you could do things the RPG Maker way: When your character approaches a light, increase the contrast to wash out the highlights and darken the shadows, then multiply by the light's color.

I already did something like this, with light sprites and filters, but I have to apply more subtle transformations because the effects are not very satisfying atm. I'll look into it once I am satisfied with the fondations of the AI(I need to find something to launch constant training computations for it first so that GPU time is notwasted while I do something else).
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I have just completed Berkeley's CS188 on AI on Edx after Andrew Ng's course on machine learning on Coursera. I now need to find something to train myself on deep reinforcement learning (no mooc for this yet, sadly), and then I'll try to setup the AI to learn some things by itself (when to to from an aggressive to a defensive to an evasive stategy, when to focus on kills and when to focus on objectives... and where to position once the target has been selected, how to classify player characters. There are many things that can be enhanced with machine learning IMO, and I am eager to try it).

I plan to write about the pros and cons of dice systems 2: predictability and readbility, but I am not sure I will not move to another dice system again as 32D32 is somewhat hard to communicate in a log(but they have some quite nice properties) :)
In the meantime, I will probably write about the stuff to avoid when working with freelancers.
 

Reinar

Scholar
Joined
Oct 20, 2015
Messages
145
I am open to a new name for the game. I am quite bad at naming, and I have been unconvinced by my daughter's suggestions so far, so any outside help would be appreciated :)
It was supposed to be some kind of homage to Saint Seiya (Knights of the Zodiac in French), because this anime was both cheesy and awesomely cool back in the day, but it was only popular in France (and Japan/Brazil), so it might not be so good a start.
Some names as tips for brainstorming or something: The Order of the Forbidden Sign, 13th Legion, Knights of the Devil's Dozen.
Also, Knights of the Zodiac sounds better than Zodiac Legion to me.
 

laclongquan

Arcane
Joined
Jan 10, 2007
Messages
1,870,144
Location
Searching for my kidnapped sister
I agree that knights of the zodiac sounds like a lawsuit.

Mmmm How about

"Heroes of the Zodiac" if you really must hold that word.
"Heavensent Heroes" for that easy to recognize word.
"Heavenly Heroes" is quite repeatable already thanks to Chinese influence.
"Saga of the Braves" for an alternative.
 

Nathaniel3W

Rockwell Studios
Patron
Developer
Joined
Feb 5, 2015
Messages
1,226
Location
Washington, DC
Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming!
and then I'll try to setup the AI to learn some things by itself

You're pretty serious about making an AI opponent. I would be embarrassed to tell you what Himeko Sutori's AI does. What language is your game written in? Please tell me that at least you imported someone else's ML libraries. And I caught something about using GPU cycles. Are you using CUDA to parallelize ML on your GPU to train an AI to play your game? Either I read too deep into that, or you're absolutely insane. You're not also going to train your AI against each individual player are you?

My only experience with ML is in Python. To break up big datasets and parallelize the computations I used Spark. Overall it was pretty simple stuff I was doing: looking for relationships in data using off-the-shelf classifiers. I never got into neural nets or deep learning. That seems like a lot of work when you could probably just give your enemies hardcoded heuristics to follow and adjust enemy hp and damage output for difficulty. But if a tactically brilliant AI is what you're determined to get, I wish you the best of luck.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Regarding the name, maybe something about the player stronghold would work better than mentioning the zodiac indeed.
and then I'll try to setup the AI to learn some things by itself

You're pretty serious about making an AI opponent. I would be embarrassed to tell you what Himeko Sutori's AI does. What language is your game written in? Please tell me that at least you imported someone else's ML libraries. And I caught something about using GPU cycles. Are you using CUDA to parallelize ML on your GPU to train an AI to play your game? Either I read too deep into that, or you're absolutely insane. You're not also going to train your AI against each individual player are you?

My only experience with ML is in Python. To break up big datasets and parallelize the computations I used Spark. Overall it was pretty simple stuff I was doing: looking for relationships in data using off-the-shelf classifiers. I never got into neural nets or deep learning. That seems like a lot of work when you could probably just give your enemies hardcoded heuristics to follow and adjust enemy hp and damage output for difficulty. But if a tactically brilliant AI is what you're determined to get, I wish you the best of luck.

The game is written in C + lua. I will of course use either tensorflow, either Torch (I would prefer to use torch to also use lua there, but tensorflow seems to have awesome tutorials and support).
The amazing thing is that I can justify purchasing a high end GPU for work indeed :D
The plan is to make a shoestring version of deepmind: simulating turns then scoring the resulting position with deep neural nets.
So basically reinforcement learning AI with deep convolutional neural net to, classify characters, evaluate positions and evaluate policies.
I would like to donwload player games to help the game score positions better, yes, but I am not sure it can easily be done.
I only want a non braindead AI, but given the progress of deep learning and the hassle it is to fine tune utility functions over several characters, I'd rather have something that will serve as a solid fondation for any subsequent game.
Regarding my sanity, I am developing a game on my own full time, so that should give a good estimate of its state.
 

ERYFKRAD

Barbarian
Patron
Joined
Sep 25, 2012
Messages
28,231
Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
I'd just be lazy, call the game "Twelve under the Sun" and have done.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Another benefit of deep learning is that if I get megawealthy with my game or for any other reason, I'll only have to add a few CPU+GPU (the CPU are needed to process the turns to trigger the machine learning upgrades, and to search the tree to choose the best action according to current policy) without changing the code to get a better AI :)
The other reason to go ML is that it is a more marketable skill than "expert knowledge" videogame AI.
 

anus_pounder

Arcane
Joined
Mar 20, 2010
Messages
5,972
Location
Yiffing in Hell

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I'm reworking Line of sights again. I am not happy with the current algorithm.
I want to store Line of sight in memory from all tiles to every other one, in order to let the AI immediately know how good a tile is, but that does not work too well with dynamic terrain, unless I find a good way to update the relevant LoS data very quickly whenever someone opens a door.
Line of sight queries end up being a large part of the AI computing time if you want to know how well each tile in range can see each other in range of the heroes.
I started implementing a simple Bresenham raycast algorithm :
832px-Bresenham.svg.png

Note that the algorithm makes it so no 2 pixels on the line ever share the same X coordinate.
but the problem is that I cannot really reuse the results of the computation:
For instance, on the line there, if I were to trace LoS from the 3rd line pixel to the 8th, the sequence of pixels selected would not be the same.
I cannot cast one line at a time, and use the result for every pixel on the line, unless I accept a lot of approximations, and I make sure the approximations are always the same, which happens to be a problem whenever a door is opened or closed, because it becomes very hard to compute all the pixel pairs that went through the door cell).
So I am moving to a shadowcasting algorithm like this one: http://journal.stuffwithstuff.com/2015/09/07/what-the-hero-sees/, but I'll have to see how to make terrain updates quickly enough.
 
Last edited:

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Hmmmmm. That kinda algorithm could fake being random pretty good.
It is part of the problem with Bresenham indeed:
qKt5ZTY.png

Here, if we trace from A to B, the red and purple tiles will be considered on the line, but if we trace from B to A, it would be the blue and purple ones, because of rounding.
Of course, we could decide that we always trace from left to right, then from up to bottom, but non symmetrical Line of Sights are not super intuitive.
 

hrose

Educated
Joined
Jan 6, 2003
Messages
90
Yeah, it's a problem with line of sight as well. A unit can see another, but that one cannot see the first.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I'm almost done with the LoS:
I eventually implemented the algorithm there, with some changes. Visibility to an hexagon is based on the max number of tiles of the hexagon you can see from any tile of your hexagon, or adjacent to it. So it lets you peek around corners like in XCOM, but removing the wall near you won't block your LoS because you can even peek when there is no wall.
I might still have to implement some cover system, because otherwise, a barricade or murderhole would provide no protection from arrows, which might not be super intuitive(and would not make them very useful).

This algorithm is pretty fast compared to the line walk algorithm I used before.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,346
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I wrote a short entry about how to get started with moai, the engine used for the game. It is mostly useful if you want more control than unity about what goes in your game, as it is open source.

GETTING STARTED WITH MOAI
Date sam. 25 mars 2017 Tags development / technical / moai
WHY MOAI?

Before starting the development of Zodiac Legion, I had tried several ways of writing games, from programming a FPGA (it was a school project) to using high level languages on my TI-92 calculator, and complete frameworks.

I liked using a high level language, but reusing existing frameworks made it much easier to get things done in a timely manner. But it could also take quite a long time to circumvent the limitations of the engines, and waiting for other to fix bugs was not really an efficient way to move forward.

I also wanted an engine that would let me port easily from one platform to another.

So once I had decided to go 2D, I first tried working with Python, but distributing games made with it sounded like a pain.

Unity felt a bit "too heavy" (or obstrusive) for my needs. I have always preferred lighter frameworks. So I made some research, and I discovered moai. A few simple prototypes later, I had fallen in love with the engine, and lua.

MADE WITH MOAI
At this time, there were several big indie developers using it, like Double Fine for Broken Age:

"We used Moai for the first time during our last Amnesia Fortnight," said Nathan Martz, tech director at Double Fine.

"We wanted to experiment with some 2d games and some mobile games, and Moai jumped out at us as a really simple, lightweight, quick to get into technology."

broken_age.jpg

Broken Age, one of the bigest moai projects, by Double Fine Studios

You can read about the 12 weeks development of Crimson:Steam Pirates with moai on gamasutra:

"The Crimson team at Harebrained Schemes is made up of 7 people at its peak, and we had a total development cycle of just 12 weeks. We were able to pull this off due to a few key things:

A clear creative vision Experienced developers and artists, 99% of the game was built in Lua script using an open source game development platform called Moai."

crimson_sp.jpg

Crimson Steam Pirates by Harebrained Schemes, the guys behind Shadowrun Returns

More recently, Klei has also chosen moai to develop Invisible Inc.

inv_inc2.jpg

Invisible Inc, one of the best and only turn based infiltration game.

TLDR
I asked several other moai devs about why they had chosen moai, and here are their answers:

  • It is open source, so you don't have to wait for someone else to fix the bugs that might be stopping you, and you can optimize whatever part of the engine you like. Moai is also free, and all you need to do is credit the engine, either in your splash screen, or in the credits. It also allows you to add features at the engine level.
  • lua is awesome to work with. fast, lightweight, with a good C API. And the code written by other is very readable.
  • It is easy to get into. You have very little setup to do before running.
  • It is also natively made for 2D.
MOAI TODAY
Rumors of moai's death have been greatly exaggerated: It is still actively maintained by its original creator, and several dedicated community members. A version 2.0 will be out "soon" and is currently in testing stage. It is a shame that the main site for moai is terribly outdated, though, which does not really help showing how active the (small) community is. So there is no reason not to try it if you want an efficient open source 2D engine.

The "only" drawback is its small userbase, and the resulting lack of something like the Unity Asset Store. There are also less tutorials, but the ones that exist should be enough to get you started, and moai ships with quite a lot of samples that can help you get started with a given feature.

So it is better suited to people who like to work close to the metal, and want the flexibility to make changes to the engine, or just have a look at it.

And if you still have questions about the way some function works, you can just read the sourcecode, which I have found very well organized and readable. Unlike what the former punchline would make you think ("moai, the mobile platform for pro developers"), it is very suited to PC gaming (Invisible Inc and Broken Age were first made for PC), and works very well even if you don't plan to make a living out of game development.

WHERE TO GET STARTED?
The first step should be to get the binary: The historical home page of moai is not where you should look at. moaiforge is updated more often, and contains good resources on getting started with moai: 1.7.5 is the version you should download. You can get it here for windows and MacOSX. If you want the linux version, I cannot help you much as I have not worked with the linux version for quite some time.

Just unzip the windows file, go to The rocket lobster tutorial. It should have everything you need to keep your game going.

RLobster4.jpg

The tutorial should walk you through getting a lobster to send missiles

Note that instead of adding moai to your system PATH, you can just copy moai.exe from moaisdk-windows-1.7.5bin to the unpacked rocket lobster folder, and create an empty lobster.lua file, and lobster.bat file with the following line:

moai.exe lobster.lua

And voila, you are set. Just write the content of the tutorial in lobster.lua and it would work. Alternatively, you can use the existing main.lua file, and put:

moai.exe main.lua

in lobster.bat if you don't want to rewrite it yourself.

DIVE INTO MOAI
You should try the basic prop animation tutorial if you want to follow another tutorial. You can also read about moai basic features on the same site.

There is also a very nice serie about moai on this website. They are old, but they should still work with the latest version of moai.

To go deeper, I strongly recommend you to browse through moai samples. This allows you to edit them and immediately see the results with moai web host. They cover a lot of different topics.



There is a simple exemple of sprite animation for instance. You can also dig into your moai samples folder, and get the same samples: Its location is

moaisdk-windows-1.7.5\moaisdk-windows-1.7.5\sdk\moai\samples

You should also check moaisnippets which contains a lot of working exemples to guide you. You can then copy paste the exemples to moaifiddle.



moaifiddle allows you to write and execute code for moai online, like the moaiforge player abouve, so you can copy paste any of the exemples to modify it at your convenience, or start from a blank page, and test them online.

And if you need some help with lua, the main resources are the 5.1 Reference Manual and The book Programming in Lua, but the online version is for lua 5.0.

To get help about moai, you should browse moai forum, there is not much activity, but questions are answered pretty quickly, and the community is quite helpful.

If something is out of date or doesn't work, please send me a note here or on moai forum so that I update it.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom