Giter Club home page Giter Club logo

nuctex's Introduction

#NuCTex The Null C Text Engine is an attempt to create a singleplayer game engine in the style of the Multi User Dungeons and text adventure games of the '80s and '90s. The goal is to create a functional game as practice for an implementation of an actual MUD engine in the future.

#Goals The short-term goal is to create a game that is text-based in style and execution but MUD-like in size and story detail.

The long-term goal is to create a fully functional engine from which any user can create a game with locations, monsters, and puzzles to solve.

##Development Status NuCTex went into alpha on January 5, 2016, and is now at version 0.1e

Due to school and work requirements, NuCTex is currently on an indefinite hiatus.

###Update Status Current version: 0.1f

Next planned version: 0.1g

Major changes in update: Undetermined

###Current features

  • Walk around in an exciting 4-tile world!
  • Experience the ability to look at your surroundings (and other monsters!)
  • Fight with the evil monsters that lurk about, and destroy them utterly!
  • Properly quit the program!

###Commands? For a list of commands and their description, look in the commands.md file.

##License? NuCTex is licensed under the MIT license. A copy is provided in the LICENSE file

#Installation To compile NuCTex, you will need gcc. NuCTex uses C99 code, so it should work any recent version of GCC.

##Linux

  1. Download the repo with git clone https://github.com/Nullsrc/nuctex
  2. Move into the repo with cd nuctex
  3. Initialize the CMake project with cmake .
  4. Compile with make
  5. Run ./nuctex

These steps have been tested with a computer running Debian 7 ARM and a computer running 64-bit Arch Linux.

nuctex's People

Contributors

benjamin-allen avatar nanovad avatar

Stargazers

mohamad hani janaty avatar  avatar Serge avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

nuctex's Issues

Items

  • Add a base item structure
  • Allow items to be in a location
  • Define some basic things items do

No RNG

As it stands, there is no RNG system for combat. Everything is predetermined by stats and is easy to predict and control.

Needs

  • There needs to be an RNG capable of generating numbers between a range, preferably in an efficient manner. If given an upper end and a lower end of a range, the RNG should be able to return a number between those two.
  • There needs to be an RNG capable of generating a number up to the one desired, if given a number.
  • RNG functions should return integers

Wants

  • Preferably, both RNG functions should have a theoretically even distribution. This is a minor goal after the main implementation is complete.

Graceful output

Currently the output is minimalistic and ugly to look at. That needs to be changed. At present, the array of ideas includes:

Frontend

  • A prompt for the user that is both unobtrusive and graceful
  • A print-out system of the player's stats, so that they can get vital information about their character at a glance
  • Colored output, with a definite color-coding scheme to convey information

Backend

  • The most important part of the backend changes will be including the ability for the printMessage function to split the string it's given apart at the 80-character mark, so that printMessage can be used in a way that is not redundant to simply calling printf

Inventory

  • Items need to be able to be stored on players and monsters
  • Items need to be equippable

0.1c.1 - Item array index safety update

Need to find a way to re-index the inventory so that iterators have an easier time reading through it. With thorough enough re-indexing code, one could end an inventory with a null terminator, similar to a C-string.

once-only headers

To ease programming in the future, include guards should be used in the header files. This will cause much less time spent on solving the mental tree of headers.

A parser is required

Currently, the game has no actual command parser, just a large if/elseif statement running multiple string comparisons on the player input.

Needs

  • A parser that can understand two-word phrases in a verb-noun combination, understanding statements such as "kill slime"
  • The parser needs to be able to understand when a command is invalid and report that invalidity to the player

Wants

  • Naturally, the faster the parser is, the better.

Percentage-based RNG

For combat AI, as needed in #4, it would be beneficial to have an RNG function that is passed a decimal value that represents a percentage chance. Another function that works with integers in a similar would be useful.

Combat sucks

This is one of the main requirements for going into alpha, and I'd like to have somewhat functional combat utilizing an RNG ( #2 ) and some amount of player monster interaction. Combat must also be initiated in the style of a classical MUD, utilizing a parser ( #3 )

Needs

  • A parser
    • The ability to engage monsters in the room one is in
    • The inability to engage monsters not in the room one is in
  • RNG
  • Monster reaction
    • Player death

Documentation Sweep

Before the program goes into alpha, a sweep should be made through the source files and functions should be documented for future reference.

Add error handling systems

  • Have a generic error reporting system for printing error messages (becoming more and more important with the numerous if calls)
  • Redirect error messages to a debug file

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.