Page 2 of 2

Re: Infinite Adventure (Under development)

Posted: April 25th, 2017, 2:23 pm
by starwindz
New screenshots of development. Level generation is still very simple and basic.

Re: Infinite Adventure (Under development)

Posted: April 25th, 2017, 9:28 pm
by salvadorc17
starwindz wrote:New screenshots of development. Level generation is still very simple and basic.


Could you share this development versions, really want to try myself..

Re: Infinite Adventure (Under development)

Posted: April 26th, 2017, 1:15 am
by starwindz
salvadorc17 wrote:
starwindz wrote:New screenshots of development. Level generation is still very simple and basic.


Could you share this development versions, really want to try myself..

Okay. After fixing some bugs, I would upload the development version within this weekend.

Re: Infinite Adventure (Under development)

Posted: April 30th, 2017, 3:44 pm
by starwindz
Mod information
=================
Mod name: Infinite Adventure
Author: starwindz
Current version: 0.20
Description: Random Level Generation Mod


Version history of Infinite Adventure
=====================================
Below you find a list with the added features, changes and fixes for each version.


Version 0.20 (2017.04.30)
-----------------------------
- Download: https://drive.google.com/file/d/0Bw07W8 ... sp=sharing

- Add: Room Template Editor
- Add: Room Template Script Engine (Pascal Script)
- Add: Level Generator
- Add: Options

* Remark
- Level generator is still very basic and monotonous.
- Currently there are no manual or technical document.
- To test room template
(1) Go to 'Template Editor' tab
(2) Edit Some Room Templates
(3) Click 'Create Room & Run' button
- To test level creator
(1) Go to 'Level Creator' tab
(2) Click 'Create Level & Run' button


Version 0.10 (2017.04.09)
-----------------------------
- Initial release of prototype


* End of document

Re: Infinite Adventure (Under development)

Posted: April 30th, 2017, 6:26 pm
by starwindz
Screenshots of new feature using new SDLPop feature. ( viewtopic.php?f=126&t=4048 )

Re: Infinite Adventure (Under development)

Posted: April 30th, 2017, 9:39 pm
by salvadorc17
Really good work, now it feels like a powerfull tool, only what i think need to be fixed is the background tiles like windows are bad placed adjacent to some tiles.

Re: Infinite Adventure (Under development)

Posted: May 3rd, 2017, 1:44 am
by starwindz
Examples of scripting engine for room template editing are shown as follows. Currently it is at early stage and needs some improvement.

ss1.png

Code: Select all

[template info]
enter_and_exit_dir = left-right
enter_and_exit_num = 0-0
one_way_passage    = false

[basic tile layout]
line_  =   0123456789
line_0 = 0 __________
line_1 = 1 ##########
line_2 = 2 ##########

[test]
position = 0, 0

[script]
var
  r, c, p, start : byte;
  gap : byte;
  fake_floor_middle, fake_floor_top : byte;
  spike_bottom, spike_top : byte;
  guard_top : byte;
  door_top : byte;
begin
  ////*** jump making ***///
  // select gap: 0 to 4
  gap   := RandomInt(0, 4);
  //gap := 2;
  start := RandomInt(1, 4);
  //start := 1;

  fake_floor_top := RandomInt(0, 1);
  //fake_floor_top := 1;
  fake_floor_middle := RandomInt(0, 1);
  //fake_floor_middle := 1;
  spike_bottom := RandomInt(0, 1);
  //spike_bottom := 1;
  spike_top := RandomInt(0, 1);
  //spike_top := 1;
  guard_top := RandomInt(0, 1);
  //guard_top := 1;
  door_top := RandomInt(0, 1);
  //door_top := 1;

  for c := start to start + gap - 1 do begin
    if fake_floor_top = 1 then begin
      SetTile(0, c, '~');
    end
    else begin
      SetTile(0, c, '.');
    end;
   
    if fake_floor_middle = 1 then begin
      SetTile(1, c, '~');
    end
    else begin
      SetTile(1, c, '.');
    end;
   
    if spike_bottom = 1 then begin
      SetTile(2, c, '+');
    end
    else begin
      SetTile(2, c, '_');
    end;
  end;
 
  if spike_top = 1 then begin
    if RandomInt(0, 1) = 0 then begin
      SetTile(0, start + gap, '+');
    end
    else begin
      SetTile(0, start + gap + 1, '+');
    end;
  end;

  ////*** guard making ***///
  if guard_top = 1 then begin
    if (start + gap + 4 <= 9) then begin
      SetTile(0, start + gap + 4, '&');
    end;

    if RandomInt(0, 1) = 1 then begin   
      if (start + gap + 4 <= 8) then begin
        SetTile(0, start + gap + 5, '.');
        SetTile(1, start + gap + 5, '.');
        SetTile(2, start + gap + 5, '+');
      end;
    end;
  end;

  ////*** door making ***///
  if door_top = 1 then begin
    SetTile(0, start - 1,       'A');
    SetTile(0, start + gap,     '1');
    SetTile(0, start + gap + 1, 'A');
  end;

  (*
  for c := 0 to 9 do begin
    if GetTile(0, c) = '_' then begin
      SetTile(0, c, 'h');
    end;
  end;
  *)
end.

Re: Infinite Adventure (Under development)

Posted: May 6th, 2017, 5:07 pm
by starwindz
Syntax highlighting of script engine for level generation is now supported. Development is slow but my final goal is to make the level generator using template and script without using level editors.

Re: Infinite Adventure (Under development)

Posted: May 6th, 2017, 9:29 pm
by salvadorc17
Youre now creating a full IDE for it, that is really cool, but for some users will be hard to use.

Re: Infinite Adventure (Under development)

Posted: May 19th, 2017, 8:10 am
by doppelganger
Oh man, I never thought anyone would even bother looking at what I did.
Thanks, starwindz!

Re: Infinite Adventure (Under development)

Posted: May 23rd, 2017, 6:09 am
by starwindz
doppelganger wrote:Oh man, I never thought anyone would even bother looking at what I did.
Thanks, starwindz!

I really thank you so much for your great work. :D

Re: Infinite Adventure (Under development)

Posted: May 23rd, 2017, 6:17 am
by starwindz
I have decided to make a sub-mod called 'Infinite Adventure - Descent'. This mod has levels which have 'up-to-down' rooms only. My intention for this mod developement is mainly to test and improve the script engine for room tile generation. The status will be uploaded within several weeks.

Re: Infinite Adventure (Under development)

Posted: May 23rd, 2017, 1:21 pm
by doppelganger
I am currently thinking on how to implement gates. When I wrote the algorithm, I thought of placing gates in the main path, and its switch in the branching rooms. But the switch shouldn't be placed too far away (making the level impossible), or too close (making that section of the level easy) to the gate. Any ideas?