Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Night Sky (ConTextEngine)

A topic by XxTheSpaceManxX created May 19, 2022 Views: 544 Replies: 40
Viewing posts 1 to 20 of 29 · Next page · Last page
Submitted (3 edits)

I am working on a project called Night Sky.
Being unsure since we are supposed to hold the game page hidden, if actually can share any information about the project at all. So i removed a clip i uploaded and some early background story text.

Jam Host

Hi - it's fine for anyone to talk about their games, just not to release them for playing before the deadline. Feel free to tell us what you're doing here (sounds interesting!)

Host

Absolutely. It would be nice to hear about your game and what you are using for development.

Submitted (1 edit)

I am using a text adventure engine that I have written myself during the last month, called ConText. 
I have built it around the idea of providing the player with suggestions for valid input instead of guessing words. 
Simply put I don't want guessing input to be the challange for the player.

The engine also support the concept of adventure books from the start, so all books are their own folders with my scripts and a internal logic structure.
By simply adding a new structure and the necessary base files, it will appear in the list of playable books on startup.
Here is a simple test when simply walking between the predefined regions in a the game, while not covering anything of the actual gameplay itself, just some early text output

Jam Host

It's always interesting when people use their own self-created engines rather than one of the big established ones, and this looks pretty innovative and exciting. Anything to make it easier for the player to interact with the game is a positive development. I'm looking forward to seeing the end result.

Submitted

Stupid as I am, I just figured it would be easier for me as well to produce my own scripting language that I understand and easily can debug, rather then learning someone elses. :)

Submitted

XD That's the story of all of us creating our own system. No matter the result, for sure the joy was there just creating them.

One thing I i thik i learned doing mine, is that trying to stick to an existing program language instead of creating your own from scratch is easyer for you to create and easyer for others to learn.

I have seen your "pastebin" and i can get the concept of external .txt files for each room, isn't it? Do we have a public definition for that ConTextEngine or just private? I'm just curious about systems :)

Submitted

using a existing language would mean a larger interperter to a larger degree i would say, I am not after making an entire programing language after all.

There is not public defenition since I am not done defining it for my self.

I just added the idea of enter, exit blocks. where I can place script that should run when I load a new room, exit script is run for the old room, enter is run for the new, mean i could trigger the effects like a look action on the room i am entering automatically from any room, rather then being dependant on showing the right text from the action in the room previous room that I just left.

But quick break down.

The engine builds around a few basic ideas.

1. each row contain it's own full Script logic.

2. a tab means the current script is a child to the previous script.

3. before execute each script do a Eval() to determine if its the children should be executed.

4. when a script is executed, all its children will be executed in order if the Eval pass.

5. Each time you load a scene the old scene is released, and the new one, with a new input context is created.

Action(Free text, each word is converted to a context with the previous word as a parent, when your input match the action text and you press enter, all childscripts are executed) 

"look boots", "open top cabinet"

Command (defined system commands like present, set, load, inc/dec, system) 

* present combines text and when to show it to the user.

* load the scene from the specified folder by parsing the Logic.txt within. "command load Living/CentralCorridor"

* set will set the namedstate type to the value "command set (bool)MyBoolStateName true"

* inc/dec increase or decrease a int state by 1 "command inc (int)MyIntStateName"

* system( back to book menu, exit, debug)

Condition(compare state to value, or state to state)

* will only Eval to true if condtion is true, and only execute childscripts if thats the case.

Automatic Enter/Exit

* Exit will execute before you load the next scene if a exit is declare in the script.

* Enter will execute after a load if the newly loaded scene have it declared in the script.

Submitted (2 edits)
using a existing language would mean a larger interperter to a larger degree i would say, I am not after making an entire programing language after all.


Oh, it was just an idea that works for me :)  During development I had to take many decissions, some of which I would not make now, but i'm happy with the choice I took about stay stick to an existing languaje. ParserCommander that I developed has about 3.000 lines of code, so it's not very large I think.


There is not public defenition since I am not done defining it for my self.


The same works for me. I started to make external documentation about how to use it, and finally I realize that it would take almost more time to do and maintain it than programming it :D

It's nice to make parsers, but also games, so here we are! ;)

Submitted

An adventure game with autocomplete prompt! Nice! :D

Submitted

Yeah. I am putting a lot of energy into that working. Right now you can't "tab" to autocomplete a word, but I am considering adding that before release. I also considered a way to step between the suggestions.

The idea if I can deliver upon it, we will see further on, is to have more details in the scene you need to notice to solve puzzles by turning dials or fill in some values, information that is accessible trough looking at things in the scene.
There would still be a few use A on B things as well.
But the most important part for me, was to have noone guess words in a given context.

Submitted

This is not the game I am making for the comp, this is the test project I started ages ago and used the text from that project in my new text engine.
The projects text is in Swedish so most people probably won't get that much from it. 
It's a playtrough of one of the paths and this game was designed lika a "Two chocies" style of game play.
While the one I am working for the comp is actually more explore interact style. 

Submitted

One change I am going to fix right now, is a piece of script that executes when you enter a new area.
Previously I had to handle that by adding all the events that should happen on the action in the previous room, but if you can enter a room from four different ones, its four files with almost identical script, I could provide the room one comes from as a parameter as well so I could still adapt the script to directional information or other things.

Submitted

Here is a pastebin of my current script structure, but it's a living structure and things are not set in stone.
https://pastebin.com/uJpXLAnK

Submitted (1 edit)

Ok people. There have been much going on, on my end. 
Mostly due to the fact that the .Net C# console is slow and terrible that I had to create a Interface for the console logic I have been using, and create my own console implementaiton, the current one is in wpf and thats not great. (passed trough winform in the middle but that had update issues of the components)  :S But it is what it is.

LATER i might create my own proper console handler properly using some good rendering opimzation i know. But thats not here or now.
On the good news I managed to create the ui for a optional treadmill you can interact with in game.

Submitted

Submitted (1 edit)

With this I have changed so I can print variables into my description files using € tokens to mark their position in the text, and give them different colors, convert them to distances or time. 
The next step to put this behind me is to add extension of the set command in my code.
So the easy previous
cmd set (int)Exericise.CurrentDistance 53435
I will extend it to use modifers. 
cmd set (int)Exericise.CurrentDistance = 53435
cmd set (int)Exericise.CurrentDistance += 53435

Submitted

Some part of my logic is failing me, I am spending to much time trying to figure out why i get a press to continue when its only supposed to show the ordinary input. It really breaks the flow. :(

Submitted

So I have overhauled the engine part that handles presenting text from files to the user. It is becoming better and less confusing, less contradictions. 
There is still a issue where I add to many characters in some case and cause a overflow but that should be fixed by tonight. 
And then some validation that it turns pages and changes to the next manuscript at the right tome, re adding override of parameters. 
But should be kinda fast, in the end this will be faster then trying to fix the original error I had because I ended up in a circular fix, error loop.

After that I can go back to fixing up more details. Doing the mcguffin playtrough, where i randomly pick a room where i have to do macguffin to trigger the flags to end the current night. Then I will figure out the details and form the story and add optionals. 

Submitted

Things are moving again, the logic feels more stable, and I have added a few more scripted interactions. 

Submitted

Great! :D

I'm very intrigued with the details you are posting about the game. The Exerciseatron 8000 seems the new must have gadget ^.^

By the way, you didn't tell us about the plot of the game, isn't it? ¬.¬

Submitted

I am not 100% percent sure my self yet. 
Except that you are at a research base in the arctics. 
I was considering 5 days where you end each day by sleeping, and where you get a ending depending on some of the choices you have done. 

But we will see how much I manage to get in to game before the deadline. 

Trying to track down a new bugg I am having, and also doing some design decisions in regard of the actual scripting itself.

Changing a few bools to a item keeping a int state to make it possible to know exactly what state the object is in without having to check multiple values

Submitted

I don't even want to think about how much time was wasted yesterday because of a ; at the end of a if statement.
Essentially making the logic in the following brackets allways run, making it allways in edge cases show the next page without user input...

Submitted

#Codeside
So the press to continue works again, you won't instalty pass on to the first page in the next manuscript when you reach the last page in the previous.

#Gameside.
The logic is comming together, changed the type of some scriptvariables to be int instead of bools, that mean that a object that can only be in one state, in room, carried, locker, worn. Only have one parameter and one name and i check towards the value, this decreased the levels of checks needed to be done. Now if something should not be in the locker, i just need to check that, without also checking if its not in the room, not being carried, not being worn. The problem is that the numbers are not clear. Fortunatly I added the possibility to comment my scripts so I can list the states needed so i can cross referense the numbers with the intended statename. I have considered implementing [const] values essentially declaring them in one place [worn] = 2 and later in script just be able to reference [worn]
But that would require more changes to the engine and I am not there yes.

Also I am going to properly push all code to github, I have forgotten about that, and it would be a damn shame to loose all the code up to this point.

Submitted
Also I am going to properly push all code to github, I have forgotten about that, and it would be a damn shame to loose all the code up to this point.


Be careful about that. I suppose it is not considered a "public release of the game"  if you upload only the code  to a public GIT, but ask organization before! 


All that things sound exciting and itriguing. I will for sure check also the code if available some time @.@

Submitted

Git allows a free amount of private repositories these days, so only people invited would have access at this point.

This is more to allow me to be able to back changes or test thing in a different branch and return to the previous state if things doesnt work out as intended. So its in no way a public release. :)

Submitted

Cool!

At work we use TFS for Visual Studio projects, and sometimes paying Git Lab things.

Many, many time ago I tried GitHub but it only was free for public projects (or at least I didn't found other way), so it doesn't fit for me at that moment and I didn't return there again.

That's a very good idea and professional approach ^.^

Submitted

So I added one of the more important nodes to keep things interesting.
con rnd 5 in 10 essentially any combination works and can be defined to make a certain piece of code or script run by chance.
If you want to describe the lights flickering 1% of the times a room is visited.

´cmd p add ./Desc/Description.txt
´con rnd 1 in 100
 ´      cmd p add ./Desc/FlickeringLights.txt

Submitted

Things are seldom this easy, I had to rewrite a central part handling how i process my scripts, now the validation was done each time a scene was loaded, and each time you tried to execute the command. So it had a 1 in 100 chance to be added to begin with, then 1 in 100 chance to execute if it was added.
Now validation is just done on scene reload, and that is done as soon as any state is changed in the scene. Essentially any action you do.

Submitted

As soon as you post a snipet of text to someone, instantly you realize 10 different things that are wrong, spelling, structure, personal assumption. 
I spent a more time then I want to admit writing the descriptiontext for if you decide to just "eat food" in the pantry, rather then "get food", "prepare food", "serve", "eat food". ^^

Submitted (1 edit)

I have been very vague about the story and gameplay. 
Thats because I haven't known myself, but the things that are here to remain och fixed, are currently this.

You work for a larger company conducting research in the arctics, its a small base with living module areas och a work module, connected with the main hub.
The current workperiod is over and the majority of the crew has left for the mainland, still in the base is you and your coworker Pekka, forming a 24 hour skeleton crew. Due to some disagrement between you in the past, you have decided it was best that one of you work during a  12 hour day period and the other during the 12 hour night period and the rest of the time just stay out of each others way. You flipped a coin and you ended up on the night shift.

The game is essentially walking around the base, solving tasks that are part of your job (data entry from readings in the lab) and handling things that need to be looked after. Like making sure the plumping is ok, that the radio is aligned, that everything is clean before the crew return and so forth.

The idea is to slowly increase a level of paranoia and weird, based on different trigger and random events. But we will see where it ends up. Not much time left. 

Viewing posts 1 to 20 of 29 · Next page · Last page