Página 1 de 1

Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 03 Ene 2019 10:17
por 8bit-Dude
Hey guyz,

Last month I released 8bit-Slicks for the C64, Atari XL and Apple//e. It is the first cross-platform online game for 8bit era computers.

While developping the game, I organized my project into a "game" part, and a "SDK" part, for future re-use. It then occured to me that other people would benefit from this base for development of cross-platform 8bit games.

So I am announcing the planned release of 8bit-Unity in the second quarter of 2019. The SDK will contain everything to let you create simple online 8bit games in C code once, and deploy on all supported platforms easily (C64, Atari XL, Apple//e, and more in future!).

So they tuned!!!

Imagen

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 03 Ene 2019 16:14
por explorer
¿This project is like the Cross-Chase of Fabrizio?


CROSS CHASE

Cross Lib and Cross Chase
by Fabrizio Caruso

THE GOAL

This is a personal project whose goal is the creation of:

  • the universal 8-bit abstraction layer "Cross Lib" for coding universal 8-bit games
  • the "universal" 8-bit game "Cross Chase" that has to be a fun and that should run on (nearly) ALL 8 bit computers, consoles, handhelds and scientific calculators. The game will be the proof of concept of how flexible the library is.

CURRENTLY SUPPORTED ARCHITECTURES

The main goal is to get the library and game to work on most 8-bit architectures but other systems are also considered.

8-BIT ARCHITECTURES

  • Intel 8080 and its derivatives
  • MOS 6502 and its derivatives
  • Motorola 6809 and its derivatives
  • Zilog 80 and its derivatives


16-BIT ARCHITECTURES

  • Intel 8088/8086
  • PDP11


32-BIT ARCHITECTURES

  • PowerPC
  • Intel 386
  • Motorola 68020
  • MIPS32r2 (little-endian)


32/64-BIT ARCHITECTURE

We also support any current architecture for which GCC can produce a working binary.


THE TOOL-CHAIN

How is it this done? This is achieved by having "Cross Lib" provide APIs for the game code. The game and library code are separated:

  • the game code only depends on the APIs interface and
  • the APIs do not depend on the game code. Therefore it must be possible to re-use the same library for other games/programs.


The program is written in ANSI C and currently compiled with



Previous versions used

WinCMOC for 6809 targets (https://sourceforge.net/projects/cmoc-win32/). WinCMOC has been abandoned because it uses an old CMOC version that has broken pointer to functions and because it is no longer maintained by its author.

For other targets, the following compilers and dev-kits may be included in future versions of the tool-chain:



The tool-chain also uses some third-party target-specific tools to create usable cassette/disk/rom images. This is documented in https://github.com/Fabrizio-Caruso/CROS ... README.txt

THE GAME CODE

The game should be as portable as possible. Therefore the following coding choices and design rules are applied:

  • ANSI C (for the game logic);
  • strictly separated input/output and hardware-dependent code from the game logic;
  • input for keyboard/joystick and output for sound and display are provided by CrossLib


Some target(s) may get specific graphic code with re-defined characters, software/hardware sprites and music/sound effects.

SUPPORTED TARGETS

(as of 2018/12/15)


8-BIT versions

For most targets, more than one version is built, in order to support different hardware configuratins and expansions (e.g., memory expansions, second CPU, 80-col display card, etc.).

abc80: Luxor ABC 80
abc800: Luxor ABC 800 (work in progress)
ace: Jupiter Ace
alphatro: Alphatronic
apple2: Apple //
apple2enh: Enhanced Apple //e
aquarius: Mattel Aquarius
atari5200: Atari 5200
atari: Atari 400/800/600XL/800XL/1200XL/65XE/130XE
atari_lynx: Atari Lynx
attache: Otrona Attache
aussie: Aussie Byte
c128_8502: Commodore 128 [8502 CPU]
c128_z80: Commodore 128 [Z80 CPU]
c16: Commodore 264 series (16/116/+4)
c64: Commodore 64
c7420: Philips VideoPac C7420 module (work in progress)
cbm510: Commodore CBM 510
cbm610: Commodore CBM 610
camputers_lynx: Camputers Lynx 48k/96k/128k
coco: Color Computer
coleco: Colecovision
coleco_adam: Colecovision Adam (work in progress)
cpc: Amstrad CPC
cpm8080: CP/M Intel 8080
cpm: CP/M Z80 with adm3a/vt52/vt100 terminals
creativision: VTech Creativision
dragon: Dragon 32/64
eg2k: EACA EG2000 Color Genie
einstein: Tatung Einstein
enterprise: Enterprise 64/128
fp1100: Casio FP-1100
g800: Sharp PC-G800
gal: Galaksija
gamate: Gamate
gx4000: Amstrad GX-4000
kaypro: Kaypro 2X
kc: Robotron KC-85/2/3/4
lambda: Lambda 8300
laser500: Laser 500
m5: Sord M5
mc1000: CCE MC-1000
microbee: Microobee
mo5: Thomson Mo5/Mo6/Prodest PC128 (work in progress)
msx: MSX
mtx: Memotech MTX 512
multi8: Mitsubishi Multi 8
mz: Sharp MZ 80/700
mz2500: Sharp MZ 2500
nascom: Nascom
nc100: Amstrad NC-100/150
nc200: Amstrad NC-200
nes: Nintendo Enterteinment System
newbrain: Grundy Newbrain
oric: Tangerine Oric 1/Atmos
osborne1: Osborne 1
osca: OSCA v6z80p
osic1p: Ohio Scientific Challenger 1P
oz: Sharp OZ-700
p2000: Philips P2000
pc6001: NEC PC 6001
pc88: NEC PC 8801 (work in progress)
pce: PCEngine
pet: Commodore Pet
pps: Peters Plus Sprinter
pv1000: Casio PV1000
pv2000: Casio PV2000
px4: Epson PX-4/HC-40
px8: Epson PX-8/HC-80
rex: Xircom Rex 6000 (work in progress)
rx78: Bandai RX-78
samcoupe: Sam Coupe
sc3000: Sega SC 3000
sg1000: Sega SG 1000
sms: Sega Master System
sos: S-OS
spc1000: Samsung SPC 1000
spectrum: Sinclair Spectrum 16k/48k/128k
srr: Exidy Sorcerer
super80: Super 80/80d/80e/80m (work in progress)
super80r: Super 80r/Super80v (work in progress)
supervision: Watara Supervision (work in progress)
svi: Spectravideo 318/328
telestrat: Oric Telestrat (work in progress)
ti82: Texas TI 82
ti83: Texas TI 83
ti8x: Texas TI 83 Plus
ti85: Texas TI 85
ti86: Texas TI 86
tiki100: TIKI 100
to7: Thomson To7(/70)/To8/To8d/To8+/To9/To9+ (work in progress)
trs80: TRS-80 Model I/III/IV
ts2068: Timex TS 2068
vg5k: VG-5000
vic20: Commodore Vic 20
vz200: VTech VZ200
x07: Casio X-07 (work in progress)
x1: Sharp X1
z1013: Robotron Z1013
z88: Cambridge Z88
z9001: Robotron Z9001, Robotron KC 85/1, Robotron KC 87
zx80: Sinclair ZX80
zx81: Sinclair ZX81


16-BIT versions

pc8086: Intel 8088/8086 PC
pdp: PDP 11 v7 (work in progress)


32-BIT versions

linux386: ELF linux for Intel 386
linux68k: ELF linux for Motorola 68020
linuxppc: ELF linux for PPC
linuxmips: ELF linux for little endian MIPS32r2


Modern 32/64-BIT PC versions

There are a plain stdlib (turn based) and an ncurses (action) version that can be compiled for multiple platforms for which an ANSI C compiler and ncurses are available, including Windows and Linux. For example:

  • Cygwin/Windows or Linux (gcc + ncurses, e.g., cygwin/Windows or Linux)
  • Windows 32/64 bit console (mingw-gcc + ncurses, e.g., x86_64-w64-mingw32-gcc)


Remark: You can compile the game for any recent or old/ancient architecture for which there is an ANSI C capable compiler.

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 03 Ene 2019 17:50
por daniel.pontiveros
Uuuu que buena pinta no? Un C? No es mala cosa al menos mi experiencia con C64 y el ensamblador es un poco coñazo! Gran aporte

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 03 Ene 2019 18:48
por jltursan
Fabrizio's project has a different goal. Being a simpler game is easier to port to nearly every platform out there if it's previously supported by the z88dk project. I've been helping him with the 80-columns EInstein port.

Anyway, a SDK for cc65 is always welcome and the Unity's features are impressive. Sprites not only for machines with hardware support?, now we're talking!

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 04 Ene 2019 03:16
por 8bit-Dude
I was not aware of Cross-Chase, thanks for sharing this information Explorer, it will sure be a source of inspiration!

My goal with 8bit-Unity is to make an integrated IDE with all the needed tools for processing assets and packaging disks. Developping simple games with static bitmap background, animated sprites, and online gameplay should become a breeeze.

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 04 Ene 2019 11:24
por Quickie
As I told on the 8bit-slicks post, this is simply amazing!
Thank you very much for the hard work and keep us posting the advances.
Is there any screenshot of the IDE? :D

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 05 Ene 2019 03:37
por 8bit-Dude
Quickie escribió:Is there any screenshot of the IDE? :D


Don't expect much for version 0.1... Just Notepad++, Gimp, and some batch files!
But I plan to work on this for a few years, and it will sure have all the bells and wistles in due time.

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 05 Ene 2019 11:31
por explorer
8bit-Dude escribió:I was not aware of Cross-Chase, thanks for sharing this information Explorer, it will sure be a source of inspiration!

My goal with 8bit-Unity is to make an integrated IDE with all the needed tools for processing assets and packaging disks. Developping simple games with static bitmap background, animated sprites, and online gameplay should become a breeeze.

Other sources of inspiration:

The CPC Amstrad people have the CPCtelera (join 'CPC' and 'coctelera' -shaker-), and it is not hard to expand to another targets because they use standard tools.

For integrated IDE, I use WUDSN IDE, a free integrated Apple II, Atari 2600, Atari 7800, Atari 8-bit, C64 and NES development plugin for Eclipse (features).

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 07 Ene 2019 09:02
por Fabrizio Caruso
Hi everyone!

My project (CrossLib + Cross Chase + other upcoming universal 8-bit games) shares with 8bit-Unity the idea of a multi-target library but it is quite different for all the rest:

CrossLib:
- main goal: universal code
- provides MINIMAL APIs for currently 120 different 8-bit targets with different architectures (Intel 8080, MOS 6502, Zilog Z80, Motorola 6809, etc.)
- does not provide any network functionality
- is just a source code library (not fully yet) with maybe some future minimal scripts
- does not provide IDE/UI/tools (other than maybe some future scripts)

8bit-Unity:
- main goal: powerful multi-target development environment
- provides POWERFUL APIs for few (currently 3) different 6502-based targets
- also provides network APIs
- wants to be more than just a library
- will provide some IDE/UI/tools

So my project is about a universal library that can be used to code simple games with simple graphics and even simpler sounds.
8bit-Unity allows to exploit a few different targets almost as if coded one by one. So it can be used to create games with full-fledged graphics and sounds.

Fabrizio Caruso

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 07 Ene 2019 17:43
por Drtad
Cool, both proyects

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 17 Abr 2019 16:14
por 8bit-Dude
Just a heads-up: The first Alpha Release 0.1 is now available for download. Documentation is very sparse though, I will improve on that in next release...

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 17 Abr 2019 16:22
por Estrayk
8bit-Dude escribió:Just a heads-up: The first Alpha Release 0.1 is now available for download. Documentation is very sparse though, I will improve on that in next release...


thank you

Re: Announcing 8bit-Unity: Cross-platform SDK for 8bit games

Publicado: 11 May 2019 09:02
por 8bit-Dude
To keep things fresh, here goes a roadmap update on the next versions 0.2 and 0.3: https://www.youtube.com/watch?v=37A2ap10IgU