Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Age of Empires 2 Scenario Editor Is Turing Complete (ecc-comp.blogspot.com)
143 points by sunaden on Feb 15, 2018 | hide | past | favorite | 33 comments


I can only think of one of the greatest videos[0] on Youtube when I read about unusual Turing complete systems.

[0] https://www.youtube.com/watch?v=uNjxe8ShM-8


Well, if you are into weird internet memes, there's also this one: https://www.youtube.com/watch?v=Ny34O_rWaRc


This might be the worst thing I've ever watched.


This might be the best thing I've ever watched.


Why did you copy paste the first comment on the youtube page? Video is funny though, worth watching.


I don't think this is what they did - but this sounds like a good way to build a karma bot. Whenever a youtube link is posted automatically reply with the top YouTube comment.


You literally just copied the top comment on YouTube...


After writing a lot of tools for game designers, I've found a simple rule: if a system you're creating is Turing complete, throw it out and just give them a normal scripting language.

Rationale is simple: game designers will ALWAYS find ways to use the system in the most insanely complicated way, and it's far easier to debug and fix things in a normal programming language rather than another system full of ad-hoc conditions, weird triggers, global variables and other complexity that starts small but always snowballs throughout development.


Or, better:

Give them this nice graphical scripting mechanism on one tab.

In another tab, give them a small IDE labelled "RESULTING PYTHON CODE"


I feel like the challenge with stuff like this is that once you edit the resulting code, the original graphical input is no longer in sync. I wish there was a good solution to this.

There are many tools that come close (graphical GUI designers come to mind) by not actually giving you resulting code, but letting you write code separately that interfaces with the graphically designed parts in a well-defined way.


the quick and dirty solution would be that editing the resulting code is a one way street. so, once you edit the code you can't use the graphical interface. it's not a _good_ solution but I guess it's better than not giving the option to users at all


Id use that for baseline boilerplate generation

Id buy that for a dollar


Or, give them something as nice as Unreal's Blueprints.

The thing is, unless you're experienced engine development team that has a good track record of creating one of the best engines on the planet, don't expect to create something as good as Blueprints.



When I worked at gamedev, that's how we learned that making several people learn Lua is 10x cheaper and faster then reinventing "visual Lua" from the ground up.


I'm aware this is a stupid reason, but I love that really complex behavior can be programmed in these seemingly simple interfaces because it tricks people that are otherwise uninterested or unaware of what programming is into trying it out. It was part of what 'hooked' me into computer science, to be frank

I recall programming a scenario for AoE2 and becoming increasingly interested in finding the 'boundary' for the most complex stuff (that would still somewhat fit into the design of the scenario I was building).

I also remember using an assisted tool to 'erase' the names of the Triggers in the interface so people couldn't "steal" my scenario. The dumb idiot then lost the version with the Trigger names and now no-one can edit it, at least not with human effort

The scenario is pretty cool though, so at least I still have a playable version to show for it and last I checked it worked in the Steam version of AoE2


It's a wonderful thing, but not something you want in an actual big game project.


I think this would be a fantastic usecase for Scratch, since it is so much more accessible to kids and a good gateway to all-text stuff.


Oh what wouldn't I give to write triggers for AoE2 in Javascript instead of that atrocious UI.


True! So much frustration coming back to me alongside the nostalgia.

On the other hand I don't think I'd ever have actually done any scripting in those days if I didn't have the ability to tinker about with a UI too (same applies to programming in general: it all started with drag and drop coding in Delphi for me).

I can't help but see a similar pattern in my increasing use of functional languages or approaches: While I wish the world of programming was more functional, to the point where I'm willing to give up some lucrative work so I can avoid the alternatives, I also feel that when I was a beginner the OO approach was much more accessible and did a better job at 'pulling me in' as a proper programmer.

If I wanted to do something, well, here's the keyword or pattern. No need to understand functions-as-variables, map/filter/etc. (let alone reduce and recursion).


This was literally how I learned the basics of programming, before I ever encountered a real programming language (I was probably ~13 at the time). I used to spend hours creating elaborate scenarios with tons of complicated triggers and effects, and then never play them.


I did the same thing, then started writing random map scripts, none of which were ever playable

The only scenarios i ended up playing were things like 500 villagers vs 10 elephants and stupid stuff like that


My first intro to programming was using the Lego Mindstorms software to program the old yellow brick computer with the touch sensors and motors


Cool - but... some people do have too much time on their hands :)


I believe they just do what they like and having fun.


We'll all be dead soon and none of this will matter.


Would be great to see a vid where someone used this.


Would it be possible to simulate Conway's Game of Life inside Age of Empires 2??????


Anything is possible with a Turing Complete solution.


Even the solution for the halting problem?


well, since the halting problem is undecidable, then no. One thing I still do not understand is how languages like Coq and Idris can almost always ensure that programs written in them terminate.


maybe, maybe not. Who can tell?


Yes. Conway's Game of Life is Turing-complete, so any Turing-complete system can simulate it.

In fact, simulating Conway's Game of Life (or Rule 110) in a system is often used as a proof that the system is Turing-complete.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: