[ian-reeds-games] Re: Multiplayer server

  • From: Keith <keithwipf1@xxxxxxxxx>
  • To: ian-reeds-games@xxxxxxxxxxxxx
  • Date: Tue, 20 Mar 2018 20:46:41 -1200

This sounds very awesome.

Do you have an approx release date?


On 21/03/18 3:33 AM, Joshua Tubbs wrote:

This engine should be cross platform, would be great to build games on Mac and 
other platforms not served by the audio games community, not just Windows all 
the time.


On Mar 21, 2018, at 11:24 AM, Ian Reed <info@xxxxxxxxxxxxxxxxxxx> wrote:

I've used a fair number of technical programming language terms in the below 
description, and assumed familiarity with other programming languages.
For the non programmers, don't let that scare you off.
When the project is released, I hope to create some newbie friendly 
documentation that teaches people the basics of coding and the related 
vocabulary.
Plus people can always have a good time as builders, and slowly familiarize 
with snippets of code at their own pace.

The programming language is a statically typed, imperative language.
It focuses on being simple and readable, so that new comers to the language can 
pick it up quickly if they have experience in any other language.
This is also a benefit since the platform is focused on people being able to 
take one game's code and extend it, so keeping the language simple means it is 
easier to read other people's code.
It also favors keywords a bit more than symbols in order to read better when 
using a screen reader.
For example, its if/else expressions are closest to lua's, something like this:
if someCondition then callFunc1()
elseIf someOtherCondition then callFunc2()
elseThen callFunc3() end
Having if/else blocks be expressions instead of statements also makes snippets 
of code found in menu or story files more concise, specifically when they need 
to result in a value.
It uses the and, or, and not keywords like python and lua, instead of C/C++'s 
&&, ||, and ! operators.
It is not whitespace / indentation sensitive like Python is.
It doesn't use semicolons.
It uses references, not pointers, and is garbage collected.
There are no bit manipulation operators.

Defining a function looks something like this:
func add, takes a as int, b as int, returns int {
     return a + b
}
It borrows the as keyword for specifying a variable's type from Visual Basic.
It uses type inference in most cases to let the coder elide the type.
It is procedural, focusing on functions and data types. It is not object 
oriented.
Free standing functions can be called using method call syntax on the type of 
their first parameter.
For instance the above function can be called in the following ways:
var num = 5
var num2 = add(num, 2)
var num3 = num.add(2)
This is similar to how extension methods work in C#, except that all functions 
implicitly extend their first parameter type, rather than needing an explicit 
this keyword.
There are many cases where chaining function calls with the method syntax is 
more readable than nesting function calls.

It will also have a query expression syntax, similar to the L I N Q syntax used 
in C#.
This is to take common idioms for filtering, ordering, transforming and 
querying on lists and turn them into a syntax that is easier to read and write.
For example, imagine you have a list of units in a variable called units.
This query would get the names of all the units with at least 50 health, 
ordered alphabetically.
var results = from u in units where u.health > 50 orderBy u.name select u.name
// then you might print them out like so:
foreach var name in results {
     say(name)
}
Note the where keyword filters, the orderBy orders, and the select keyword 
transforms, just as in SQL or C#'s L I N Q syntax.
We also elide the parentheses around the condition in the above foreach loop, 
and if/else conditions.

As I designed it, I've referenced C#, Rust, Swift, Lua, Python, Ruby, and 
Javascript/Typescript to get ideas for which features I felt would work best.
It is a language built for writing high level game logic, not low level sound 
file streaming or other such tasks.
Those low level tasks will be handled by the game engine, which provides a high 
level API to coders, and strong integration with the builder tools.


On 3/20/2018 2:24 PM, Joshua Tubbs wrote:
What will the programing language be like? I’m not a fan of C++ syntax, or C#, 
which I’m pretty. Sure AHC is in.



On Mar 20, 2018, at 4:19 PM, Ian Reed <info@xxxxxxxxxxxxxxxxxxx> wrote:

Oh, another reason releasing the AHC engine would be problematic is that I'd 
have to tear out the translation logic.
It is easy to accidentally use incorrectly,, causing tons of unnecessary 
translations, so I would have to trust each person using the AHC engine to get 
it right.
Plus I'd be paying for all the translations done in their games.

The new platform I'm working on takes this into account and makes it much 
harder for coders to accidentally misuse the translation feature.
This means that the new platform will support translation of all games into the 
100+ languages that Google Translate supports.


On 3/20/2018 1:48 PM, Ian Reed wrote:
I won't be releasing the AHC game engine. A few reasons off the top of my head 
are:
* I would have to write a ton of documentation for it.
* I would need to remove anything DRM related, since viewing that code would 
help people reverse engineer AHC.
* The sound system is FMOD using sound banks. I'm not sure how accessible sound 
banks are for blind users.
* FMOD's license would not allow me to release it as part of a standalone game 
engine anyway.
* If I released it, I would spend a lot more time maintaining it, which is less 
time for extending and maintaining the new engine/platform.

Overall, I've learned a lot from building that engine, but I want to take what 
I've learned and implement a new engine that isn't held back by needing to 
remain backwards compatible with AHC scripts.
I intend on bringing all the best features from the AHC engine into the new 
project, which would make the AHC engine obsolete anyway.
The new engine will eventually support real time games as well, but I'm going 
to focus on turn based games first, since support for real time games is a bit 
trickier to get right.
Far down the road, the new engine/platform will have enough features that you 
could write an AHC like game in it.
But it will also benefit from better performance, better tools, multiplayer 
capabilities, and my long term support.


On 3/20/2018 1:50 AM, Zak Claassen wrote:
Hey Ian, this sounds very cool. I did some scripts for tb, but like
you said you're limited in what you can do, plus there are some bugs
that cause some scripts to not work like they should, so really
looking forward to this new engine. Would you ever consider releasing
the AHC game engine in a similar form so that people can use it to
create such games?

On 3/20/18, Ian Reed <info@xxxxxxxxxxxxxxxxxxx> wrote:
I am writing the new engine from the ground up.
I've learned a lot since I originally wrote TB, and more as I worked on
the engine for AHC, plus the multiplayer features require some major
architectural changes.
I hope and expect the new engine will have better performance than my
previous attempts.
I'm far from perfect though, so we'll have to deal with issues as we
encounter them.


On 3/19/2018 5:41 PM, Shaun Everiss wrote:
The issue with tactical battle I found was that if you had a game say
startrek elete and you had well several hundred units same with
rampage, every action dead destroyed, new generated etc, would add to
a memmory buffer.

If that and when that buffer got full the system simply ran out of
memmory to actually do anything and crashed, rampage hit this thing
really fast.

I am not sure what you guys did with ahc but as I understand you
helped with that, now an engine based on that would rock, it certainly
never had an issue with a multiple unit thing and if tactical battle
maps could work with that system that would rock a lot.




On 20/03/2018 12:31 p.m., Ian Reed wrote:
Yes, it takes scripting much further than TB did.
The new system has 2 roles, builders and coders.
Builders work with roughly the same set of tools that map pack
creators used in TB, plus some easy to use file formats for creating
menus and JRPG style story dialogs.
Coders use a programming language to define the game rules and player
interactions.
Coders have a lot more power than scripters did in TB because they
get to define all the game rules, rather than only getting to inject
script at a few key points within the TB rule set.
TB is like a very moddable game.
The new system is more like a game engine that lets people build
their own games in a high level programming language.
Then it hooks those games up to the builder tools so they can easily
be modded.

I'll be making some sample games for the first release, so people can
modify them instead of starting from scratch.
There is a lot to do, so it is still quite a ways off, but I am
excited for it.


On 3/19/2018 1:58 PM, Monkey wrote:
I'm excited to see what this will look like, I've really enjoyed
making stuff for TB.
Will be able to script for this new engine as well?

On 3/19/18, Ian Reed <info@xxxxxxxxxxxxxxxxxxx> wrote:
I've restarted the TBServer so you can play multiplayer again.
Craig Brett deserves the credit for adding multiplayer capabilities to
Tactical Battle.

I no longer maintain TB, but I am working on a new moddable
multiplayer
gaming platform.
I expect it to support a wide variety of turn based games, like card
games, strategy games, classic board games, etc.
I will even remake some of Tactical Battle in it as a sample game that
can be extended and modded by others.
It will be much more moddable than TB, so would better support your
ideas for playing table top games, once it is finished.
The map editor and file format for defining units, skills, effects,
items, terrain, etc, will remain roughly the same, so learning to make
map packs in TB would be a relevant skill for the new system.
I think anyone who has enjoyed being a map pack creator for Tactical
Battle will really enjoy the new system.


On 3/18/2018 8:50 PM, ryan.strunk@xxxxxxxxx wrote:
Hi all,

I was very excited to see that version 3 of TB is playable online.
When I tried to log on, though, the server was down.

Is this still in active development? Is it possible for me to run my
own server?

I would love to explore the possibility of using this setup to play
tabletop games.

Thanks for any help you can provide.

Best,

Ryan

-----
You can unsubscribe from this list by sending email to
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the
Subject field.
Or by visiting the list page at
//www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip


-----
You can unsubscribe from this list by sending email to
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject
field.
Or by visiting the list page at
//www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip


-----
You can unsubscribe from this list by sending email to 
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field.
Or by visiting the list page at //www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip

-----
You can unsubscribe from this list by sending email to 
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field.
Or by visiting the list page at //www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip

-----
You can unsubscribe from this list by sending email to 
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field.
Or by visiting the list page at //www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip


-----
You can unsubscribe from this list by sending email to 
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field.
Or by visiting the list page at //www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip


-----
You can unsubscribe from this list by sending email to 
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field.
Or by visiting the list page at //www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip



-----
You can unsubscribe from this list by sending email to 
ian-reeds-games-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field.
Or by visiting the list page at //www.freelists.org/list/ian-reeds-games

Download the latest dev version of Tactical Battle here:
http://blindaudiogames.com/downloads/Tactical%20Battle%20Dev.zip

Other related posts: